9.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.
2026-06-12T22:05:50Z — Idle audit; no M2 claim yet
- Cold rebase in
/srv/cc-ci/cc-ci-adv:git pull --rebase->Already up to date. machine-docs/STATUS-cfold.mdstill showsM2 — IN PROGRESS; there is noGate: M2 — CLAIMED, awaiting Adversarypayload to verify yet.- No
machine-docs/ADVERSARY-INBOX.mdis present. - Focused stale-consumer audit: remaining
functional//playwright/literals are confined to expected phase ledgers plus the intentional deprecated-alias docs/tests/discovery surfaces. No live repo custom-test tree has reappeared under deprecated folders. - Recent cfold coordination history is consistent with the ledger:
44e0242implementation,e1d623aM1 claim,4b4d665M1 PASS,39e53d7status update into M2 work.
Verdict: no new finding and no gate pending. Waiting for a formal M2 claim or a Builder inbox message.
2026-06-12T22:25:33Z — Idle break-it audit; still no M2 claim
- Cold rebase in
/srv/cc-ci/cc-ci-adv:git pull --rebase->Already up to date. machine-docs/STATUS-cfold.mdstill shows## M2 — IN PROGRESS; there is still noGate: M2 — CLAIMED, awaiting AdversaryWHAT/HOW/EXPECTED/WHERE handoff to verify.- No
machine-docs/ADVERSARY-INBOX.mdis present. - Recent cfold history is consistent and unchanged since the last audit:
44e0242implementation,e1d623aM1 claim,4b4d665M1 PASS,39e53d7M2-in-progress status,93f56aeprior idle audit. - Focused stale-consumer/break-it audit: no live cc-ci recipe custom-test tree has reappeared under
deprecated
functional/orplaywright/dirs; remaining matches are confined to intentional alias references in docs/unit tests/discovery and the phase ledgers recording the migration history.
Verdict: no new finding and no gate pending. Waiting for a formal M2 claim or a Builder inbox message.
2026-06-12T22:41:00Z — Cold artifact audit after Builder M2 sweep snapshot; still no M2 claim
- Cold rebase in
/srv/cc-ci/cc-ci-adv:git pull --rebase-> fast-forward tod24bb8f(status(cfold): record M2 sweep snapshot). machine-docs/STATUS-cfold.mdstill shows## M2 — IN PROGRESS; there is still noGate: M2 — CLAIMED, awaiting AdversaryWHAT/HOW/EXPECTED/WHERE handoff to verify, so no M2 PASS/FAIL verdict is available yet.- Independent cold check of the blocking
ghostdeviation on the live cc-ci host is consistent with the Builder's status note and points away from cfold itself:ssh cc-ci "jq '{level, recipe, stages: (.stages | map({name, status}))}' /var/lib/cc-ci-runs/557/results.json"->level: 1,recipe: ghost, stages present and passing forinstall,backup,restore,custom,lint.ssh cc-ci "jq '{level, recipe, stages: (.stages | map({name, status}))}' /var/lib/cc-ci-runs/559/results.json"-> same shape:level: 1,recipe: ghost, same five passing stages.ssh cc-ci "grep -R -n 'd88f5801' /var/lib/cc-ci-runs/557/abra/recipes/ghost/.git"shows build557checked out Ghost headd88f580188c145b04484074079ddf6f37662d3a1.ssh cc-ci "grep -R -n 'd42d0f7c' /var/lib/cc-ci-runs/559/abra/recipes/ghost/.git"shows build559checked out the probe refd42d0f7c7cf9946077a583ffa3f7c96abfe94a77.ssh cc-ci "printf 'build557 custom junit count='; ls /var/lib/cc-ci-runs/557/junit/custom__cc-ci__*.xml | wc -l; printf 'build557 upgrade junit count='; ls /var/lib/cc-ci-runs/557/junit/upgrade*.xml 2>/dev/null | wc -l"->build557 custom junit count=4,build557 upgrade junit count=0.ssh cc-ci "printf 'build559 custom junit count='; ls /var/lib/cc-ci-runs/559/junit/custom__cc-ci__*.xml | wc -l; printf 'build559 upgrade junit count='; ls /var/lib/cc-ci-runs/559/junit/upgrade*.xml 2>/dev/null | wc -l"->build559 custom junit count=4,build559 upgrade junit count=0.
- Interpretation: both fresh Ghost runs executed the canonical
tests/ghost/custom/test_*.pyset (4 junit files) and failed before any upgrade-tier junit artifact was produced. That supports the Builder's current statement that Ghost is an upgrade-path regression, not a custom-folder coverage loss.
Verdict: no new finding from this cold audit, but M2 is not passable yet. The phase still lacks both
the formal claim(cfold): M2 ... handoff and the required all-green full sweep (ghost remains non-green).
2026-06-12T23:00:00Z — Idle audit; still no formal M2 claim
- Cold rebase in
/srv/cc-ci/cc-ci-adv:git pull --rebase->Already up to date. machine-docs/STATUS-cfold.mdstill shows## M2 — IN PROGRESS; there is still noGate: M2 — CLAIMED, awaiting AdversaryWHAT/HOW/EXPECTED/WHERE payload to verify.- No
machine-docs/ADVERSARY-INBOX.mdis present. - Current ledger still points to the same blocker for a future M2 claim:
ghostremains the lone non-green recipe in the full sweep, and the latest recorded evidence continues to indicate a cfold-neutral upgrade-path failure rather than custom-test discovery loss.
Verdict: no new finding and no gate pending. Waiting for a formal M2 claim or a Builder inbox message.