Skip to content

Simplify workflow docs sync around direct risk ownership - #22

Merged
wlvh merged 4 commits into
mainfrom
codex/workflow-docs-sync-risk-transfer
Aug 7, 2026
Merged

Simplify workflow docs sync around direct risk ownership#22
wlvh merged 4 commits into
mainfrom
codex/workflow-docs-sync-risk-transfer

Conversation

@wlvh

@wlvh wlvh commented Aug 6, 2026

Copy link
Copy Markdown
Owner

1. Owner authorization and current identity

PR #22 was created after PR #18, PR #19, and PR #21 had merged, under the owner's later authorization. That authorization also covers commits, pushes, and body/evidence updates on this same PR branch; it does not authorize marking the PR Ready or merging it.

  • Base: 88de20d814d66aff5c80061b19fde21ceb4902eb
  • Head: 2937a011ede34ed9e45aa73dd52575db87fa7612
  • Head tree: 802e41c6a507c7d2f8740d9b98a4bcf59b0f355b
  • Branch: codex/workflow-docs-sync-risk-transfer
  • State: Draft/Open

2. Actual delta from base

  • sync_docs.py now aggregates index and worktree evidence by editable path and rejects staged deletion followed by same-path untracked or ignored reconstruction as two publication candidates. Final content/whitespace validation remains one final-bytes gate.
  • The installer performs fail-before-mutation preflight for source and destination symlinks, path shape, ignored files, ignored empty directories, and standard frontmatter delimiter lines before obsolete-skill removal or destination replacement. Explicitly excluded cache entries remain allowed.
  • The bilingual downstream templates withdraw Workflow Docs Sync-internal reviewer state, run state, finding, receipt, and candidate vocabulary. Downstream projects follow their own review and record policy while retaining evidence-backed delivery responsibilities.
  • DEC-006/DEC-007 and maintainer guidance refine the no-synonym control-mechanism boundary, the second_target_sha round-2 identity, direct alignment validation, and the fact that stable finding/candidate vocabulary is internal to this repository and its canonical Skill/eval.
  • Black-box scenario coverage expands the reproduced split-candidate, path-safety, ignored-source, fail-before-mutation, delimiter-line, and final-identity boundaries using public CLI calls, real temporary Git repositories, and the complete installer path.
  • Root AGENTS.md replaces the base's ten-line marker process with the single DEC-006 guard justified by the pre-fix diagnostic; it does not restore finding fields or an alternatives checklist.
  • The eval contract makes the marker-necessity prompt the sole formal Case G, demotes navigation/link audit to smoke coverage, requires timestamped target pre-registration, commits round-1 document bytes as second_target_sha, starts a fresh clean round 2 from that identity, runs alignment there directly, and stores plaintext raw evidence in a retrievable GitHub record.

3. Retained state inherited from base

The following state was already present at the pinned base and is retained; PR #22 did not newly remove or create it:

  • The Markdown parser was already absent.
  • Template equality was already absent.
  • TEMPLATE_TOKENS already contained exactly the two active marker forms.
  • The canonical Skill already contained four files.
  • The source active-marker runtime validator already existed and was shared by prepare and check.
  • The fixed DOC.interact and DOC.business_user_guide entries already had no test metadata.
  • Generic capability examples intentionally retained test_anchor:null, test_status:not_automated, and markerized reason/date fields under DEC-007.

4. Behavioral notes

  • check now reports symlink, non-directory, and related path-safety failures immediately as a concrete SyncError for the offending path.
  • Content and whitespace failures remain aggregated under the final repository-check failure.
  • The changed path-safety error summary is therefore an intentional behavior change; it is not presented as “no behavioral change.”
  • Installer frontmatter preflight proves complete delimiter-line structure required for the Claude transformation. It does not claim full YAML semantic validation.

5. Final validation and evidence index

  • Final candidate: 2937a011ede34ed9e45aa73dd52575db87fa7612
  • Case A selected target: 31f08294aba9790dc1e8279227f239673b3bc225
  • Case A second_target_sha: be0d40c394e957881860f486ada56b742ddd5467
  • Canonical raw evidence: https://github.com/wlvh/Note/issues/9
  • Canonical evidence SHA-256: b80b8cdfc16b54c548f0d93daf3bffde0a0dcc4bf2a4f3c5c05358c2c446e393

