feat: export guidelines - the guideline pages as a generated GUIDELINES.md, pushed into the captured repositories behind the Guideline Push Gate (#179)
CI / verify (push) Successful in 5m40s
CI / pwsh (push) Successful in 1m59s
Release / release (push) Successful in 35s

Files changed:
- AGENTS.md
- CHANGES.md
- README.md
- VERSION
- docs/why-gates-are-code.md
- instructions/gates.md
- instructions/kb-profiles.md
- kb/CONTRACT.md
- kb/CONVENTIONS.md
- kb/CONVENTIONS.md.template
- raw/CONTRACT.md
- tools/CONTRACT.md
- tools/README.md
- tools/chemenu/cli.py
- tools/chemenu/cli_contract.py
- tools/chemenu/commands/export_cmd.py
- tools/chemenu/commands/page_ops.py
- tools/chemenu/commands/raw_cmd.py
- tools/chemenu/commands/search.py
- tools/chemenu/guideline_export.py
- tools/chemenu/kb_scan.py
- tools/chemenu/repo_capture.py
- tools/chemenu/search/filters.py
- tools/chemenu/tests/test_cli.py
- tools/chemenu/tests/test_export_guidelines.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
torbenandClaude Opus 5.5 committed 2026-10-06 06:48:07 +02:00
1 parent ccede04b97
commit 283cdae8be
25 files changed
+1753 -68

No files matched your search

+6 -2
View File
@@ -152,7 +152,7 @@ exists, why silent overwrite is the failure it guards against, and why an instan
from a release),
[docs/language-boundaries.md](docs/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/why-gates-are-code.md](docs/why-gates-are-code.md) (why the four gates in
owner), [docs/why-gates-are-code.md](docs/why-gates-are-code.md) (why the five gates in
[Gates](#gates) are code rather than instruction),
[docs/version-model.md](docs/version-model.md) (why a version number answers a compatibility
question and a migration question separately), and
@@ -267,7 +267,7 @@ that take a title. A result cut short by `--limit` says so and names the total.
## Gates
Four limits are enforced in code rather than by instruction, because a prompt-level limit is
Five limits are enforced in code rather than by instruction, because a prompt-level limit is
one an agent can talk itself past.
- **Mass-Update Gate.** `publish` exits **42** on a change touching too many files, printing
@@ -279,6 +279,10 @@ one an agent can talk itself past.
- **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.
- **Guideline Push Gate.** `export guidelines --push` exits **42** before writing the generated
`GUIDELINES.md` into any captured repository, printing every target's status, the diff for
each one it would write, and the `--confirm <token>` line that pushes exactly that set once the
user approves.
- **Iteration Budget Gate / Loop-Breaker.** Past 60 `wikitool` calls in a session, or after 3
identical calls in a row, further calls are refused.