AIWG 2026.6.13 - "Tiered rules — leaner startup context"
AIWG 2026.6.13 - "Tiered rules — leaner startup context"
Released: 2026-06-30 Channel: stable (`npm install -g aiwg`)
This release makes AIWG's rule corpus pay for itself. Rules now declare a canonical enforcement level, and deployment splits them into two tiers: the CRITICAL/HIGH rules that must prime every session are inlined into each provider's always-on context, while the MEDIUM/LOW tier becomes on-demand — reachable through `aiwg show rule <name>` and a generated `RULES-ONDEMAND.md` index. Pair that with a careful compression pass over the largest always-on rule bodies, and a full `aiwg use all` Claude startup drops from ~193K to ~110K tokens — back under the 120K working-headroom target on a standard Sonnet window, with every normative directive intact.
The same release extends the Cockpit session workspace with a read-only observe terminal and persistent instance/session navigation, and hardens executor enrollment so Docker and VM agents register reliably.
What changed
Enforcement-tiered rule deployment (#1673)
Every rule now carries a canonical `enforcement:` frontmatter level. The two shared deploy enumerators (`getAddonRuleFiles`, `collectFrameworkArtifacts`) inline only the always-on CRITICAL/HIGH tier into a provider's rule directory; MEDIUM/LOW rules are pruned from the always-on set and left on-demand. Index files and any un-triaged rule default to always-on, so nothing is ever silently dropped. A CI guard (`test/unit/providers/rule-tier-deployment.test.ts`) asserts the enumerators never leak a MEDIUM/LOW rule into the always-on set.
The architecture decision is recorded at `.aiwg/architecture/adr-rule-deployment-context-budget.md`.
On-demand rule index across every provider (#1675)
The MEDIUM/LOW tier stays discoverable everywhere. File-based providers write a compact `RULES-ONDEMAND.md` into their rule directory after deploying the always-on rules:
.codex/rules/RULES-ONDEMAND.md
.factory/rules/RULES-ONDEMAND.md
.cursor/rules/RULES-ONDEMAND.md
.github/instructions/RULES-ONDEMAND.md
.opencode/rule/RULES-ONDEMAND.md
.windsurf/rules/RULES-ONDEMAND.md
~/.openclaw/rules/RULES-ONDEMAND.md
Each entry is one line with its fetch hint:
- `mention-wiring` — `aiwg show rule mention-wiring`
Aggregated providers note the tier in their single bridge file instead of a discrete file — warp appends an `## On-Demand Rules` section to `WARP.md` (excluding rules already inlined verbatim), and hermes/openhuman render it into `AGENTS.md` (openhuman via a new `{{ON_DEMAND_RULES}}` template token). A shared `renderOnDemandRuleSection` helper keeps the file index and the bridge sections in lock-step.
Compressed always-on rule bodies (#1674)
The largest always-on rules — `anti-laziness`, `skill-discovery`, `subagent-scoping`, `rlm-context-management`, `cli-secondary`, `citation-policy`, `auto-compact-continue`, `provenance-tracking`, `failure-mitigation`, `agent-fallback`, `agent-friendly-code`, `agent-generation-guardrails`, `hitl-gates`, `executable-feedback`, `tao-loop` — were compressed per-rule, removing non-normative illustration (research-quote blocks, metrics dashboards, integration YAML, prompt-reinforcement galleries, ASCII diagrams) while preserving every FORBIDDEN/REQUIRED directive, rule statement, and enforcement level. Component `RULES-INDEX.md` summaries were tightened to one line each. The full detail of any rule remains one `aiwg show rule <name>` away.
Net effect on a full `aiwg use all` Claude startup:
| Before #1673 | After this release | |
|---|---|---|
| `.claude/rules/*` | ~169K | ~93K |
| Total startup (rules + memory) | ~193K | ~110K |
| Budget verdict (`lint:claude-context --startup`) | OVER/WARN | OK |
Startup-context budget in `aiwg doctor` (#1672)
`aiwg doctor` now reports the aggregate context Claude Code inlines at session start versus the standard Sonnet window, with an OK/WARN/OVER verdict — so the budget is visible without guesswork. The same measurement is enforced in CI:
npm run lint:claude-context -- --startup --strict
Cockpit: observe terminal + persistent navigation
The Cockpit session workspace gains a read-only observe terminal (auto- observing the selected session's output) and a persistent instances + sessions navigation pane that refreshes on an interval. Executor enrollment was hardened across the board (#1669, #1670, #1671): the executor binds to `0.0.0.0` in `cockpit-up` so Docker agents enroll, the vsock CID registry auto-heals before executor start, attach retries through the PTY-readiness window, session lists de-duplicate by id, and stale stopped-Docker rows are destroyable.
Upgrade
npm install -g aiwg # stable
aiwg refresh # re-deploy frameworks to pick up the tiered rules
`aiwg refresh` re-deploys with the tiered model: your provider rule directories keep the always-on CRITICAL/HIGH rules plus a `RULES-ONDEMAND.md` index for the rest. Nothing is lost — every MEDIUM/LOW rule is fetchable via `aiwg show rule <name>`. No action is required for the Cockpit changes.
No breaking changes.
Correction (2026-07-15, #1784/#1785): OpenHuman's default project
artifact is an `AGENTS.md` context bridge, not copied markdown personas. Its
on-demand section must cover the complete installed framework, addon, and
extension corpus. AIWG 2026.7.13 corrects both the documentation and the
multi-pass index generation.