# advisory-depth (plugin split) Root SSOT: [`rules/advisory-depth.md`](../../../../../rules/advisory-depth.md) (418줄) 본 폴더는 root rule 을 Antigravity 컨텍스트에서 lazy-load 하기 좋게 4개 sub-file 로 분할한 사본이다. 의미는 root 와 동일. 충돌 시 root 가 진실. ## 적용 대상 - Multi-file wiki 보고서 (research-lane, link-verifier, adversarial-reviewer) - Direct-response 답변 (subagent dispatch 없이 controller 가 직접 답할 때) - Brainstorming / design 대화 (wiki 구조, 문서 정책, taxonomy 결정) - 개념 설명 / "explain X" 질문 (특히 `wiki/concepts/` 추출 후보) - Plan gap reviews (`/ingest`, `/projectize`, `/interviewize`, `/blogify` 파이프라인) - 위 어떤 작업에서든 single-finding 권고 ## 핵심 메시지 > The user does not use this CLI to hear "this looks fine" or "this is a good idea". They use it for **practical engineering advice they could not produce alone**. Shallow advice is a failure even when the facts are correct. ## Sub-file index | Sub-file | 다루는 Contract | 필독 시점 | |---|---|---| | [`contracts-1-causal-chain.md`](contracts-1-causal-chain.md) | Contract 1: Goal → Assumption → Problem → Action 7-field 사슬 + Why Assumption Surfacing | 모든 finding 작성 시 | | [`contracts-2-3-4-structure.md`](contracts-2-3-4-structure.md) | Contract 2: 모든 옵션 열거 / 3: Plan Gap Detection / 4: Direct-Response Template | 비교·권고·plan 리뷰·direct answer 작성 시 | | [`contracts-5-6-citation-grep.md`](contracts-5-6-citation-grep.md) | Contract 5: Citation Discipline (verbatim + file:line) / 6: Self-Grep Verification (실제 sed/grep 실행) | 인용 또는 quote 가 들어가는 모든 finding 작성 시 | | [`contract-7-forbidden-words.md`](contract-7-forbidden-words.md) | Contract 7: 금지 마케팅 단어 + 외부 근거 요구 + Concept Organization Mode | 모든 advisory 응답 송신 직전 self-check | ## Antigravity-specific 메모 | 항목 | Antigravity 컨텍스트 | |---|---| | Contract 6 Self-Grep 실제 실행 여부 | hook 은 `$ sed -n` / `$ grep -nF` **문자열의 존재만** 검사. 진짜 실행됐는지는 검증 불가. agent 가 위조 출력을 적어도 hook 통과 — **진실성은 agent 자체 책임**. | | Contract 7 금지어 (verbatim quote 밖) | hook G2 가 `docs/superpowers/specs/*.md` write 시 자동 enforce. 그 외 경로 / chat 본문에서는 self-check 단독. | | Counterargument 존재 (Contract 1) | hook 미커버. agent self-check 단독. ≥1 Counterarg 없으면 finding `BLOCKED` 처리 자체가 agent 책임. | | Plan Gap Detection (Contract 3) | hook 미커버. plan review 시 "looks fine" 응답 자체가 자동 `BLOCKED` 이지만 enforcement 없음 — self-check 단독. | | Stop hook 한계 | chat 본문 응답은 어떤 검사도 받지 않음. Direct-Response Template (Contract 4) §1~§6 모두 self-check 로만 강제. | ## Anti-Patterns | Pattern | Why fails | Replacement | |---|---|---| | "X를 추천합니다" without conditions | User cannot tell when X is wrong | Conditional recommendation: "If A → X, if B → Y" | | One option presented, no alternatives | User cannot tell what they are giving up | Exhaustive Option Enumeration (Contract 2) | | "성능이 떨어질 수 있다" / "고려가 필요하다" | Vague worry, not advice | Name the concrete failure mode and trigger condition | | Listing only the user's named ordering (1→2→3) | Hides 5 other orderings | List all `N!` permutations and discuss each | | Plan review returning "looks fine" | No advisory value | Contract 3 (gap matrix) | | Long mermaid diagram with no per-finding analysis | Decoration, not advice | Diagrams allowed only as supplement | | Finding without Original goal field | Cannot tell if critique or fabrication | Cite the spec/code line that states the original goal | | Bilingual mirror response | User reads it twice | One language, the user's | ## Pre-Send Depth Check (essential 7 of 21) 송신 직전 다음 7개 확인. 전체 21 항목은 root rule §"Pre-Send Depth Check" 참조. 1. 모든 finding 이 Contract 1 의 7-field 사슬 (Original goal / Current state / Real-world assumptions / Gap / Required action / Why this action / Alternatives) 완비? 2. 모든 Original goal / Current state 가 **verbatim quote + `:`** (paraphrase 아닌 byte-for-byte)? 3. 모든 finding 이 최소 1개 실무 가정 + 무효 조건 + 사용자 검증 방법 포함? 4. 권고가 **조건부** (`if A → α, if B → β`)? 평탄 "추천: X" 금지? 5. 모든 finding 이 최소 1개 **Counterargument** + 검증 방법 포함? (0개면 자동 `BLOCKED`) 6. **금지 단어** (`100%`, `완벽`, `극한`, `절대로`, `최강`, `역사상 가장`, `명품`) 가 verbatim quote 밖에 등장하지 않음? 7. **Self-grep** 실제 실행 (Contract 6) — 모든 verbatim quote 에 대해 sed/grep 명령 실행 + 출력이 §7.1 에 기록됨? `V == 실제 명령 수` 일치?