The public CLI/full-installer scenarios, both py_compile runs, compatible-environment Skill quick validation, diff checks, CLI help, final-SHA Case G, timestamped Case A round 1, clean second_target_sha round 2, direct alignment consumer validation, fresh blind-first independent review, and both final-SHA GitHub Actions runs passed. Default-environment missing pytest/yaml checks are recorded as NOT_RUN, not substituted PASS results.

The three older PR evidence comments remain preserved but are superseded by the final-SHA record above; the prior 38-anchor Case G is SUPERSEDED_WRONG_SCENARIO, and the old Case A is SUPERSEDED_PROTOCOL_INCOMPLETE.

SEC live/full execution, D-01 approval, deployment, Cutover, UAT, holdout, and production rollback remain outside PR #22 and are not claimed here. PR #22 remains Draft/Open.

wlvh commented Aug 6, 2026

Copy link
Copy Markdown
Owner Author

Final candidate review, Case G, and mechanical evidence

Formal binding:

  • base 88de20d814d66aff5c80061b19fde21ceb4902eb
  • candidate ab742bc44d8dff0c6b268ed21f0ab1d17d4119e3
  • tree d916aad9f1a292c96e12b7958864abaebc3fe58e
  • binary diff SHA-256 3be5b975c7ecfabc5adda34b2cb69dde6bc1b5388caf6d372413f4a1bd061c28

Independent candidate-review closure

  • Reviewer: /root/candidate_review_19dd531, original independent reviewer rechecking its own findings; not self-review and not a new blind review.
  • Final closure prompt SHA-256: 5b6ec8a50c0f589c2dcd0fd8f3157afd10180354733835dd59c4ee08e262aa3c.
  • Final observation: 2026-08-06T09:34:48Z.
  • Verdict: APPROVE.

Findings:

  • WDS-BLIND-001 CLOSED: public prepare/check reject staged delete + untracked rebuild and staged delete + ignored rebuild with path-aggregated evidence. The sole final whitespace gate remains file_whitespace_failures().
  • WDS-BLIND-002 CLOSED: installer uses git ls-files -z --others --ignored --exclude-standard --directory; ignored ordinary files and empty directories fail before mutation. Default/Anaconda × user/repo reproductions listed both actual entries and preserved existing Codex/Claude destination and obsolete-Skill bytes/status. Cache-only and repeated installs stayed stable.
  • WDS-BLIND-003 CLOSED: downstream templates remain target-policy-driven; canonical Skill retains independent/self-review, blind-first, severity, finding, and closure semantics.
  • WDS-BLIND-004 CLOSED as NOTE/accepted boundary: public promise is complete preflight plus per-path exclusive no-overwrite, not a nine-file transaction.

Default Python lacked pytest, so its full suite was NOT_RUN; its public CLI reproductions and compile/help checks passed. Anaconda Python completed the final closure suite with 5 passed in 61.86s. Both diff ranges were whitespace-clean and the candidate status was clean.

Earlier candidate/eval states remain preserved: 4d58497, 19dd531, and 6b4a3c8 are superseded. The 6b4a3c8 Case A attempt stopped with no target edits when the candidate changed and is INVALIDATED_BY_CANDIDATE_CHANGE, not PASS.

Case G

  • Executor: /root/case_g_ab742bc.
  • Mode: fresh-context independent Case G.
  • UTC: 2026-08-06T09:31:07Z to 2026-08-06T09:37:34Z.
  • Prompt SHA-256: 215f46eecafd651c07f4327c59b8b16a2b64ddd15c1449f3388a14815ef8e23d.
  • Verdict: PASS with two retained environment WARNs.

