Packet — R89 seal: λ Phase 2 graduation + κ §10 backfill + Phase 3 θ unblock

Round: R89 Phase A seal β task ID: 6d4504e0-b64d-4f2f-ae38-3429d800364c Base: origin/main @ 0c858381

Execution plan

Six files; each edit listed file-by-file with exact textual targets. Pre-commit ordering (one feat commit per group of related edits):

  1. feat(r89-seal-lambda-phase-2): graduate λ concept doc to Phase 2 partial — touches docs/3-world/social/reputation.md
  2. feat(r89-seal-lambda-phase-2): backfill κ concept doc + laws index — touches docs/3-world/physics/laws/rule-engine.md and docs/3-world/physics/laws/index.md
  3. feat(r89-seal-lambda-phase-2): update CLAUDE.md §10 maturity claim + changelog — touches CLAUDE.md
  4. feat(r89-seal-lambda-phase-2): unblock Phase 3 θ staged prompt — touches docs/guides/implementation/task-prompts/p3.1-theta-consensus.md

Edit 1 — docs/3-world/social/reputation.md (λ concept doc)

Frontmatter (lines 1–9), three flips:

- phase: 0
- colibri_code: none
- status: spec
+ phase: 2
+ colibri_code: partial
+ status: partial

Line 15 — replace stale Phase 0 paragraph:

Before:

Phase 0 reality: λ is specified but not load-bearing. No Phase 0 tool mutates a reputation score. The spec exists so the schema carries the columns a later phase will need.”

After:

