Files

108 lines
4.7 KiB
YAML

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가 런타임 차단).