Agent skill

task-progress

개발자 업무 진행도 추적 및 자동화 (Supabase DB 기반). Use when (1) 할당된 이슈 진행 상황, (2) 현재 진행 상태 확인, (3) 워크플로우 단계 자동화.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/task-progress

SKILL.md

시스템 메시지: 이 Skill이 호출되면 [SEMO] Skill: task-progress 호출 - #{이슈번호} 시스템 메시지를 첫 줄에 출력하세요.

task-progress Skill

개발자 업무 진행도를 체크리스트 형태로 표시하고 자동 진행 지원 (Supabase DB 기반)

🔴 데이터 소스 변경 (v2.0.0)

버전 데이터 소스 방식
v1.x GitHub Projects GraphQL API
v2.0 Supabase issues + issue_status_history 조회

트리거

  • /SEMO:task-progress 명령어
  • "어디까지 했어", "현황", "체크리스트", "진행도" 키워드
  • 이슈 번호 제공 시 orchestrator가 자동 호출

개발자 전체 프로세스

text
1. 업무할당 (backlog → todo)
2. 상태 변경 (todo → in_progress)
3. dev 브랜치에서 Spec 작성 (spec.md, plan.md, tasks.md)
4. Spec 커밋 & 푸시 (원격에 Spec 공유)
5. Feature 브랜치 생성 (Spec 완료 후)
6. Draft PR 생성
7. 실제 코드 구현 (ADD Phase 4)
8. 테스트코드 작성 및 테스트 진행
9. 린트 및 빌드 통과
10. 푸시 및 리뷰 요청 (in_progress → review)
11. PR 승인 및 dev 머지 (review → testing)
12. STG 환경 QA 테스트 (testing → done)

상태 흐름

text
backlog → todo → in_progress → review → testing → done
                      ↓           ↑
                  확인요청      수정요청

Workflow

Step 1: 이슈 현재 상태 조회

sql
-- 이슈 상세 정보 조회
SELECT
  i.number,
  i.title,
  i.type,
  i.status,
  i.state,
  i.labels,
  i.estimation_point,
  ap.name AS assignee_name,
  TO_CHAR(i.created_at, 'YYYY-MM-DD') AS created_at,
  TO_CHAR(i.updated_at, 'YYYY-MM-DD') AS updated_at
FROM issues i
LEFT JOIN agent_personas ap ON i.assignee_id = ap.id
WHERE i.number = 123
  AND i.office_id = '{office_uuid}';

Step 2: 상태 변경 이력 조회

sql
-- 상태 변경 히스토리 조회
SELECT
  ish.from_status,
  ish.to_status,
  TO_CHAR(ish.changed_at, 'YYYY-MM-DD HH24:MI') AS changed_at,
  ap.name AS changed_by
FROM issue_status_history ish
LEFT JOIN agent_personas ap ON ish.changed_by = ap.id
WHERE ish.issue_id = (
  SELECT id FROM issues WHERE number = 123
)
ORDER BY ish.changed_at DESC;

Step 3: 진행도 체크리스트 생성

typescript
// Supabase로 조회
const { data: issue, error } = await supabase
  .from('issues')
  .select(`
    number, title, status, body,
    assignee:agent_personas(name)
  `)
  .eq('number', 123)
  .eq('office_id', officeId)
  .single();

// 상태별 체크리스트 생성
const checklist = generateChecklist(issue.status);

Quick Checks

Step Command
브랜치 git branch --show-current
PR 확인 gh pr list --head {branch} --json number,isDraft
린트 npm run lint
타입체크 npx tsc --noEmit
미푸시 확인 git log origin/{branch}..HEAD --oneline

Output Format

markdown
[SEMO] Skill: task-progress 호출 - #123

## 📋 작업 진행 현황: #123

### 이슈 정보

| 항목 | 내용 |
|------|------|
| **제목** | 로그인 페이지 구현 |
| **유형** | feature |
| **상태** | in_progress |
| **담당자** | @reus |
| **작업량** | 4 points |

### 진행도 체크리스트

- [x] 1. 업무 할당
- [x] 2. 상태 변경 (todo → in_progress)
- [x] 3. Spec 작성
- [x] 4. Feature 브랜치 생성
- [x] 5. Draft PR 생성
- [ ] 6. 코드 구현
- [ ] 7. 테스트 작성
- [ ] 8. 린트/빌드 통과
- [ ] 9. 리뷰 요청
- [ ] 10. PR 머지

### 상태 변경 이력

| 시간 | 변경 | 변경자 |
|------|------|--------|
| 2025-01-10 14:30 | todo → in_progress | @reus |
| 2025-01-10 10:00 | backlog → todo | @pm |

### 다음 단계

🎯 **현재 단계**: 코드 구현
📌 **권장 액션**: `skill:write-code` 호출

[SEMO] Skill: task-progress 완료

자동 상태 변경

리뷰 요청 시 (Step 9)

PR Ready 상태가 되면 자동으로 상태를 "review"로 변경:

sql
-- 상태를 review로 변경
SELECT * FROM update_issue_status(
  123,
  '{office_uuid}'::uuid,
  'review',
  '{actor_uuid}'::uuid
);
markdown
[SEMO] Skill: task-progress → 상태 자동 변경

📋 **이슈**: #123
🔀 **PR**: #150 Ready for Review
🔄 **상태 변경**: in_progress → **review**

✅ 상태 변경 완료

Error Handling

이슈 미발견

markdown
❌ #123 이슈를 찾을 수 없습니다.

확인사항:
- 이슈 번호가 올바른가요?
- Office ID가 올바른가요?

상태 이력 없음

markdown
⚠️ #123의 상태 변경 이력이 없습니다.

아직 상태가 변경된 적이 없는 새 이슈입니다.
현재 상태: backlog

GitHub Projects Fallback

Supabase 연결이 불가능한 경우:

bash
# Fallback: GitHub Projects GraphQL로 상태 조회
gh api graphql -f query='
  query {
    repository(owner: "semicolon-devteam", name: "semo") {
      issue(number: 123) {
        projectItems(first: 1) {
          nodes {
            fieldValueByName(name: "Status") {
              ... on ProjectV2ItemFieldSingleSelectValue {
                name
              }
            }
          }
        }
      }
    }
  }
'

Related Skills

References

Didn't find tool you were looking for?

Be as detailed as possible for better results