Phase 2 reality (R89, 2026-05-12): λ ships end-to-end. The 7 Phase 2 sub-tasks — P2.1.1 schema, P2.1.2 score computation, P2.2.1 exponential decay, P2.2.2 offense penalties, P2.3.1 experience tokens, P2.4.1 derived capability limits, P2.5.1 4-tool MCP query surface — landed in R89 (PRs #226–#232). reputation_get, reputation_history, reputation_leaderboard, and reputation_check_gates are registered MCP tools; the schema is populated; κ-driven decay and penalties are running. Phase 3+ governance integration (voting credits, π consumption) remains spec-only.”

§”Phase 0 posture” (lines 82–86) — rename + rewrite:

Before (heading ## Phase 0 posture + 3 bullets):

”- The reputations, experience_tokens, and penalty_events tables exist in the schema but are not populated.

  • No Phase 0 tool (ADR-004) reads or writes λ state.
  • The single-agent posture of Phase 0 (one T0 human, one T4 model) makes per-agent reputation trivially flat.”

After (heading ## Phase 2 posture + 3 bullets):

”- The reputations, experience_tokens, and penalty_events tables are populated by the Phase 2 surface.

  • 4 Phase 2 MCP tools read λ state: reputation_get, reputation_history, reputation_leaderboard, reputation_check_gates (registered via ADR-004; MCP surface is 14 → 18 post-R89).
  • Mutations land via κ rule effects (decay, penalty, score increment); no admin-fiat path exists per AX-02.”

Edit 2a — docs/3-world/physics/laws/rule-engine.md (κ concept doc)

Frontmatter (lines 1–10), three flips:

- phase: 0
- colibri_code: none
- status: spec
+ phase: 1
+ colibri_code: partial
+ status: partial

Line 16 — replace stale Phase 0 paragraph:

Before:

Phase 0 reality: κ is specified and partially scaffolded. The DSL is defined; the evaluator is not yet written. Rules in Phase 0 are applied by hand in the code paths that need them, with a placeholder for κ once it ships.”

After:

Phase 1 reality (R87, 2026-05-07): κ ships end-to-end. The 20 Phase 1 sub-tasks — base library (P1.1.x, BPS arithmetic + determinism harness), DSL pipeline (P1.2.x, lexer/parser/validator/registry), runtime (P1.3.x, engine/builtins/state-access/policy-gate), admission (P1.4.x, evaluator/denial-reasons/budgets/tool-lock-adapter), and versioning (P1.5.x, hash/migration/activation/canonical/parity) — landed in R85→R87 (PRs #205–#220). κ is the deterministic core that admission middleware calls, that θ vote payloads version-hash against, and that all rule-shaped state mutations route through. Phase 2+ rule extensions (governance-proposed rule upgrades, fork-aware versioning) remain spec-only.”

§”Phase 0 posture” (lines 188–194) — rename + rewrite:

Before (heading ## Phase 0 posture + 5 bullets):

  • 5 bullets enumerating “DSL defined / parser not shipped / no tool exposes κ”

After (heading ## Phase 1 posture + 5 bullets):

”- Integer-math and basis-point conventions apply across every rule body.

  • The DSL pipeline ships end-to-end: lexer (Chevrotain), parser (custom CST), validator (aggregate-errors), registry (specificity-ordered).
  • The κ engine evaluates against frozen state snapshots with parent-pointer binding chains; AST budget caps (MAX_INTEGER_OPS, MAX_CALL_DEPTH) fail loud as ADMISSION_DENIED(reason=\"budget:<which>\").
  • Phase 0 α tool-lock middleware now consumes κ admission decisions via the P1.4.4 adapter; ad-hoc Phase 0 rule-shaped code paths still exist and route through κ’s basis-point conventions.
  • Phase 2+ rule upgrades (governance-proposed mutations, fork-aware rule_version_hash divergence) are spec-only and will graduate at the next κ-shipping round.”

Edit 2b — docs/3-world/physics/laws/index.md (laws index — κ row only)

Currently line 20:

”- κ Rule Enginecolibri_code: none — spec-only, Phase 1+ target (deterministic effects).”

After:

”- κ Rule Enginecolibri_code: partial — shipped Phase 1 (R87): DSL pipeline (lexer/parser/validator/registry), engine

  • builtins, admission evaluator, versioning + migration.”

Lines 21–22 (θ, ι) unchanged.

Edit 3a — CLAUDE.md §10 maturity claim (line 207)

Current full paragraph:

“Maturity: Execution 100% specified · Intelligence 100% specified · Legitimacy 33% specified. Phase 0 is code-complete on every non-deferred task: Execution axis 100% Phase-0 code-complete · Intelligence axis 100% Phase-0 code-complete (ζ Decision Trail + δ Router Phase 0 stubs shipped Wave I per ADR-005 §Decision) · Legitimacy axis code-complete only for the η Phase-0 slice. Of 15 Greek-letter concepts, 8 ship code at Phase 0 granularity (colibri_code: partial — α β γ δ ε ζ η ν); 7 remain spec-only for later phases (θ ι κ λ μ ξ π, colibri_code: none). δ shipped as Phase 0 stubs in R75 Wave I per ADR-005 §Decision: constant-returns-claude scoring + single-member fallback chain; full multi-model routing lands in Phase 1.5. Per ADR-006, partial is the correct graduation for a shipped Phase 0 slice — complete is reserved for when a concept’s full phased spec ships. Frontmatter was graduated in R75 Wave H.2 (7 concepts) and Wave I (δ, this wave).”

Target:

“Maturity: Execution 100% specified · Intelligence 100% specified · Legitimacy 33% specified. Phase 0 is code-complete on every non-deferred task; Phase 1 closed κ on 2026-05-07 (R87); Phase 2 closed λ on 2026-05-12 (R89). Of 15 Greek-letter concepts, 10 ship code (colibri_code: partial — α β γ δ ε ζ η κ λ ν); 5 remain spec-only for later phases (θ ι μ ξ π, colibri_code: none). δ shipped as Phase 0 stubs in R75 Wave I per ADR-005 §Decision (constant-returns-claude scoring + single-member fallback; full multi-model routing lands in Phase 1.5). κ closed Phase 1 across 20 sub-tasks in R85→R87 (PRs #205–#220); λ closed Phase 2 across 7 sub-tasks in R89 (PRs #226–#232), adding 4 MCP tools so the surface is 14 → 18. Per ADR-006, partial is the correct graduation for a shipped phase — complete is reserved for when a concept’s full phased spec ships. Frontmatter graduations: R75 Wave H.2 (7 concepts), Wave I (δ), R89 (κ + λ).”

Append a new entry after the R82.C entry, following the same format:

Updated R89 — 2026-05-12 (R89 Phase A seal: λ Phase 2 graduation + κ §10 backfill + Phase 3 θ unblock). λ Phase 2 shipped 7/7 sub-tasks (P2.1.1 schema + P2.1.2 score + P2.2.1 decay + P2.2.2 penalties + P2.3.1 tokens + P2.4.1 limits + P2.5.1 MCP tools) across PRs #226–#232; MCP surface 14 → 18 (added reputation_get, reputation_history, reputation_leaderboard, reputation_check_gates). λ frontmatter graduated colibri_code: none → partial (docs/3-world/social/reputation.md). CLAUDE.md §10 maturity claim updated to 10/15: backfills κ from R87 (Phase 1 closed 2026-05-07; #205–#220) which was missed in the R87 frontmatter pass, and adds λ from this round. κ concept doc (docs/3-world/physics/laws/rule-engine.md) and laws index (docs/3-world/physics/laws/index.md) frontmatter also graduated. docs/guides/implementation/task-prompts/p3.1-theta-consensus.md frontmatter unblocked status: staged → ready (Phase 3 θ dispatch authorized per T0 autonomous Phase 2+3 mandate; P3.4.1 + P3.5.1 hard λ dependencies satisfied). R88 context: #221 R88.A κ hygiene sweep + #222 R88.B mirror resync. R89 staging context: #225 R89.A merkle session-binding fix + #223 R89.B λ staging + #224 R89.C θ staging. No src/ code touched — meta hygiene only.

Edit 4 — docs/guides/implementation/task-prompts/p3.1-theta-consensus.md

Frontmatter (line 7) — one flip:

- status: staged
+ status: ready

Lines 102–110 (header gate block) — rewrite:

Before:

”> ## Phase 2 λ Reputation is in flight at staging time

Phase 3 executor dispatch BEGINS only after Phase 2 λ seals. Staging this prompt file does NOT authorize Phase 3 dispatch. Two slices have hard λ dependencies and CANNOT dispatch before λ closes:

  • P3.4.1 (STA) consumes P2.1.1 reputation schema
  • P3.5.1 (Equivocation Slashing) consumes P2.2.2 penalties

After:

”> ## Phase 2 λ Reputation closed at R89 2026-05-12

Phase 2 λ closed at R89 2026-05-12; P3 dispatch is now authorized per T0 autonomous Phase 2+3 mandate. The two λ-dependent slices are unblocked:

  • P3.4.1 (STA) consumes P2.1.1 reputation schema — shipped via #226
  • P3.5.1 (Equivocation Slashing) consumes P2.2.2 penalties — shipped via #229

ADR-002 (VRF) and ADR-003 (BFT library) gates remain in effect per the §ADR status block above — those gates are about library acceptance, not Phase 2 closure.”

Line 224 (§P3.1.1 inline gate) — rewrite:

Before:

“GATE: Phase 2 λ Reputation must be sealed before you dispatch this slice. Confirm with PM that the λ seal commit is on main before starting.”

After:

“GATE STATUS: Phase 2 λ Reputation sealed at R89 2026-05-12 (main @ 0c858381 post-#232). This slice is unblocked.”

Lines 1656–1658 (§P3.5.1 inline gate) — rewrite:

Before:

”> λ dependency in flight at R89.C: Equivocation slashing applies an

8000bps penalty to domain=\"arbitration\" via λ’s penalty surface. This slice MUST wait until Phase 2 λ P2.2.2 (penalties) seals before dispatch.”

After:

”> λ dependency satisfied at R89: Equivocation slashing applies an

8000bps penalty to domain=\"arbitration\" via λ’s penalty surface (shipped at #229, P2.2.2). This slice is unblocked for dispatch.”

Edit 5 — docs/guides/implementation/task-breakdown.md

No edit. Audit confirmed no per-phase status tracker exists; the only λ mention in §Task Summary (line 1136) is the abstract estimate row, which has no status column to update.

Verification commands

cd .worktrees/claude/r89-seal-lambda-phase-2
npm run build
npm run lint
npm test

Expected: all three pass; test count remains at 2647/2647 (zero delta).

PR opening command

gh pr create \
  --title "docs(r89-seal): λ Phase 2 graduation + κ §10 backfill + Phase 3 θ unblock (R89 close)" \
  --body "<see standard writeback block + summary>"

PR body: summary of 5 file groups, headline “Closes λ Phase 2 at 7/7; 10/15 Greek concepts ship code (added κ and λ); MCP surface 14→18”, writeback block per dispatch prompt template.


Back to top

Colibri — documentation-first MCP runtime. Apache 2.0 + Commons Clause.

This site uses Just the Docs, a documentation theme for Jekyll.