From e489f9ad6a82ef661652cfb8d60040136bc70142 Mon Sep 17 00:00:00 2001 From: yhc <1964366186@qq.com> Date: Sat, 15 Aug 2026 08:58:36 +0800 Subject: [PATCH] fix(verify): run #77 anchors before fail gate; strip BEL in links Move ADF/BSC assertions out of Write-Host string so they update $fail. Use Ok/Bad + Test-Path/Get-Content (no phantom Assert-File*). Assert re-agent-workflow hooks blindspot cookbook. Remove ASCII BEL from ADF/workflow markdown link labels. --- skills/ops/analysis-decision-framework.md | 2 +- .../references/re-agent-workflow.md | 4 +- skills/scripts/verify-routing-coherence.ps1 | 85 ++++++++++++------- 3 files changed, 56 insertions(+), 35 deletions(-) diff --git a/skills/ops/analysis-decision-framework.md b/skills/ops/analysis-decision-framework.md index 2dc0207..5b78a7b 100644 --- a/skills/ops/analysis-decision-framework.md +++ b/skills/ops/analysis-decision-framework.md @@ -149,4 +149,4 @@ Effort band + A-T pointers -> `E-anti-adversarial` (**no** A-T table copy). ## 5. Blindspot appendix (Issue #77 batch 2) -Language runtimes, heavy obfuscation, injection/detect chains, formats, and agent-meta blindspots: see [nalysis-blindspot-cookbook.md](analysis-blindspot-cookbook.md) (**R52-R81**). Decision rules R1-R51 in this file remain superior. +Language runtimes, heavy obfuscation, injection/detect chains, formats, and agent-meta blindspots: see [analysis-blindspot-cookbook.md](analysis-blindspot-cookbook.md) (**R52-R81**). Decision rules R1-R51 in this file remain superior. diff --git a/skills/reverse-engineering/references/re-agent-workflow.md b/skills/reverse-engineering/references/re-agent-workflow.md index 0fc6031..945de71 100644 --- a/skills/reverse-engineering/references/re-agent-workflow.md +++ b/skills/reverse-engineering/references/re-agent-workflow.md @@ -195,9 +195,9 @@ ### Decision quality overlay (Issue #77) -Before closing Synthesis, apply [nalysis-decision-framework.md](../../ops/analysis-decision-framework.md) **P0 checklist**: R41 grounded claims, R4* validated sufficiency, R1 confidence->dynamic, R2 hypothesis exit, R43 deadlock replan (under feasibility gate), R8/R23 no default malice/IOC. Multi-module -> R50; anti-analysis effort -> R51 + A-T cookbook. +Before closing Synthesis, apply [analysis-decision-framework.md](../../ops/analysis-decision-framework.md) **P0 checklist**: R41 grounded claims, R4* validated sufficiency, R1 confidence->dynamic, R2 hypothesis exit, R43 deadlock replan (under feasibility gate), R8/R23 no default malice/IOC. Multi-module -> R50; anti-analysis effort -> R51 + A-T cookbook. -Blindspots (Rust/Go/VMP/injection/OLE/PDF/agent-meta): [nalysis-blindspot-cookbook.md](../../ops/analysis-blindspot-cookbook.md) R52-R81 — detection-oriented; not a parallel master flow. +Blindspots (Rust/Go/VMP/injection/OLE/PDF/agent-meta): [analysis-blindspot-cookbook.md](../../ops/analysis-blindspot-cookbook.md) R52-R81 — detection-oriented; not a parallel master flow. diff --git a/skills/scripts/verify-routing-coherence.ps1 b/skills/scripts/verify-routing-coherence.ps1 index afbab74..c126b4c 100644 --- a/skills/scripts/verify-routing-coherence.ps1 +++ b/skills/scripts/verify-routing-coherence.ps1 @@ -442,6 +442,58 @@ $idCheck += "fastapi-in-ops-deps=false" $idCheck -join [Environment]::NewLine | Set-Content (Join-Path $ScratchDir 'identity-check.txt') -Encoding UTF8 Ok 'identity-check written' +# Issue #77 — analysis decision framework anchors (MUST run before fail gate) +$adf = Join-Path $PackageRoot "skills\ops\analysis-decision-framework.md" +if (Test-Path -LiteralPath $adf) { Ok "analysis-decision-framework.md present (issue #77)" } else { Bad "analysis-decision-framework.md missing (issue #77)" } +if (Test-Path -LiteralPath $adf) { + $adfText = Get-Content -LiteralPath $adf -Raw -Encoding UTF8 + foreach ($pair in @( + @("R4*", "ADF R4* validated sufficiency"), + @("E-insufficient-evidence", "ADF E-insufficient-evidence"), + @("E-hypothesis-confirmed", "ADF hypothesis evidence"), + @("ungrounded", "ADF ungrounded flag"), + @("Not** a second master", "ADF not second master workflow"), + @("analysis-blindspot-cookbook", "ADF links blindspot cookbook") + )) { + if ($adfText -like ("*" + $pair[0] + "*")) { Ok $pair[1] } else { Bad ("missing: " + $pair[1]) } + } +} +$efp77 = Join-Path $PackageRoot "skills\ops\evidence-finding-path.md" +if (Test-Path -LiteralPath $efp77) { + $efpText = Get-Content -LiteralPath $efp77 -Raw -Encoding UTF8 + if ($efpText -like "*analysis-decision-framework*") { Ok "evidence-finding-path hooks ADF" } else { Bad "evidence-finding-path missing ADF hook" } + if ($efpText -like "*E-insufficient-evidence*") { Ok "evidence-finding-path R4* id" } else { Bad "evidence-finding-path missing E-insufficient-evidence" } +} else { Bad "evidence-finding-path.md missing" } +$wf77 = Join-Path $PackageRoot "skills\reverse-engineering\references\re-agent-workflow.md" +if (Test-Path -LiteralPath $wf77) { + $wfText = Get-Content -LiteralPath $wf77 -Raw -Encoding UTF8 + if ($wfText -like "*analysis-decision-framework*") { Ok "re-agent-workflow hooks ADF" } else { Bad "re-agent-workflow missing ADF hook" } + if ($wfText -like "*analysis-blindspot-cookbook*") { Ok "re-agent-workflow hooks blindspot cookbook" } else { Bad "re-agent-workflow missing blindspot cookbook hook" } +} else { Bad "re-agent-workflow.md missing" } +$rules77 = Join-Path $PackageRoot "RULES.md" +if (Test-Path -LiteralPath $rules77) { + $rulesText = Get-Content -LiteralPath $rules77 -Raw -Encoding UTF8 + if ($rulesText -like "*analysis-decision-framework*") { Ok "RULES.md hooks ADF" } else { Bad "RULES.md missing ADF hook" } +} else { Bad "RULES.md missing" } + +# Issue #77 batch 2 — blindspot cookbook anchors +$bsc = Join-Path $PackageRoot "skills\ops\analysis-blindspot-cookbook.md" +if (Test-Path -LiteralPath $bsc) { Ok "analysis-blindspot-cookbook.md present (issue77 R52-R81)" } else { Bad "analysis-blindspot-cookbook.md missing (issue77 R52-R81)" } +if (Test-Path -LiteralPath $bsc) { + $bscText = Get-Content -LiteralPath $bsc -Raw -Encoding UTF8 + foreach ($pair in @( + @("R52", "BSC R52 Rust"), + @("E-rust-identified", "BSC E-rust-identified"), + @("E-vmp-protected", "BSC E-vmp-protected"), + @("E-llm-hallucination", "BSC E-llm-hallucination"), + @("E-kernel-protect-tamper", "BSC kernel detect-only id"), + @("Not** a third master", "BSC not third master workflow"), + @("no bypass tutorial", "BSC no bypass tutorial") + )) { + if ($bscText -like ("*" + $pair[0] + "*")) { Ok $pair[1] } else { Bad ("missing: " + $pair[1]) } + } +} + Write-Host "Scratch=$ScratchDir" if ($fail.Count -gt 0) { Write-Host ("FAILED {0}" -f $fail.Count) -ForegroundColor Red @@ -449,37 +501,6 @@ if ($fail.Count -gt 0) { $fail | Set-Content (Join-Path $ScratchDir 'failures.txt') -Encoding UTF8 exit 1 } -Write-Host ' -# Issue #77 — analysis decision framework anchors -$adf = Join-Path $PackageRoot "skills\ops\analysis-decision-framework.md" -Assert-FileExists $adf "analysis-decision-framework.md (issue #77)" -Assert-FileContains $adf "R4*" "ADF R4* validated sufficiency" -Assert-FileContains $adf "E-insufficient-evidence" "ADF E-insufficient-evidence" -Assert-FileContains $adf "E-hypothesis-confirmed" "ADF hypothesis evidence" -Assert-FileContains $adf "ungrounded" "ADF ungrounded flag" -Assert-FileContains $adf "Not** a second master" "ADF not second master workflow" -$efp77 = Join-Path $PackageRoot "skills\ops\evidence-finding-path.md" -Assert-FileContains $efp77 "analysis-decision-framework" "evidence-finding-path hooks ADF" -Assert-FileContains $efp77 "E-insufficient-evidence" "evidence-finding-path R4* id" -$wf77 = Join-Path $PackageRoot "skills\reverse-engineering\references\re-agent-workflow.md" -Assert-FileContains $wf77 "analysis-decision-framework" "re-agent-workflow hooks ADF" -$rules77 = Join-Path $PackageRoot "RULES.md" -Assert-FileContains $rules77 "analysis-decision-framework" "RULES.md hooks ADF" - - -# Issue 77 batch 2 blindspot cookbook anchors -$bsc = Join-Path $PackageRoot "skills\ops\analysis-blindspot-cookbook.md" -Assert-FileExists $bsc "analysis-blindspot-cookbook.md (issue77 R52-R81)" -Assert-FileContains $bsc "R52" "BSC R52 Rust" -Assert-FileContains $bsc "E-rust-identified" "BSC E-rust-identified" -Assert-FileContains $bsc "E-vmp-protected" "BSC E-vmp-protected" -Assert-FileContains $bsc "E-llm-hallucination" "BSC E-llm-hallucination" -Assert-FileContains $bsc "E-kernel-protect-tamper" "BSC kernel detect-only id" -Assert-FileContains $bsc "Not** a third master" "BSC not third master workflow" -Assert-FileContains $bsc "no bypass tutorial" "BSC no bypass tutorial" -$adf2 = Join-Path $PackageRoot "skills\ops\analysis-decision-framework.md" -Assert-FileContains $adf2 "analysis-blindspot-cookbook" "ADF links blindspot cookbook" - -ALL ROUTING COHERENCE CHECKS PASSED' -ForegroundColor Green +Write-Host 'ALL ROUTING COHERENCE CHECKS PASSED' -ForegroundColor Green 'ALL ROUTING COHERENCE CHECKS PASSED' | Set-Content (Join-Path $ScratchDir 'verify.txt') -Encoding UTF8 exit 0