Skip to content

0.7.1g1G6: freeze the final canonical population (P1 mint unblocked) - #466

Merged
GionaGranchelli merged 1 commit into
epic/0.7.1-control-plane-authorityfrom
task/0.7.1g1G6-canonical-population-freeze
Oct 1, 2026
Merged

GionaGranchelli merged 1 commit into
epic/0.7.1-control-plane-authorityfrom
task/0.7.1g1G6-canonical-population-freeze

Conversation

@GionaGranchelli

Copy link
Copy Markdown
Owner

Checkpoint

284faa4fe590eaf20c91843c119053fb6c384b4d — the squash merge of #465. Branch cut directly from it, so this diff is exactly the two G6 documents. Admission ledger: admissions: [], unchanged.

Endpoint

CANONICAL POPULATION FROZEN — P1 MINT UNBLOCKED

This is the gate between G5 closure and P1. G5 closed 52 = 36 + 12 + 4 with remainder 0, which proves the known custody set is closed — not that the final unrestricted campaign contains the population we believe. Hence measurement before mint.

Campaign

Real committed 7-family canonical configuration, no narrowing (worktree config diff empty), isolated worktree at the checkpoint: BUILD SUCCESSFUL in 49m 3s, 14 reports, measuredCommit = the checkpoint, analyzer semantics unchanged.

  • 2544 rows — 1836 KILLED / 448 SURVIVED / 190 NO_COVERAGE / 70 TIMED_OUT
  • by family: approval 918, evidence 808, structuredOutput 382, policy 209, retry 155, tools 57, routing 15
  • complete-population digest: 9aebd3202288c82ff006f2db33c95cac0772746fa3c3061569167cd3f45df9b0

The digest uses the repository's own canonicalProjection() recipe, and my implementation was validated before use by reproducing the committed population's digest 9e2febc7… exactly. 7081ed74… is not reused — the measured artifact and custody record both moved.

Reconciliation

committed 2384 · fresh 2544 · shared 2195 · base-only 189 · candidate-only 349 (approval 296, evidence 53) · 52 changed statuses among shared · identity loss/gain/substitution 0/0/0 · unexplained disappearance 0.

Disappearance custody: all 189/189 base-only rows match a fresh row on the source-level key (module, class, method, descriptor, mutator, description). The canonical identity excludes the source line but includes PIT block/index, so an edited site keeps its key while its identity changes. Caveat: that is a key-level relocation match, not a proof of semantic identity, and mutation-evolution.yml is empty and cites none of the 189 — it is not the custody mechanism here.

Appearing-population admissibility

67 appearing NON_KILLED, 67 covered, 0 missing, 0 double-covered: 16 prior adjudications (P1 manifest) + 36 G5b + 11 G5c + 4 G5d. The twelfth G5c identity was KILLED, so it is not in the appearing population.

Determinism

Independently re-derived from the 14 raw reports (with XML unescaping): 2544 unique identities, identical identity set, 0 status mismatches, 0 family mismatches, identical digest.

Authority

No authority-semantic change: ledger still empty, no baseline/classification/enrollment/mutator/timeout/ceiling change, campaign outputs never committed, and nothing modified to satisfy the measurement.

Preserved caveat

The four G5d UNREACHABLE findings are artifact-relative — they rest on resolveGovernedSuspension()/resolveGovernedIdentity() being unable to suspend. If either ever gains a genuine suspension point, those four become re-adjudication candidates rather than staying grandfathered.

Not done

P1 not minted. P2 not consumed. No authority file touched.

Verification: spotlessCheck verifyStaticAnalysis verifyChangePolicy -PchangePolicyBase=284faa4f… BUILD SUCCESSFUL. Exact-head CI is the final authority. Not self-merged.

Fresh unrestricted 7-family canonical campaign at checkpoint 284faa4 (no
narrowing): 2544 rows, complete-population digest 9aebd3202288c82ff006f2db33c95cac0772746fa3c3061569167cd3f45df9b0,
validated against the committed digest 9e2febc7 by the repository's own
canonicalProjection recipe.

Reconciliation: shared 2195 / base-only 189 (all 189 relocated by source-level
key, 0 unexplained) / candidate-only 349; appearing NON_KILLED 67, all 67 with an
admissible adjudication (16 prior + 36 G5b + 11 G5c + 4 G5d), 0 missing.
Determinism: independent re-aggregation reproduces the digest exactly.

