개발자: 지속적 이슈 추적
트리거
모든 중요한 코딩 이터레이션의 끝 또는 사용자가 명시적으로 요청할 때 실행합니다. 작업 중간에는 실행하지 말고 자연스러운 중단 지점을 기다리세요.
이 스킬은 세션 시작 시 기본적으로 로드됩니다. 안전하고 비파괴적이며 knowledge/issues/open/ 및 knowledge/issues/INDEX.md에만 기록합니다.
알고리즘
1단계 — 현재 채팅 스캔
현재 대화에서 다음 신호 유형을 검토합니다.
| 신호 | 예시 | 우선순위 |
|---|---|---|
| 수정된 오류 | "PowerShell이 {{ }}를 잘못 해석했습니다", "ngx-translate v18에 forRoot()가 없습니다" | 높음 |
| API 발견 | "linkedSignal은 Node ≥22가 필요합니다", "Angular 22에서 provideZonelessChangeDetection()이 안정적입니다" | 높음 |
| 찾은 해결 방법 | "템플릿의 경우 Set-Content 대신 create_file을 사용하세요" | 중간 |
| 반복된 패턴 | 이 세션에서만 동일한 오류가 2회 이상 발생했습니다 | 높음 |
| 프로젝트 특성 | "이 모노레포는 npm 워크스페이스를 사용합니다", ".gitignore가 .github/를 제외합니다" | 중간 |
| 도구 제한 사항 | "Copilot이 usage.prompt_tokens를 직접 노출하지 않습니다" | 낮음 |
| 사용자 선호도 | "&&가 아닌 ;로 명령어를 구분하는 것을 선호합니다" | 중간 |
2단계 — 이슈 레지스트리와 교차 참조
knowledge/issues/INDEX.md를 읽습니다 — 모든 기존 이슈 ID, 제목, 카테고리를 가져옵니다.- 1단계의 각 신호에 대해 기존 이슈와 일치하는지 시도합니다:
- 키워드 중복(제목 + 설명)으로 일치
- 카테고리 + 유사한 오류 패턴으로 일치
grep_search를 사용하여knowledge/issues/open/에서 관련 내용 검색
3단계 — 이슈 생성 또는 업데이트
새 이슈 (일치하는 항목 없음)
ID 생성: ISSUE-YYYYMMDD-XXXX (여기서 XXXX = UUID의 처음 4자리 16진수)
PowerShell: [guid]::NewGuid().ToString().Substring(0, 4)
예시: ISSUE-20260624-a1b2
TEMPLATE.md를 사용하여 knowledge/issues/open/ISSUE-YYYYMMDD-XXXX.md 생성
occurrences=1, certainty=low, status=open 설정
created_by를 "developer"(또는 현재 에이전트 식별자)로 설정
INDEX.md → 열린 이슈 테이블에 새 행 삽입
세션 토큰 데이터가 있으면 증거 섹션에 선택적으로 추가
ID는 UUID 기반이므로 INDEX.md를 먼저 읽을 필요가 없습니다. 여러 개발자가 동시에 작업할 때 충돌 위험이 없습니다.
기존 이슈 업데이트 (일치하는 항목 발견)
발생 횟수(occurrences)를 1 증가
last_seen을 오늘 날짜로 업데이트
현재 세션 정보를 sessions 배열에 추가
확실성(certainty) 재평가:
- 1회 발생 → low
- 2회 발생 → medium
- 3회 이상 발생 → high
replace_string_in_file을 사용하여 open/의 이슈 파일 업데이트
INDEX.md의 개수 및 행 데이터 업데이트
INDEX.md 병합 충돌
두 개발자가 동시에 INDEX.md에 행을 추가하면 Git 병합 충돌이 테이블 본문에서 발생할 수 있습니다. 해결 방법: 두 브랜치의 모든 행을 유지하고 요약 숫자를 업데이트하기 위해 디렉토리를 다시 계산합니다.
보고서
요약 테이블을 출력합니다:
## 개발자 보고서 — YYYY-MM-DD
| 작업 | ID | 제목 | 카테고리 | 세부 내용 |
|--------|----|-------|----------|--------|
| 🆕 새로 생성됨 | ISSUE-001 | ... | ... | open/에 생성됨 |
| 📈 업데이트됨 | ISSUE-002 | ... | ... | 1→2회 발생, 확실성 low→medium |
중요한 규칙
-
이슈를 승격하지 마십시오. 승격은
ai-engineer스킬의 책임입니다. 당신의 유일한 출력은open/의 이슈 파일과INDEX.md업데이트입니다. -
스킬이나 메모리 파일을 수정하지 마십시오. 당신은
.github/skills/및/memories/의 읽기 전용 관찰자입니다. 이들을 건드리지 마십시오. -
모델이 이미 알고 있는 내용에 대해 스킬을 생성하지 마십시오. (예: "
var대신const를 사용하세요"와 같은 상식) 해당 내용은 완전히 건너뛰십시오. -
이슈 파일을 간결하게 유지하십시오. TEMPLATE.md 형식이 최대이며 최소가 아닙니다. 에세이를 쓰지 마십시오.
-
세션 격리. 머리말의
sessions배열은 세션 UUID를 저장합니다.session_store_sql을 사용하여 사용 가능한 경우 현재 세션 UUID를 찾고, 그렇지 않으면 날짜 기반 식별자를 사용하십시오. -
항상
created_by를 채우십시오. 에이전트 이름 또는 세션 식별자로 설정하여ai-engineer가 검토 중에 이슈 출처를 추적할 수 있도록 하십시오.
AI 엔지니어에게 전달
이슈가 확실성: 높음(3회 이상 발생)에 도달하면 ai-engineer 스킬이 승격을 처리합니다. developer 스킬은 무엇을 승격할지 또는 어디로 할지 결정하지 않습니다. 신호 강도만 기록합니다. 사용자가 지식을 정리하거나 이슈를 정리하거나 패턴을 승격하도록 요청할 때 하위 에이전트로 ai-engineer 스킬을 실행하십시오.
파일 경로 참조
| 리소스 | 경로 |
|---|---|
| 이슈 레지스트리 인덱스 | knowledge/issues/INDEX.md |
| 이슈 템플릿 | knowledge/issues/TEMPLATE.md |
| 열린 이슈 | knowledge/issues/open/ISSUE-XXX.md |
| 승격된 이슈 | knowledge/issues/promoted/ISSUE-XXX.md |
| 폐기된 이슈 | knowledge/issues/discarded/ISSUE-XXX.md |