protocols-cli
Maintains Culture Protocols — a workflow system in which agents, bots and humans describe how work is done, by whom, and under a verifiable contract. The intended surface is authoring, versioning and validating protocol definitions, then checking a completed run against the contract it promised.
Status: scaffold. The protocol surface described above is not built yet. What ships today is the agent-first CLI skeleton, the mesh identity, and the vendored skill kit — see What's here. Protocol verbs arrive as new noun groups under
protocols/cli/_commands/.
What's here
- An agent-first CLI cited from teken
(
afi-cli) — the runtime package has no third-party dependencies. - A mesh identity —
culture.yaml(suffix: protocols-cli,backend: colleague) and the matching resident prompt fileAGENTS.colleague.md. - 18 vendored skills under
.claude/skills/, cited-not-imported from guildmaster, devague, colleague and eidetic-cli. Seedocs/skill-sources.mdfor provenance and re-sync commands. - A build + deploy baseline — pytest, lint, the agent-first rubric gate, and PyPI Trusted Publishing wired into GitHub Actions.
Quickstart
uv sync
uv run pytest -n auto # run the test suite
uv run protocols whoami # identity from culture.yaml
uv run protocols learn # self-teaching prompt (add --json)
uv run teken cli doctor . --strict # the agent-first rubric gate CI runs
The installed command is
protocols. The distribution, the argparseprog, and the CLI's own help andexplaintext all sayprotocols-cli; only[project.scripts]binds the shorterprotocols. Invokeprotocols, readprotocols-cliin the output.
CLI
| Verb | What it does |
|---|---|
whoami |
Report this agent's nick, version, backend, and model from culture.yaml. |
learn |
Print a structured self-teaching prompt. |
explain <path> |
Markdown docs for any noun/verb path. |
overview |
Read-only descriptive snapshot of the agent. |
doctor |
Check the agent-identity invariants (prompt-file-present, backend-consistency). |
cli overview |
Describe the CLI surface itself. |
Every command supports --json. Results go to stdout, errors/diagnostics to
stderr (never mixed). Exit codes: 0 success, 1 user error, 2 environment
error, 3+ reserved.
Development
Every PR bumps the version — the version-check CI job fails when
pyproject.toml matches main. Lint locally the way CI does:
uv run black --check protocols tests
uv run isort --check-only protocols tests
uv run flake8 protocols tests
uv run bandit -c pyproject.toml -r protocols
# markdownlint comes from npm, not the dev group — install once, pinned to the
# version CI uses:
npm install -g markdownlint-cli2@0.21.0
markdownlint-cli2 "**/*.md" "#node_modules" "#.local" "#.claude/skills" "#.teken"
See CLAUDE.md for the full conventions — the rubric obligations
that shape the CLI, how to add a command, the PR lane, and the
cite-don't-import rule for .claude/skills/.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for protocols-cli 0.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| protocols_cli-0.7.1.tar.gz | 165.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| protocols_cli-0.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 188.1 kB
Release files / protocols_cli-0.7.1.tar.gz
| Download URL | protocols_cli-0.7.1.tar.gz |
|---|---|
| Size | 165.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b94e4939044d6ef349fb8ab3fe4dec1c746d1ecbfb6d3946b1ff9e8df97d28f
|
|
BLAKE2b-256 checksum How to use checksums |
c6d890df9d70701dae6b6059206e7e7b8df614c29c06065484ec43056345fc4c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / protocols_cli-0.7.1-py3-none-any.whl
| Download URL | protocols_cli-0.7.1-py3-none-any.whl |
|---|---|
| Size | 22.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
939358988c5ad97d8dee8ba32135624447f4a893c3de0bf5d791d9cf7b5cb1c7
|
|
BLAKE2b-256 checksum How to use checksums |
53e407c2f49ca440584444464017d5298f5b785854c44b8d2cf726d853b8f564
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for protocols-cli 0.7.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.