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 #1673After this release
`.claude/rules/*`~169K~93K
Total startup (rules + memory)~193K~110K
Budget verdict (`lint:claude-context --startup`)OVER/WARNOK

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.