Skip to content

docs(plan): slice 4b verdict-consumption plan - #112

Merged
SollanSystems merged 1 commit into
mainfrom
docs/slice4b-plan
Jul 30, 2026
Merged

SollanSystems merged 1 commit into
mainfrom
docs/slice4b-plan

Conversation

@SollanSystems

Copy link
Copy Markdown
Owner

Fast-follow docs PR for the slice 4b feature PR (#110), following the #84 / #99 / #104 precedent: the plan lands separately so the feature PR's diff stays reviewable rather than being 90% plan prose.

Committed as executed, with every in-flight amendment folded in — the plan's own Global Constraint requires the committed document to match what shipped, not the pre-execution draft:

  • Arithmetic amended twice during execution. Task 2's stale (9 cases) header reconciled to its row sum; Task 9 grew to 13 cases (the whole-branch review's regression pin) and Task 10 to 10 (a pin for the ci.yml ancestry exercise and the new fallback leg, neither of which had a test row). Slice totals moved 212 → 215 collected cases, 1568 / 18 canonical and 1469 / 117 structural-fallback.
  • Open Item 10 resolved (ruling R4): the structural-fallback leg had no CI cover at all, so every mode-parity claim in the slice was untested by CI. Now a separate gates-fallback job — separate rather than a matrix leg, because a matrix would rename gates' check contexts and this repo's ruleset pins them by name.
  • Open Items 1 and 2 resolved from "unresolvable pre-merge" to the observed fact, with the full observed certificate claim-key set recorded verbatim from attest.yml run 30509952627.
  • A post-merge closure section appended, recording that the D1 prediction held both ways (subject[0].digest.sha256predicate.chain.head and = sha256(<the 64 head bytes>)), and the one thing the experiment falsified — gh's real denial stderr, corrected in fix(action): classify gh's real denial stderr as contradicted, not unavailable #111.

Zero new tests and zero change to either suite count: this task ships a documentation file only.

Copilot AI review requested due to automatic review settings July 30, 2026 03:06

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 wasn't able to review any files in this pull request.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@SollanSystems
SollanSystems merged commit 6a7cd15 into main Jul 30, 2026
14 checks passed
@SollanSystems
SollanSystems deleted the docs/slice4b-plan branch July 30, 2026 03:08

@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: dfc5e70487

ℹ️ 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".


> **Baseline measurement trap (carried from 4a).** Running the suite via `uv run --project <worktree>` installs the wheel, which materializes `loop/_bundle/` and makes `scripts/test_resources.py::test_repo_checkout_resolves_to_repo_dirs` fail *correctly*. Measure from inside the worktree (`bash -c 'cd <worktree> && uv run --with … pytest -q … scripts'`), never with `--project`.

**Source of decisions:** `/tmp/claude-1000/-mnt-c-Dev-projects-loop-engineer/f56b13c4-a1fa-4923-bf9e-66fef64fa76a/scratchpad/slice4b-binding-decisions.md` (D1–D10, governor-adjudicated and settled) and `…/slice4b-verified-findings.md` (F1–F6, the operator's own live probes). Those two files **override `docs/adr/0002-ci-attested-verdict.md`** for this slice — specifically its decisions 2, 4 and 5 — and this slice appends an `## Amendment (2026-07-29, Slice 4b)` section to the ADR recording exactly that. Where this plan and D1–D10 disagree, **D1–D10 win and this plan is wrong.**

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 Preserve the binding decisions in a tracked location

Make the controlling D1–D10 decisions available in the repository rather than delegating normativity to these session-specific /tmp/claude-1000/.../scratchpad files. Neither referenced file exists in a fresh checkout or elsewhere in the repository, yet this line says they override both this plan and the committed ADR, so future readers cannot determine the governing rule if the documents conflict; embed the settled decisions or point to a tracked source.

Useful? React with 👍 / 👎.

Comment on lines +1428 to +1429
- [ ] Full suite green in **both** dependency legs, measured from **inside** a fresh worktree (never `--project`): **1567 passed / 18 skipped** with `--with pyyaml --with jsonschema --with pytest`, **1468 passed / 117 skipped** with `--with pyyaml --with pytest`. State the environment beside every number.
- [ ] The CI-equivalent leg (`+ --with hypothesis`) reports **1579 passed / 15 skipped** in the live checkout (measured **1577 / 17** in a fresh worktree, the documented −2/+2 delta). `--with hypothesis` swings roughly +10/−1 — never quote a count without its dependency set.

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 Update the final checklist for the added regression test

Reconcile these definition-of-done counts with the post-merge correction already included in the executed slice. The plan's end-state table records 215 added cases and therefore 1568/18 canonical, 1469/117 fallback, and 1580/15 with Hypothesis, but this checklist still uses the pre-correction 214-case totals (1567, 1468, and 1579), so following its required exact-count gate now reports a false mismatch.

Useful? React with 👍 / 👎.

SollanSystems added a commit that referenced this pull request Jul 30, 2026
Collects slice 4a (#106) and slice 4b (#110, #111, #112): loop verdict, opt-in
keyless attestation, --compare, replay-based chain ancestry, anchor@1, signer
trust, and the head-bearing subject. Neither slice shipped on its own; both sat
in Unreleased and go out under one number.

Beyond the version surfaces, this cut carries corrections a mechanical bump
would not have made.

The changelog said the predicate is handed to actions/attest as a subject-path.
It is handed as predicate-path, alongside a SEPARATE subject file, and §23 says
outright that the predicate bytes are deliberately not the subject — doctor
validation_mode and tool.version live inside the predicate, so the same run
projects different bytes in different environments. A reader following that
sentence would hash the wrong file and fail every verification.

"the three attestations minted before this release": the count was right, the
scope word was wrong. attest.yml shipped inside this same window, so nothing
predates the release; the three carrying the retired subject form are the pushes
through c493804. Re-scoped to match what attest.yml and reference §24 already
said.

ADR 0002 decision 6 is withdrawn, in a new dated amendment. It described
code-owner review as in force once the ruleset required it. The ruleset cannot
require it: one collaborator, no self-approval, bypass_actors empty,
current_user_can_bypass never, and no classic protection underneath. Flipping it
would invert the intent rather than merely fail — maintainer-authored pull
requests become unmergeable while bot-authored ones become gated, and agent work
here lands under the maintainer's account. CODEOWNERS is demoted in place to
what it honestly is, a record of the gate-defining surface, across the ADR, the
changelog, reference §23 and §24, and the file's own header.

test_docs_version.py's changelog check now ADDS 0.12.0 and keeps 0.11.0, and
restores 0.10.0 — the previous cut replaced its predecessor's assertion instead
of adding to it, leaving that heading with no cover.

Baselines, live checkout: 1577 passed / 16 skipped with pyyaml+jsonschema+pytest,
1478 / 115 with pyyaml+pytest. Both legs +7 against pre-cut, which is the CLI
guard's new tests plus the retired version-bump pin offset by the new code-owner
pin. CI additionally installs hypothesis, which moves the number.
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