Imported from b3rys/b3rys-team-os (
skills/b3os-project-mgmt/SKILL.md). Install upstream withnpx skills add b3rys/b3rys-team-os --skill b3os-project-mgmt. Copyright stays with the author.
b3os-project-mgmt — 프로젝트 관리·보고
언제 작동?
- 팀장 요구가 ★여러 번 쌓이는 일★ — 앱·서비스·긴 기능. 단발 리서치·프로토는 대상 아님 (그건
b3os-task-loop카드 하나로 충분). - "목록으로 관리해" · "정리해서 보내봐" · "다 처리했어?" · "지금까지 나온 말로 정리하자".
- 킥오프 · 마일스톤 · 배포본 전달 · 다른 팀원에게 인계.
정본은 둘, 뷰는 여럿
| 무엇 | 정본 | 어디 |
|---|---|---|
| 팀장 지시·결함·킵 목록 | TODO.md |
★프로젝트 저장소 루트★ (git 동기화) |
| 과제 상태 (plan/doing/done) | 칸반 task 카드 |
team.db (b3os-task-loop) |
| 채널 보고 | 위 둘에서 만든 ★뷰★ | 텔레그램·슬랙·팀버스 |
★같은 사실을 두 곳에 다른 값으로 적지 않는다.★ 보고문을 손으로 고쳐 쓰다 TODO.md 와 어긋나면 정본이 둘이 된다. 보고는 TODO.md 를 읽어 만든다.
처음부터 끝까지 — 단계와 산출물
| 단계 | 하는 일 | 산출물 (어디에) |
|---|---|---|
| 0 시작 | 팀장 한 마디로 시작. 담당(PM) 정함. 저장소(없으면 새로) + 네 문서 뼈대 README(무엇·왜)·DESIGN(구조·다이어그램)·FEATURES(되는 것)·TODO(할 일·상태). 팀서버 projects.json 에 한 줄 등록 → Projects 탭에 뜬다. 칸반 카드 1장 [id] 프로젝트 — 지금 과제. 에이전트 팀 설계(references/agent-team-by-domain.md). 구조 가드는 아래 "구조 가드" 기준으로 |
저장소 4문서 · projects.json 1줄 · 칸반 카드 · .claude/agents/ |
| 1 요구 | 팀장 메시지 하나 = TODO 항목 하나 이상(요지·시각·사진). 킵은 📌 킵 절, 착수 안 함. 방향이 바뀌면 지우지 않고 "HH:MM 뒤집음" |
TODO.md |
| 2 실행 | 10분 단위 마일스톤. 큰 과제면 칸반 카드 갱신(다음 액션·재개 시각·fallback). 하네스: 계약 → 모듈 병렬 → 통합 → 아키·검증 → 게이트 → 배포/공증. 긴 작업은 30분 단위로 진행 두 줄(마일스톤·지연·막힘이 없으면 생략) — 보고를 빚진 긴 작업은 expect-report 등록 | PR(리뷰·머지 게이트) · 검증 근거 폴더(docs/acceptance — 기능별 케이스 ↔ 검사 파일 매핑과 인수 매니페스트) · 카드 description |
| 3 산출물 자리 | 코드·문서 = 저장소 / 상태 = TODO [~][ ][x] + 칸반 lane / 검증 근거 = 저장소의 검증 근거 폴더(예: docs/acceptance) / 리서치·발표 = /reports / 화면 = Projects 탭이 저장소 md 를 자동으로 보여 준다 — 프로젝트 상태 보고서를 따로 만들지 않는다. 기능이 바뀌면 FEATURES, 구조가 바뀌면 DESIGN, 작업 근거는 TODO |
저장소 · Projects 탭(뷰) |
| 4 닫기 | TODO [x] + 카드 done + FEATURES 반영 + 배포/공증 링크. 배운 규칙은 스킬에, 실수는 메모리·SHARED.md 에(저장소엔 안 남김) |
스킬 PR · SHARED.md |
Projects 탭(docs/PROJECTS_TAB.md)이 TODO 의 [~] 를 "진행중" 으로 센다 — ★끝난 항목을 [~] 로 두면 탭 숫자가 거짓이 된다.★ 상태는 바뀌는 순간 갱신한다.
목록 규율 — 팀장이 말한 것은 ★전부★ 들어간다
- 팀장 메시지 하나 = 항목 하나 이상. 지시의 ★요지를 그대로★ 적고 시각(KST)·메시지 id·사진 경로를 단다. 요약만 남기면 나중에 "이게 무슨 얘기야" 가 된다. (TODO.md 는 프로젝트 저장소 안에 있으므로 그 저장소의 공개 여부에 따라 인용 수위를 맞춘다 —
b3os-github-workflow.) - 상태는 셋 —
[ ]미착수 ·[~]진행중 ·[x]완료. 상태가 바뀌는 ★그 순간★ 갱신한다. 세션 끝에 몰아서 하지 않는다. - 팀장이 "킵" 이라 하면
📌 킵섹션에 넣고 ★착수하지 않는다.★ 설계 논의가 나와도 착수 지시가 아니다. - 팀장이 방향을 바꾸면 옛 항목을 지우지 말고 ★"HH:MM 에 뒤집음"★ 을 달아 둔다.
- 내가 찾은 결함도 같은 목록에 ★"<담당> 이 찾음"★ 표시로 넣는다. 팀장 것과 섞이면 누가 시켰는지 잃는다.
- 내가 틀린 것은 ★저장소가 아니라 메모리(개인)·SHARED.md(팀 학습)에★ 적는다. 회고는 저장소에 남기지 않는다.
TODO.md 모양 (프로젝트 저장소)
# <프로젝트> — 작업 트래커
`[x]` 완료 · `[~]` 진행중 · `[ ]` 미착수
## 🎯 지향점 · 목표
## 🧱 정해진 구조 · 상시 기준
## 🔄 팀장 피드백 (YYYY-MM-DD HH:MM KST) — <담당> 관리 ← 팀장 메시지 묶음마다 하나
- [ ] 항목 — 요지 · 사진 경로 · 원인(후보/확정) · 검증 기준
## 📌 킵 — 착수 안 함
## 🐛 별건 결함 — 검증 중 나온 것
## 🖐 팀장 손 검증 — 시험으로 못 재는 것
채널별 보고 포맷 — references/channel-formats.md 가 정본
| 채널 | 언제 | 모양 | 길이 |
|---|---|---|---|
| 텔레그램 1:1 · 정리 | "정리해서 보내봐" · 마일스톤 | ★상태별 구획(━━━) + 항목 앞 상태 아이콘 반복★ (아래) | 화면 두 번 스크롤 안 |
| 텔레그램 1:1 · todo 리스트 | "todo 리스트 줘" · 중간 목록 | ★[영역 — 버전] 머리 + 번호 이어 매김 + 줄 끝 — 상태 ✅★, 끝에 ❓ 결정 대기 |
한 화면~두 화면 |
| 텔레그램 1:1 · 진행 | 진행 알림 · 질문 답 | ★두 줄★ — 무엇 → 어디 → 다음 | 2~5줄 |
| 슬랙 | 팀 공지·인수인계 | b3os-slack-format |
그 스킬대로 |
| 팀버스 (팀원) | 위임·검토 결과 | [태그] 한 줄 결론 + 근거 — CLAUDE.md 핵심룰(member↔member = function call) 그대로 |
인사·감사 없음 |
| 저장소 (커밋·PR) | 병합 | b3os-github-workflow — 핵심 3~5줄 + 사실·인과만 |
회고·의견 없음 |
★텔레그램 정리 포맷★ — ★상태별 구획 + 항목 앞에 같은 상태 아이콘 반복.★ 실물은 references/channel-formats.md. 구획마다 다른 아이콘을 달면 읽기 어렵다는 반응, 아이콘을 다 빼면 원하는 모양이 아니라는 반응이 온다 (둘 다 실측).
✦ <프로젝트> 지금 상황입니다.
━━━━━━━━━━━━━━━━━━━━
🟥 ★고치는 중 · 우선순위 1★ (n)
━━━━━━━━━━━━━━━━━━━━
🟥 항목
🟥 항목
━━━━━━━━━━━━━━━━━━━━
✅ ★드린 앱에 있음★ (n)
━━━━━━━━━━━━━━━━━━━━
항목 · 항목 · 항목
━━━━━━━━━━━━━━━━━━━━
⚪ ★킵★ (n) / 👆 ★눌러봐 주셔야 하는 것★ (n)
★텔레그램 진행 알림★ — 두 줄. 상세는 PR 본문·TODO.md 에 있으니 다시 적지 않는다.
<무엇> → <어디에 올림/들어감>, <다음>.
도메인별 에이전트 팀 — references/agent-team-by-domain.md
프로젝트를 열 때 에이전트 팀을 설계하고(만드는 역할 N · 판정하는 역할 · 통합하는 역할 + 공통부 주인 1명), 진행 단계마다 관리한다(각도가 늘면 역할 추가, 한 역할이 두 일을 하면 분리, 병목이면 주인 이동, 단계 전환이면 재설계). 실사용 단계(신고·결정이 실시간으로 올 때)는 모듈 축 위에 역할 축(🐞 버그·🛠 구현·✅ 검증)을 얹고 지시는 한 번에 묶는다(§3). 역할 정의는 프로젝트 저장소 .claude/agents/ 에 파일로. 도메인 예시: 프로그램 개발 · 영상 · 콘텐츠 · 금융/제조 분석. 짜는 법의 정본은 b3os-harness-playbook.
보고 규율
- 위임 뒤 대기는
b3os-task-loop의 wait record(recheck_at·fallback·escalation_after)를 쓴다. 배달 성공은 일 시작이 아니다 — ★답장만이 신호★ 이고, 리듬을 넘기면 팀장에게 알린다. - "다 처리했어?" 에는 ★숫자로★ 답한다 — "21건 중 19건". 남은 것과 막힌 이유를 같이.
- 내가 못 잰 것은 ★"못 쟀다"★ 라고 쓴다. 통과로 세지 않는다. 팀장 손 검증 목록으로 넘긴다.
- 배포본을 줄 때는 ★눌러볼 것★ 목록을 같이 준다 — 내가 못 잰 자리가 곧 팀장이 볼 자리다.
PM 진행 점검 — 작업 단위(10분)마다
원칙: 규칙과 점검은 같이 간다. 이 스킬이 PM 이 프로젝트를 관리하는 규칙을 정하고, PM 이 그 규칙대로 하는지는 ★PM 밖의 점검 스케줄 잡★ 이 따로 잰다. PM 의 자기 점검만 믿지 않는다.
PM 은 보고를 기다리지 않고 ★실제로 움직이는지★ 를 작업 단위 주기로 잰다. 기본 단위가 10분이면 10분마다.
- 걸기: 세션을 열거나 다시 시작하면 바로 주기 점검을 건다(예: Claude 는
CronCreate로3,13,…,53 * * * *). 크론은 세션 한정이라 세션마다 다시 건다. - 재는 것: 가지별 마지막 커밋 시각(
git for-each-ref --sort=-committerdate) · 에이전트·팀원 상태(ListAgents 등) · 공유 자원 점유(앱 창·빌드 슬롯). 팀원의 보고가 아니라 ★커밋·산출물 시각★ 으로 본다. - 10분 움직임 없음 → 담당에게 한 줄 상태를 묻는다(무엇을 돌리는 중 / 무엇을 기다리는 중 / 막힘).
- 20분 움직임 없음(10분 물음에 답이 없거나, 담당이 말한 끝 시각이 지났을 때만 — 커밋 없이 도는 측정·출시 검사·빌드는 움직임으로 친다) → 넘겨받아 새 에이전트로 병렬 재배치하고, 원래 담당에게 "넘겨받음 · 미커밋분은 커밋해 sha 로" 를 알린다. 넘기기 전에 담당의 다른 가지에 이미 한 일이 없는지 먼저 찾는다(중복 작업 방지).
- 끝난 가지 → 기다리지 않고 바로 다음 단계(리뷰·통합·검사)로 넘긴다.
- 공유 자원 대기열(한 번에 하나만 쓰는 앱 창 등)은 PM 이 순서를 정하고, 앞 차례가 멈추면 같은 규칙으로 다음에 넘긴다.
- 바뀐 게 없으면 PM 세션(터미널)에 한 줄만 남긴다 — 팀장·팀원에게 보내지 않는다.
PM 점검 잡(PM 이 잘 하는지): 프로젝트를 열 때 PM 은 b3os-scheduler 로 durable 잡을 같이 건다(세션 cron 은 PM 세션이 죽으면 같이 죽으므로 이것은 안 된다).
- 주기: 진행 중엔 30분 간격 정도(작업 단위의 3배). 프로젝트를 닫으면 끈다.
- 재는 것: PM 세션 점검이 실제로 돌았는지(마지막 점검 기록 시각) · 20분 넘게 움직임 없는 가지·카드가 넘겨받기 없이 남았는지 · 끝난 가지가 다음 단계로 안 넘어간 채 남았는지.
- 어긋나면: PM 에게 먼저 알리고, 한 주기 뒤에도 그대로면 팀장에게 알린다. 잡은 PM 이 아닌 쪽(시스템 발신)이 알린다.
구조 가드 — 미리 쌓지 말고, 사이드 이펙트가 보이면 나눈다
기준은 줄 수가 아니다. 한 클래스·함수가 일을 여럿 떠안아 하나를 고칠 때 다른 것이 깨지는지가 기준이다. 기능이 적을 때 처음부터 층을 나누지 않는다. 정본은 b3os-ai-code-safety Phase 1.
- 주 기준: 여러 구역이 같은 값을 직접 쓰는 수. 늘면 테스트 실패, 목표는 값마다 입구 하나.
- 주 기준: 한 구역을 깨뜨린 뮤턴트가 다른 구역 테스트를 깨뜨리면 그 자리가 나눌 곳.
- 한 상태를 필드 셋 이상의 조합으로 판단하게 되면 상태 하나 + 전이표(
reduce)로. - 파일·함수 줄 수는 신호로만 보고한다(실패시키지 않는다).
검증 규율
프로젝트 PR 검증은 b3os-ai-code-safety 를 따른다 (뮤턴트 · 양쪽 재기 · 화면은 사진에서 · 소스 진단은 재현 전까지 후보). 증명 방법·래칫·검사가 틀렸을 때의 분류·한 번에 도는 러너는 b3os-verification. 병합 메시지에는 ★잰 것 · 안 잰 것★ 을 적는다. 틀린 것은 메모리·SHARED.md 로.
인계 (다른 팀원에게 넘길 때) — 4줄
지시 요지 · 진행 여부 · 저장소·브랜치 기준점 · 범위. 하나라도 빠지면 받는 쪽이 멈추거나 엉뚱한 데서 일한다. 브랜치 기준점을 안 주면 앞 수정을 조용히 되돌린다.
관련
b3os-task-loop(카드·대기) · b3os-slack-format(슬랙) · b3os-github-workflow(저장소 글) · b3os-how-to-explain(설명) · b3os-team-inbox(버스) · b3os-ai-code-safety(검증) · b3os-harness-playbook(병렬)
