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 none → partial
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 activityreputation_history(node_id, domain, limit)— paginated history eventsreputation_leaderboard(domain, limit)— top N nodes by scorereputation_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 none → partial (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: staged→status: 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)
- Any
src/source code. - ADR-002 (VRF) gate language in p3.1.
- ADR-003 (BFT library) gate language in p3.1.
- Frontmatter for θ ι μ ξ π concept docs.
- Test baseline (must remain 2647/2647).
- Skill files in
.agents/or.claude/.
Acceptance criteria
docs/3-world/social/reputation.md: frontmatterphase: 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: frontmatterphase: 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) updatescolibri_code: none→partial. θ + ι entries unchanged.CLAUDE.md§10 maturity claim updated to 10/15 with κ and λ named.CLAUDE.mdchangelog 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.mdfrontmatterstatus: staged→status: ready; λ-seal gate language rewritten to past tense / authorized.docs/guides/implementation/task-breakdown.md— no edit (no tracker section found).npm run buildpasses.npm run lintpasses.npm testpasses at 2647/2647 (zero regression — docs-only PR).- PR opened against main with the standard writeback block.