tool-permission-matrix: version: 1 default-policy: read: [docs] write: [draft-reports] execute: [] external-side-effects: slack: denied github-pr-create: denied deploy: denied secret-read: denied db-write: denied role-overrides: OPS-ORCH: read: [docs, workflow-state, work-queue] write: [workflow-state, work-queue, recovery-events] execute: [schema-validation] external-side-effects: slack: approval-required github-pr-create: denied deploy: denied secret-read: denied db-write: approval-required EXEC-CEO: read: [docs, executive-packets, dashboard] write: [decision-briefs, ceo-recommendations] execute: [] external-side-effects: slack: denied github-pr-create: denied deploy: denied secret-read: denied db-write: denied ENG-BE: read: [repo, docs] write: [feature-branch, draft-rfc, completion-records] execute: [test, build] external-side-effects: slack: denied github-pr-create: approval-required deploy: denied secret-read: denied db-write: denied human-approval-required: [production-change, credential-access, security-exception] QA: read: [repo, docs, test-results] write: [qa-reports, verification-records] execute: [test] external-side-effects: slack: denied github-pr-create: denied deploy: denied secret-read: denied db-write: denied SEC-APPSEC: read: [repo, docs, security-reports] write: [appsec-reports, threat-models] execute: [security-scan] external-side-effects: slack: denied github-pr-create: denied deploy: denied secret-read: denied db-write: denied # --------------------------------------------------------------------------- # # agent-tools — Claude Code subagent 'tools' 프론트매터의 단일 정본(SoT). (P1-D #10) # gen_agents.py가 이 섹션에서 family별 tools를 DERIVE한다(하드코딩 금지). 프론트매터· # guard·이 매트릭스가 서로 다른 정본을 갖던 문제를 제거한다. # 원칙(최소권한, default-deny side-effects): # - AUDIT(감사·검증) 계열은 자기 불변 보고서 + 설계 산출물(threat-model/RFC/verification-record)을 # 써야 하므로 Write를 갖는다. 단 Edit은 주지 않는다 — 보고서는 불변이고 감사자는 새 파일만 만든다 # (immutable-report guard가 기존 .report.yaml의 overwrite/Edit을 계속 차단). Bash는 스캔/테스트용. # - 코드·파이프라인 구현/실행 계열(ENG)만 Edit+Bash(+Write)를 갖는다. # - 판단·설계문서·분석·수익·GTM·자문 계열(ADVISORY)은 보고서·문서 Write까지만 — Edit/Bash 불필요. # (이전엔 GTM/OPS 일부가 불필요한 Edit/Bash(ENG)를 갖고 있었다 — 정리.) # - ORCH는 로컬 상태/큐 파일 갱신(Write+Edit)만, 외부·실행 없음. # 어떤 프로파일도 side-effect 도구(gh/git-push/deploy/secret)를 포함하지 않는다 — guard_tools가 별도 차단. agent-tools: profiles: ENG: [Read, Grep, Glob, Edit, Write, Bash, WebFetch, WebSearch] AUDIT: [Read, Grep, Glob, Write, Bash, WebFetch, WebSearch] ADVISORY: [Read, Grep, Glob, Write, WebFetch, WebSearch] ORCH: [Read, Grep, Glob, Write, Edit] default-profile: ADVISORY # family-profiles에 없는 family는 ADVISORY(판단·자문 계열) family-profiles: # 코드·파이프라인 구현/실행 → ENG FAM-ENG-FRONTEND: ENG FAM-ENG-BACKEND: ENG FAM-ENG-SPECIAL: ENG FAM-PLATFORM-INFRA: ENG FAM-DATA: ENG # 데이터 파이프라인/모델 구축(코드) FAM-DESIGN: ENG # 코드 디자인시스템(React/CSS/vite build) 산출 # 감사·검증(자기 보고서/설계 산출 Write, Bash 스캔; Edit 없음=보고서 불변) → AUDIT FAM-QA: AUDIT FAM-SECURITY: AUDIT FAM-VPENG: AUDIT FAM-ARCHITECTURE-TECH: AUDIT FAM-LEGAL: AUDIT # 조율(상태/큐 로컬 갱신) → ORCH FAM-ORCH: ORCH # 그 외(C-Level·PM·UX·전략·아키-biz·GTM-growth/sales·revops·ops-delivery·consulting·doc-consult) # 는 default-profile(ADVISORY) — 보고서·문서 Write까지만, Edit/Bash 없음. invariants: - audit-capable=true family는 반드시 Write를 갖는다(자기 불변 보고서·설계 산출 — gen_agents가 assert). - 어떤 profile도 Edit로 기존 .report.yaml을 수정할 수 없다(immutable-report guard가 런타임 차단).