Files
life-helper/docs/design/_FN_TEMPLATE.md
joungmin 957dd90725 Apply ch-bootstrap convention (partial)
Existing life-helper already has the Redmine project (id=12), 8 persona
categories, and Gitea remote, so this commit applies only the local-side
pieces of the cloud-handson convention:

- .claude/settings.json (safe-but-maximal permissions: allow-all + deny dangerous)
- .claude/agents/ (8 persona subagents: planner/architect/designer/developer/reviewer/qa/release/documenter)
- .claude/workflows/persona-pipeline.js
- CLAUDE.md (Design-First hard gate)
- docs/ skeleton (Diátaxis + ADR + design templates + QUEUE-PROTOCOL)
- scripts/enqueue.sh
- .env.example

.gitignore: switched .claude/ blanket-ignore to .claude/settings.local.json
so the new settings/agents/workflows actually commit. .env and nutrition/ stay ignored.

Existing root SoT files (huberman-protocols.md, habit-*.md, data-model.md,
schema/) are untouched.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-11 15:59:39 +09:00

52 lines
1.5 KiB
Markdown

<!-- 함수별 설계서 템플릿. 복잡 함수마다 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 또는 없음>.