The executor read only the frozen prompt and repository paths discovered from root navigation. It found the bilingual nine-file sources, four-file canonical Skill, installer, scenarios, maintainer maps, development workflow, DEC-006/007, and correct root/downstream .github split. It resolved 38 local links/anchors with failures=0. Initial/final candidate SHA/tree and ordinary/ignored status remained fixed and clean.

Results:

  • default Python 3.14.3 pytest: NOT_RUN, No module named pytest;
  • Anaconda Python 3.9.12: 5 passed in 60.85s;
  • both py_compile: PASS;
  • default Skill validation: NOT_RUN, missing yaml;
  • Anaconda Skill validation: Skill is valid!;
  • diff check and both CLI help runs: PASS, only {prepare,check};
  • external cache removed and original path verified absent.

Final mechanical rerun

  • UTC: 2026-08-06T10:55:34Z to 2026-08-06T10:59:53Z.
  • Default pytest: NOT_RUN, missing pytest.
  • Anaconda pytest: 5 passed in 67.87s.
  • Both py_compile: PASS with external caches.
  • Default quick validation: NOT_RUN, missing yaml.
  • Anaconda quick validation: Skill is valid!.
  • base→candidate and cached diff checks: PASS.
  • both CLI help runs: only {prepare,check}.
  • final ordinary/ignored status: clean.

One compatible pytest invocation yielded partial output before its session identity was lost during an interrupted tool turn and was excluded. The exact command was rerun to a captured exit code for the result above. External caches were moved to Trash and their original path verified absent.

These results prove only their stated scopes; they do not claim SEC live/full, deployment, Cutover, CI, or merge approval.

wlvh commented Aug 6, 2026

Copy link
Copy Markdown
Owner Author

SEC_metrics Case A round 1 raw record and independent review

Formal binding:

  • target HEAD a77b9055a53de5e5808649551f03fe567cb2de0a
  • target tree c023571102669eecdaf38aff7c0cd66488ed3ba6
  • upstream candidate ab742bc44d8dff0c6b268ed21f0ab1d17d4119e3
  • upstream tree d916aad9f1a292c96e12b7958864abaebc3fe58e
  • main prompt SHA-256 8dec59b46034627482172c1ba5485a5d88f65f0e263945755640a032eb1fd81e
  • target final binary diff SHA-256 42c0aee9ad3951a09cc3335961719479b942818fa6d72bfc864a1d7499525899

Verdict: PASS_AFTER_REVIEW.

Public prepare returned the fixed identities, nine existing documents, and no installation. Final public check passed with nine files checked and dirty paths limited to PR_Checklist.md, TESTING.md, architecture.md, and capability_contract.json.

Main findings

  • CASEA-R1-F001 WARN fixed: stale “three configurations” architecture inventory replaced by five tracked config/ inputs plus tracked catalog/ traits, disclosure, and MetricSpec inputs.
  • CASEA-R1-F002 WARN fixed: canonical anchor grammar, consumer-only boundary, unsupported-alias limitation, and target-local ENTRY_STATUSES={active, deprecated} documented.
  • CASEA-R1-F003 WARN fixed: PR checklist now executes bug-first timing responsibility.
  • CASEA-R1-F004 WARN fixed: TESTING and checklist require concrete existing-test→risk mapping plus rerun evidence when there is no test diff.

Scope stayed four documents, eight insertions and two deletions, with no code/test diff. An initial anchor explanation created a bare marker fragment and the real checker rejected it; the final complete reruns use the corrected bytes.

Final-byte validation

  • Python 3.14.3 complete discovery: 372/372 OK, 179.323 seconds.
  • Python 3.9.12 complete discovery: 372/372 OK, 254.814 seconds.
  • Alignment, JSON, and diff checks: PASS.
  • Named mapping: malformed anchor/directive grammar; unknown type/status; live contract alignment; config-derived matrix exact set. Alias and config/catalog boundaries also passed direct exact-set checks. These are mechanical evidence, not prose-semantic proof.
  • Clean temporary-commit offline Stage 12: exit 0; snapshot checker: exit 0. Only report, validation manifest, and snapshot provenance changed in the disposable clone (13+/13−). This is not stages 00–12, live SEC, full E2E, or publication evidence.

