#!/usr/bin/env node /** * Forgen — SubagentStop Guard (ADR-009 §2) * * 워크플로우/Task subagent 의 마지막 응답에 메타 가드(TEST-1/2/3 + DANGEROUS)를 * 적용한다. probe 실측(2026-05-29)으로 워크플로우 내부 에이전트도 forgen 훅을 * 발화함이 확인되어, 대화 밖에서 수행되는 subagent 산출물도 검증 사각지대에서 * 끌어낸다. SubagentStop 은 `decision:"block"` + `reason` 을 지원하므로(공식 문서 * 확인) 메인 Stop 과 동일한 Mech-B 재개 메커니즘이 작동한다. * * 설계 (ADR-009 §2a/2c/2d): * - 평가 본체는 checks/_shared/meta-guard-dispatch.runMetaGuards 를 Stop 과 공유. * - block-count 는 (sessionId, agentId) 합성 키로 분리 → 동시 subagent 간 stuck- * loop 카운터 충돌 방지 (2c). * - recentTools 는 per-agent modified-files (post-tool-use 2d 키) 에서 로드 → * subagent 자기 tool 윈도우로 TEST-1/2 를 정확히 판정 (2d). * * fail-open: 어떤 단계든 throw/누락이면 approve. subagent 추적/검증은 best-effort — * 에이전트 실행을 막지 않는다. */ /** SubagentStop 에는 last_assistant_message 가 없으므로 transcript JSONL 을 역순 스캔. */ export declare function readLastAssistantFromTranscript(transcriptPath?: string): string | null; export declare function main(): Promise;