From workbench
Use when the user asks to submit, wrap up, or extract from a task, or when work has reached a point to open a PR.
How this skill is triggered — by the user, by Claude, or both
Slash command
/workbench:task-submitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
사용: `/task-submit` — **반드시 task 작업 공간(`.worktrees/` 하위) 안에서
사용: /task-submit — 반드시 task 작업 공간(.worktrees/ 하위) 안에서
실행돼야 한다. AGENTS.md의 추출 기준과 위키 규칙을 따른다. 절차:
불변식 검사 (백스톱): workbench task check 를 실행한다. 위반(exit 1)이면
먼저 해소한 뒤 제출을 진행한다 — 훅이 다 없어도 제출은 검사를 통과해야 한다.
task 전체를 읽는다: task/index.md, task/log.md, task/status.md,
task/docs/* — 이 task가 무엇을 했고 무엇을 배웠는지 파악한다.
증분 후보 식별·분류 (판단, 아무것도 쓰지 않는다): task harvest와 task
중 생긴 워크벤치 자체 개선(utils/, 스키마 등)을 AGENTS.md 추출 기준으로
훑어 후보를 세 버킷으로 나눈다. 이 단계에서 docs/·AGENTS.md·skills/
를 수정하지 않는다 — 분류만 한다.
AGENTS.md, README.md, skills/, .agents/skills,
.claude/skills, .codex/, .worktrees/, .codebases/, .gitignore처럼
에이전트 지침·스킬 탐색·도구 상태·작업 공간 탐색성에 영향을 주면
audit-codex-support 스킬을 호출해 Codex 지원성 리스크를 점검하고, 그
결과를 후보 보고의 리스크나 후속 티켓 이관 후보에 반영한다.docs/로 살아남는지
보는 것과 별도로, 이 task에서 한 반복될 완결 절차가 스킬·runbook·utils로
졸업할 만한지 skill-harvest-recommender로 점검한다. 산출은 보통 이 PR의
증분이 아니라 후속 티켓이므로(스킬 제작은 ticket→task→PR을 따로 거친다),
찾은 후보는 "후속 티켓 이관" 버킷에 넣는다. 없으면 넘어간다 — 대부분의
task는 졸업할 절차가 없는 게 정상이다.후보 보고 + 승인 게이트 (사람 게이트): 아래 보고 형식대로 후보 목록과 추천을 보여주고 반드시 묻는다 — "이대로 흡수할까요? (그대로 진행 / 수정 지시 / 일부만)".
docs/·AGENTS.md·skills/ 등
main에 살아남을 어떤 파일도 수정하지 않는다. 흡수는 비가역에 준하는
결정이라 사람의 몫이다.gh issue create로
티켓 생성을 제안한다 (실행은 사용자 확인 후).docs/ 반영 (판단): 승인된 harvest(경로 A)만 대상으로 /docs-ingest
스킬을 호출해 docs/에 짜 넣는다. 호출 시 승인 범위를 명시해 ingest가 그
범위로 한정하게 한다. 경로 B(직접 커밋)는 이미 task 브랜치에 있으니
docs-ingest를 거치지 않는다. 승인되지 않은 후보는 반영하지 않는다.
추출 결과를 task 브랜치에 커밋한다.
불변식 재검사 (최종 백스톱): 추출 커밋 뒤 workbench task check 를 다시
실행한다. 위반(exit 1)이면 먼저 해소한다. workbench task submit도 cleanup 직전
같은 검사를 실행하므로, skill 절차와 배관이 같은 최종 경계를 공유한다.
PR 산문 작성 (판단): 제목과 본문을 작성한다. 본문은
.github/PULL_REQUEST_TEMPLATE.md의 5섹션 골격을 따른다 (--body-file로
넘기면 GitHub 템플릿이 무시되므로, 골격을 직접 반영한다). harvest PR이므로
각 섹션을 증분 관점으로 채운다 —
/tmp/pr-body-<ID>.md).배관 실행: workbench task submit --title "<제목>" --body-file <파일>
task-submitted lifecycle event를 남긴다. PR 생성 실패
시에는 submitted event를 남기지 않는다.사람 게이트: PR URL을 보여주고 반드시 묻는다 — "PR 머지를 기다릴까요, 아니면 작업 공간을 지금 정리할까요?"
/task-done <ID> 절차로 넘어간다./task-done).이 질문은 어떤 경우에도 생략하지 않는다:
후보를 버킷으로 나눠 아래 표로 보고한다. 특정 하네스 도구(선택지 UI 등)에 의존하지 않는 순수 마크다운으로 쓴다 — 에이전트 중립(어느 도구에서 실행돼도 같게 읽힌다). 승인은 사용자의 자유 응답으로 받는다.
흡수 추천은 처리 경로로 가른다 — A. docs-ingest weave(harvest:
decision/lesson/runbook은 docs-ingest가 docs/에 짜 넣는다)와 B. 직접 커밋
(skills/·AGENTS.md·utils/·.gitattributes 등은 이미 task 브랜치에 커밋돼 PR diff로
직행, docs-ingest 비대상). 4단계 docs-ingest는 A만 대상으로 한다.
## 증분 흡수 후보 보고
### ✅ 흡수 추천 — A. docs-ingest weave (harvest)
| 후보 | 유형 | 요지 | 이유 | 리스크 |
|---|---|---|---|---|
| <이름> | decision/lesson/runbook | <한줄> | <왜 올리나> | <있으면> |
### ✅ 흡수 추천 — B. 직접 커밋 (PR diff 직행, docs-ingest 비대상)
| 후보 | 유형 | 요지 | 이유 | 리스크 |
|---|---|---|---|---|
| <이름> | skills/AGENTS/utils/.gitattributes/스키마 | <한줄> | <왜 올리나> | <있으면> |
### ⏸ 흡수 비추천
| 후보 | 왜 안 올리나 |
|---|---|
| <이름> | <task 고유 맥락 / codebase 귀속 / 재도출 가능 등> |
### ➡ 후속 티켓 이관
| 후보 | 왜 별도 티켓 | 제안 제목 |
|---|---|---|
| <이름> | <이 task 범위 밖 / 더 큰 결정 필요 등> | <이슈 제목안> |
흡수 추천을 이대로 반영할까요? (그대로 진행 / 수정 지시 / 일부만)
audit-codex-support를 호출한 경우, 발견된 Codex 지원성 리스크나 "리스크 없음"
판단을 관련 후보의 리스크 칸 또는 별도 짧은 메모로 포함한다.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub yoogomja/workbench-kit --plugin workbench