AGENTS.md § Gates is the one gate list; cli_contract.GATES and docs verify hold it
The gate list contradicted itself across AGENTS.md, instructions/gates.md and the command records' gate names. The Rebase-Review Gate is now listed, `new project`'s exit 42 is no longer a pseudo-gate, gates.md and the explanation page link to the one list instead of counting, and a register plus a docs verify check keep the three in step. Files changed: - AGENTS.md - CHANGES.md - VERSION - docs/explanation/why-gates-are-code.md - docs/reference/commands/pages.md - docs/reference/commands/types-instructions-and-docs.md - docs/reference/exit-codes.md - instructions/gates.md - tools/CONTRACT.md - tools/chemenu/cli_contract.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/doctor.py - tools/chemenu/commands/git_publish.py - tools/chemenu/commands/new_page.py - tools/chemenu/errors.py - tools/chemenu/mcp/server.py - tools/chemenu/tests/test_cli_contract.py - tools/chemenu/tests/test_docs_verify.py - tools/chemenu/tests/test_git_publish.py - tools/chemenu/tests/test_reference_doc.py Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
1 parent
1559f4b405
commit
e9f4759727
20 files changed
+269
-52
No files matched your search
@@ -162,7 +162,7 @@ instance comes only from a release),
|
||||
[docs/explanation/language-boundaries.md](docs/explanation/language-boundaries.md) (why the
|
||||
control plane is English everywhere and the KB language is a value, and why the axis is the
|
||||
reader rather than the owner),
|
||||
[docs/explanation/why-gates-are-code.md](docs/explanation/why-gates-are-code.md) (why the five
|
||||
[docs/explanation/why-gates-are-code.md](docs/explanation/why-gates-are-code.md) (why the
|
||||
gates in [Gates](#gates) are code rather than instruction),
|
||||
[docs/explanation/version-model.md](docs/explanation/version-model.md) (why a version number
|
||||
answers a compatibility question and a migration question separately), and
|
||||
@@ -278,8 +278,8 @@ that take a title. A result cut short by `--limit` says so and names the total.
|
||||
|
||||
## Gates
|
||||
|
||||
Five limits are enforced in code rather than by instruction, because a prompt-level limit is
|
||||
one an agent can talk itself past.
|
||||
These limits are enforced in code rather than by instruction, because a prompt-level limit is
|
||||
one an agent can talk itself past. This section is the one list of them.
|
||||
|
||||
- **Mass-Update Gate.** `publish` exits **42** on a change touching too many files, printing
|
||||
the file list and the `--confirm <token>` line that publishes it once the user approves. The
|
||||
@@ -287,6 +287,10 @@ one an agent can talk itself past.
|
||||
- **Publish-Remote Gate.** `publish` exits **42** on a push to a URL this checkout has not
|
||||
declared in `.wikitool-remotes.json`. It has no token and no flag: the way past it is a
|
||||
deliberate edit by the user, never by an agent.
|
||||
- **Rebase-Review Gate.** `sync` and `publish` exit **42** on a rebase whose incoming commits
|
||||
touch a file this session is also changing, printing the incoming commits, the overlapping
|
||||
files, their diff and the `--confirm-rebase <token>` line that rebases once the user has
|
||||
judged that the two changes do not collide logically.
|
||||
- **Upload Review Gate.** `upload accept` exits **42** on an MCP `submit` tool submission
|
||||
nobody has cleared yet, printing its manifest and the `--confirm <token>` line that promotes
|
||||
it once the user approves - same shape as the Mass-Update Gate, one submission at a time.
|
||||
|
||||
Reference in new issue
Block a user