/tc — 기술 변경 추적기
TC(Technical Change) 명령을 실행합니다. 인수: $ARGUMENTS.
$ARGUMENTS가 비어 있으면 이 메뉴를 출력하고 중단합니다:
/tc init 이 프로젝트에서 TC 추적 초기화
/tc create <name> 새 TC 레코드 생성
/tc update <tc-id> [...] 필드, 상태, 파일, 핸드오프 업데이트
/tc status [tc-id] 하나의 TC 또는 레지스트리 요약 표시
/tc resume <tc-id> 이전 세션에서 TC 재개
/tc close <tc-id> TC를 배포됨(deployed) 상태로 전환
/tc export 파생 아티팩트 재렌더링
/tc dashboard 레지스트리 요약 재렌더링
그렇지 않으면 $ARGUMENTS를 <subcommand> <rest>로 파싱하고 아래 일치하는 프로토콜로 전달합니다. 모든 스크립트는 engineering/tc-tracker/scripts/에 있습니다.
하위 명령어
init
- 실행:
python3 engineering/skills/tc-tracker/scripts/tc_init.py --root . --json - 상태가
already_initialized이면 현재 통계를 보고하고 중단합니다. - 그렇지 않으면 생성된 내용을 보고하고 다음 단계로
/tc create <name>을 제안합니다.
create <name>
<name>을 케밥-케이스 슬러그로 파싱합니다. 없으면 사용자에게 요청합니다.- 사용자에게 (한 번에 하나씩) 다음을 질문합니다:
- 제목 (5-120자)
- 범위:
feature | bugfix | refactor | infrastructure | documentation | hotfix | enhancement - 우선순위:
critical | high | medium | low(기본값medium) - 요약 (10자 이상)
- 동기
- 실행:
python3 engineering/skills/tc-tracker/scripts/tc_create.py --root . \ --name "<slug>" --title "<title>" --scope <scope> --priority <priority> \ --summary "<summary>" --motivation "<motivation>" --json - 새 TC ID와 레코드 경로를 보고합니다.
update <tc-id> [의도]
<tc-id>가 없으면tc_status.py --all로 활성 TC(상태in_progress또는blocked)를 나열하고 어떤 것인지 묻습니다.- 자연어로 사용자 의도를 파악합니다:
- 상태 변경 →
--set-status <state>와--reason "<이유>" - 파일 추가 → 하나 이상의
--add-file path:action - 테스트 추가 →
--add-test "<제목>" --test-procedure "<단계>" --test-expected "<결과>" - 핸드오프 업데이트 →
--handoff-progress,--handoff-next,--handoff-blocker,--handoff-context의 조합 - 노트 추가 →
--note "<텍스트>" - 태그 추가 →
--tag <태그>
- 상태 변경 →
- 실행:
python3 engineering/skills/tc-tracker/scripts/tc_update.py --root . --tc-id <tc-id> [플래그] --json - 종료 코드가 0이 아니면 오류를 그대로 표시합니다. 상태 머신과 검증기가 잘못된 이동을 거부합니다 — 맹목적으로 재시도하지 마십시오.
status [tc-id]
<tc-id>가 제공된 경우:python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --tc-id <tc-id>- 그렇지 않은 경우:
python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --all
resume <tc-id>
- 실행:
python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --tc-id <tc-id> --json - 핸드오프 블록을 눈에 띄게 표시합니다:
progress_summary,next_steps(번호 있음),blockers,key_context. - 질문: "를 재개하고 다음 단계 1부터 시작하시겠습니까? (y/n)"
- '예'인 경우 재개를 기록하도록 업데이트를 실행합니다:
python3 engineering/skills/tc-tracker/scripts/tc_update.py --root . --tc-id <tc-id> \ --note "세션 재개됨" --reason "세션 핸드오프" next_steps의 첫 번째 항목을 실행하기 시작합니다. 컨텍스트를 재유추하지 마십시오 — 핸드오프를 신뢰하십시오.
close <tc-id>
tc_status.py --tc-id <tc-id> --json을 통해 레코드를 읽습니다.- 현재 상태가
tested인지 확인합니다. 그렇지 않으면 거부하고 사용자에게 필요한 전환이 무엇인지 알려줍니다. test_cases확인:pending,fail, 또는blocked인 경우 경고합니다.- 사용자에게 묻습니다:
- "누가 승인합니까? (귀하의 이름 또는 'self')"
- "승인 노트 (선택 사항):"
- "테스트 커버리지 상태: none / partial / full"
- 실행:
그런 다음 스크립트 버전이 지원하는 경우 후속 업데이트를 통해python3 engineering/skills/tc-tracker/scripts/tc_update.py --root . --tc-id <tc-id> \ --set-status deployed --reason "승인자: <approver>" --note "승인: <approver> — <notes>"approval블록을 직접 편집합니다. 그렇지 않으면 사용자에게notes에 승인을 기록하도록 지시합니다. - 보고: "TC-NNN이 종료되어 배포되었습니다."
export
이 스킬에는 자동 HTML 내보내기가 없습니다. 대신 모든 것을 재검증합니다:
- 레지스트리를 읽습니다.
- 각 레코드에 대해 다음을 실행합니다:
python3 engineering/skills/tc-tracker/scripts/tc_validator.py --record <path> --json - 실행:
python3 engineering/skills/tc-tracker/scripts/tc_validator.py --registry docs/TC/tc_registry.json --json - 보고: 검증된 총 레코드 수, 오류, 잘못된 항목의 경로.
dashboard
모든 레코드 요약을 실행합니다:
python3 engineering/skills/tc-tracker/scripts/tc_status.py --root . --all
철칙
- 절대
tc_record.json을 직접 편집하지 마십시오. 항상tc_update.py를 사용하여 수정 내역이 추가되고 검증이 실행되도록 하십시오. - 절대 상태 머신을 건너뛰지 마십시오. 중복되더라도 상태를 순서대로 진행하십시오.
- 절대 TC를 삭제하지 마십시오. 기록은 추가 전용입니다 — 최종 수정본을 추가하고
[CANCELLED]태그를 붙이십시오. - 백그라운드 기록 유지. 작업 중간에 백그라운드 서브 에이전트를 생성하여 TC를 업데이트하십시오. 코드 작성을 중단하고 서류 작업을 하지 마십시오.
- 성공을 보고하기 전에 검증하십시오. 스크립트가 0이 아닌 코드로 종료되면 오류를 표시하고 중단하십시오.
관련 스킬
engineering/tc-tracker— 스키마 참조, 라이프사이클 다이어그램 및 핸드오프 형식이 포함된 전체 SKILL.md.engineering/changelog-generator— TC 추적기와 함께 사용: 변경별 감사 추적을 위한 TC, 사용자 대상 릴리스 노트를 위한 체인지로그.engineering/tech-debt-tracker— 개별 코드 변경이 아닌 장기 기술 부채 추적용.