From 2f2d8c66a260339a18cc0431170326fd4ccda476 Mon Sep 17 00:00:00 2001 From: ledger Date: Sun, 1 Nov 2026 07:29:05 +0000 Subject: [PATCH] sol: fix untracked-triad corpus to exclude pipeline files --- .../sol/Untracked-Triad-2026-11-01.json | 240 ++++++++---------- .../sol/build_untracked_triad_2026_11_01.py | 13 +- 2 files changed, 109 insertions(+), 144 deletions(-) diff --git a/wizard-work/sol/Untracked-Triad-2026-11-01.json b/wizard-work/sol/Untracked-Triad-2026-11-01.json index ad8abe9..094459d 100644 --- a/wizard-work/sol/Untracked-Triad-2026-11-01.json +++ b/wizard-work/sol/Untracked-Triad-2026-11-01.json @@ -1,7 +1,8 @@ { "artifact": "Untracked-Triad-2026-11-01.json", - "corpus_sha256": "321891e6717758c2018fcf7273dd6b37bc61c9325312b54f5a3b82134e1d8826", + "corpus_sha256": "4f0fa979b3b64404165d34a982194d23619304a615dd924a022b46f4b17c0f70", "files": [ + "CHECK-q146", "CHECK-sol-untracked-classify", "CHECK-triage-2026-10-29", "checkins/2026-10-27-sentinel.md", @@ -86,568 +87,525 @@ "wizard-work/null/test_revwalk.py", "wizard-work/null/verify_check_provenance.py", "wizard-work/null/verify_staged.py", - "wizard-work/sol/CHECK-sol-profile-triage-2026-11-02", - "wizard-work/sol/Triage-2026-11-02.json", - "wizard-work/sol/Triage-2026-11-02.md", - "wizard-work/sol/_print_paths.py", - "wizard-work/sol/build_untracked_triad_2026_11_01.py", - "wizard-work/sol/verify_sol_triage_2026_11_02.py", - "wizard-work/sol/verify_untracked_triad_2026_11_01.py", "wizard-work/sphinx/archive-mmlongcite-2026-10-25/probe_paper_facts.json" ], - "files_count": 92, - "generated_at": "2026-11-01T07:23:13Z", + "files_count": 86, + "generated_at": "2026-11-01T07:28:43Z", "items": [ { "category": "gate", "decision": "approve", "id": 1, - "path": "CHECK-sol-untracked-classify" + "path": "CHECK-q146" }, { "category": "gate", "decision": "approve", "id": 2, + "path": "CHECK-sol-untracked-classify" + }, + { + "category": "gate", + "decision": "approve", + "id": 3, "path": "CHECK-triage-2026-10-29" }, { "category": "documentation", "decision": "info", - "id": 3, + "id": 4, "path": "checkins/2026-10-27-sentinel.md" }, { "category": "data", "decision": "observe", - "id": 4, + "id": 5, "path": "d.jsonl" }, { "category": "documentation", "decision": "info", - "id": 5, + "id": 6, "path": "docs/clawrouter-plan.md" }, { "category": "documentation", "decision": "info", - "id": 6, + "id": 7, "path": "docs/flux2-deploy.md" }, { "category": "documentation", "decision": "info", - "id": 7, + "id": 8, "path": "docs/video-deploy.md" }, { "category": "tooling", "decision": "review", - "id": 8, + "id": 9, "path": "inbox/dump_seed.py" }, { "category": "persistence", "decision": "archive", - "id": 9, + "id": 10, "path": "kanban.db" }, { "category": "documentation", "decision": "info", - "id": 10, + "id": 11, "path": "recoveries/apply-queue-status-2026-10-25.md" }, { "category": "data", "decision": "observe", - "id": 11, + "id": 12, "path": "repo_exts.tsv" }, { "category": "data", "decision": "observe", - "id": 12, + "id": 13, "path": "repo_files.tsv" }, { "category": "data", "decision": "observe", - "id": 13, + "id": 14, "path": "repo_tree.tsv" }, { "category": "data", "decision": "observe", - "id": 14, + "id": 15, "path": "s.json" }, { "category": "data", "decision": "observe", - "id": 15, + "id": 16, "path": "test_sample.txt" }, { "category": "data", "decision": "observe", - "id": 16, + "id": 17, "path": "test_validation.txt" }, { "category": "data", "decision": "observe", - "id": 17, + "id": 18, "path": "test_verification.txt" }, { "category": "tooling", "decision": "review", - "id": 18, + "id": 19, "path": "validate_artifact.py" }, { "category": "other", "decision": "review", - "id": 19, + "id": 20, "path": "wizard-work/null/.hermes-tmp.RqZp3z" }, { "category": "documentation", "decision": "info", - "id": 20, + "id": 21, "path": "wizard-work/null/README-gatehygiene.md" }, { "category": "documentation", "decision": "info", - "id": 21, + "id": 22, "path": "wizard-work/null/README-q62-scan.md" }, { "category": "tooling", "decision": "review", - "id": 22, + "id": 23, "path": "wizard-work/null/_probe10.py" }, { "category": "tooling", "decision": "review", - "id": 23, + "id": 24, "path": "wizard-work/null/_probe11.py" }, { "category": "tooling", "decision": "review", - "id": 24, + "id": 25, "path": "wizard-work/null/_probe12.py" }, { "category": "tooling", "decision": "review", - "id": 25, + "id": 26, "path": "wizard-work/null/_probe13.py" }, { "category": "tooling", "decision": "review", - "id": 26, + "id": 27, "path": "wizard-work/null/_probe14.py" }, { "category": "tooling", "decision": "review", - "id": 27, + "id": 28, "path": "wizard-work/null/_probe5.py" }, { "category": "tooling", "decision": "review", - "id": 28, + "id": 29, "path": "wizard-work/null/_probe6.py" }, { "category": "tooling", "decision": "review", - "id": 29, + "id": 30, "path": "wizard-work/null/_probe7.py" }, { "category": "tooling", "decision": "review", - "id": 30, + "id": 31, "path": "wizard-work/null/_probe8.py" }, { "category": "tooling", "decision": "review", - "id": 31, + "id": 32, "path": "wizard-work/null/_probe9.py" }, { "category": "tooling", "decision": "review", - "id": 32, + "id": 33, "path": "wizard-work/null/_probe_binding_defects.py" }, { "category": "tooling", "decision": "review", - "id": 33, + "id": 34, "path": "wizard-work/null/_probe_gh1.py" }, { "category": "tooling", "decision": "review", - "id": 34, + "id": 35, "path": "wizard-work/null/_probe_gh2.py" }, { "category": "tooling", "decision": "review", - "id": 35, + "id": 36, "path": "wizard-work/null/_probe_gh3.py" }, { "category": "tooling", "decision": "review", - "id": 36, + "id": 37, "path": "wizard-work/null/_probe_gh4.py" }, { "category": "tooling", "decision": "review", - "id": 37, + "id": 38, "path": "wizard-work/null/_probe_gh5.py" }, { "category": "tooling", "decision": "review", - "id": 38, + "id": 39, "path": "wizard-work/null/_probe_gh6.py" }, { "category": "tooling", "decision": "review", - "id": 39, + "id": 40, "path": "wizard-work/null/_probe_gh7.py" }, { "category": "tooling", "decision": "review", - "id": 40, + "id": 41, "path": "wizard-work/null/_probe_gh8.py" }, { "category": "tooling", "decision": "review", - "id": 41, + "id": 42, "path": "wizard-work/null/_probe_gh9.py" }, { "category": "tooling", "decision": "review", - "id": 42, + "id": 43, "path": "wizard-work/null/_probe_mut2.py" }, { "category": "tooling", "decision": "review", - "id": 43, + "id": 44, "path": "wizard-work/null/_probe_mut_check.py" }, { "category": "tooling", "decision": "review", - "id": 44, + "id": 45, "path": "wizard-work/null/_probe_q70_5h.py" }, { "category": "tooling", "decision": "review", - "id": 45, + "id": 46, "path": "wizard-work/null/_probe_repro1.py" }, { "category": "tooling", "decision": "review", - "id": 46, + "id": 47, "path": "wizard-work/null/_probe_repro2.py" }, { "category": "tooling", "decision": "review", - "id": 47, + "id": 48, "path": "wizard-work/null/_probe_repro3.py" }, { "category": "tooling", "decision": "review", - "id": 48, + "id": 49, "path": "wizard-work/null/_probe_repro4.py" }, { "category": "tooling", "decision": "review", - "id": 49, + "id": 50, "path": "wizard-work/null/_probe_repro5.py" }, { "category": "tooling", "decision": "review", - "id": 50, + "id": 51, "path": "wizard-work/null/_probe_repro6.py" }, { "category": "tooling", "decision": "review", - "id": 51, + "id": 52, "path": "wizard-work/null/_probe_repro7.py" }, { "category": "tooling", "decision": "review", - "id": 52, + "id": 53, "path": "wizard-work/null/check_gatehygiene.py" }, { "category": "tooling", "decision": "review", - "id": 53, + "id": 54, "path": "wizard-work/null/check_provenance.py" }, { "category": "data", "decision": "observe", - "id": 54, + "id": 55, "path": "wizard-work/null/check_provenance_baseline.tsv" }, { "category": "tooling", "decision": "review", - "id": 55, + "id": 56, "path": "wizard-work/null/check_provenance_ledger.py" }, { "category": "tooling", "decision": "review", - "id": 56, + "id": 57, "path": "wizard-work/null/check_q62_scan.py" }, { "category": "tooling", "decision": "review", - "id": 57, + "id": 58, "path": "wizard-work/null/cli_contract.py" }, { "category": "tooling", "decision": "review", - "id": 58, + "id": 59, "path": "wizard-work/null/diffkit/__init__.py" }, { "category": "tooling", "decision": "review", - "id": 59, + "id": 60, "path": "wizard-work/null/diffkit/_flatpkg.py" }, { "category": "tooling", "decision": "review", - "id": 60, + "id": 61, "path": "wizard-work/null/diffkit/core.py" }, { "category": "tooling", "decision": "review", - "id": 61, + "id": 62, "path": "wizard-work/null/diffkit/diffkit_cli.py" }, { "category": "tooling", "decision": "review", - "id": 62, + "id": 63, "path": "wizard-work/null/diffkit/myers.py" }, { "category": "tooling", "decision": "review", - "id": 63, + "id": 64, "path": "wizard-work/null/diffkit_gate.py" }, { "category": "tooling", "decision": "review", - "id": 64, + "id": 65, "path": "wizard-work/null/gatehygiene.py" }, { "category": "tooling", "decision": "review", - "id": 65, + "id": 66, "path": "wizard-work/null/json_salvage.py" }, { "category": "other", "decision": "review", - "id": 66, + "id": 67, "path": "wizard-work/null/membershipkit/.hermes-tmp.sx2gIa" }, { "category": "tooling", "decision": "review", - "id": 67, + "id": 68, "path": "wizard-work/null/membershipkit/check_membershipkit.sh" }, { "category": "tooling", "decision": "review", - "id": 68, + "id": 69, "path": "wizard-work/null/membershipkit/mutate_membershipkit.py" }, { "category": "tooling", "decision": "review", - "id": 69, + "id": 70, "path": "wizard-work/null/membershipkit/test_membershipkit.py" }, { "category": "tooling", "decision": "review", - "id": 70, + "id": 71, "path": "wizard-work/null/mutate_resolver.py" }, { "category": "tooling", "decision": "review", - "id": 71, + "id": 72, "path": "wizard-work/null/mutate_salvage.py" }, { "category": "tooling", "decision": "review", - "id": 72, + "id": 73, "path": "wizard-work/null/q58_warncontrol.py" }, { "category": "tooling", "decision": "review", - "id": 73, + "id": 74, "path": "wizard-work/null/q62_scan.py" }, { "category": "tooling", "decision": "review", - "id": 74, + "id": 75, "path": "wizard-work/null/q70_sabotage.py" }, { "category": "tooling", "decision": "review", - "id": 75, + "id": 76, "path": "wizard-work/null/q76_binding.py" }, { "category": "tooling", "decision": "review", - "id": 76, + "id": 77, "path": "wizard-work/null/q80_warn.py" }, { "category": "tooling", "decision": "review", - "id": 77, + "id": 78, "path": "wizard-work/null/revwalk.py" }, { "category": "tooling", "decision": "review", - "id": 78, + "id": 79, "path": "wizard-work/null/test_gate.py" }, { "category": "tooling", "decision": "review", - "id": 79, + "id": 80, "path": "wizard-work/null/test_gate_mutants.py" }, { "category": "tooling", "decision": "review", - "id": 80, + "id": 81, "path": "wizard-work/null/test_json_salvage.py" }, { "category": "tooling", "decision": "review", - "id": 81, + "id": 82, "path": "wizard-work/null/test_myers_diff.py" }, { "category": "tooling", "decision": "review", - "id": 82, + "id": 83, "path": "wizard-work/null/test_revwalk.py" }, { "category": "tooling", "decision": "review", - "id": 83, + "id": 84, "path": "wizard-work/null/verify_check_provenance.py" }, { "category": "tooling", "decision": "review", - "id": 84, - "path": "wizard-work/null/verify_staged.py" - }, - { - "category": "other", - "decision": "review", "id": 85, - "path": "wizard-work/sol/CHECK-sol-profile-triage-2026-11-02" + "path": "wizard-work/null/verify_staged.py" }, { "category": "data", "decision": "observe", "id": 86, - "path": "wizard-work/sol/Triage-2026-11-02.json" - }, - { - "category": "documentation", - "decision": "info", - "id": 87, - "path": "wizard-work/sol/Triage-2026-11-02.md" - }, - { - "category": "tooling", - "decision": "review", - "id": 88, - "path": "wizard-work/sol/_print_paths.py" - }, - { - "category": "tooling", - "decision": "review", - "id": 89, - "path": "wizard-work/sol/build_untracked_triad_2026_11_01.py" - }, - { - "category": "tooling", - "decision": "review", - "id": 90, - "path": "wizard-work/sol/verify_sol_triage_2026_11_02.py" - }, - { - "category": "tooling", - "decision": "review", - "id": 91, - "path": "wizard-work/sol/verify_untracked_triad_2026_11_01.py" - }, - { - "category": "data", - "decision": "observe", - "id": 92, "path": "wizard-work/sphinx/archive-mmlongcite-2026-10-25/probe_paper_facts.json" } ], @@ -656,13 +614,13 @@ "rule": "path-based deterministic classifier (see MODULE_DOCLINE)", "rule_version": "1", "summary": { - "data": 11, - "documentation": 8, - "gate": 2, - "other": 3, + "data": 10, + "documentation": 7, + "gate": 3, + "other": 2, "persistence": 1, - "tooling": 67, - "total": 92 + "tooling": 63, + "total": 86 }, "task": "classify untracked repo files into deterministic buckets" } diff --git a/wizard-work/sol/build_untracked_triad_2026_11_01.py b/wizard-work/sol/build_untracked_triad_2026_11_01.py index 9b5d0a0..e692a7a 100644 --- a/wizard-work/sol/build_untracked_triad_2026_11_01.py +++ b/wizard-work/sol/build_untracked_triad_2026_11_01.py @@ -57,7 +57,9 @@ OUT_WIZ = os.path.expanduser( def git_untracked(repo): - """Return sorted list of untracked regular files (skip untracked dirs).""" + """Return sorted list of untracked regular files, excluding this pipeline's + own files (wizard-work/sol/ subtree + the CHECK gate) so the snapshot is a + stable, reproducible classification rather than self-referential.""" proc = subprocess.run( ["git", "-C", repo, "status", "--porcelain=v1"], check=True, capture_output=True, text=True, @@ -66,8 +68,13 @@ def git_untracked(repo): for line in proc.stdout.splitlines(): if line.startswith("??"): path = line[3:].strip() - if path and not path.endswith("/"): - files.append(path) + if path.endswith("/"): + continue # untracked directories + if path.startswith("wizard-work/sol/"): + continue # this pipeline's own files (incl. manifest/verifier/build) + if os.path.basename(path) == "CHECK-untracked-triad-2026-11-01": + continue # the CHECK gate, committed alongside the manifest + files.append(path) return sorted(files)