feat(permissions): 조직 공용 .claude/settings.json 신설 - PC 간 일괄 승인 일관성 보장

PD님의 일괄 승인 원칙(memory/org/feedback_md_approval·feedback_approval_process)은 메모리 지침일 뿐 Claude Code harness의 permission system과 독립적으로 동작. 새 PC에서 .claude/settings.local.json이 비어있어 매번 승인 요구 발생하던 문제를 근본 해결.

- .claude/settings.json (git 커밋 대상): 조직 공용 포괄 허용
  - Edit·Write·MultiEdit·NotebookEdit·TodoWrite·Read·Glob·Grep·LS 전부 허용
  - Bash: git·gh·ls·cat·find·grep·mkdir·cp·mv·powershell·node·python·dotnet 등 안전 명령 허용
  - deny: rm -rf /·rm -rf ~·sudo·dd·mkfs·포크봄·시스템 디렉토리 쓰기
- memory/org/feedback_permissions_portability.md: harness permission과 메모리 지침의 2계층 분리 구조 + PC 독립성 보장 메커니즘 교훈

세션 재시작 후 적용됨.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-04-15 09:37:42 +09:00
parent 562a9bc5ca
commit 1e89f1793e
3 changed files with 123 additions and 0 deletions

72
.claude/settings.json Normal file
View File

@ -0,0 +1,72 @@
{
"_description": "너드나비스 조직 공용 Claude Code permission 설정. PD님의 일괄 승인 원칙(memory/org/feedback_md_approval.md·feedback_approval_process.md)을 harness 차원에서 구현. 모든 PC에서 동일하게 적용되도록 git 커밋 대상. 개별 PC 예외·실험적 명령은 .claude/settings.local.json(gitignore)에 기록.",
"permissions": {
"allow": [
"Read",
"Glob",
"Grep",
"LS",
"TodoWrite",
"Edit",
"Write",
"MultiEdit",
"NotebookEdit",
"Bash(git:*)",
"Bash(gh:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(head:*)",
"Bash(tail:*)",
"Bash(grep:*)",
"Bash(rg:*)",
"Bash(find:*)",
"Bash(echo:*)",
"Bash(pwd)",
"Bash(cd:*)",
"Bash(mkdir:*)",
"Bash(touch:*)",
"Bash(cp:*)",
"Bash(mv:*)",
"Bash(diff:*)",
"Bash(wc:*)",
"Bash(sort:*)",
"Bash(uniq:*)",
"Bash(tr:*)",
"Bash(sed:*)",
"Bash(awk:*)",
"Bash(xxd:*)",
"Bash(printf:*)",
"Bash(true)",
"Bash(false)",
"Bash(powershell.exe:*)",
"Bash(powershell:*)",
"Bash(fsutil reparsepoint:*)",
"Bash(npm run:*)",
"Bash(npx:*)",
"Bash(node:*)",
"Bash(python:*)",
"Bash(python3:*)",
"Bash(pytest:*)",
"Bash(dotnet:*)",
"WebFetch",
"WebSearch"
],
"deny": [
"Bash(rm -rf /*)",
"Bash(rm -rf ~*)",
"Bash(rm -rf $HOME*)",
"Bash(sudo:*)",
"Bash(chmod 777:*)",
"Bash(format:*)",
"Bash(dd:*)",
"Bash(mkfs:*)",
"Bash(:(){ :|:& };:)",
"Write(/etc/**)",
"Write(/System/**)",
"Write(C:/Windows/**)",
"Edit(/etc/**)",
"Edit(/System/**)",
"Edit(C:/Windows/**)"
]
}
}

View File

