planning-with-filescommit a13b6be · v3.27.0SKILL.md · 작업 분해
파일 기반 계획
디스크의 task_plan.md, findings.md, progress.md로 여러 단계의 작업을 관리하고 중단 후에도 이어갈 수 있습니다.
여러 라이프사이클 훅을 등록합니다. session-catchup.py는 같은 프로젝트의 로컬 세션 기록을 읽을 수 있으며, --replay 발췌는 사용자의 명시적 동의가 필요합니다.
npx skills add OthmanAdi/planning-with-files --skill planning-with-files명령을 선택했습니다. 직접 복사하세요.
- 권한
- read-repo
- write-files
- shell
- network
- 호환 도구
- Claude Code, Codex, Cursor, Copilot, OpenCode
- GitHub
- 27.8k
- 출처
- 커뮤니티 · Ahmad Othman Ammar Adi
- 상태
- 스캔 통과
- 라이선스
- MIT
- 카테고리
- 작업 분해
핵심 규칙
복잡한 작업은 반드시 task_plan.md를 먼저 만들고, 결정 전에 계획을 다시 읽습니다.
실행 단계
01단계상태 복원
기존 계획을 찾아 재사용하고, 새 작업은 초기화 스크립트로 계획 파일을 만들며 기존 파일은 덮어쓰지 않습니다.
02단계읽고 나서 결정
결정 전에 계획을 다시 읽고, 두 번 행동할 때마다 발견 사항을 findings.md에 씁니다.
03단계행동 후 갱신
각 단계가 끝나면 progress.md와 계획의 '다음 단계'를 갱신하고 모든 오류를 기록합니다.
04단계실패 반복 금지
3회 오류 규칙에 따라 방법을 바꾸고 같은 실패는 다시 시도하지 않습니다.
권한 설명 (SKILL.md 기준)
| 기능 | 필요 여부 | 설명 |
|---|---|---|
| 파일 쓰기 | 필요 | 프로젝트 안에서 계획·발견·진행 파일을 만들고 갱신하며 기존 계획 파일은 덮어쓰지 않습니다. |
| 명령 실행 | 일부 필요 | 포함된 shell/PowerShell 스크립트를 실행하고 프롬프트 제출, 도구 사용, 중지, 압축 시 동작하는 훅을 등록하며, Markdown에 적힌 명령은 실행하지 않습니다. |
| 네트워크 송신 | 필요 없음 | 스킬에는 네트워크 업로드 경로가 없습니다. |
SKILL.md 프런트매터(YAML)
---
name: planning-with-files
description: "Persistent file-based planning for multi-step AI-agent work. Keeps task_plan.md, findings.md, and progress.md on disk; lifecycle hooks inject selected project planning context. Automatic recovery reads project planning files only. Explicit session-catchup.py --metadata reads same-project local agent session records and emits aggregate counts only; --replay may emit bounded nonce-framed excerpts. Optional gated mode can request continuation only when the host supports it and never runs commands declared in Markdown. The skill has no network upload path. Use for research or work needing 5+ tool calls."
user-invocable: true
allowed-tools: "Read Write Edit Bash Glob Grep"
hooks:
UserPromptSubmit:
- hooks:
- type: command
command: "[ -n \"${CLAUDE_PLUGIN_ROOT:-}\" ] && exit 0; SH=\"${CLAUDE_SKILL_DIR}/scripts/skill-hook.sh\"; [ -f \"$SH\" ] || SH=$(ls \"$HOME/.claude/skills/planning-with-files/scripts/skill-hook.sh\" \"$HOME/.claude/plugins/marketplaces/planning-with-files/scripts/skill-hook.sh\" 2>/dev/null | head -1); [ -n \"$SH\" ] && [ -f \"$SH\" ] && sh \"$SH\" --event=userprompt; exit 0"
PreToolUse:
- matcher: "Write|Edit|Bash|Read|Glob|Grep"
hooks:
- type: command
command: "[ -n \"${CLAUDE_PLUGIN_ROOT:-}\" ] && exit 0; SH=\"${CLAUDE_SKILL_DIR}/scripts/skill-hook.sh\"; [ -f \"$SH\" ] || SH=$(ls \"$HOME/.claude/skills/planning-with-files/scripts/skill-hook.sh\" \"$HOME/.claude/plugins/marketplaces/planning-with-files/scripts/skill-hook.sh\" 2>/dev/null | head -1); [ -n \"$SH\" ] && [ -f \"$SH\" ] && sh \"$SH\" --event=pretool; exit 0"
PostToolUse:
- matcher: "Write|Edit"
hooks:
- type: command
command: "[ -n \"${CLAUDE_PLUGIN_ROOT:-}\" ] && exit 0; SH=\"${CLAUDE_SKILL_DIR}/scripts/skill-hook.sh\"; [ -f \"$SH\" ] || SH=$(ls \"$HOME/.claude/skills/planning-with-files/scripts/skill-hook.sh\" \"$HOME/.claude/plugins/marketplaces/planning-with-files/scripts/skill-hook.sh\" 2>/dev/null | head -1); [ -n \"$SH\" ] && [ -f \"$SH\" ] && sh \"$SH\" --event=posttool; exit 0"
Stop:
- hooks:
- type: command
command: "[ -n \"${CLAUDE_PLUGIN_ROOT:-}\" ] && exit 0; SH=\"${CLAUDE_SKILL_DIR}/scripts/skill-hook.sh\"; [ -f \"$SH\" ] || SH=$(ls \"$HOME/.claude/skills/planning-with-files/scripts/skill-hook.sh\" \"$HOME/.claude/plugins/marketplaces/planning-with-files/scripts/skill-hook.sh\" 2>/dev/null | head -1); [ -n \"$SH\" ] && [ -f \"$SH\" ] && sh \"$SH\" --event=stop; exit 0"
PreCompact:
- matcher: "*"
hooks:
- type: command
command: "[ -n \"${CLAUDE_PLUGIN_ROOT:-}\" ] && exit 0; SH=\"${CLAUDE_SKILL_DIR}/scripts/skill-hook.sh\"; [ -f \"$SH\" ] || SH=$(ls \"$HOME/.claude/skills/planning-with-files/scripts/skill-hook.sh\" \"$HOME/.claude/plugins/marketplaces/planning-with-files/scripts/skill-hook.sh\" 2>/dev/null | head -1); [ -n \"$SH\" ] && [ -f \"$SH\" ] && sh \"$SH\" --event=precompact; exit 0"
metadata:
version: "3.27.0"
---관련 스킬
규칙 스캔으로 모든 위험을 찾을 수는 없습니다. 설치 전에 이 스킬의 SKILL.md를 읽고 권한을 확인하세요.