ch-bootstrap: persona pipeline + Design-First + 안전-최대 권한
- Redmine 8단계 페르소나 파이프라인 (.claude/agents, workflows) - Design-First docs 골격 (docs/design, docs/adr, docs/pipeline) - 안전-최대 권한 정책 (.claude/settings.json) - Tasteby 고유 규칙 보존 (CLAUDE.md 병합) - scripts/enqueue.sh: Redmine 큐 투입 Refs: tasteby bootstrap
This commit is contained in:
51
docs/design/_FN_TEMPLATE.md
Normal file
51
docs/design/_FN_TEMPLATE.md
Normal file
@@ -0,0 +1,51 @@
|
||||
<!-- 함수별 설계서 템플릿. 복잡 함수마다 design/<issue-id>-<slug>/fn-<function_name>.md 로 작성.
|
||||
작성: [AI] Architect, 구현 전 필수. -->
|
||||
|
||||
# 함수 설계서: `<function_name>` (#<issue-id>)
|
||||
|
||||
> **부모 설계서**: ./README.md · **상태**: Draft <!-- Draft|Approved|Superseded -->
|
||||
> **작성**: [AI] Architect · **구현**: <file:function 또는 TBD> · **테스트**: <경로 또는 TBD>
|
||||
|
||||
## 1. 시그니처
|
||||
```
|
||||
<returnType> <function_name>(<params>) # 언어 확정 후 정확히 기재
|
||||
```
|
||||
|
||||
## 2. 책임 (단일 책임, 1줄)
|
||||
이 함수가 하는 단 하나의 일.
|
||||
|
||||
## 3. 입력
|
||||
| 파라미터 | 타입 | 제약/검증 | 설명 |
|
||||
|----------|------|-----------|------|
|
||||
| `<p>` | | | |
|
||||
|
||||
## 4. 출력
|
||||
- **반환**: 타입 / 의미.
|
||||
- **부수효과**: (있으면 — I/O·상태변경 명시) / 없으면 **순수 함수**.
|
||||
|
||||
## 5. 동작 / 알고리즘
|
||||
1. ...
|
||||
2. ...
|
||||
|
||||
## 6. 에러 & 실패 모드
|
||||
| 조건 | 처리 | 반환/예외 |
|
||||
|------|------|-----------|
|
||||
| | | |
|
||||
|
||||
## 7. 엣지케이스
|
||||
- 경계값(0, 음수, 빈값, 최대), 동시성, 부분 실패.
|
||||
|
||||
## 8. 복잡도 / 성능
|
||||
- 시간/공간 복잡도. 호출 빈도(예: 시세 폴링 루프 내부인가?).
|
||||
|
||||
## 9. 의존성
|
||||
- 호출하는 함수/모듈, 외부 API, 설정 키.
|
||||
|
||||
## 10. 테스트 케이스
|
||||
- [ ] 정상: <입력 → 기대 출력>
|
||||
- [ ] 경계: ...
|
||||
- [ ] 실패: ...
|
||||
|
||||
## 11. 추적성
|
||||
- 인수조건: #<issue-id> 의 "<항목>".
|
||||
- 관련 ADR: <ADR-NNNN 또는 없음>.
|
||||
66
docs/design/_TEMPLATE.md
Normal file
66
docs/design/_TEMPLATE.md
Normal file
@@ -0,0 +1,66 @@
|
||||
<!-- 기능 설계서 템플릿. 복사해서 design/<issue-id>-<slug>/README.md 로 작성.
|
||||
작성: [AI] Architect, 구현 전 필수. 빈 섹션 금지 — 해당 없으면 "해당 없음" 명시. -->
|
||||
|
||||
# 설계서: <기능명> (#<issue-id>)
|
||||
|
||||
> **상태**: Draft <!-- Draft | Approved | Superseded -->
|
||||
> **작성**: [AI] Architect · **최종수정**: <YYYY-MM-DD>
|
||||
> **추적성** — Redmine: #<issue-id> · 관련 ADR: <ADR-NNNN 또는 없음>
|
||||
> · 구현 파일: <경로 또는 TBD> · 테스트: <경로 또는 TBD>
|
||||
|
||||
## 1. 목적 (Why)
|
||||
이 기능이 푸는 문제. Planner 의 목표 1줄 인용.
|
||||
|
||||
## 2. 범위 (Scope)
|
||||
- **포함**: ...
|
||||
- **제외 (out of scope)**: ...
|
||||
|
||||
## 3. 인수조건 (Acceptance Criteria)
|
||||
<!-- Planner 가 확정한 검증 가능한 항목. QA 가 이걸로 판정한다. -->
|
||||
- [ ] ...
|
||||
- [ ] ...
|
||||
|
||||
## 4. 컨텍스트 & 제약
|
||||
- 의존성: 거래소 API / DB / 알림 / 외부 라이브러리.
|
||||
- 제약: 성능, 레이트리밋, 리스크(돈), 보안.
|
||||
- 가정: ...
|
||||
|
||||
## 5. 아키텍처 개요
|
||||
- 모듈/파일 구조 (목록).
|
||||
- 데이터 흐름 (텍스트 다이어그램).
|
||||
- **I/O ↔ 순수 전략 로직 경계** 명시 (테스트 가능성).
|
||||
|
||||
```
|
||||
<여기에 ASCII 흐름도>
|
||||
```
|
||||
|
||||
## 6. 데이터 모델
|
||||
- 입력 / 출력 / 저장 구조, 타입, **경계 검증 규칙**.
|
||||
|
||||
## 7. 함수 명세 (Function Specs)
|
||||
<!-- 모든 함수를 나열. "복잡?" = 복잡이면 fn-<name>.md 개별 설계서 필수. -->
|
||||
|
||||
| 함수 | 책임(1줄) | 시그니처(잠정) | 입력 | 출력 | 에러/실패 | 복잡? |
|
||||
|------|-----------|----------------|------|------|-----------|-------|
|
||||
| `<name>` | | | | | | 단순 / **복잡** |
|
||||
|
||||
> 복잡 기준: 분기/상태기계, 외부 I/O, 리스크(주문·잔고) 경로, 비자명 알고리즘.
|
||||
> → 해당 함수는 `fn-<name>.md` 작성. 단순(게터·포매터 등)은 이 표로 충분.
|
||||
|
||||
## 8. 흐름 / 알고리즘
|
||||
- 핵심 시나리오 단계별. 상태 전이.
|
||||
|
||||
## 9. 엣지케이스 & 에러 처리
|
||||
- 경계값, 실패 모드, 재시도/백오프.
|
||||
- **안전한 기본값**(API 실패 시 거래 중단 등).
|
||||
|
||||
## 10. 테스트 계획
|
||||
- 단위/통합 케이스 목록 (각 인수조건에 매핑).
|
||||
- 모킹/드라이런 전략 (거래소 API 등).
|
||||
|
||||
## 11. 리스크 & 대안 검토
|
||||
- 선택한 접근 vs 대안, 트레이드오프.
|
||||
- 되돌리기 어려운 결정 → **ADR 로 분리** (`adr/NNNN-*.md`).
|
||||
|
||||
## 12. 미해결 질문 (Open Questions)
|
||||
- ...
|
||||
Reference in New Issue
Block a user