No live SEC, stages 00–11, complete Golden rebuild, deployment, Cutover, commit, push, or PR occurred in SEC_metrics.

Reality samples

  • Partially stale old documentation: OBSERVED_AND_DETECTED in a non-authoritative legacy backend handoff; left outside the nine-document edit scope.
  • Cross-document fictional capability: NOT_OBSERVED_THIS_RUN.
  • Validation-level inflation: NOT_OBSERVED_THIS_RUN.
  • Production scheduling without evidence: NOT_OBSERVED_THIS_RUN.

The latter three are reality samples, not injected positive controls and not proof of detection capability.

Independent review

  • Reviewer /root/case_a_ab742bc_r1_review.
  • Blind prompt SHA-256 3a85f8968cc712b10501bf0f3b6208380b4fe8d561accc6064d9fe1b3f5cc347.
  • Blind facts frozen 2026-08-06T09:43:11Z before any core document/diff/status was read.
  • Phase-2 prompt SHA-256 e6127aded9383720abff4435b6a20ec3c7e0aaa2487043de5aee0b219e2cb3ba.
  • Closure prompt SHA-256 0efc58efc0d81304a59b97b36f56a1101341618925d60084b06d99de0a381463.
  • Final closure 2026-08-06T10:23:03Z, verdict APPROVE.

Phase 2 first returned REQUEST_CHANGES:

  • CA-R1-B001 BLOCKER: target truth copied the generic publisher status taxonomy although the target checker only verifies {active, deprecated}.
  • CA-R1-W002 WARN: suite totals were not a specific existing-test→risk mapping.
  • CA-R1-N003 NOTE/open gate: source-input document changes require clean-commit offline Stage 12/snapshot evidence before publication.

Closure independently verified all three CLOSED, including targeted tests, exact anchor/config/catalog sets, final diff identity, and a separate offline Stage 12/snapshot replay. No new finding remained.

wlvh commented Aug 6, 2026

Copy link
Copy Markdown
Owner Author

SEC_metrics Case A round 2, independent review, and derived alignment

Formal binding:

  • target HEAD/tree a77b9055a53de5e5808649551f03fe567cb2de0a / c023571102669eecdaf38aff7c0cd66488ed3ba6
  • upstream SHA/tree ab742bc44d8dff0c6b268ed21f0ab1d17d4119e3 / d916aad9f1a292c96e12b7958864abaebc3fe58e
  • round-2 prompt SHA-256 4450a9f0519122af94433e5c08e255e4f9b7df97307ebd7bb329b40f3bd9966a
  • frozen target diff SHA-256 42c0aee9ad3951a09cc3335961719479b942818fa6d72bfc864a1d7499525899

Verdict: PASS_NOOP.

The fresh executor did not read round-1 prompts, findings, reports, review, frozen copies, or other evidence. It independently rebuilt the project and found no byte-changing finding.

Before (2026-08-06T10:28:40Z) and after (2026-08-06T10:45:55Z) nine-document hashes, binary diff, ordinary status, and ignored status were identical. Root separately compared every target byte to the frozen round-1 copies with cmp; all matched.

An exact temporary candidate commit (143f5338ba8548cabff3c2baddfcdd6918b347c5, tree 1fe187df0e7db80e39f0a46e78b7ed0c21c4078e) passed:

  • Python 3.14.3 complete discovery: 372/372, 181.485 seconds;
  • Python 3.9.12 complete discovery: 372/372, 262.895 seconds;
  • normal and --base-ref a77b905... alignment;
  • JSON, diff, three named grammar/status/test-status tests, and config/catalog exact set;
  • offline Stage 12 and snapshot checker.

Stage 12 changed only the report, validation manifest, and snapshot provenance in the disposable clone (13+/13−). It was not described as stages 00–12, live SEC, full E2E, Cutover, CI, or publication evidence. The temporary root was removed. After review approval, final public check passed and all identities/hashes/status remained unchanged.