@ -6,3 +6,4 @@
- [셋팅 점검은 동작·실체까지 검증](feedback_setup_verification.md) — 파일 존재만이 아니라 실파일·junction reparse point·setup 실행 결과까지 확인
- [인사이트 즉시 메모리 기록 원칙](feedback_insight_capture.md) — 노하우·교훈·재발방지 룰은 발견 즉시 memory/org/ 에 기록하여 조직 자산으로 축적
- [PD 지시 위임 동사 본인처리 우회 금지](feedback_delegation_discipline.md) — "~하라고 해" 등 위임 동사는 반드시 hand-off. 점검 위임 시 3축(파일·OS 동작·실행 결과) 검증 의무 포함
- [PC 간 승인 설정 일관성](feedback_permissions_portability.md) — 일괄 승인은 `.claude/settings.json` 커밋으로만 PC 독립 보장. settings.local.json(.gitignore)은 PC 이동 시 소실

View File

@ -0,0 +1,50 @@
---
name: PC 간 승인 설정 일관성은 .claude/settings.json 커밋으로만 보장
description: PD님의 일괄 승인 원칙을 PC 간 일관되게 유지하려면 조직 공용 `.claude/settings.json`을 git 커밋해야 함. memory/org/의 "일괄 승인" 메모리는 행동 지침일 뿐 harness의 permission system과 분리되어 있음.
type: feedback
---
Claude Code의 승인 체계는 **2계층**으로 분리되어 있다:
1. **Harness permission (`.claude/settings.json`)** — Claude Code 런타임이 도구 실행 전에 참조하는 allow/deny 규칙. 없으면 매번 사용자에게 승인 요청.
2. **메모리 지침 (`memory/org/feedback_*.md`)** — Claude의 행동 기준. 사용자 승인 여부와 무관하게 Claude가 어떻게 판단·행동할지의 지침.
**두 계층은 독립적으로 동작한다.** 메모리에 "일괄 승인" 원칙이 있어도 settings.json이 없으면 harness가 매번 승인을 요구한다.
## PC 간 일관성
- `.claude/settings.json` — git 커밋 대상, 모든 PC에서 clone·pull로 자동 적용 ✅
- `.claude/settings.local.json``.gitignore` 대상, 세션별 개별 명령 누적 기록 ❌ PC 이동 시 소실
- `~/.claude/settings.json` — 사용자 홈 설정, PC마다 별도 관리 필요
**결론**: 조직 공용 permission은 반드시 `.claude/settings.json`(프로젝트 루트)에 선언·커밋해야 PC 독립성이 보장된다.
## 권장 구성
```json
{
"permissions": {
"allow": ["Edit", "Write", "MultiEdit", "TodoWrite", "Bash(git:*)", ...],
"deny": ["Bash(rm -rf /*)", "Bash(sudo:*)", ...]
}
}
```
- 포괄 허용: Edit·Write·MultiEdit·NotebookEdit·TodoWrite·Read·Glob·Grep
- 안전 Bash: git·gh·ls·cat·find·grep·mkdir·cp·mv·powershell 등
- 위험 deny: rm -rf /·rm -rf ~·sudo·dd·mkfs·포크 봄·/etc /System C:/Windows 쓰기
## 적용 타이밍
`.claude/settings.json` 변경은 **세션 재시작 후 적용**된다. PD님께 사전 고지 필수 (`feedback_session_restart.md` 원칙).
## Why
2026-04-15 PD님이 새 PC에서 "md 파일 수정 시 매번 승인 요구" 이슈 지적. 이전 PC에선 일괄 승인 상태였으나 새 PC에선 `.claude/settings.local.json`이 비어있어 개별 승인 요구 발생. 조직 레포에 `.claude/settings.json`이 커밋되어 있지 않아 PC 간 승인 설정이 독립적으로 관리되는 구조였음. 근본 해결을 위해 조직 공용 settings.json 신설·커밋.
## How to apply
- 새 PC 셋업 시 `.claude/settings.json`이 자동 로드되므로 별도 셋업 불필요
- 조직 공통 허용 규칙 변경은 본 파일을 편집·커밋
- PC 고유의 임시·실험적 허용은 `.claude/settings.local.json`에 추가 (자동 누적)
- settings.json 변경 후 **세션 재시작**으로 반영