Skip to content

Make the new-PC install guides followable from the pinned release; add the release-move flow, a docs-consistency test and a receipt-staleness report - #134

Merged
seathatflowsinourveins merged 6 commits into
mainfrom
claude/newpc-guides-resolution
Sep 23, 2026
Merged

seathatflowsinourveins merged 6 commits into
mainfrom
claude/newpc-guides-resolution

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

New PCs can now follow the install guides top to bottom from the release pinned in adoption/manifest.json, and the catalog keeps adapting as hosts move to new releases.

Fixes from a read-only inventory of main. 21 findings were verified against code, --help output and a fresh-clone walkthrough at v2026.09.23:

  • bootstrap.md quoted the previous release's commit. Every page now reads tag and commit from the manifest and fails loudly on a mismatch.
  • Step 0 ran release_due.py, which isn't in the pinned tag. It now runs on the default branch before checkout.
  • The profile table now shows Linux and macOS pin coverage. Only foundation-cpu and macos-arm64-foundation are fully pinned; the rest go through their recipes. The macOS profile is now listed.
  • The macOS page has a clone block and ordered steps. Steps that need files added after the tag are marked. Until the re-pin, a Mac runs from step 2 onward from a default-branch clone, because the tag's bootstrap provisions neither the embedding model nor config/qdrant.yaml.
  • A combined --write --check command that doesn't run was removed, broken links were fixed, and the handbook, README and contributing-evidence docs now match the enforced rules.

New: "Moving a host to a new release" (adoption/update.md). It covers how a host learns about a newer release, the re-pin PR flow (immutable Release, gh attestation verify, release_due.py strict mode), what to re-run (changed pins, then receipts, which bind to the pin), and how receipts reach the catalog.

New: tests/test_adoption_docs_consistency.py. It checks:

  • release hashes against the manifest;
  • that every relative link resolves;
  • that the profile table covers every manifest profile;
  • that no doc combines mutually exclusive flags;
  • that documented scripts exist;
  • that unreleased steps are marked.

14 of 14 mutants are caught.

New: scripts/receipt_staleness.py plus the weekly receipt-staleness.yml. It is report-only and least-privilege, with full history. It flags receipts older than 30 days and receipts whose pin moved, and it stays outside the generated matrix so --check stays deterministic. 8 of 8 mutants are caught, and a test enforces fetch-depth: 0 for every receipt-reading workflow.

main (#130) was merged in and the conflicts in bootstrap.md and next-host-stages.md resolved, keeping both sides. That includes main's new-host loop link and hardware_profile.py --record-host.

Checks

  • Pass: validate.py, evidence_manifest, component_matrix, new_host_grand_list, build_ecosystem and build_verdicts --check, host_receipts validate, the focused suites, actionlint and zizmor (0 findings). Guarded gitleaks found no leaks.
  • The full suite passes except 32 adaptive-paper tests. They fail on main too on this host, because they read the host's engaged live paper STOP file; the paper-trials owner has the diagnosis. Hosted runners don't have that file.
  • Independent review: 3 Opus rounds plus raw reruns. All high and medium findings are resolved.

🤖 Generated with Claude Code

…them honest

Fix the 21 findings of the 2026-09-23 new-PC documentation inventory:
derive the release tag and commit from adoption/manifest.json instead of
quoting them, run release_due.py on the default branch before the pinned
checkout, state bootstrap pin coverage per profile and platform, mark steps
the pinned release lacks, add the macOS get-the-catalog block and ordered
steps, correct the platform-status rules and identity examples in the
contribution guide, and refresh stale counts, gates and hosted-smoke
citations.

Add "Moving a host to a new release" to adoption/update.md, a docs
consistency test, and a report-only receipt staleness script with a
scheduled workflow that uploads its report as an artifact.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…t choice

Mutation checks found two gaps: fenced commands inside list items were
not scanned for mutually exclusive flags, and no staleness test told the
newest bound receipt from the oldest.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…re-records

Review round 2 of the new-PC guides change:

- The macOS install path (Homebrew prerequisites, socraticode, darwin-binary
  and embedding-model pins, launchd, embedding acceptance) landed in #94 after
  v2026.09.23. The pages and next-host-stages.md now say what that tag does
  (brews only jq, installs 7 of 8, npm resolves the darwin binaries
  unverified) instead of describing main as the pinned release.
- Step notes name the release they were written against ("added after
  `vT`", "changed after `vT`"), so they stay true at every later tag and a
  re-pin needs no doc edit. The profile table shows "(X at `vT`)" where the
  pinned release's pin files differ.
- The docs test checks those notes per heading section and top-level
  numbered step, detects changed install inputs (release_due only sees
  missing paths), verifies the pin-coverage notes against the tag's own
  files, and rejects component_matrix.py --write --check.
- receipt_staleness: pin_moved now fires only for a host and stage whose
  newest judgeable receipt is at a retired pin, and lists them; it clears
  once the host re-records.
- Bootstrap step 2 uses --allow-unpinned for partly pinned profiles;
  update.md defines HOST_CHECKOUT/RUN_DIR and records in the default-branch
  clone; the handbook says macos-arm64-foundation replaces foundation-cpu at
  order 1 on macOS.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…baseline installs in step 2

Walkthrough at v2026.09.23: bootstrap-linux.sh --profile recovery exits 3
naming restic,qdrant; rerun with --allow-unpinned restic,qdrant installs
ai-memory plus the node/uv/gh baseline into a scratch ECO_INSTALL_ROOT and
exits 0, as step 2 now says.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ch; state the macOS tag-to-main path

Review round 3: the scheduled staleness report ran on a shallow clone, where every
receipt fails catalog_revision validation (now fetch-depth: 0, with a test that fails
for any receipt-reading workflow that checks out shallow, mutation-checked). The pin
confirmation now errors instead of printing nothing. The macOS page says the tag's
bootstrap provisions neither the embedding model nor config/qdrant.yaml and that
until the re-pin a Mac runs from step 2 onward from a default-branch clone.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…esolution

# Conflicts:
#	adoption/bootstrap.md
#	docs/next-host-stages.md
#	manifests/evidence.json
@seathatflowsinourveins
seathatflowsinourveins enabled auto-merge (squash) September 23, 2026 18:16
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-23T18:34:33.985951Z b07c0f0 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@seathatflowsinourveins
seathatflowsinourveins merged commit 10cacc5 into main Sep 23, 2026
22 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the claude/newpc-guides-resolution branch September 23, 2026 18:19

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b07c0f0246

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +365 to +367
The simulation rung is ready by the checker's arithmetic (every required sim
gate established); paper and live are not, blocked on the adaptive-paper
broker trial and the live gates. Catalog inclusion does not authorize live

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Mark the paper rung as ready

At this commit, python3 scripts/trading_gates.py --check reports rung_ready.paper: true with an empty blocking.paper, and catalogs/us-equities/gates-20260922.json marks adaptive-paper-broker-trial established. This new prose—and the paper row immediately above it—therefore incorrectly presents the trial as blocking; adoption/update.md repeats the same stale state, which can send readers to redo an established gate instead of advancing to the remaining live work.

Useful? React with 👍 / 👎.

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.

1 participant