Skip to content

chore(hypatia): P1.1 — retire dead baseline acks, re-ack the 2026-10-21 cohort with live trackers - #1244

Merged
hyperpolymath merged 6 commits into
mainfrom
claude/eager-noether-1seyvi
Oct 14, 2026
Merged

hyperpolymath merged 6 commits into
mainfrom
claude/eager-noether-1seyvi

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What this is

Packet P1.1 of docs/reorg/2026-10-14-tidy/README.adoc, executed by a Sonnet-class agent under supervision (every disposition re-checked by the supervisor against the file or the pinned rule; gates re-run before commit). Refs #975, #1222, #1243.

.hypatia-baseline.json: 188 entries → 64. One file changed.

The 21 acks expiring 2026-10-21

All dead. Each names a file that no longer exists, a construct that is gone from the file (innerHTML, .unwrap(), @ptrCast, pipe-to-shell, postulate), or a workflow basename the pinned scanner (hypatia 51ab649, with #888's path qualification) can never match. Evidence: the pinned scanner's run on main@bf211558 emitted 59 findings, all acknowledged; only 43 of the 188 entries matched any of them; replaying those 59 through scripts/apply-baseline.sh against the new baseline with the clock set to 2026-10-22 keeps 0. So the 2026-10-22 cliff was never a real cliff, and the acks are removed rather than renewed.

Dispositions

Acceptance

Local, all green:

jq empty .hypatia-baseline.json; jq -a --indent 1 . | cmp -   -> valid, byte-identical formatting
zero path entries name a missing file; zero entries expire before 2026-11-15
every tracking_issue is OPEN: #493 #937 #938 #940 #941 #943 #944 #945 #957 #1243
bash scripts/tests/apply-baseline-test.sh        -> 32 passed, 0 failed
bash scripts/tests/wave8-gates-test.sh           -> 11 passed, 0 failed
bash scripts/tests/exemption-ratchet-test.sh     -> 14 passed, 0 failed
bash scripts/tests/hypatia-blocking-gate-test.sh -> PASS

The remaining acceptance is hypatia-scan.yml and governance / Validate Hypatia Baseline green on this PR.

Notes for later packets

  • 17 acks still point into 9-archive/ (15 live at the current pin). P1.4 (archive excluded from every gate) removes them; not done here by design.
  • P1.10 deletes a2ml_to_deed.py and deed_lint.py; their two acks must go in that PR. P1.7 may delete copilot/coding-agent.yml (one ack).
  • 20 kept entries are dead at the current pin but are CSA echoes or LICENSES/MPL-2.0.txt (not editable); they wait on PAT-refresh tripwire: live HYPATIA_SCAN_PAT will arm 6 unackable CSA findings in both gates #957.
  • The branch history carries one empty merge commit of the previous (merged) branch tip, because the force-with-lease restart was not permitted in this session; the diff against main is the one file above.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T4U5XuN4NWs8FTxoe5PuH7


Generated by Claude Code

claude and others added 5 commits October 14, 2026 00:58
… plan; fix four reds

Adds docs/reorg/2026-10-14-tidy/: the plan (district-model execution,
placement rules, single-source matrix, eight phases of bot packets, owner
decision sheet D335 onward), every open issue's literal/golden/mischief
record, the workflow audit, the sibling wiring audit (40 drifts) and a
rulings ledger snapshot (D1 to D334) compiled from #787 and #1234 after
the workstation wipe.

Phase 0 fixes landed here:
- standards-map.toml: map READINESS.md (Gate D red on main since #1235)
- Debtfile: drop the resolved shell-scripts-missing-spdx entry whose
  acceptance expired 2026-10-01 (debt-measure red)
- readme-derive-reusable.yml: remove the concurrency block that collided
  with every caller's group and cancelled the run before any job
  (README Derive red for 36 consecutive runs)
- Justfile: v1-audit path, build/clean no longer name a missing dir,
  lint delegates to validate, llm-context reads the .adoc warm-ups
- .github/funding.yml: remove the lower-case duplicate (case collision
  with FUNDING.yml; names another owner)

Debt-exception: shell-scripts-missing-spdx — count reached 0 and the entry's acceptance expired 2026-10-01; entries leave the ledger by reaching zero (Debtfile preamble)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T4U5XuN4NWs8FTxoe5PuH7
…n the tidy pack

The governance docs gate rejects any file naming the retired .a2ml
spelling of the launcher standard (four quotes in the appendices and the
dispositions table), and the Hypatia baseline validator reported one new
http_in_docs finding for a quoted plain-HTTP curl example. Both are
evidence text; reworded so the gates read clean without a baseline ack.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T4U5XuN4NWs8FTxoe5PuH7
…21 cohort with live trackers

.hypatia-baseline.json: 188 entries -> 64.

The 21 acks expiring 2026-10-21 were all dead: every one names a file
that no longer exists, a construct that is gone from the file, or a
workflow basename that the pinned scanner (hypatia 51ab649, #888) can
never match. The pinned scanner's run on main@bf211558 emitted 59
findings, all acknowledged, and only 43 of the 188 entries matched any of
them; replaying those 59 through scripts/apply-baseline.sh against the
new baseline with the clock at 2026-10-22 keeps 0.

Dispositions (each entry re-verified against the pinned rule source or
the file, not against the issue text):
- DELETE 124: 60 whose path is absent from the tree; 36 whose file exists
  but the construct is gone and which were expiring or pointed at a
  closed tracker; 28 whose construct is gone but were not yet expiring
  (deliberate widening of the packet: a dead ack is accepted risk that
  no longer exists; the CI replay proves none of them suppresses a live
  finding at the current pin).
- RE-ACK 8, all to 2026-12-22 so they join the existing cohort: three
  content_patterns findings in the frozen archive (tracker #939 closed ->
  #493); four hardcoded_tmp findings in scripts/sweep-classifiers/
  (tracker #936 closed -> #1243, opened for exactly these four); one
  CSA003 code-scanning echo (tracker #378 closed -> #957, the CSA
  tripwire issue), kept rather than deleted because CSA entries echo live
  alert state that cannot be re-verified from the tree.
- KEEP 56. FIX 0 (nothing was mechanical enough to convert to an inline
  directive without a content judgement; 9-archive and outreach untouched).

Acceptance (local): jq valid and byte-identical to `jq -a --indent 1`;
zero path entries name a missing file; zero entries expire before
2026-11-15; every tracker is an open issue; apply-baseline-test 32/32,
wave8-gates 11/11, exemption-ratchet 14/14, hypatia-blocking-gate pass.
The hypatia-scan gate on the PR is the remaining acceptance.

Refs #975 #1222 #1243. Packet: docs/reorg/2026-10-14-tidy/README.adoc P1.1.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T4U5XuN4NWs8FTxoe5PuH7
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 14 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 0f923309-f608-48dc-84ab-780663d86c94
📥 Commits

Reviewing files that changed from the base of the PR and between 50cfbd5 and b7b8d7f.

📒 Files selected for processing: 1
  • .hypatia-baseline.json
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

K9 contract conformance

run https://github.com/hyperpolymath/standards/actions/runs/38496811344

K9 normative contract typecheck

k9_contract.ncl typechecks

K9 contract self-test

== the bash mirrors cannot drift from the normative contract ==
ok   leash_levels mirrors k9_contract.ncl
ok   core_capabilities mirrors k9_contract.ncl
ok   contract_version mirrors k9_contract.ncl
ok   schema_major mirrors k9_contract.ncl
== capability arithmetic (§8) ==
ok   capability_ok fs.read accepted
ok   capability_ok rollback.apply accepted
ok   capability_ok x-acme.gpu.alloc accepted
ok   capability_ok x-acme rejected
ok   capability_ok x-.gpu rejected
ok   capability_ok fs.delete rejected
ok   capability_ok  rejected
== the extractor ==
ok   extracts pedigree.security.leash
ok   extracts pedigree.component_type
ok   extracts pedigree.metadata.name
ok   pedigree leash is not reported as top-level leash
ok   required_capabilities for a quiet component
ok   required_capabilities follows allow_network
== the envelope strip keeps line numbers (§3.6) ==
ok   line 1 becomes a comment
ok   line count is preserved
ok   schema_version stays on line 5
== L3: signature presence is not verification (§10) ==
ok   no verifier -> K9-C001 is SKIPPED, never a pass
ok   the skip states presence does not authorise 'Hunt
ok   verifier accepts -> verdict 'Verified, no K9-C001 finding
ok   verifier refuses -> K9-C001 error, verdict 'Rejected
== the fixture runner's attribution cannot be fooled by a filename ==
ok   every extracted finding is well-formed rule+layer
ok   the rule that really fired is attributed
ok   a rule named only in the filename is NOT attributed
ok   K9-C001 is present as a skipped finding
ok   and that same finding is NOT extractable as a rejection
== the dialect discriminator agrees with the coordination grammar (§4.3) ==
ok   magic file opening '---' is coordination
ok   magic file opening 'metadata:' is coordination
ok   plain file opening '---' is unclaimed
ok   plain file opening 'metadata:' is unclaimed
== no Nickel reserved word is used as an identifier ==
ok   the contract and all 27 fixtures avoid Nickel's reserved words

self-test: all assertions passed

K9 conformance fixtures

== positive controls (must pass) ==
ok   extension-capability.k9.ncl
ok   extension-fields.k9.ncl
ok   hunt-fully-granted.k9.ncl
ok   kennel-data.k9.ncl
ok   library-base.ncl
ok   yard-typed-config.k9.ncl

== negative controls (must fail, by the named rule) ==
ok   L0-K9-E001-bad-magic.k9.ncl (rejected by K9-E001 at L0)
ok   L0-K9-E002-nul-byte.k9.ncl (rejected by K9-E002 at L0)
ok   L0-K9-E003-crlf.k9.ncl (rejected by K9-E003 at L0)
ok   L0-K9-E004-no-spdx.k9.ncl (rejected by K9-E004 at L0)
ok   L0-K9-E005-unclaimed-body.k9.ncl (rejected by K9-E005 at L0)
ok   L0-K9-S012-library-with-pedigree.ncl (rejected by K9-S012 at L0)
ok   L0-K9-S014-stray-leash.ncl (rejected by K9-S014 at L0)
ok   L1-K9-S001-no-pedigree.k9.ncl (rejected by K9-S001 at L1)
ok   L1-K9-S002-wrong-major.k9.ncl (rejected by K9-S002 at L1)
ok   L1-K9-S003-todo-component-type.k9.ncl (rejected by K9-S003 at L1)
ok   L1-K9-S004-unknown-leash.k9.ncl (rejected by K9-S004 at L1)
ok   L1-K9-S005-missing-name.k9.ncl (rejected by K9-S005 at L1)
ok   L1-K9-S006-unknown-capability.k9.ncl (rejected by K9-S006 at L1)
ok   L1-K9-S007-ungranted-flag.k9.ncl (rejected by K9-S007 at L1)
ok   L1-K9-S008-hunt-signature-not-required.k9.ncl (rejected by K9-S008 at L1)
ok   L1-K9-S009-hunt-no-signature-block.k9.ncl (rejected by K9-S009 at L1)
ok   L1-K9-S010-hunt-empty-side-effects.k9.ncl (rejected by K9-S010 at L1)
ok   L1-K9-S011-recipes-at-yard.k9.ncl (rejected by K9-S011 at L1)
ok   L1-K9-S013-dangling-import.k9.ncl (rejected by K9-S013 at L1)
ok   L2-K9-N001-two-segment-version.k9.ncl (rejected by K9-N001 at L2)
ok   L2-K9-N001-wrong-field-type.k9.ncl (rejected by K9-N001 at L2)

fixtures: 6 positive, 21 negative (0 needing nickel), 0 failure(s)

K9 corpus conformance (L2)

[validate-k9] 14 conforming, 0 grandfathered (layer all, contract v1.0.0)

@hyperpolymath
hyperpolymath marked this pull request as ready for review October 14, 2026 01:42
@github-actions

Copy link
Copy Markdown
Contributor

K9 contract conformance

run https://github.com/hyperpolymath/standards/actions/runs/38497165831

K9 normative contract typecheck

k9_contract.ncl typechecks

K9 contract self-test

== the bash mirrors cannot drift from the normative contract ==
ok   leash_levels mirrors k9_contract.ncl
ok   core_capabilities mirrors k9_contract.ncl
ok   contract_version mirrors k9_contract.ncl
ok   schema_major mirrors k9_contract.ncl
== capability arithmetic (§8) ==
ok   capability_ok fs.read accepted
ok   capability_ok rollback.apply accepted
ok   capability_ok x-acme.gpu.alloc accepted
ok   capability_ok x-acme rejected
ok   capability_ok x-.gpu rejected
ok   capability_ok fs.delete rejected
ok   capability_ok  rejected
== the extractor ==
ok   extracts pedigree.security.leash
ok   extracts pedigree.component_type
ok   extracts pedigree.metadata.name
ok   pedigree leash is not reported as top-level leash
ok   required_capabilities for a quiet component
ok   required_capabilities follows allow_network
== the envelope strip keeps line numbers (§3.6) ==
ok   line 1 becomes a comment
ok   line count is preserved
ok   schema_version stays on line 5
== L3: signature presence is not verification (§10) ==
ok   no verifier -> K9-C001 is SKIPPED, never a pass
ok   the skip states presence does not authorise 'Hunt
ok   verifier accepts -> verdict 'Verified, no K9-C001 finding
ok   verifier refuses -> K9-C001 error, verdict 'Rejected
== the fixture runner's attribution cannot be fooled by a filename ==
ok   every extracted finding is well-formed rule+layer
ok   the rule that really fired is attributed
ok   a rule named only in the filename is NOT attributed
ok   K9-C001 is present as a skipped finding
ok   and that same finding is NOT extractable as a rejection
== the dialect discriminator agrees with the coordination grammar (§4.3) ==
ok   magic file opening '---' is coordination
ok   magic file opening 'metadata:' is coordination
ok   plain file opening '---' is unclaimed
ok   plain file opening 'metadata:' is unclaimed
== no Nickel reserved word is used as an identifier ==
ok   the contract and all 27 fixtures avoid Nickel's reserved words

self-test: all assertions passed

K9 conformance fixtures

== positive controls (must pass) ==
ok   extension-capability.k9.ncl
ok   extension-fields.k9.ncl
ok   hunt-fully-granted.k9.ncl
ok   kennel-data.k9.ncl
ok   library-base.ncl
ok   yard-typed-config.k9.ncl

== negative controls (must fail, by the named rule) ==
ok   L0-K9-E001-bad-magic.k9.ncl (rejected by K9-E001 at L0)
ok   L0-K9-E002-nul-byte.k9.ncl (rejected by K9-E002 at L0)
ok   L0-K9-E003-crlf.k9.ncl (rejected by K9-E003 at L0)
ok   L0-K9-E004-no-spdx.k9.ncl (rejected by K9-E004 at L0)
ok   L0-K9-E005-unclaimed-body.k9.ncl (rejected by K9-E005 at L0)
ok   L0-K9-S012-library-with-pedigree.ncl (rejected by K9-S012 at L0)
ok   L0-K9-S014-stray-leash.ncl (rejected by K9-S014 at L0)
ok   L1-K9-S001-no-pedigree.k9.ncl (rejected by K9-S001 at L1)
ok   L1-K9-S002-wrong-major.k9.ncl (rejected by K9-S002 at L1)
ok   L1-K9-S003-todo-component-type.k9.ncl (rejected by K9-S003 at L1)
ok   L1-K9-S004-unknown-leash.k9.ncl (rejected by K9-S004 at L1)
ok   L1-K9-S005-missing-name.k9.ncl (rejected by K9-S005 at L1)
ok   L1-K9-S006-unknown-capability.k9.ncl (rejected by K9-S006 at L1)
ok   L1-K9-S007-ungranted-flag.k9.ncl (rejected by K9-S007 at L1)
ok   L1-K9-S008-hunt-signature-not-required.k9.ncl (rejected by K9-S008 at L1)
ok   L1-K9-S009-hunt-no-signature-block.k9.ncl (rejected by K9-S009 at L1)
ok   L1-K9-S010-hunt-empty-side-effects.k9.ncl (rejected by K9-S010 at L1)
ok   L1-K9-S011-recipes-at-yard.k9.ncl (rejected by K9-S011 at L1)
ok   L1-K9-S013-dangling-import.k9.ncl (rejected by K9-S013 at L1)
ok   L2-K9-N001-two-segment-version.k9.ncl (rejected by K9-N001 at L2)
ok   L2-K9-N001-wrong-field-type.k9.ncl (rejected by K9-N001 at L2)

fixtures: 6 positive, 21 negative (0 needing nickel), 0 failure(s)

K9 corpus conformance (L2)

[validate-k9] 14 conforming, 0 grandfathered (layer all, contract v1.0.0)

@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit b26d3fb into main Oct 14, 2026
64 of 65 checks passed
@hyperpolymath
hyperpolymath deleted the claude/eager-noether-1seyvi branch October 14, 2026 01:44

Copy link
Copy Markdown
Owner Author

Status on head b7b8d7f7: every check is green (Validate Hypatia Baseline, Hypatia scan, Repo self-tests, Scorecard PR, K9, lockfile, docs format, …) except governance / Debt ratchet, which is red on both 27e8bc07 and b7b8d7f7. It is this PR's failure, but it is in the branch history, not the diff, and the fix needs a force push I will not do without your say-so.

What is failing. The ratchet compares the Debtfile against the base (all 7 entries unchanged — this PR does not touch it) and then scans every commit message in base..HEAD for Debt-exception: trailers. The range contains 1c1833b8, the pre-squash commit of #1240, reachable only through my empty merge 27e8bc07 (added because the branch restart after #1240's squash was not allowed to force-push). Its trailer Debt-exception: shell-scripts-missing-spdx names an entry that #1240 itself removed, so it is absent from both Debtfiles, and the gate correctly says UNPARSEABLE declaration names no known entry … 'unparseable' must never mean 'allowed' and fails. Reproduced locally with bash scripts/check-debt-ratchet.sh 50cfbd55 → exit 1.

The fix, verified. The same tree as one commit on top of main passes: cherry-picking e4e0a210 onto 50cfbd55 gives a tree byte-identical to this head (git diff empty) and Debt ratchet: OK. Nothing in the gate or the Debtfile needs to change.

Why it is not pushed. Rewriting claude/eager-noether-1seyvi is a non-fast-forward push, which was refused in this session, and the branch now also carries your own "Update branch" merge b7b8d7f7. Two ways forward, either is fine:

  1. You run it (about ten seconds):
    git fetch origin main claude/eager-noether-1seyvi
    git checkout -B claude/eager-noether-1seyvi origin/main
    git cherry-pick e4e0a210
    git push --force-with-lease=claude/eager-noether-1seyvi:b7b8d7f7 origin claude/eager-noether-1seyvi
    
  2. Or reply "go ahead" and I push exactly that, with the lease pinned to b7b8d7f7 so nothing newer can be overwritten.

Two notes, no action needed. The earlier scorecard / Run Scorecard PR failure on 27e8bc07 was a GitHub API 500 inside Scorecard's CI-Tests probe (ListStatuses … 500); it passed on b7b8d7f7. And the ratchet has one false-positive mode worth knowing about: a declaration naming an entry absent on both sides excuses nothing, so failing on it only ever bites a branch whose history carries an already-landed deletion's trailer (this one, or any two PRs paying down the same entry). I have left the gate alone here; say if you want that written up as a small follow-up.


Generated by Claude Code

hyperpolymath added a commit that referenced this pull request Oct 14, 2026
… sessions (#1252)

## What this is

One new file, `docs/reorg/2026-10-14-tidy/HANDOVER.adoc`, alongside the
plan merged in #1240. It is what a fresh packet session needs beyond the
plan:

- the session model (one packet, one branch, one PR; never restart a
merged branch; the worker never merges or force-pushes);
- which Phase 1 and 2 packets can run side by side (P1.5, P1.8), which
are serial in one session (P1.4 → P1.10 → P1.7, all editing
`.hypatia-baseline.json`; all of Phase 2, all editing the map), and
which wait on the owner (P1.2/P1.3 on the dispositions table, P1.6 on
D341 and the Pages cancel);
- what P1.1 (#1244) taught: code-scanning acks are tripwires, trackers
must be issues that stay open, verify against the file not the issue
text, byte-exact baseline formatting, declared widening;
- the cloud container's tooling gaps and the gates that bite by change
type, including the Debt ratchet's trailer semantics;
- the reviewer brief (opus tier, effort high) with its escalation list;
- paste-ready prompts for the sonnet workers, the haiku passes and the
opus reviewer.

Authority: applied-unless-struck (D113); prose, CC-BY-SA-4.0 from birth.
Refs #1234.

## Acceptance (local)

```
bash scripts/link-rot-guard.sh docs/reorg/2026-10-14-tidy   -> all internal links resolve
bash scripts/check-launcher-standard-currency.sh --root .   -> no stale references
bash scripts/check-standards-map.sh                         -> GATE D PASSED
bash scripts/run-debtfile.sh .machine_readable/Debtfile.a2ml -> passed, nothing breached
bash scripts/check-canonical-names.sh origin/main           -> no deprecated names reintroduced
bash scripts/check-canon-lockstep.sh                        -> GATE A PASSED
bash scripts/run-mustfile.sh …/Mustfile.a2ml                -> 14 passed, 0 blocking
git diff --check                                            -> clean
```

The repo-wide link-rot guard also reports two broken `../discussions`
links in issue templates untouched since #830; not this PR's.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01T4U5XuN4NWs8FTxoe5PuH7

---
_Generated by [Claude
Code](https://claude.ai/code/session_01T4U5XuN4NWs8FTxoe5PuH7)_

Co-authored-by: Claude <noreply@anthropic.com>
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