Repository navigation
v9.2.0 — Contextium v9.2.0 lets you choose how much guidance `AGENTS.md` carries, and ships the workbench's current skills, checks and guards.
Contextium v9.2.0 lets you choose how much guidance AGENTS.md carries, and ships the workbench's current skills, checks and guards.
Choose how much guidance AGENTS.md carries
The installer now asks, and --rules answers without the question:
| Level | AGENTS.md carries |
|---|---|
minimal |
what the installed skills, checks and guards rely on |
recommended |
that, plus the general engineering standards (the default for a new workbench) |
full |
that, plus working preferences for replies and a Stack section to fill in |
Minimal keeps every standard a shipped skill or check cites or enforces, so every check still passes. Before writing, the installer prints what the level holds, what it leaves out, and the text of yours that stays in force; --yes prints the same and goes on. The level is recorded in AGENTS.md, and a re-run without --rules keeps it. An AGENTS.md from an earlier version keeps the guidance it already carried: unchanged v8/v9 working preferences become the full level's block, and edited ones stay yours, as written. An unknown level, a malformed recorded level or a Contextium block that is never closed stops the installer before it writes anything. Measured on a fresh install: 17,528 bytes at minimal, 19,493 at recommended, 21,461 at full.
The loop, at current source
- The planning close prints the next step.
/projectand/specnever build: their close prints/implement <slug> <row>for each row ready to build, for you to run in a fresh session. Under T3 Code,/implementrefuses a row another open thread is already building. - The close waits for GitHub's checks on every push it makes, through the
ghCLI, and fails when one fails, including a hosted deploy (such as Cloudflare Pages) that ran on the previous push and did not on this one; withoutghit lands and says no push checks were read..agents/deployable-prefixes.jsonand.agents/deploy/await-deploy-run.share no longer read. - Live checks. A spec can declare checks only the deployed thing can answer; the close holds until each has run against what is live — the production deployment GitHub most recently marked successful (after a rollback, the one rolled back to). Live checks, command and evidence alike, need a repo whose deploys GitHub records as production deployments; elsewhere the close says it cannot tell what is live and refuses them rather than guess. A repo without production deployments can still release, but cannot declare live checks.
- Reviews remember what they checked. A review's receipt names the content it covered and is reused only while that content is unchanged. A review leaves out every model that wrote the work; with no other model installed, the fresh-context fallback is recorded as not independent.
- Large changes are reviewed in pieces. A change too big for one review call is reviewed as up to four pieces by file, over one base and head; together they approve exactly as one full review would.
- An end-of-turn check for the close. A Stop hook (Claude Code and Codex) refuses to end a turn whose reply leaves out the close's report, or that leaves new work unlanded in a session that already closed (a turn's second stop always passes, so it never loops); a reviewer the review chain started is let through. Codex asks once to trust the new hook.
- Every unit's tests run at the close. An app, integration or product repo with no
package.jsonnow runs its own*.test.tssuites, or is named unverified, instead of passing in silence. /project triagelists what is blocked, monitored or waiting on you;unblockreturns a dated wait toplanned./qachecks for cut-off, covered and modal-trapped controls, captures touch-sized and lazy-loaded pages, serves a static build without Python, and keeps one server per run across restarts.- Checks and guards.
check-scripts.tsrefuses a git file listing without-z;check-skills.tsrefuses ametadata.peerspath that does not exist and a step that runs a skill only you may start; the host guard refuses a kill by port.
Tested here
Installed into scratch workbenches and probed live, each against a control run without the wiring: Claude Code 2.1.317, Codex 0.166.0, Gemini CLI 0.66.0 and Antigravity 1.4.5 read AGENTS.md, load a skill from .agents/skills, and have the host-infra guard block a systemctl --user enable. Claude Code also read AGENTS.md at each level. Grok Build is described from its documentation: its probes could not run (the vendor refused every call with a usage-balance error), so it is not claimed as tested.
The end-of-turn check is tested through recorded hook payloads and the installer's wiring, not yet in a live session.
Upgrading
Re-run the installer. docs/update-guide.md § Upgrading to v9.2.0 lists what you may need: gh signed in for push checks, and npm i -g typescript@5 web-tree-sitter tree-sitter-bash for /author's bash-hook check and the reviewer's caller map.