appsec-security-orchestrator
Installation
SKILL.md
AppSec Security Orchestrator (v3.0)
Execution mode: Two-track (2026-05-29 user lock) — AppSec is dual-mode:
- prompt-only (default) → §6 / §16.4 9-step inline dispatch +
appsec-sdk evidence.appendpersistence- workflow-spec (opt-in) → §16.11 14-step authoring contract →
~/.claude/workflows/appsec-orchestrator.js(preview gate:~/.claude/hooks/appsec-preview-gate.js) Trigger workflow-spec by setting.appsec/config.json.execution_mode = "workflow-spec". Both tracks live side-by-side; not migrating wholesale. P0 PROVEN — 4/4 appsec-* customs runtime-tested. Scope details in~/.claude/CLAUDE.md §3.5and<project>/.../architecture/ORCHESTRATION-STATUS.md.
v3.0 (2026-05-25) — GSD-lite Execution Engine AppSec orchestrator 从"输出 ASVS/CSF mapping 建议 + 给下游 markdown SECURITY.md"升级成 "自己 dispatch 4 个 named agents(appsec-risk-classifier / appsec-finding-triager / appsec-evidence-validator / appsec-reviewer)+ 自己落
.appsec/evidence/+ 自己出appsec_release_decision.yaml+ 6 个项目级 hooks 物理拦 raw secret 泄露 / 未授权 active scan / pentest 越界 / 假通过 / schema 漂移 / secret 读取"。 §1–§15 substance preserved;§7 marked DEPRECATED → use §16 Dispatch Contract. See §16 / §17 / §18 for the executable contracts.
v3.0.1 (2026-06-05) — gate.check robustness + prewrite hardening (codex cross-reviewed, additive)
appsec-sdk gate.checkD2 freshness:epoch_of_iso改用 NodeDate.parse优先(shelldate仅 fallback)→ 跨平台稳,吃下小数秒/数字 offset,消除 macOS/BSD false-BLOCK;decided_at缺失时 fallback 到顶层timestamp:(仅 col-0,防误匹配嵌套键)。appsec-finding-schema-prewrite.js(§18.5a):Edit/MultiEdit 在 protected.appsec/findings|decisions路径上一律 outright block(堵"marker 塞进 new_string 首行"局部篡改绕过);matcher 补MultiEdit(hook-registry + snippet + settings 三处 lockstep);canonical gate-result 校验validateVerdict加 try/catch → throw/畸形结果 fail-closed exit 2(原会 exit 1 放行);validator 缺导出时出 NOTE 不静默。- 顺手修
dot-appsec-skeleton/hook-fixture-harness.sh一个 pre-cdinit污染 bug(从非-$T 目录跑会在 cwd 建.appsec/.claude)。 验证:现有 fixture harness 38/38 回归 + 独立 E8 真测。