4.6 KiB
4.6 KiB
REVIEW — Adversary — phase cfold
Adversary-only. Append-only. All verdicts here are cold-verified from a fresh shell + own clone. SSOT for what is being verified: /srv/cc-ci/cc-ci-plan/plan-phase-cfold-custom-folder.md
2026-06-11T22:54Z — Adversary initialized; awaiting Builder M1 claim
Baseline recorded in BACKLOG-cfold.md (pre-migration inventory). No claims pending. Will verify M1 and M2 on Builder claim.
Key break-it probes planned:
- Grep codebase for any remaining
functional/orplaywright/folder-name string literals after M1. - Run discovery cold to confirm no test was dropped (count must equal 64 custom test files).
- Verify deprecated-alias warning fires when a test is in old folder (per plan §2.1 recommendation).
- Confirm
from playwright.sync_apireferences NOT touched (they reference the package, not a folder). - Verify unit tests are updated (test_discovery_phase2.py, test_manifest.py) and still pass.
- Confirm manifest.py custom_counts changes correctly (sub will be "custom" not "functional"/"playwright").
- Confirm RUNG name "functional" (L4) is NOT renamed — only the folder name changes.
- M2: real Drone !testme sweep across all enrolled recipes — same level, same tests, zero leaks.
2026-06-12T00:00Z — No cfold gate claim visible; phase STATUS file missing
- Cold pull in
/srv/cc-ci/cc-ci-adv:git pull --rebase->Already up to date. machine-docs/STATUS-cfold.mdis absent in the shared repo state, so there is no canonical cfold gate claim / WHAT+HOW+EXPECTED+WHERE payload to verify perplan.md§6.1 and the phase kickoff.- No
ADVERSARY-INBOX.mdpresent. No formal cfold claim pending. - Action: notified Builder via
machine-docs/BUILDER-INBOX.mdto create/populateSTATUS-cfold.mdbefore claiming M1 or M2.
2026-06-12T16:00Z — Cold audit: still no cfold claim; repo remains pre-migration
- Cold rebase in
/srv/cc-ci/cc-ci-adv:git pull --rebase->Already up to date. machine-docs/STATUS-cfold.mdis still absent onorigin/main; no formal M1/M2 WHAT+HOW+EXPECTED+WHERE payload exists to verify.git log --all --grep='cfold' --grep='custom/' --grep='functional/' --grep='playwright/'shows no Builder-side cfold implementation/claim commits yet; only the Adversary bootstrap/notice commits are present for this phase.- Cold tree audit still matches the pre-migration shape: custom tests remain under
tests/<recipe>/functional/andtests/<recipe>/playwright/, and docs/discovery/unit-test literals still reference those folder names. - Verdict: no gate claim pending; nothing to PASS/FAIL yet. Waiting for Builder to publish
STATUS-cfold.mdand a formal M1 or M2 claim.
2026-06-12T16:20Z — M1 PASS
Cold verification from /srv/cc-ci/cc-ci-adv against Builder inputs in machine-docs/STATUS-cfold.md
and implementation commit 44e0242:
git ls-files "tests/*/custom/test_*.py" | wc -l->64git ls-files "tests/*/functional/*" "tests/*/playwright/*"-> no output- Per-recipe canonical counts match the phase baseline exactly:
bluesky-pds 4,cryptpad 4,custom-html 4,custom-html-tiny 1,discourse 3,drone 1,ghost 4,hedgedoc 2,immich 3,keycloak 3,lasuite-docs 5,lasuite-drive 3,lasuite-meet 3,mailu 3,matrix-synapse 3,mattermost-lts 3,mumble 5,n8n 4,plausible 2,uptime-kuma 4 - Focused unit suite:
nix shell nixpkgs#python311Packages.pytest -c pytest tests/unit/test_discovery.py tests/unit/test_discovery_phase2.py tests/unit/test_manifest.py -q->18 passed in 0.11s - Deprecated-alias safety probe: a synthetic recipe with legacy
functional/+playwright/trees still discovers both tests and emits one-line warnings for each deprecated folder. - Stale-consumer audit: remaining
functional//playwright/literals are only the intentional deprecated-alias docs/tests/discovery references. No live cc-ci test tree remains under those dirs. - No test weakening found in the moved custom-test files reviewed at line level. The non-100% rename similarities were docstring/path-comment updates only; assertions and test bodies remained intact.
- Coverage-preservation proof: normalized
(recipe, filename)custom-test set before migration (87928a9, oldfunctional/+playwright/) exactly matches after migration (44e0242, newcustom/):before 64,after 64,missing [],extra [].
Verdict: M1 PASS. The canonical custom/ migration preserves coverage, keeps deprecated aliases
loud rather than silent, and updates the expected docs/discovery/manifest/unit-test surfaces.