diff --git a/JOURNAL-rcust.md b/JOURNAL-rcust.md index 9e115f4..c8fed01 100644 --- a/JOURNAL-rcust.md +++ b/JOURNAL-rcust.md @@ -104,3 +104,21 @@ test_discovery_phase2.py now asserts top-level custom is NOT discovered. op_stat Verified on cc-ci: cc-ci-run -m pytest tests/unit -q -> 184 passed; lint PASS. Next: P5 — customization manifest (print block + results.json key). + +## 2026-06-10 P5 — customization manifest (branch 68954be) + +(Resumed after a usage-limit pause mid-P5; working tree carried the in-flight manifest.py.) +New runner/harness/manifest.py: build() collects {meta_non_default, hooks, overlays, custom_tests, +env_overrides} via the SAME discovery/meta functions the run uses (so the manifest can never +disagree with what actually executes — incl. the HC2 _gated() repo-local gate), render() prints +the block. Orchestrator builds+prints right after meta load / repo-local snapshot, BEFORE the +quick-lane branch (both lanes get the block); the dict rides into build_results(customization=...) +verbatim. run_quick writes no results.json, so the single build_results call site covers all. +Hooks render as "", tuples as lists (JSON-clean); ops.py pre-ops listed by cheap source +scan (same approach as discovery._module_defines — no import at manifest time). + +Lint flagged: C408 dict() literal, import-block order (manifest after deps), ruff-format on the +new test file — all fixed. Verified on cc-ci (rsync of working tree): cc-ci-run -m pytest +tests/unit -q -> 191 passed; nix develop .#lint --command scripts/lint.sh -> lint: PASS. + +Next: P6 docs, then M1 prep (tests/concurrency proof run + 21-recipe baseline matrix). diff --git a/STATUS-rcust.md b/STATUS-rcust.md index cb1dd4c..b11aa17 100644 --- a/STATUS-rcust.md +++ b/STATUS-rcust.md @@ -16,15 +16,19 @@ Work branch: `restructure/recipe-custom` (one commit per phase P1–P6; merged t take ctx; legacy signatures raise MetaError at load naming the migration (branch fd02d9f) - [x] P4 — custom-test ergonomics: placement rule (custom under functional/+playwright/ only), op_state fixture, deps fixture tests (branch 29a28e2) -- [ ] P5 — customization manifest +- [x] P5 — customization manifest: one block at run start (non-default meta keys, hooks, overlays, + custom-test counts, active CCCI_SKIP_GENERIC* env overrides with !! CI flag) printed + + embedded verbatim in results.json under "customization"; pure presentation, HC2-honoring + (branch commit 68954be — new runner/harness/manifest.py + tests/unit/test_manifest.py) - [ ] P6 — docs -## P1–P4 verification facts (for the eventual M1 cold-verify) +## P1–P5 verification facts (for the eventual M1 cold-verify) -- WHERE: branch `restructure/recipe-custom`, P1=472a68b, P2=8cd72fd, P3=fd02d9f, P4=29a28e2. +- WHERE: branch `restructure/recipe-custom`, P1=472a68b, P2=8cd72fd, P3=fd02d9f, P4=29a28e2, + P5=68954be. - HOW: `cc-ci-run -m pytest tests/unit -q` and `nix develop .#lint --command scripts/lint.sh` from a clean checkout of the branch. -- EXPECTED: 184 passed; `lint: PASS`. +- EXPECTED: 191 passed; `lint: PASS`. - New single loader: `runner/harness/meta.py::load()`; all-recipes typo gate + R2 proof in `tests/unit/test_meta.py`; docs §4 table generated by `scripts/gen-meta-docs.py` (sync pinned by unit test). @@ -35,4 +39,5 @@ Work branch: `restructure/recipe-custom` (one commit per phase P1–P6; merged t ## Current -P1–P4 done on the branch; starting P5 (customization manifest). +P1–P5 done on the branch; starting P6 (docs rewrite), then M1 prep (concurrency suite proof + +baseline matrix) before claiming M1.