No authority change; P1 not minted; P2 not consumed.
Copilot AI balanced review requested due to automatic review settings September 30, 2026 21:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

It is a documentation-only freeze record with no code or authority changes, and every independently verifiable claim (arithmetic, analyzer config, digest recipe, committed 2384-row population, empty ledgers, and the reproduced committed digest) checks out.

Review effort: Balanced
Findings: None

What changed in this PR

This PR adds a documentation checkpoint (a Markdown report plus a machine-readable JSON companion) that records the freeze of the final canonical mutation-testing population for task 0.7.1g1G6, the gate between G5 closure and the "P1 mint". It does not touch any production code, authority ledger, baseline, or analyzer; it is a measurement/audit record only.

Changes:

  • Adds TASK-0.7.1g1G6-CANONICAL-POPULATION-FREEZE.md documenting the 2544-row frozen population, reconciliation against the committed 2384-row population, disappearance custody, appearing-population admissibility, determinism, and preserved caveats.
  • Adds the structured TASK-0.7.1g1G6-CANONICAL-POPULATION-FREEZE.json companion capturing the same campaign/reconciliation/admissibility data in schema v1.
File Description
docs/​roadmap/​0.7.0/​TASK-0.7.1g1G6-CANONICAL-POPULATION-FREEZE.md Narrative freeze record; all status/family/outcome tallies reconcile to 2544 and reconciliation math is internally consistent.
docs/​roadmap/​0.7.0/​TASK-0.7.1g1G6-CANONICAL-POPULATION-FREEZE.json Structured companion; valid JSON, numbers agree with the Markdown, and analyzer/digest-recipe descriptions match the repository.

I confirmed: all internal arithmetic reconciles (status, family, outcome, reconciliation, candidate-by-status, admissibility, and 49m3s = 2943s); the JSON is valid; the analyzer config (plugin 1.19.0, engine 1.22.1, the 11-mutator set, timeoutConst 4000, timeoutFactor 1.25) matches MutationProbeInitScript/MaintainabilityBaselinePlugin; the digest recipe description matches MutationRatchetVerifier.canonicalProjection(); the committed population is exactly 2384 rows; and the evolution/admission ledgers are empty as stated. I also reproduced the committed digest 9e2febc7… exactly from mutation-baseline.json, corroborating the "validated before use" claim.


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@GionaGranchelli
GionaGranchelli merged commit 5bcb030 into epic/0.7.1-control-plane-authority Oct 1, 2026
32 of 33 checks passed
GionaGranchelli added a commit that referenced this pull request Oct 1, 2026
…ities (#467)

* feat(0.7.1g1P1): mint authority for the 67 admissible appearing identities

P1 mint through the existing M30-M39 population-admission mechanism: 67
preauthorizations (16 prior adjudications + 36 G5b TOOLING_LIMITATION + 11 G5c
EQUIVALENT + 4 G5d UNREACHABLE), each bound to fromBaseSha 5bcb030 (the actual
squash merge of #466) and to the G6 population digest 9aebd320, with per-entry
analyzer semantics and the adjudication provenance recorded in reason.

The KILLED twelfth G5c identity is excluded. The population does not change; P2
consumption is out of scope. No other authority file is touched.

* docs(0.7.1g1P1): complete the rationale for three retained admissions

Three of the sixteen prior-adjudication admissions carried a truncated reason
field (a half-serialized Python list repr cut at 140 characters). Their complete
committed chronology is now stated explicitly:

  final adjudication EQUIVALENT in TASK-0.7.1g1G4-RESIDUAL-11-MANIFEST.json;
  predecessor TASK-0.7.1g1G4-RESIDUAL-25-MANIFEST.json disposition UNDETERMINED

Verified against both committed manifests: all three are UNDETERMINED in the
residual-25 record and EQUIVALENT in the residual-11 record. Only the reason
fields changed; identity, status, outcome, analyzer, fromBaseSha,
populationDigest and cohort membership are untouched. P1 invariants re-proven:
67 admissions, 36/27/4 statuses, 36/16/11/4 provenance, 0 KILLED.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants