Squashed '.vendor/myagent-kit/' content from commit 3e45f3f
git-subtree-dir: .vendor/myagent-kit git-subtree-split: 3e45f3fb102e71d5127366f2fc675eaadc3927da
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
---
|
||||
name: "Implementation From Approved Requirement"
|
||||
about: "Create an implementation issue from an Approved SRS requirement"
|
||||
title: "[REQ-XXX] Implement <short title>"
|
||||
labels: ["implementation", "requirement"]
|
||||
assignees: []
|
||||
---
|
||||
|
||||
<!-- 기본 작성 언어는 한국어로 유지하고, 중요한 technical term는 영어 원문을 유지하거나 괄호로 병기한다. -->
|
||||
|
||||
## 배경 (Context)
|
||||
- Requirement ID:
|
||||
- Requirement Link:
|
||||
- Status Check: Approved
|
||||
|
||||
## 범위 (Scope)
|
||||
- In Scope:
|
||||
- Out of Scope:
|
||||
|
||||
## 구현 전 설계검토 체크리스트 (Pre-Implementation Design Review)
|
||||
- [ ] Architecture approach is documented and agreed
|
||||
- [ ] Public interface/API contract changes are identified
|
||||
- [ ] Data model/schema impact is reviewed
|
||||
- [ ] Error handling and fallback strategy is defined
|
||||
- [ ] Security/privacy impact is reviewed
|
||||
- [ ] Performance/scalability impact is reviewed
|
||||
- [ ] Test strategy (unit/integration/e2e/manual) is defined
|
||||
- [ ] Rollback or feature-flag strategy is defined when needed
|
||||
- [ ] Unknowns, assumptions, and decision owners are recorded
|
||||
- [ ] Human review sign-off completed (or `No additional design review required.`)
|
||||
|
||||
### 설계 결정 요약 (Design Decisions)
|
||||
- Decision 1:
|
||||
- Decision 2:
|
||||
|
||||
### 미해결 항목 / 가정 (Open Items / Assumptions)
|
||||
-
|
||||
|
||||
## AI Agent 작업 (AI Agent Work)
|
||||
- [ ] Code change task 1
|
||||
- [ ] Code change task 2
|
||||
- [ ] Automated validation task
|
||||
|
||||
## 사람 작업 (Human Work)
|
||||
- [ ] Approve scope or open questions
|
||||
- [ ] Perform required manual verification
|
||||
|
||||
## Acceptance Criteria Mapping
|
||||
- REQ AC1 -> Task(s):
|
||||
- REQ AC2 -> Task(s):
|
||||
|
||||
## AI 검증 요약 (AI Validation Summary)
|
||||
- Automated tests/checks to run:
|
||||
- Expected evidence:
|
||||
|
||||
## 사람 확인 체크리스트 (Human Verification Checklist)
|
||||
- [ ] Verify:
|
||||
- [ ] Confirm:
|
||||
- If no human verification is required, write: `No manual verification required.`
|
||||
|
||||
## 열린 질문 (Open Questions)
|
||||
-
|
||||
|
||||
## 리스크 (Risks)
|
||||
-
|
||||
|
||||
## 완료 조건 (Definition of Done)
|
||||
- [ ] All mapped acceptance criteria are satisfied
|
||||
- [ ] Tests are added or updated
|
||||
- [ ] AI-completable work is finished and evidence is attached
|
||||
- [ ] Human-only work is completed or explicitly marked not required
|
||||
- [ ] Docs or change notes are updated if needed
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
description: "Use when evaluating whether a new feature or change request requires a new or updated SRS requirement, a technical spec update only, or needs owner decision. Apply before starting requirement drafting."
|
||||
applyTo: "docs/SRS/**/*.md"
|
||||
---
|
||||
# Requirement Scope Decision Guidelines
|
||||
|
||||
## 목적
|
||||
새 기능 요청이나 변경 사항이 들어왔을 때, SRS에 등록해야 하는지(신규 또는 기존 REQ 수정) 아니면 technical spec / implementation note만 업데이트하면 되는지를 먼저 판정한다.
|
||||
이 판정을 거침으로써 불필요한 REQ 생성을 방지하고, SRS에 등록돼야 할 변경이 누락되는 것을 예방한다.
|
||||
|
||||
## 판정 결과 분류 (4종)
|
||||
1. **New SRS requirement needed** — 새 REQ 문서를 작성해야 한다.
|
||||
2. **Update existing SRS requirement** — 기존 REQ 문서를 수정해야 한다.
|
||||
3. **Technical spec only** — SRS 변경 없이 technical spec / implementation note만 업데이트한다.
|
||||
4. **Needs owner decision** — 운영 리스크나 승인 기준이 불명확하여 소유자(Owner) 결정이 필요하다.
|
||||
|
||||
## SRS 대상 판정 기준 (다음 중 하나라도 해당하면 SRS)
|
||||
|
||||
### 외부 계약 변화
|
||||
- 사용자 또는 외부 시스템이 관찰하는 계약이 바뀌는 경우
|
||||
- API / CLI / UI / Event / Data schema / Config / Deployment / Integration 요구사항이 변경되는 경우
|
||||
|
||||
### 측정 가능한 Non-Functional 변경
|
||||
- 성능, 보안, 가용성, 확장성 등 측정 기준이 추가되거나 변경되는 경우
|
||||
|
||||
### Acceptance Criteria 및 승인 게이트 필요
|
||||
- 변경 사항에 대해 명시적 수락 기준과 승인 이력이 필요한 경우
|
||||
|
||||
## Technical Spec Only 판정 기준 (다음에 해당하면 SRS 불필요)
|
||||
- 내부 리팩터링 (외부 계약 변화 없음)
|
||||
- 라이브러리 교체 (동일한 외부 인터페이스 유지)
|
||||
- 코드 구조 / 패턴 변경 (기능 동작 동일)
|
||||
- 외부 계약을 바꾸지 않는 구현 최적화
|
||||
|
||||
## Borderline / Needs Owner Decision 판정 기준
|
||||
- 운영 리스크나 승인 책임이 불명확한 경우
|
||||
- 제품 의도가 불분명하거나 범위가 애매한 경우
|
||||
- 위 기준만으로 분류가 확정되지 않는 경우
|
||||
|
||||
## New vs. Update 구분 기준
|
||||
- 동일 기능/계약 범위의 변경 → `Update existing SRS requirement`
|
||||
- 새 기능/계약/인터페이스의 추가 → `New SRS requirement needed`
|
||||
- 기존 REQ 검색 시 `docs/SRS/index.md`의 Requirement Register를 먼저 확인한다.
|
||||
|
||||
## 판정 출력 형식
|
||||
판정 결과는 항상 다음 항목을 포함해야 한다.
|
||||
1. **Decision** — 위 4종 중 하나
|
||||
2. **Why** — 판정 근거 (구체적으로 어떤 기준에 해당하는지)
|
||||
3. **Recommended Type** — SRS 대상인 경우, 해당 requirement type (Interface / Data / Deployment 등)
|
||||
4. **Existing REQ candidates** — Update 가능성이 있는 기존 REQ ID 목록 (해당 시)
|
||||
5. **Next Action** — 판정 결과에 따른 다음 단계 안내
|
||||
6. **Open Questions** — 추가 확인이 필요한 사항 (없으면 `없음`)
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
---
|
||||
description: "Use when writing or editing SRS documents, requirement files, acceptance criteria, change logs, or impacted area entries under docs/SRS. Ensures requirement quality, traceability, and testable wording."
|
||||
applyTo: "docs/SRS/**/*.md"
|
||||
---
|
||||
# SRS Document Guidelines
|
||||
|
||||
## Requirement 타입 분류
|
||||
|
||||
### 분류 의사결정 규칙 (우선순위 순)
|
||||
1. **Installation**: "시스템 설치, 환경 구성, 초기화 절차를 정의하는가?" → YES면 Installation
|
||||
- 예: Docker 이미지 빌드, 데이터베이스 마이그레이션, 사전 조건 설정
|
||||
2. **Interface**: "사용자가 직접 조작하거나 실행하는 방식을 정의하는가?" → YES면 Interface
|
||||
- 예: CLI 명령어, API 엔드포인트, 웹 UI 기능, 제어 방식
|
||||
3. **Configuration**: "시스템 또는 기능의 설정 옵션, 커스터마이징을 정의하는가?" → YES면 Configuration
|
||||
- 예: 설정 파라미터, 옵션 항목, 환경 변수, 커스터마이징 포인트
|
||||
4. **Data**: "데이터 저장, 로드, 구조, 파일 형식, 스키마를 정의하는가?" → YES면 Data
|
||||
- 예: 설정 파일 형식, 데이터베이스 스키마, API 요청/응답 구조
|
||||
5. **Exception & Error Handling**: "오류 처리, 예외 복구, 재시도 전략을 중심으로 하는가?" → YES면 Exception & Error Handling
|
||||
- 예: 네트워크 오류 재시도, 데이터 검증 실패 처리, 복구 절차
|
||||
6. **Deployment**: "배포 방식, 운영 절차, 배포 환경을 정의하는가?" → YES면 Deployment
|
||||
- 예: 컨테이너 배포, 스택 관리, 운영 가이드
|
||||
7. **Documentation**: "문서 작성, 가이드, 매뉴얼, 안내서를 정의하는가?" → YES면 Documentation
|
||||
- 예: 사용자 가이드, API 문서, 운영 매뉴얼, 튜토리얼
|
||||
8. **Integration**: "외부 시스템 연동, 플러그인, 확장 기능을 정의하는가?" → YES면 Integration
|
||||
- 예: 3rd party 서비스 연동, 플러그인 인터페이스, 확장 메커니즘
|
||||
9. **Migration**: "데이터 이전, 버전 업그레이드, 마이그레이션을 정의하는가?" → YES면 Migration
|
||||
- 예: 데이터 마이그레이션, 버전 호환성, 업그레이드 절차
|
||||
10. **Testing**: "테스트 전략, QA 요구사항, 검증 방식을 정의하는가?" → YES면 Testing
|
||||
- 예: 테스트 커버리지, 회귀 테스트, 수락 테스트 기준
|
||||
11. **Non-Functional**: 위 모든 경우에 해당하지 않으면 → Non-Functional
|
||||
- 예: 성능 목표, 보안 정책, 확장성, 호환성, 신뢰성 요구사항
|
||||
|
||||
**주의**: requirement가 여러 분류에 해당하면 주된 제약 또는 목적에 따라 하나로만 선택한다. 예를 들어:
|
||||
- "Docker Compose로 배포할 수 있어야 한다" → Deployment
|
||||
- "배포 시 환경 변수로 설정 가능해야 한다" → Configuration
|
||||
- "배포 전에 다음 점검 항목을 검증해야 한다" → Testing/Documentation
|
||||
|
||||
- `docs/SRS/index.md`는 SRS 운영 기준과 Requirement Register를 관리하는 문서로 유지한다.
|
||||
- `docs/SRS/REQ-XXX_*.md`는 하나의 requirement만 다루고, 다른 requirement 내용을 섞지 않는다. 파일은 Type별 폴더에 저장한다. 예: `docs/SRS/Deployment/REQ-001_docker-compose-release.md`
|
||||
- 새 requirement 번호의 source of truth는 `docs/SRS/index.md`의 `Next Requirement ID`다.
|
||||
- requirement 본문에는 최소한 `Status`, `Type`, `Priority`, `Owner`, `Intent`, `Requirement`, `Acceptance Criteria`, `Impacted Area`, `Change Log`가 포함되어야 한다.
|
||||
- `Acceptance Criteria`는 관찰 가능하고 test 가능한 문장으로 작성한다.
|
||||
- 모호한 표현("개선한다", "적절히 처리한다", "최적화한다")은 측정 기준 없이 사용하지 않는다.
|
||||
- requirement를 수정하면 해당 REQ 파일의 `Change Log`도 함께 갱신한다.
|
||||
- `Impacted Area`는 `Docs`, `Modules`, `Tests`를 모두 검토한 뒤 작성한다. 해당 항목이 없으면 `없음`으로 명시한다.
|
||||
- implementation issue/PR를 생성하거나 병합할 때는 `docs/SRS/traceability-matrix.md`에서 해당 REQ 행의 `Issue/PR`, `Tests`, `Status`를 갱신한다.
|
||||
- 새로운 Type으로 requirement를 추가할 때는 `docs/SRS/<Type>/` 폴더 하위에 저장한다. 아직 없는 Type 폴더면 생성한다.
|
||||
- 새로운 requirement를 추가하면 `docs/SRS/index.md`의 Requirement Register에도 같은 ID를 추가한다.
|
||||
- 새로운 requirement를 추가하거나 Register가 바뀌면 `docs/SRS/index.md`의 `Next Requirement ID`도 함께 갱신한다.
|
||||
- `docs/SRS/index.md`의 `Recent Change Log Summary`는 최신 5건만 유지하고 최신 항목을 위에 둔다.
|
||||
- requirement ID와 파일명 prefix는 일치해야 한다. 예: `REQ-002`는 `docs/SRS/<Type>/REQ-002_<slug>.md`.
|
||||
- requirement 상태를 `Approved` 또는 `Implemented`로 바꿀 때는 acceptance criteria와 change history가 누락되지 않았는지 먼저 검토한다.
|
||||
- requirement 상태를 전환할 때는 `docs/SRS/index.md`의 `Status Transition Evidence` 기준을 따른다.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
description: "Use when: decide whether a Proposed requirement is ready to move to Approved and generate the required status-change edits"
|
||||
name: "Approve Requirement"
|
||||
argument-hint: "Paste a Proposed REQ file or select requirement text"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 requirement 문서가 `Proposed`에서 `Approved`로 전환 가능한지 검토한다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
검토 규칙:
|
||||
- 기준 문서는 [SRS index](../../docs/SRS/index.md) 의 `Status Transition Evidence`와 해당 requirement 문서 구조다.
|
||||
- `Status`, `Type`, `Priority`, `Owner`, `Intent`, `Requirement`, `Acceptance Criteria`, `Impacted Area`, `Change Log` 존재 여부를 검토한다.
|
||||
- Type이 SRS index의 분류 도표에 정의된 타입 중 정확하게 하나로 지정되었는지 확인한다.
|
||||
- `Acceptance Criteria`가 구현 기준으로 충분히 구체적인지 판단한다.
|
||||
- 중요한 assumption 또는 open question이 남아 있으면 승인 blocker로 본다.
|
||||
- 승인 가능하면 status 변경과 Change Log 추가 초안을 함께 제안한다.
|
||||
- 승인 불가하면 blocker를 우선순위 순으로 정리한다.
|
||||
|
||||
출력 형식:
|
||||
1. Approval Decision: `Approved-ready` 또는 `Not ready`
|
||||
2. Blockers
|
||||
3. Suggested Edits
|
||||
4. Approval Change Log Draft
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
description: "Use when: complete a partial SRS requirement draft into a full REQ file with acceptance criteria and impacted area"
|
||||
name: "Complete Requirement Draft"
|
||||
argument-hint: "Paste a partial requirement draft or describe the feature"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 입력을 기반으로 SRS requirement 초안을 완성한다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
작업 규칙:
|
||||
- SRS 기준 문서는 [SRS index](../../docs/SRS/index.md) 와 관련 [REQ template](../../docs/SRS/REQ-template.md) 를 따른다.
|
||||
- 입력에 `REQ-XXX` 형식의 명시적 ID가 없으면, [SRS index](../../docs/SRS/index.md)의 `Next Requirement ID`를 우선 읽어 그 값을 사용한다. `Next Requirement ID`가 없거나 신뢰할 수 없으면 `Requirement Register`와 기존 REQ 파일들 기준의 최고 번호에 1을 더한 값을 사용한다.
|
||||
- 사용자가 이미 특정 REQ ID를 명시했으면 그 ID를 유지하고 임의로 바꾸지 않는다.
|
||||
- requirement의 유형을 인식하고 `Type` 필드를 정확하게 지정한다. 분류는 [SRS index](../../docs/SRS/index.md)의 "Requirement 작성 규칙" 또는 [SRS instructions](../../.github/instructions/srs.instructions.md)의 "분류 의사결정 규칙"을 따른다.
|
||||
- 최종 `Type`과 `REQ ID`를 이용해 추천 파일 경로를 함께 제시한다. 형식은 `docs/SRS/<Type>/REQ-XXX_<slug>.md`를 사용한다.
|
||||
- `<slug>`는 requirement 제목을 기반으로 소문자 kebab-case 영문으로 생성한다. 공백은 `-`로 치환하고, 영문/숫자/`-`만 남긴다.
|
||||
- 제목이 한글이거나 slug 생성이 불명확하면 의미를 유지하는 짧은 영문 slug를 보수적으로 제안한다.
|
||||
- 사용자가 제공한 의도와 핵심 동작을 보존한다.
|
||||
- 빠진 항목은 보수적으로 보완하되, 추정이 필요한 내용은 `Notes`에 assumption으로 분리한다.
|
||||
- `Acceptance Criteria`는 반드시 test 가능하게 작성한다.
|
||||
- `Impacted Area`는 Docs, Modules, Tests로 구분한다.
|
||||
- 새로 할당한 ID를 문서 제목 `# REQ-XXX: ...`에 반영한다.
|
||||
- 결과는 REQ 파일에 바로 붙여넣을 수 있는 Markdown 형식으로만 출력한다.
|
||||
- 코드 구현 계획은 포함하지 않는다.
|
||||
|
||||
출력 형식:
|
||||
1. `Recommended File Path: docs/SRS/<Type>/REQ-XXX_<slug>.md` 한 줄
|
||||
2. 실제 할당된 ID가 반영된 `# REQ-XXX: ...` 형식의 전체 문서 본문
|
||||
3. `## Change Log` 아래에 초안 생성용 `CHG-YYYYMMDD-01` 항목 1개 포함
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
description: "Use when: create an implementation plan and GitHub issue draft from an Approved requirement"
|
||||
name: "Create Implementation Issue"
|
||||
argument-hint: "Paste an Approved REQ file"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 `Approved` requirement 문서를 기반으로 implementation issue 초안을 생성한다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
작업 규칙:
|
||||
- 기준 문서는 [SRS index](../../docs/SRS/index.md) 와 해당 REQ 문서다.
|
||||
- 출력 언어는 기본적으로 한국어로 작성한다.
|
||||
- section 제목, 설명, 작업 지시문은 한국어를 우선 사용하되, 중요한 technical term는 영어를 유지하거나 한국어 뒤 괄호로 병기한다. 예: `AI Agent Work`, `Human Verification Checklist`, `Acceptance Criteria`, `Open Questions`, `Risk`, `Definition of Done`.
|
||||
- 코드 식별자, 파일 경로, 명령어, API 이름, 테스트 이름, UI 라벨 등 구현 대상과 직접 연결되는 literal은 영어 원문을 유지한다.
|
||||
- requirement의 `Acceptance Criteria`를 구현 task로 분해한다.
|
||||
- task는 구현 단위로 나누고, 각 task를 `AI Agent가 완료 가능한 작업`과 `Human이 수행해야 하는 작업`으로 구분한다.
|
||||
- test task를 반드시 포함한다.
|
||||
- 각 acceptance criteria 또는 task에 대해 다음을 판단한다:
|
||||
- AI Agent가 코드 변경과 자동 검증까지 완료할 수 있는가
|
||||
- Human이 직접 확인해야 하는 수동 검증이 남는가
|
||||
- Human이 직접 확인해야 하는 항목이 있으면 `Human Verification Checklist`에 구체적인 확인 절차와 기대 결과를 작성한다.
|
||||
- AI Agent가 자체적으로 테스트를 완료할 수 있어 Human 확인이 불필요하면 `Human Verification Checklist`에 `No manual verification required.`를 명시하고 그 근거를 `AI Validation Summary`에 적는다.
|
||||
- `Impacted Area`를 기반으로 module/docs/test 변경 범위를 제시한다.
|
||||
- 미해결 가정이나 리스크가 있으면 issue 본문에 `Open Questions`와 `Risks`로 명시한다.
|
||||
- 출력은 GitHub issue에 바로 붙여 넣을 수 있는 Markdown 형식으로만 작성한다.
|
||||
|
||||
출력 형식:
|
||||
1. Issue Title
|
||||
2. 배경 (Context)
|
||||
3. 범위 (Scope)
|
||||
4. AI Agent 작업 (AI Agent Work) 체크리스트
|
||||
5. 사람 작업 (Human Work) 체크리스트
|
||||
6. Acceptance Criteria Mapping (REQ 기준)
|
||||
7. AI 검증 요약 (AI Validation Summary)
|
||||
8. 사람 확인 체크리스트 (Human Verification Checklist)
|
||||
9. 열린 질문 (Open Questions)
|
||||
10. 리스크 (Risks)
|
||||
11. 완료 조건 (Definition of Done)
|
||||
12. GitHub Issue Create Command (`gh issue create`) 예시
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
description: "Use when: evaluate whether a new feature or change request needs a new SRS requirement, an update to an existing one, a technical spec update only, or owner decision — before starting requirement drafting"
|
||||
name: "Decide Requirement Scope"
|
||||
argument-hint: "Describe the feature or change request: include feature description, issue body, and/or PR/diff summary"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 입력을 기반으로, 이 변경이 SRS 대상인지 아닌지를 판정한다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
판정 규칙:
|
||||
- 기준 문서는 [requirement-scope-decision instructions](../../.github/instructions/requirement-scope-decision.instructions.md) 와 [SRS index](../../docs/SRS/index.md) 의 Requirement Register다.
|
||||
- 다음 4가지 결과 중 하나를 반드시 반환한다.
|
||||
1. `New SRS requirement needed`
|
||||
2. `Update existing SRS requirement`
|
||||
3. `Technical spec only`
|
||||
4. `Needs owner decision`
|
||||
- 판정 기준을 순서대로 적용한다.
|
||||
- 사용자/외부 시스템이 관찰하는 계약(API, CLI, UI, Event, Data schema, Config, Deployment, Integration)이 바뀌는가? → YES면 SRS
|
||||
- 측정 가능한 Non-Functional requirement(성능, 보안, 가용성 등)가 추가/변경되는가? → YES면 SRS
|
||||
- Acceptance Criteria 및 명시적 승인 게이트가 필요한가? → YES면 SRS
|
||||
- 위 기준에 모두 해당하지 않으면서 내부 리팩터링·라이브러리 교체·코드 구조 변경·구현 최적화인가? → Technical spec only
|
||||
- 위 기준만으로 분류가 확정되지 않거나 운영 책임/리스크가 불명확한가? → Needs owner decision
|
||||
- SRS 대상으로 판정되면, 신규 기능/계약인지 기존 REQ 범위 내 변경인지를 구분한다.
|
||||
- 기존 REQ에 해당하는 경우 [SRS index](../../docs/SRS/index.md) 의 Requirement Register에서 후보 REQ ID를 찾아 제시한다.
|
||||
- Technical spec only로 판정되면, 불필요한 REQ 생성을 명시적으로 피하도록 안내한다.
|
||||
- 결과에는 항상 `Why`와 `Next Action`을 포함한다.
|
||||
- `Open Questions`가 없으면 `없음`으로 명시한다.
|
||||
|
||||
출력 형식:
|
||||
1. **Decision**: `New SRS requirement needed` / `Update existing SRS requirement` / `Technical spec only` / `Needs owner decision` 중 하나
|
||||
2. **Why**: 판정 근거 — 어떤 기준에 해당하는지 구체적으로 설명
|
||||
3. **Recommended Type**: (SRS 대상인 경우만) Interface / Data / Deployment / Configuration 등 해당 requirement type
|
||||
4. **Existing REQ candidates**: (Update 가능성이 있는 경우만) 관련 REQ ID와 제목 목록. 해당 없으면 생략
|
||||
5. **Next Action**: 판정 결과에 따른 다음 단계 안내
|
||||
6. **Open Questions**: 추가 확인이 필요한 사항. 없으면 `없음`
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
description: "Use when: decide whether an Approved requirement is ready to move to Implemented and generate the required status-change edits"
|
||||
name: "Mark Requirement Implemented"
|
||||
argument-hint: "Paste an Approved REQ file and implementation evidence"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 requirement 문서와 implementation evidence를 검토해 `Approved`에서 `Implemented`로 전환 가능한지 판단한다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
검토 규칙:
|
||||
- 기준 문서는 [SRS index](../../docs/SRS/index.md) 의 `Status Transition Evidence`와 해당 requirement 문서 구조다.
|
||||
- requirement의 `Acceptance Criteria`가 implementation evidence, tests, 또는 manual verification으로 충족되었는지 확인한다.
|
||||
- 충족되지 않은 acceptance criteria가 있으면 구현 완료로 판정하지 않는다.
|
||||
- 구현 완료 가능하면 status 변경, 잔여 리스크, Change Log 추가 초안을 함께 제안한다.
|
||||
- 구현 완료 불가하면 미충족 기준과 필요한 검증 항목을 정리한다.
|
||||
|
||||
출력 형식:
|
||||
1. Implementation Decision: `Implemented-ready` 또는 `Not ready`
|
||||
2. Unverified Criteria
|
||||
3. Suggested Edits
|
||||
4. Implementation Change Log Draft
|
||||
5. Residual Risk
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
---
|
||||
description: "Use when: update docs/SRS/index.md Requirement Register or Recent Change Log Summary after adding or editing REQ files"
|
||||
name: "Sync SRS Index"
|
||||
argument-hint: "Paste changed REQ files or describe what changed in SRS"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 입력을 기준으로 `docs/SRS/index.md`를 갱신하기 위한 제안을 만든다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
작업 규칙:
|
||||
- 기준 문서는 [SRS index](../../docs/SRS/index.md) 이다.
|
||||
- 새 requirement가 추가되었거나 Register가 바뀌면 `Requirement Register`의 최고 번호를 기준으로 다음 번호를 계산해 `Next Requirement ID`도 함께 갱신한다.
|
||||
- 새 requirement가 추가되었으면 `Requirement Register`에 들어갈 행을 만든다.
|
||||
- 기존 requirement가 수정되었으면 `Recent Change Log Summary`에 들어갈 요약 항목을 만든다.
|
||||
- 기존 구조를 바꾸지 말고, 필요한 행과 요약만 제안한다.
|
||||
- `Next Requirement ID`는 `Requirement Register`에 있는 가장 큰 REQ 번호보다 정확히 1 큰 값이어야 한다.
|
||||
- `Recent Change Log Summary`는 최신 변경을 위에 두고, 짧은 요약 1줄로 작성한다.
|
||||
- `Recent Change Log Summary`는 최신 5건만 유지하도록 제안한다. 5건을 초과하면 제거 또는 대체해야 할 가장 오래된 항목도 함께 설명한다.
|
||||
- 출력은 사람이 `docs/SRS/index.md`에 바로 반영할 수 있는 Markdown 조각으로만 작성한다.
|
||||
|
||||
출력 형식:
|
||||
1. `Next Requirement ID`에 반영할 Markdown bullet
|
||||
2. `Requirement Register`에 추가 또는 수정할 Markdown table row
|
||||
3. `Recent Change Log Summary`에 추가할 Markdown section
|
||||
4. 필요한 경우 only, index에서 제거 또는 갱신해야 할 기존 항목 설명
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
description: "Use when: review an SRS requirement for ambiguity, missing acceptance criteria, missing impacted area, and change-log gaps"
|
||||
name: "Validate Requirement Quality"
|
||||
argument-hint: "Paste a REQ file or select requirement text"
|
||||
agent: "agent"
|
||||
model: "GPT-5 (copilot)"
|
||||
---
|
||||
다음 requirement 문서를 검토한다.
|
||||
|
||||
입력:
|
||||
${input}
|
||||
|
||||
검토 규칙:
|
||||
- 기준은 [SRS index](../../docs/SRS/index.md) 와 관련 requirement 문서 구조를 따른다.
|
||||
- 다음 항목을 우선 검토한다: 모호한 표현, test 불가능한 문장, 누락된 acceptance criteria, 누락된 impacted area, 상태/유형/우선순위/owner 누락, Type이 의사결정 규칙에 따라 정확하게 지정되었는지, Change Log 누락 또는 불일치.
|
||||
- Type 분류 규칙: 사용자 조작 방식 → Interface, 데이터 저장/구조 → Data, 오류 처리 → Exception & Error Handling, 그 외 → Non-Functional
|
||||
- 중요한 문제부터 우선순위 순으로 정리한다.
|
||||
- 문제가 없으면 `No critical findings.` 로 시작한다.
|
||||
- requirement 본문을 직접 다시 작성하지 말고, 수정 제안 위주로 답한다.
|
||||
|
||||
출력 형식:
|
||||
1. Findings
|
||||
2. Open Questions
|
||||
3. Suggested Edits
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
## Requirement Traceability
|
||||
|
||||
- Requirement ID: REQ-XXX
|
||||
- Requirement Link: docs/SRS/<Type>/REQ-XXX_<slug>.md
|
||||
- Related Issue: #
|
||||
|
||||
## Acceptance Criteria Coverage
|
||||
- [ ] AC1: <how this PR satisfies it>
|
||||
- [ ] AC2: <how this PR satisfies it>
|
||||
|
||||
## Test Evidence
|
||||
- Automated:
|
||||
- <test command and result summary>
|
||||
- Manual:
|
||||
- <verification steps and result>
|
||||
- If not required: `No manual verification required.`
|
||||
|
||||
## Impacted Area Check
|
||||
- Docs:
|
||||
- Modules:
|
||||
- Tests:
|
||||
|
||||
## Release Notes Input
|
||||
- [ ] Added REQ ID to release notes (or tracked release note draft)
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
KIT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
PROJECT_ROOT="${1:-$(pwd)}"
|
||||
|
||||
mkdir -p "$PROJECT_ROOT/.github/prompts" \
|
||||
"$PROJECT_ROOT/.github/instructions" \
|
||||
"$PROJECT_ROOT/.github/ISSUE_TEMPLATE"
|
||||
|
||||
cp "$KIT_ROOT/base/.github/prompts/"*.prompt.md "$PROJECT_ROOT/.github/prompts/"
|
||||
cp "$KIT_ROOT/base/.github/instructions/"*.instructions.md "$PROJECT_ROOT/.github/instructions/"
|
||||
cp "$KIT_ROOT/base/.github/ISSUE_TEMPLATE/"*.md "$PROJECT_ROOT/.github/ISSUE_TEMPLATE/"
|
||||
if [[ -f "$KIT_ROOT/base/.github/pull_request_template.md" ]]; then
|
||||
cp "$KIT_ROOT/base/.github/pull_request_template.md" "$PROJECT_ROOT/.github/pull_request_template.md"
|
||||
fi
|
||||
|
||||
echo "Installed myagent-kit assets into $PROJECT_ROOT/.github"
|
||||
@@ -0,0 +1,55 @@
|
||||
# REQ-XXX: <요구사항 제목>
|
||||
|
||||
- Status: Proposed | Approved | Implemented | Deprecated
|
||||
- Type: Interface | Data | Exception & Error Handling | Installation | Configuration | Deployment | Documentation | Integration | Testing | Non-Functional
|
||||
- Priority: High | Medium | Low
|
||||
- Owner: <담당자 또는 팀>
|
||||
|
||||
## Intent
|
||||
- <이 요구사항이 필요한 이유와 달성하려는 목표를 1~3문장으로 작성>
|
||||
|
||||
## Requirement
|
||||
- <시스템이 반드시 수행해야 하는 동작을 단정형 문장으로 작성>
|
||||
|
||||
## Acceptance Criteria
|
||||
1. Given <선행 조건>, When <행동>, Then <기대 결과>
|
||||
2. Given <선행 조건>, When <행동>, Then <기대 결과>
|
||||
|
||||
## Impacted Area
|
||||
- Docs: <영향 받는 문서 경로>
|
||||
- Modules: <영향 받는 모듈/컴포넌트>
|
||||
- Tests: <추가/수정해야 하는 테스트>
|
||||
|
||||
## Notes
|
||||
- <가정, 제약, 미해결 이슈>
|
||||
|
||||
## Change Log
|
||||
|
||||
### CHG-YYYYMMDD-01
|
||||
- Date: YYYY-MM-DD
|
||||
- Author: <작성자>
|
||||
|
||||
#### Change Summary
|
||||
- <무엇이 변경되었는지>
|
||||
|
||||
#### Intent
|
||||
- <왜 변경했는지>
|
||||
|
||||
#### Acceptance Criteria Delta
|
||||
- Added:
|
||||
- <추가된 기준>
|
||||
- Updated:
|
||||
- <변경된 기준>
|
||||
- Removed:
|
||||
- <삭제된 기준>
|
||||
|
||||
#### Impacted Area Delta
|
||||
- Docs:
|
||||
- <문서 영향>
|
||||
- Modules:
|
||||
- <코드 영향>
|
||||
- Tests:
|
||||
- <테스트 영향>
|
||||
|
||||
#### Validation Plan
|
||||
- <검증 방법과 완료 조건>
|
||||
@@ -0,0 +1,28 @@
|
||||
# SRS Traceability Matrix
|
||||
|
||||
<!--
|
||||
Usage:
|
||||
1. Copy this file to docs/SRS/traceability-matrix.md in your target repository.
|
||||
2. Keep one row per requirement.
|
||||
3. Update Issue/PR, Test Evidence, and Status whenever implementation progresses.
|
||||
-->
|
||||
|
||||
## Status Definition
|
||||
- Planned: Requirement is defined but not yet implemented.
|
||||
- In Progress: Implementation issue/PR exists and work is ongoing.
|
||||
- Implemented: Code is merged and mapped acceptance criteria are complete.
|
||||
- Verified: Required tests and manual checks are completed.
|
||||
- Released: Included in a released version.
|
||||
|
||||
## Matrix
|
||||
|
||||
| REQ ID | AC Mapping | Requirement File | Implementation Issue | PR | Test Evidence | Requirement Status | Delivery Status | Last Updated |
|
||||
|---|---|---|---|---|---|---|---|---|
|
||||
| REQ-001 | AC1, AC2 | docs/SRS/<Type>/REQ-001_<slug>.md | #123 | #456 | tests/... , CI run link | Approved | Planned | YYYY-MM-DD |
|
||||
|
||||
## Update Rules
|
||||
- REQ ID must exactly match the SRS requirement file prefix.
|
||||
- AC Mapping should reference concrete IDs such as AC1, AC2.
|
||||
- Test Evidence should point to executable artifacts: test file path, CI job, or manual verification note.
|
||||
- Last Updated uses YYYY-MM-DD.
|
||||
- If there is no value yet, use `TBD`.
|
||||
Reference in New Issue
Block a user