Contract — 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

Graduation conditions

λ (lambda — Reputation) — graduates from nonepartial

Per ADR-006: partial is the canonical maturity flag for a concept whose “current phase” has shipped end-to-end but whose later phases remain spec-only. complete is reserved for a concept that has shipped every phase in its lifetime.

λ qualifies for partial because all 7 Phase 2 sub-tasks shipped:

Sub-task PR Surface Commit
P2.1.1 — Reputation Record Schema #226 src/domains/reputation/schema.ts + migration (early R89 Wave 1)
P2.1.2 — Score Computation #228 src/domains/reputation/compute.ts d1627b1b
P2.2.1 — Exponential Decay #227 src/domains/reputation/decay.ts (R89 Wave 1)
P2.2.2 — Offense Penalties #229 src/domains/reputation/penalties.ts 7e5cf9d3
P2.3.1 — Token Levels and Minting #231 src/domains/reputation/tokens.ts 618b1a13
P2.4.1 — Capability Gates (Derived Limits) #230 src/domains/reputation/limits.ts 22b5c604
P2.5.1 — Reputation Query Tools (MCP) #232 src/domains/reputation/tools.ts + 4 registered tools 0c858381

MCP surface delta: 14 → 18 tools. Added:

  • reputation_get(node_id, domain?) — per-domain score + scars + ban + last activity
  • reputation_history(node_id, domain, limit) — paginated history events
  • reputation_leaderboard(domain, limit) — top N nodes by score
  • reputation_check_gates(node_id) — capability gate results

Phase 3 (governance integration) and later phases remain spec-only, so partial is the correct flag, not complete.

κ (kappa — Rule Engine) — graduates from nonepartial (R87 backfill)

R87 closed all 20 Phase 1 sub-tasks (PR #205 through #220, 2026-05-07). The κ concept doc was missed in the R87 frontmatter graduation pass. This PR backfills it.

Same partial rationale applies: every Phase 1 sub-task shipped (parser, canonical, validator, engine, builtins, state-access, policy-gate, registry, version-hash, parity-harness, admission, denial-reasons, budgets, migration, activation, tool-lock-adapter); Phase 2+ rule extensions (e.g. governance- proposed rule upgrades, fork-aware versioning) remain spec-only.

θ ι μ ξ π — remain colibri_code: none

Per dispatch prompt, this PR explicitly does NOT graduate these. Spec-only status correct. They are Phase 3+ targets.

§10 maturity claim update

Current (line 207, pre-R89): “8 ship code (α β γ δ ε ζ η ν); 7 remain spec-only (θ ι κ λ μ ξ π)”.

Target (post-R89): “10 ship code (α β γ δ ε ζ η κ λ ν); 5 remain spec-only (θ ι μ ξ π)”.

History to acknowledge in §10 prose:

  • 7-shipping → 8-shipping graduation: R75 Wave I (2026-04-18) added δ stubs per ADR-005 §Decision.
  • 8 → 9 graduation: R87 (2026-05-07) closed κ Phase 1 but didn’t update §10 or κ doc frontmatter.
  • 9 → 10 graduation: R89 (2026-05-12, this PR) closes λ Phase 2 and backfills the missed R87 κ §10/frontmatter graduation.

Phase 3 θ dispatch unblock

The staging file p3.1-theta-consensus.md was authored at R89.C (#224) with status: staged and an explicit gate language:

  • Header block (lines 102–110): “Phase 3 executor dispatch BEGINS only after Phase 2 λ seals.”
  • §P3.1.1 inline gate (line 224): “GATE: Phase 2 λ Reputation must be sealed before you dispatch this slice.”
  • §P3.5.1 inline gate (lines 1656–1658): “λ dependency in flight at R89.C: … This slice MUST wait until Phase 2 λ P2.2.2 (penalties) seals before dispatch.”

T0’s autonomous Phase 2+3 mandate (per dispatch prompt) plus the actual close of λ Phase 2 satisfies both gates. Update:

  • status: stagedstatus: ready
  • Header gate block: replace “BEGINS only after Phase 2 λ seals” framing with “Phase 2 λ closed at R89 2026-05-12; P3 dispatch is now authorized.”
  • Per-slice gate language: REMAIN intact for the ADR-002/003 references (out of scope per dispatch prompt). The λ-seal gate lines update to past tense / closed.

Out of scope (must NOT change)

  1. Any src/ source code.
  2. ADR-002 (VRF) gate language in p3.1.
  3. ADR-003 (BFT library) gate language in p3.1.
  4. Frontmatter for θ ι μ ξ π concept docs.
  5. Test baseline (must remain 2647/2647).
  6. Skill files in .agents/ or .claude/.

Acceptance criteria

  • docs/3-world/social/reputation.md: frontmatter phase: 0→2, colibri_code: none→partial, status: spec→partial; line-15 stale Phase 0 paragraph rewritten to Phase 2 reality naming P2.1.1–P2.5.1; §”Phase 0 posture” rewritten to §”Phase 2 reality” or removed.
  • docs/3-world/physics/laws/rule-engine.md: frontmatter phase: 0→1, colibri_code: none→partial, status: spec→partial; line-16 stale Phase 0 paragraph rewritten to Phase 1 reality; §”Phase 0 posture” rewritten to §”Phase 1 reality”.
  • docs/3-world/physics/laws/index.md: κ entry (line 20) updates colibri_code: nonepartial. θ + ι entries unchanged.
  • CLAUDE.md §10 maturity claim updated to 10/15 with κ and λ named.
  • CLAUDE.md changelog footer gains R89 entry following R75/R77/R82 format conventions, citing #226–#232 + #221/#222/#225/#223/#224.
  • docs/guides/implementation/task-prompts/p3.1-theta-consensus.md frontmatter status: stagedstatus: ready; λ-seal gate language rewritten to past tense / authorized.
  • docs/guides/implementation/task-breakdown.md — no edit (no tracker section found).
  • npm run build passes.
  • npm run lint passes.
  • npm test passes at 2647/2647 (zero regression — docs-only PR).
  • PR opened against main with the standard writeback block.

Back to top

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

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