Fresh independent review

  • Reviewer /root/case_a_ab742bc_r2_review.
  • Blind prompt SHA-256 d5e7bf68f1c33d288dad0568629c9395fea1c9281ce1d0f34c9fd63cc75a77f6.
  • Blind facts frozen 2026-08-06T10:39:22Z before reading core documents, diff/status, round-1 material, external evidence, or other Agent conclusions.
  • Phase-2 prompt SHA-256 e61924e185fbb3aee8db18ce807d7411a1eed4f7b1015608e1b5b6425b91fd63.
  • Review frozen 2026-08-06T10:51:43Z.
  • Verdict: APPROVE PASS_NOOP; no BLOCKER, WARN, or byte-changing finding.

Stable notes:

  • observable digest/status equality is not syscall-level write auditing;
  • temporary clean-commit Stage 12/snapshot proves offline compatibility, not live/full acceptance;
  • D-01, example SEC email, live/staging/Cutover/rollback/full blockers remain NOT_RUN/BLOCKED.

Derived alignment

A third no-hardlinks clone received the exact frozen bytes:

  • test-only commit 71632d45312ae1dd741b0ffbddeae17dc3fd3c62
  • tree 1fe187df0e7db80e39f0a46e78b7ed0c21c4078e
  • parent a77b9055a53de5e5808649551f03fe567cb2de0a
  • patch SHA-256 42c0aee9ad3951a09cc3335961719479b942818fa6d72bfc864a1d7499525899

Both Python environments passed tools/check_capability_contract_alignment.py --base-ref a77b9055... and printed that alignment is structural evidence, not proof of the claim. Diff check and clean status passed. The clone was moved to Trash and its original path verified absent. The derived commit is neither the primary target identity nor a publication commit.

@wlvh

wlvh commented Aug 7, 2026

Copy link
Copy Markdown
Owner Author

Final-SHA evidence index — supersedes earlier PR #22 evidence

Identity:

  • base 88de20d814d66aff5c80061b19fde21ceb4902eb
  • final candidate 2937a011ede34ed9e45aa73dd52575db87fa7612
  • candidate tree 802e41c6a507c7d2f8740d9b98a4bcf59b0f355b
  • selected Case A target 31f08294aba9790dc1e8279227f239673b3bc225
  • committed second_target_sha be0d40c394e957881860f486ada56b742ddd5467

Canonical plaintext record (private, owner/reviewer retrievable): https://github.com/wlvh/Note/issues/9

The private record contains the exact prompts, exact command ledgers, candidate/target/second-target identities, complete round-1 target-document diff, test results, reviewer identities and UTC blind-first boundaries, findings/fixes/rechecks, final-check JSON, Actions, and recoverable cleanup. The digest indexes those plaintext bytes; it is not a substitute for them.

Final results:

  • Pre-fix exact-prompt Case G on ab742bc...: FAIL; it found both markers and read DEC-006 but did not make the necessity judgment. This justified the single root guard.
  • Final exact-prompt Case G on 2937a011...: PASS by legal form 2; the executor proved the two existing marker forms cover the only state/consumers and refused a synonym with zero diff.
  • Case A target selection was timestamped before the formal executor. Round 1 closed its independent review findings and committed only seven of the nine authoritative documents as be0d40c....
  • Fresh round 2 started from a new clean checkout of be0d40c...: PASS_NOOP, nine-document diff zero, final staged/untracked/ignored residue zero. Alignment ran directly on that identity. Fresh blind-first independent review ended PASS with no BLOCKER/actionable WARN.
  • Final public CLI/full-installer suite, both compile checks, compatible-environment Skill validation, diff/help gates, and repository clean-state checks passed. Default dependency misses remain explicitly NOT_RUN.
  • Final-SHA GitHub Actions passed for both push run and pull-request run.

The three older evidence comments remain preserved but are superseded:

SEC live/full, D-01 approval, deployment, Cutover, UAT, holdout, and production rollback remain out of scope. PR #22 remains Draft/Open.

@wlvh
wlvh marked this pull request as ready for review August 7, 2026 13:28
@wlvh
wlvh merged commit 821a32a into main Aug 7, 2026
2 checks passed
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