@neobiotechlabs/neobiotech-dev-agent 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +22 -0
- package/.claude-plugin/plugin.json +58 -0
- package/.mcp.json +14 -0
- package/README.md +442 -0
- package/dist/__tests__/adf.test.d.ts +1 -0
- package/dist/__tests__/adf.test.js +68 -0
- package/dist/__tests__/adf.test.js.map +1 -0
- package/dist/__tests__/annex-ii-template.test.d.ts +1 -0
- package/dist/__tests__/annex-ii-template.test.js +39 -0
- package/dist/__tests__/annex-ii-template.test.js.map +1 -0
- package/dist/__tests__/doc-render.test.d.ts +1 -0
- package/dist/__tests__/doc-render.test.js +93 -0
- package/dist/__tests__/doc-render.test.js.map +1 -0
- package/dist/__tests__/help.test.d.ts +1 -0
- package/dist/__tests__/help.test.js +31 -0
- package/dist/__tests__/help.test.js.map +1 -0
- package/dist/__tests__/jira-fields.test.d.ts +1 -0
- package/dist/__tests__/jira-fields.test.js +81 -0
- package/dist/__tests__/jira-fields.test.js.map +1 -0
- package/dist/__tests__/plugin-manifest.test.d.ts +1 -0
- package/dist/__tests__/plugin-manifest.test.js +91 -0
- package/dist/__tests__/plugin-manifest.test.js.map +1 -0
- package/dist/__tests__/setup.test.d.ts +1 -0
- package/dist/__tests__/setup.test.js +7 -0
- package/dist/__tests__/setup.test.js.map +1 -0
- package/dist/__tests__/sync-version.test.d.ts +1 -0
- package/dist/__tests__/sync-version.test.js +37 -0
- package/dist/__tests__/sync-version.test.js.map +1 -0
- package/dist/clients/risk-client.d.ts +17 -0
- package/dist/clients/risk-client.js +54 -0
- package/dist/clients/risk-client.js.map +1 -0
- package/dist/clients/xray-client.d.ts +34 -0
- package/dist/clients/xray-client.js +127 -0
- package/dist/clients/xray-client.js.map +1 -0
- package/dist/config/project-config.d.ts +14 -0
- package/dist/config/project-config.js +45 -0
- package/dist/config/project-config.js.map +1 -0
- package/dist/confluence-client.d.ts +16 -0
- package/dist/confluence-client.js +97 -0
- package/dist/confluence-client.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +60 -0
- package/dist/index.js.map +1 -0
- package/dist/jira-client.d.ts +35 -0
- package/dist/jira-client.js +119 -0
- package/dist/jira-client.js.map +1 -0
- package/dist/tools/annex-ii-template.d.ts +30 -0
- package/dist/tools/annex-ii-template.js +129 -0
- package/dist/tools/annex-ii-template.js.map +1 -0
- package/dist/tools/confluence.d.ts +2 -0
- package/dist/tools/confluence.js +54 -0
- package/dist/tools/confluence.js.map +1 -0
- package/dist/tools/cvss.d.ts +2 -0
- package/dist/tools/cvss.js +59 -0
- package/dist/tools/cvss.js.map +1 -0
- package/dist/tools/doc-render.d.ts +2 -0
- package/dist/tools/doc-render.js +96 -0
- package/dist/tools/doc-render.js.map +1 -0
- package/dist/tools/doc-validation.d.ts +2 -0
- package/dist/tools/doc-validation.js +221 -0
- package/dist/tools/doc-validation.js.map +1 -0
- package/dist/tools/help-data.d.ts +7 -0
- package/dist/tools/help-data.js +144 -0
- package/dist/tools/help-data.js.map +1 -0
- package/dist/tools/help.d.ts +2 -0
- package/dist/tools/help.js +39 -0
- package/dist/tools/help.js.map +1 -0
- package/dist/tools/iec.d.ts +2 -0
- package/dist/tools/iec.js +203 -0
- package/dist/tools/iec.js.map +1 -0
- package/dist/tools/init.d.ts +2 -0
- package/dist/tools/init.js +38 -0
- package/dist/tools/init.js.map +1 -0
- package/dist/tools/jira-crud.d.ts +2 -0
- package/dist/tools/jira-crud.js +142 -0
- package/dist/tools/jira-crud.js.map +1 -0
- package/dist/tools/risk.d.ts +2 -0
- package/dist/tools/risk.js +172 -0
- package/dist/tools/risk.js.map +1 -0
- package/dist/tools/traceability.d.ts +2 -0
- package/dist/tools/traceability.js +85 -0
- package/dist/tools/traceability.js.map +1 -0
- package/dist/tools/types.d.ts +13 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/usability.d.ts +2 -0
- package/dist/tools/usability.js +149 -0
- package/dist/tools/usability.js.map +1 -0
- package/dist/tools/xray.d.ts +2 -0
- package/dist/tools/xray.js +35 -0
- package/dist/tools/xray.js.map +1 -0
- package/dist/utils/adf.d.ts +27 -0
- package/dist/utils/adf.js +104 -0
- package/dist/utils/adf.js.map +1 -0
- package/dist/utils/cvss.d.ts +15 -0
- package/dist/utils/cvss.js +86 -0
- package/dist/utils/cvss.js.map +1 -0
- package/dist/utils/doc-render.d.ts +28 -0
- package/dist/utils/doc-render.js +50 -0
- package/dist/utils/doc-render.js.map +1 -0
- package/dist/utils/jira-fields.d.ts +38 -0
- package/dist/utils/jira-fields.js +53 -0
- package/dist/utils/jira-fields.js.map +1 -0
- package/dist/utils/sync-version.d.ts +2 -0
- package/dist/utils/sync-version.js +20 -0
- package/dist/utils/sync-version.js.map +1 -0
- package/package.json +49 -0
- package/skills/doc-render/SKILL.md +79 -0
- package/vendor/dev-docs-templates/templates/dev_docs/plan_template.md +104 -0
- package/vendor/dev-docs-templates/templates/dev_docs/prd_template.md +110 -0
- package/vendor/dev-docs-templates/templates/dev_docs/spec_template.md +81 -0
- package/vendor/dev-docs-templates/templates/dev_docs/tasks_template.md +122 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/checklist-clinical-evaluation.md +81 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/checklist-gspr-mdr.md +403 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/clinical-evaluation-report.md +492 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/instructions-for-use.md +132 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/literature-evaluation-table.md +15 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/mdr-declaration-of-conformity.md +75 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/post-market-clinical-follow-up-plan.md +162 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/post-market-surveillance-plan.md +175 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/risk-management-cybersecurity-checklist.md +67 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/risk-management-report.md +111 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/CA/usability-evaluation-report.md +70 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/clinical-evaluation-plan.md +154 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/list-of-hazard-related-use-scenarios.md +34 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/risk-table-fmea.md +155 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/software-architecture-description.md +307 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/software-requirements-list.md +156 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/soup-list.md +82 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/EA/usability-evaluation-plan.md +103 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/global/bug-fixes-documentation-list.md +35 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/global/change-evaluation-list.md +100 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/global/list-of-known-anomalies.md +29 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/algorithm-validation-report.md +170 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/checklist-software-release.md +52 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/checklist-software-requirements-review.md +50 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/software-architecture-checklist.md +41 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/software-detailed-design.md +321 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/software-system-test-plan.md +155 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/ER/sprint/usability-evaluation-protocol.md +63 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/intended-use.md +116 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/mdr-classification-document.md +114 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/risk-management-plan.md +198 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/software-development-maintenance-plan.md +225 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/PA/system-requirements-spec.md +182 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/information_security/information-security-controls.md +966 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/information_security/information-security-policy-and-scope.md +99 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/quality-manual-policy-objectives.md +187 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-capa.md +112 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-change-management.md +128 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-clinical-evaluation.md +102 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-feedback-management.md +140 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-integrated-software-development.md +361 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-post-market-surveillance.md +159 -0
- package/vendor/dev-docs-templates/templates/mdr_docs/global/qms/sop-software-problem-resolution.md +99 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-render
|
|
3
|
+
description: doc_render ๋๊ตฌ ์ถ๋ ฅ์ผ๋ก MDR/dev ๋ฌธ์๋ฅผ ์๋ ์์ฑํด consumer repo์ ์ ์ฅํ๊ณ Jira ํฐ์ผ description์ ๋ฏธ๋ฌ. (Phase 4 โ ์๋ ์ด์ + ์ฌ์ฉ์ ์ต์ข
๋ฆฌ๋ทฐ)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# doc_render ์์ฑ skill
|
|
7
|
+
|
|
8
|
+
`doc_render` MCP ํด์ด ๋ ๋ํ ํ
ํ๋ฆฟ(๋ฉํ ์นํ + ๋น์นธ/AI ์ง์นจ ๋ณด์กด + ํฐ์ผ ๋ฐ์ดํฐ)์ ๋ฐ์,
|
|
9
|
+
AI ์ง์นจ๊ณผ ํฐ์ผ ๋ฐ์ดํฐ๋ก ๋น์นธ์ ์ฑ์ฐ๊ณ , consumer repo์ `docs/` ์ ์ ์ฅํ ๋ค Jira ํฐ์ผ
|
|
10
|
+
description์ ๋ฏธ๋ฌํ๋ค. ์๋ ์ด์ + ์ฌ์ฉ์ ์ต์ข
๋ฆฌ๋ทฐ ๋ฐฉ์.
|
|
11
|
+
|
|
12
|
+
## ๋ฐ๋ ์กฐ๊ฑด
|
|
13
|
+
|
|
14
|
+
- ์ฌ์ฉ์๊ฐ "DYN-8 intended use ๋ฌธ์ ์์ฑ", "<ticket> <template> ๋ฌธ์ ๋ง๋ค์ด" ๋ฑ์ผ๋ก ์์ฒญ
|
|
15
|
+
- ๋๋ ํฐ์ผ ํ์
/์์ฝ์์ ํ
ํ๋ฆฟ์ ์ถ๋ก ํ ๋ค ์ฌ์ฉ์์๊ฒ ํ์ธ
|
|
16
|
+
|
|
17
|
+
์ง์ ํ
ํ๋ฆฟ(ํ์ฌ): prd, spec, plan, tasks (dev), intended_use (mdr/PA).
|
|
18
|
+
|
|
19
|
+
## ์ ์ฐจ
|
|
20
|
+
|
|
21
|
+
1. **์
๋ ฅ ์๋ณ** โ ํฐ์ผ ํคยทํ
ํ๋ฆฟ ํ์ . ๋ฏธ์ง์ ์ ํฐ์ผ ํ์
ยท์์ฝ์์ ์ถ๋ก ํด ์ฌ์ฉ์์๊ฒ ํ์ธ.
|
|
22
|
+
2. **doc_render ํธ์ถ** โ `doc_render(template, ticket_key)`. ๋ฐํ: ๋ ๋ ๋ฉํ + ๋ ๋๋ ํ
ํ๋ฆฟ + placeholder ๋ชฉ๋ก + ํฐ์ผ ๋ฐ์ดํฐ JSON.
|
|
23
|
+
3. **์ฌ๋ฃ ์์ง** โ `jira_get_issue` / `jira_get_links` ๋ก ํฐ์ผ ๋ณธ๋ฌธ๊ณผ ๋งํฌ๋ ๊ด๋ จ ์ด์(๋ถ๋ชจ Gate, SyRS ๋ฑ) ์กฐํ. ํฐ์ผ์ ์๋ ์ ๋ณด๋ ์๋ ์ด์(4๋จ๊ณ)์์ ์ฑ์ธ ์ ์์ผ๋ฉด ๋ฆฌ๋ทฐ(5๋จ๊ณ)์์ ์ฌ์ฉ์๊ฐ ๋ณด์.
|
|
24
|
+
4. **์๋ ์ด์ ์์ฑ** โ ๋ ๋๋ ํ
ํ๋ฆฟ์ AI ์ง์นจ ์ฃผ์ + ํฐ์ผ ๋ฐ์ดํฐยท์ฌ๋ฃ๋ก ๋น์นธยทplaceholder๋ฅผ ์ฑ์ด๋ค. ํ
ํ๋ฆฟ์ ์น์
๊ตฌ์กฐยท๋งํนยท์ ์๊ถ ํธํฐ(openregulatory)๋ ์ ์ง.
|
|
25
|
+
5. **์ฌ์ฉ์ ๋ฆฌ๋ทฐ ๊ฒ์ดํธ** โ ์ด์์ ์ฌ์ฉ์์๊ฒ ์ ์. ์์ ยท๋ณด์(ํ์ฌ ํนํ ์ ๋ณด: ๊ธฐ๊ธฐ๋ช
ยทUDI-DIยท์์ ๊ทผ๊ฑฐ ๋ฑ) ๋ฐ์ ํ ์น์ธ. **์น์ธ ์ ์๋ consumer repo์ ์ฐ์ง ์๋๋ค.**
|
|
26
|
+
6. **consumer repo ์ ์ฅ** โ ์๋ ์ ์ฅ ๊ฒฝ๋ก ๊ท์น๋๋ก `Write`. ๋งจ ์์ ๋ฒ์ frontmatter(์๋ ์คํค๋ง) ํฌํจ.
|
|
27
|
+
7. **Jira ๋ฏธ๋ฌ** โ `doc_update_description(ticket_key, ๋ณธ๋ฌธ)`. frontmatter๋ ์ ์ธํ๊ณ ๋ณธ๋ฌธ๋ง.
|
|
28
|
+
8. **๊ฒ์ฆ** โ ์๋ ์ฒดํฌ๋ฆฌ์คํธ๋ก ๋ฏธ๋ฌ ํญ๋ชฉ ๊ฒฝ๊ณ . ์ฐจ๋จํ์ง ์์ โ ์ฌ์ฉ์ ํ๋จ.
|
|
29
|
+
|
|
30
|
+
## ์ ์ฅ ๊ฒฝ๋ก ๊ท์น
|
|
31
|
+
|
|
32
|
+
- mdr: `docs/mdr/<gate>/<template>-<ticket>.md` (gate๋ doc_render ๋ ๋ ๋ฉํ์์)
|
|
33
|
+
- ์: `docs/mdr/PA/intended-use-DYN-8.md`
|
|
34
|
+
- dev: `docs/dev/<template>-<ticket>.md` (gate ์์)
|
|
35
|
+
- ์: `docs/dev/prd-ER-123.md`
|
|
36
|
+
|
|
37
|
+
template๋ช
์ `_`๋ ํ์ผ๋ช
์์ `-`๋ก (`intended_use` โ `intended-use`).
|
|
38
|
+
|
|
39
|
+
## ๋ฒ์ frontmatter ์คํค๋ง
|
|
40
|
+
|
|
41
|
+
์ ์ฅ ํ์ผ ๋งจ ์:
|
|
42
|
+
|
|
43
|
+
```yaml
|
|
44
|
+
---
|
|
45
|
+
doc: intended-use
|
|
46
|
+
ticket: DYN-8
|
|
47
|
+
domain: mdr
|
|
48
|
+
gate: PA
|
|
49
|
+
template_version: 4dc0c46
|
|
50
|
+
version: 0.1
|
|
51
|
+
status: draft
|
|
52
|
+
updated: 2026-07-05
|
|
53
|
+
---
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
- `doc` / `domain` / `gate` / `template_version`: doc_render ๋ ๋ ๋ฉํ์์ ๋ณต์ฌ.
|
|
57
|
+
- `ticket`: ๋์ ํฐ์ผ ํค.
|
|
58
|
+
- `version` / `status`: Phase 4๋ ํญ์ `0.1` / `draft`. (๋ฒ์ ์
ยท์ํ ์ ์ด๋ Phase 5.)
|
|
59
|
+
- `updated`: ์ค๋ ๋ ์ง(YYYY-MM-DD).
|
|
60
|
+
|
|
61
|
+
## ๊ฒ์ฆ ์ฒดํฌ๋ฆฌ์คํธ
|
|
62
|
+
|
|
63
|
+
์ด์ ์์ฑ ํ ๊ฐ ํญ๋ชฉ ์ ๊ฒ โ ๋ฏธ๋ฌ ์ ๊ฒฝ๊ณ (์ฐจ๋จ ์๋):
|
|
64
|
+
|
|
65
|
+
- [ ] ๋ชจ๋ ๋น์นธยท๊บพ์ placeholder(`<...>`)๊ฐ ์ฑ์์ก๊ฑฐ๋, ๋จ๊ฒจ๋ ์ด์ ๊ฐ ๋ช
์๋จ
|
|
66
|
+
- [ ] AI ์ง์นจ ์ฃผ์์ด ์๋ดํ ๋ชจ๋ ์น์
์ด ์์ฑ๋จ
|
|
67
|
+
- [ ] ์ ์๊ถ ํธํฐ(openregulatory ๋ฑ)๊ฐ ๋ณด์กด๋จ
|
|
68
|
+
- [ ] ํฐ์ผ ๋ฐ์ดํฐ(๊ธฐ๊ธฐ๋ช
ยทUDI-DI ๋ฑ ์ธ์คํด์ค ๊ฐ)๊ฐ placeholder์ ๋ค์ด๊ฐ
|
|
69
|
+
|
|
70
|
+
## ์๋ฌ ์ฒ๋ฆฌ
|
|
71
|
+
|
|
72
|
+
- `doc_render` ์คํจ: ์ฆ์ ์ค๋จ, ์๋ฌ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ.
|
|
73
|
+
- ์ฑ์ธ ์ฌ๋ฃ ๋ถ์กฑ: ๋น์นธยทplaceholder ๋จ๊ธฐ๊ณ ๋ฆฌ๋ทฐ(5๋จ๊ณ)์์ ์ฌ์ฉ์๊ฐ ๋ณด์.
|
|
74
|
+
- Jira ๋ฏธ๋ฌ ์คํจ: consumer repo ์ ์ฅ์ ์ ์ง(์ฑ๊ณต), Jira ์คํจ๋ง ๊ฒฝ๊ณ โ ๋ถ๋ถ ์ฑ๊ณต ํ์ฉ.
|
|
75
|
+
- ๊ฒ์ฆ ๋ฏธ๋ฌ: ๊ฒฝ๊ณ ๋ง.
|
|
76
|
+
|
|
77
|
+
## ์์กด ๋๊ตฌ
|
|
78
|
+
|
|
79
|
+
`doc_render`, `jira_get_issue`, `jira_get_links`, `doc_update_description` (MCP) + `Write` (๋ด์ฅ).
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Implementation Plan: {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
**Branch**: `feature/{TICKET_ID}` | **Date**: {DATE} | **Spec**: `docs/spec-kit/01_spec.md`
|
|
4
|
+
**Ticket**: `{TICKET_ID}` | **Type**: {ISSUE_TYPE}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Summary
|
|
9
|
+
<!-- ๋ช
์ธ์์์ ์ถ์ถํ ์ฃผ์ ์๊ตฌ์ฌํญ ๋ฐ ๊ธฐ์ ์ ์ ๊ทผ ๋ฐฉ์ ์์ฝ (3~5์ค) -->
|
|
10
|
+
{SUMMARY}
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Technical Context
|
|
15
|
+
|
|
16
|
+
| ํญ๋ชฉ | ๋ด์ฉ |
|
|
17
|
+
| ------------------------ | ----------------------- |
|
|
18
|
+
| **Language/Version** | {LANGUAGE_VERSION} |
|
|
19
|
+
| **Primary Dependencies** | {PRIMARY_DEPS} |
|
|
20
|
+
| **Storage** | {STORAGE_STRATEGY} |
|
|
21
|
+
| **Testing** | {TESTING_FRAMEWORK} |
|
|
22
|
+
| **Target Platform** | {TARGET_PLATFORM} |
|
|
23
|
+
| **Performance Goals** | {PERFORMANCE_GOALS} |
|
|
24
|
+
| **Constraints** | {TECHNICAL_CONSTRAINTS} |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Constitution Check
|
|
29
|
+
*GATE: ์ค๊ณ ์์น(Constitution) ์ค์ ์ฌ๋ถ ํ์ธ*
|
|
30
|
+
|
|
31
|
+
<!-- constitution.md ๋๋ ํ๋ก์ ํธ ๊ธฐ๋ณธ ์ค๊ณ ์์น ํ์ผ์ด ์๋ค๋ฉด ๋จผ์ ์ฝ๊ณ ์ค์ ์ฌ๋ถ๋ฅผ ๊ธฐ์ -->
|
|
32
|
+
- **SOLID ์์น**: {SOLID_COMPLIANCE}
|
|
33
|
+
- **๋ ์ด์ด ๋ถ๋ฆฌ**: {LAYER_SEPARATION}
|
|
34
|
+
- **์๋ฌ ์ฒ๋ฆฌ ์ ๋ต**: {ERROR_HANDLING_STRATEGY}
|
|
35
|
+
- **๋ณด์ ๊ณ ๋ ค์ฌํญ**: {SECURITY_CONSIDERATIONS}
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Project Structure
|
|
40
|
+
|
|
41
|
+
### Documentation
|
|
42
|
+
```text
|
|
43
|
+
docs/
|
|
44
|
+
โโโ spec-kit/
|
|
45
|
+
โ โโโ 01_spec.md
|
|
46
|
+
โ โโโ 02_plan.md
|
|
47
|
+
โ โโโ 03_tasks.md
|
|
48
|
+
โโโ {OTHER_DOCS}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Source Code
|
|
52
|
+
```text
|
|
53
|
+
{SOURCE_DIR}/
|
|
54
|
+
โโโ {MODULE_1}/
|
|
55
|
+
โ โโโ {FILE_1} # {FILE_1_DESCRIPTION}
|
|
56
|
+
โ โโโ {FILE_2} # {FILE_2_DESCRIPTION}
|
|
57
|
+
โโโ {MODULE_2}/
|
|
58
|
+
โโโ {FILE_3} # {FILE_3_DESCRIPTION}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Implementation Approach
|
|
64
|
+
|
|
65
|
+
### Phase ์์ ๋ฐ ์ ๊ทผ ๋ฐฉ์
|
|
66
|
+
1. **Setup**: {SETUP_APPROACH}
|
|
67
|
+
2. **Core Implementation**: {CORE_APPROACH}
|
|
68
|
+
3. **Testing**: {TESTING_APPROACH}
|
|
69
|
+
4. **Integration**: {INTEGRATION_APPROACH}
|
|
70
|
+
|
|
71
|
+
### Key Technical Decisions
|
|
72
|
+
<!-- ์ค์ํ ๊ธฐ์ ์ ๊ฒฐ์ ๊ณผ ๊ทธ ์ด์ -->
|
|
73
|
+
- **๊ฒฐ์ 1**: {DECISION_1} โ ์ด์ : {DECISION_1_REASON}
|
|
74
|
+
- **๊ฒฐ์ 2**: {DECISION_2} โ ์ด์ : {DECISION_2_REASON}
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Complexity Tracking
|
|
79
|
+
<!-- ์ค๊ณ ์์น ์๋ฐ์ด๋ ๋ณต์กํ ๊ฒฐ์ ์ ๋ํ ์ ๋น์ฑ ๊ธฐ์ (ํ์ ์) -->
|
|
80
|
+
- {COMPLEXITY_NOTE_1}
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## References
|
|
85
|
+
- Spec: `docs/spec-kit/01_spec.md`
|
|
86
|
+
- ํฐ์ผ: `{TICKET_ID}`
|
|
87
|
+
- ๊ด๋ จ ๋ฌธ์: `docs/02_SRS.md`, `docs/03_Architecture.md`
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## ์ถ์ ์ฑ (Traceability)
|
|
92
|
+
|
|
93
|
+
| ๋ฐฉํฅ | ์ฐ์ถ๋ฌผ | ๋น๊ณ |
|
|
94
|
+
| ---- | ------ | ---- |
|
|
95
|
+
| **Input from** | `docs/spec-kit/01_spec.md` (spec_template) | ๊ธฐ๋ฅ ๋ช
์ธ |
|
|
96
|
+
| **Output to** | `docs/spec-kit/03_tasks.md` (tasks_template) | ํ์คํฌ ๋ถํด |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## ๋ณ๊ฒฝ ์ด๋ ฅ (Revision History)
|
|
101
|
+
|
|
102
|
+
| ๋ฒ์ | ๋ ์ง | ์์ฑ์ | ๋ณ๊ฒฝ ๋ด์ฉ |
|
|
103
|
+
| ---- | ------ | -------- | --------- |
|
|
104
|
+
| 0.1 | {DATE} | {AUTHOR} | ์ด์ ์์ฑ |
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Product Requirements Document (PRD): {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
**Status**: Draft | **Version**: 1.0 | **Date**: {DATE}
|
|
4
|
+
**Ticket**: `{TICKET_ID}` | **Type**: {ISSUE_TYPE}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. ํ๋ก์ ํธ ๊ฐ์ (Project Overview)
|
|
9
|
+
|
|
10
|
+
### 1.1 ๋ฐฐ๊ฒฝ ๋ฐ ๋ชฉ์
|
|
11
|
+
<!-- ์ด ๊ธฐ๋ฅ/์ ํ์ด ์ ํ์ํ๊ฐ? ๋น์ฆ๋์ค ๋ชฉ์ ๊ณผ ๋ฌธ์ ์ ์ -->
|
|
12
|
+
{BACKGROUND_AND_PURPOSE}
|
|
13
|
+
|
|
14
|
+
### 1.2 ๋ชฉํ (Goals)
|
|
15
|
+
<!-- ์ด PRD๋ฅผ ํตํด ๋ฌ์ฑํ๋ ค๋ ํต์ฌ ๋ชฉํ (3๊ฐ ์ด๋ด, ์ธก์ ๊ฐ๋ฅํ๊ฒ) -->
|
|
16
|
+
- **Goal 1**: {GOAL_1}
|
|
17
|
+
- **Goal 2**: {GOAL_2}
|
|
18
|
+
- **Goal 3**: {GOAL_3}
|
|
19
|
+
|
|
20
|
+
### 1.3 ๋ฒ์ (Scope)
|
|
21
|
+
|
|
22
|
+
| ํญ๋ชฉ | ๋ด์ฉ |
|
|
23
|
+
| ----------------------- | -------------- |
|
|
24
|
+
| **ํฌํจ (In Scope)** | {IN_SCOPE} |
|
|
25
|
+
| **์ ์ธ (Out of Scope)** | {OUT_OF_SCOPE} |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 2. ํต์ฌ ํ๊ฒ ์ ์ (Target Users)
|
|
30
|
+
|
|
31
|
+
### Primary User
|
|
32
|
+
- **์ญํ **: {PRIMARY_USER_ROLE}
|
|
33
|
+
- **Pain Point**: {PRIMARY_PAIN_POINT}
|
|
34
|
+
- **Goal**: {PRIMARY_USER_GOAL}
|
|
35
|
+
|
|
36
|
+
### Secondary User (์ ํ์ฌํญ)
|
|
37
|
+
- **์ญํ **: {SECONDARY_USER_ROLE}
|
|
38
|
+
- **Pain Point**: {SECONDARY_PAIN_POINT}
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 3. ์ฌ์ฉ์ ์คํ ๋ฆฌ (User Stories)
|
|
43
|
+
|
|
44
|
+
### Epic Level Stories
|
|
45
|
+
<!-- ๊ฐ์ฅ ํฐ ๋จ์์ ์ฌ์ฉ์ ๋ชฉํ -->
|
|
46
|
+
- **US-001**: {USER_STORY_1}
|
|
47
|
+
- **US-002**: {USER_STORY_2}
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 4. ์ฃผ์ ๊ธฐ๋ฅ ์ฐ์ ์์ (Feature Prioritization โ MoSCoW)
|
|
52
|
+
|
|
53
|
+
### Must Have (ํ์)
|
|
54
|
+
<!-- ์์ผ๋ฉด ์ ํ์ด ๋์ํ์ง ์์ -->
|
|
55
|
+
- {MUST_HAVE_1}
|
|
56
|
+
- {MUST_HAVE_2}
|
|
57
|
+
|
|
58
|
+
### Should Have (๊ถ์ฅ)
|
|
59
|
+
<!-- ์ค์ํ์ง๋ง ์์ด๋ ์ต์ ๋์์ ๊ฐ๋ฅ -->
|
|
60
|
+
- {SHOULD_HAVE_1}
|
|
61
|
+
|
|
62
|
+
### Could Have (์ต์
)
|
|
63
|
+
<!-- ์์ผ๋ฉด ์ข์ง๋ง ์ฐ์ ์์ ๋ฎ์ -->
|
|
64
|
+
- {COULD_HAVE_1}
|
|
65
|
+
|
|
66
|
+
### Won't Have (์ด๋ฒ ๋ฒ์ ์ ์ธ)
|
|
67
|
+
<!-- ๋ช
์์ ์ผ๋ก ์ด๋ฒ ๋ฒ์์์ ์ ์ธ -->
|
|
68
|
+
- {WONT_HAVE_1}
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 5. ์ฑ๊ณต ์งํ (Success Metrics)
|
|
73
|
+
|
|
74
|
+
| ์งํ | ๋ชฉํ์น | ์ธก์ ๋ฐฉ๋ฒ |
|
|
75
|
+
| ---------- | ---------- | ------------------ |
|
|
76
|
+
| {METRIC_1} | {TARGET_1} | {HOW_TO_MEASURE_1} |
|
|
77
|
+
| {METRIC_2} | {TARGET_2} | {HOW_TO_MEASURE_2} |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 6. ์ ์ฝ์ฌํญ ๋ฐ ๊ฐ์ (Constraints & Assumptions)
|
|
82
|
+
|
|
83
|
+
### ์ ์ฝ์ฌํญ
|
|
84
|
+
- {CONSTRAINT_1}
|
|
85
|
+
|
|
86
|
+
### ๊ฐ์
|
|
87
|
+
- {ASSUMPTION_1}
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 7. ์ฐธ๊ณ ์๋ฃ (References)
|
|
92
|
+
- ํฐ์ผ: `{TICKET_ID}`
|
|
93
|
+
- ๊ด๋ จ ๋ฌธ์: `docs/02_SRS.md`, `docs/03_Architecture.md`
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## ์ถ์ ์ฑ (Traceability)
|
|
98
|
+
|
|
99
|
+
| ๋ฐฉํฅ | ์ฐ์ถ๋ฌผ | ๋น๊ณ |
|
|
100
|
+
| ---- | ------ | ---- |
|
|
101
|
+
| **Input from** | Epic/Feature ํฐ์ผ `{TICKET_ID}` | ์์ ๋น์ฆ๋์ค ์๊ตฌ |
|
|
102
|
+
| **Output to** | `docs/spec-kit/01_spec.md` (spec_template) | ๊ธฐ๋ฅ ๋ช
์ธ |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## ๋ณ๊ฒฝ ์ด๋ ฅ (Revision History)
|
|
107
|
+
|
|
108
|
+
| ๋ฒ์ | ๋ ์ง | ์์ฑ์ | ๋ณ๊ฒฝ ๋ด์ฉ |
|
|
109
|
+
| ---- | ------ | -------- | --------- |
|
|
110
|
+
| 0.1 | {DATE} | {AUTHOR} | ์ด์ ์์ฑ |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Feature Specification: {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
**Feature Branch**: `{TICKET_ID}-{FEATURE_SLUG}`
|
|
4
|
+
**Status**: Draft | **Date**: {DATE}
|
|
5
|
+
**Ticket**: `{TICKET_ID}` | **Type**: {ISSUE_TYPE}
|
|
6
|
+
**Input**: `docs/01_PRD.md` (์กด์ฌ ์)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## User Scenarios & Testing
|
|
11
|
+
<!-- ๊ฐ ์ฌ์ฉ์ ์คํ ๋ฆฌ๋ ๋
๋ฆฝ์ ์ผ๋ก ํ
์คํธ ๊ฐ๋ฅํ๊ณ ๊ฐ์น๋ฅผ ์ ๋ฌํด์ผ ํฉ๋๋ค -->
|
|
12
|
+
|
|
13
|
+
### User Story 1 โ {US1_TITLE} (Priority: P1) ๐ฏ MVP
|
|
14
|
+
- **์ค๋ช
**: {US1_DESCRIPTION}
|
|
15
|
+
- **Why this priority**: {US1_PRIORITY_REASON}
|
|
16
|
+
- **Independent Test**: {US1_TEST_METHOD}
|
|
17
|
+
- **Acceptance Scenarios**:
|
|
18
|
+
1. **Given** {US1_GIVEN_1}, **When** {US1_WHEN_1}, **Then** {US1_THEN_1}
|
|
19
|
+
2. **Given** {US1_GIVEN_2}, **When** {US1_WHEN_2}, **Then** {US1_THEN_2}
|
|
20
|
+
|
|
21
|
+
### User Story 2 โ {US2_TITLE} (Priority: P2)
|
|
22
|
+
- **์ค๋ช
**: {US2_DESCRIPTION}
|
|
23
|
+
- **Why this priority**: {US2_PRIORITY_REASON}
|
|
24
|
+
- **Independent Test**: {US2_TEST_METHOD}
|
|
25
|
+
- **Acceptance Scenarios**:
|
|
26
|
+
1. **Given** {US2_GIVEN_1}, **When** {US2_WHEN_1}, **Then** {US2_THEN_1}
|
|
27
|
+
|
|
28
|
+
<!-- ํ์ํ ๋งํผ User Story ์น์
์ ์ถ๊ฐ -->
|
|
29
|
+
|
|
30
|
+
### Edge Cases (์ฃ์ง ์ผ์ด์ค)
|
|
31
|
+
- **EC-001**: {EDGE_CASE_1}
|
|
32
|
+
- **EC-002**: {EDGE_CASE_2}
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Requirements
|
|
37
|
+
|
|
38
|
+
### Functional Requirements (๊ธฐ๋ฅ ์๊ตฌ์ฌํญ)
|
|
39
|
+
- **FR-001**: ์์คํ
์ ๋ฐ๋์ {FR_001_CAPABILITY}๋ฅผ ์ ๊ณตํด์ผ ํจ
|
|
40
|
+
- **FR-002**: ์์คํ
์ ๋ฐ๋์ {FR_002_CAPABILITY}๋ฅผ ์ ๊ณตํด์ผ ํจ
|
|
41
|
+
<!-- FR-XXX ํ์์ผ๋ก ๊ณ์ ์ถ๊ฐ -->
|
|
42
|
+
|
|
43
|
+
### Non-Functional Requirements (๋น๊ธฐ๋ฅ ์๊ตฌ์ฌํญ)
|
|
44
|
+
- **NFR-001 (์ฑ๋ฅ)**: {NFR_001_PERFORMANCE}
|
|
45
|
+
- **NFR-002 (๋ณด์)**: {NFR_002_SECURITY}
|
|
46
|
+
- **NFR-003 (๊ฐ์ฉ์ฑ)**: {NFR_003_AVAILABILITY}
|
|
47
|
+
|
|
48
|
+
### Key Entities (ํต์ฌ ๋ฐ์ดํฐ ๋ชจ๋ธ, ํด๋น ์)
|
|
49
|
+
- **{ENTITY_1}**: {ENTITY_1_DESCRIPTION} โ ํต์ฌ ์์ฑ: {ENTITY_1_KEY_ATTRS}
|
|
50
|
+
- **{ENTITY_2}**: {ENTITY_2_DESCRIPTION} โ ํต์ฌ ์์ฑ: {ENTITY_2_KEY_ATTRS}
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Success Criteria
|
|
55
|
+
|
|
56
|
+
### Measurable Outcomes (์ธก์ ๊ฐ๋ฅํ ์งํ)
|
|
57
|
+
- **SC-001**: {SC_001_METRIC}
|
|
58
|
+
- **SC-002**: {SC_002_METRIC}
|
|
59
|
+
|
|
60
|
+
### Definition of Done
|
|
61
|
+
- [ ] ๋ชจ๋ FR-XXX ์๊ตฌ์ฌํญ ๊ตฌํ ์๋ฃ
|
|
62
|
+
- [ ] ๋จ์ ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง {COVERAGE_TARGET}% ์ด์
|
|
63
|
+
- [ ] Edge Case ์๋๋ฆฌ์ค ๊ฒ์ฆ ์๋ฃ
|
|
64
|
+
- [ ] ์ฝ๋ ๋ฆฌ๋ทฐ ์น์ธ
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## ์ถ์ ์ฑ (Traceability)
|
|
69
|
+
|
|
70
|
+
| ๋ฐฉํฅ | ์ฐ์ถ๋ฌผ | ๋น๊ณ |
|
|
71
|
+
| ---- | ------ | ---- |
|
|
72
|
+
| **Input from** | `docs/01_PRD.md` (prd_template) | ์ ํ ์๊ตฌ์ฌํญ |
|
|
73
|
+
| **Output to** | `docs/spec-kit/02_plan.md` (plan_template) | ๊ตฌํ ๊ณํ |
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## ๋ณ๊ฒฝ ์ด๋ ฅ (Revision History)
|
|
78
|
+
|
|
79
|
+
| ๋ฒ์ | ๋ ์ง | ์์ฑ์ | ๋ณ๊ฒฝ ๋ด์ฉ |
|
|
80
|
+
| ---- | ------ | -------- | --------- |
|
|
81
|
+
| 0.1 | {DATE} | {AUTHOR} | ์ด์ ์์ฑ |
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Tasks: {PROJECT_NAME}
|
|
2
|
+
|
|
3
|
+
**Input**: `docs/spec-kit/01_spec.md`, `docs/spec-kit/02_plan.md`
|
|
4
|
+
**Ticket**: `{TICKET_ID}` | **Date**: {DATE}
|
|
5
|
+
|
|
6
|
+
> **ํ์ ์๋ด**
|
|
7
|
+
> - `[ID]` : ํ์คํฌ ๋ฒํธ (T001, T002, ...)
|
|
8
|
+
> - `[P]` : ๋ณ๋ ฌ ์คํ ๊ฐ๋ฅ ์ฌ๋ถ ํ์ (๐ ๋ณ๋ ฌ ๊ฐ๋ฅ / ๐ ์์ ํ์)
|
|
9
|
+
> - `[Story]` : ๊ด๋ จ ์ฌ์ฉ์ ์คํ ๋ฆฌ (US1, US2, ...)
|
|
10
|
+
> - ๊ฐ ํ์คํฌ๋ **2์๊ฐ ์ด๋ด** ์๋ฃ ๊ฐ๋ฅํ ๋จ์๋ก ๋ถํ
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Phase 1: Setup (๊ณตํต ์ธํ๋ผ)
|
|
15
|
+
<!-- ๋ชจ๋ ๋ค์ ๋จ๊ณ์ ํ์ํ ๊ณตํต ํ๊ฒฝ ์ค์ -->
|
|
16
|
+
|
|
17
|
+
- [ ] **T001** ๐ ํ๋ก์ ํธ ๊ตฌ์กฐ ์์ฑ ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ์ด๊ธฐํ
|
|
18
|
+
- ํ์ผ: `{SETUP_FILE_1}`, `{SETUP_FILE_2}`
|
|
19
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T001_DONE_CONDITION}`
|
|
20
|
+
|
|
21
|
+
- [ ] **T002** ๐ ์์กด์ฑ ํจํค์ง ์ ์ ๋ฐ ์ค์น
|
|
22
|
+
- ํ์ผ: `{DEPENDENCY_FILE}`
|
|
23
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T002_DONE_CONDITION}`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Phase 2: Foundational (์ ํ ํ์ ํญ๋ชฉ)
|
|
28
|
+
<!-- โ ๏ธ CRITICAL: ์ฌ์ฉ์ ์คํ ๋ฆฌ ๊ตฌํ ์ ๋ฐ๋์ ์๋ฃํด์ผ ํ ํต์ฌ ์ธํ๋ผ -->
|
|
29
|
+
|
|
30
|
+
- [ ] **T003** ๐ {FOUNDATIONAL_TASK_1_TITLE}
|
|
31
|
+
- ํ์ผ: `{T003_FILES}`
|
|
32
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T003_DONE_CONDITION}`
|
|
33
|
+
|
|
34
|
+
- [ ] **T004** ๐ {FOUNDATIONAL_TASK_2_TITLE}
|
|
35
|
+
- ํ์ผ: `{T004_FILES}`
|
|
36
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T004_DONE_CONDITION}`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Phase 3: User Story 1 โ {US1_TITLE} (Priority: P1) ๐ฏ MVP
|
|
41
|
+
|
|
42
|
+
- **Goal**: {US1_GOAL}
|
|
43
|
+
- **Independent Test**: {US1_INDEPENDENT_TEST}
|
|
44
|
+
|
|
45
|
+
- [ ] **T005** ๐ [US1] {US1_TASK_1_DESCRIPTION}
|
|
46
|
+
- ํ์ผ: `{T005_FILES}`
|
|
47
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T005_DONE_CONDITION}`
|
|
48
|
+
|
|
49
|
+
- [ ] **T006** ๐ [US1] {US1_TASK_2_DESCRIPTION}
|
|
50
|
+
- ํ์ผ: `{T006_FILES}`
|
|
51
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T006_DONE_CONDITION}`
|
|
52
|
+
|
|
53
|
+
- [ ] **T007** ๐ [US1] ๋จ์ ํ
์คํธ ์์ฑ
|
|
54
|
+
- ํ์ผ: `{T007_TEST_FILES}`
|
|
55
|
+
- ์๋ฃ ์กฐ๊ฑด: ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง {COVERAGE_TARGET}% ์ด์, ์ ์ฒด PASS
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Phase 4: User Story 2 โ {US2_TITLE} (Priority: P2)
|
|
60
|
+
|
|
61
|
+
- **Goal**: {US2_GOAL}
|
|
62
|
+
- **Independent Test**: {US2_INDEPENDENT_TEST}
|
|
63
|
+
|
|
64
|
+
- [ ] **T008** ๐ [US2] {US2_TASK_1_DESCRIPTION}
|
|
65
|
+
- ํ์ผ: `{T008_FILES}`
|
|
66
|
+
- ์๋ฃ ์กฐ๊ฑด: `{T008_DONE_CONDITION}`
|
|
67
|
+
|
|
68
|
+
- [ ] **T009** ๐ [US2] ๋จ์ ํ
์คํธ ์์ฑ
|
|
69
|
+
- ํ์ผ: `{T009_TEST_FILES}`
|
|
70
|
+
- ์๋ฃ ์กฐ๊ฑด: ์ ์ฒด PASS
|
|
71
|
+
|
|
72
|
+
<!-- ์ฌ์ฉ์ ์คํ ๋ฆฌ๋ณ Phase๋ฅผ ํ์ํ ๋งํผ ์ถ๊ฐ -->
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Phase N: Integration & Finalization
|
|
77
|
+
|
|
78
|
+
- [ ] **T-INT-01** ๐ ํตํฉ ํ
์คํธ ์คํ ๋ฐ ๊ฒ์ฆ
|
|
79
|
+
- ์๋ฃ ์กฐ๊ฑด: ๋ชจ๋ Acceptance Scenario PASS
|
|
80
|
+
|
|
81
|
+
- [ ] **T-INT-02** ๐ docs/summary.md ์์ฑ ๋ฐ git commit/push
|
|
82
|
+
- ์๋ฃ ์กฐ๊ฑด: ์๊ฒฉ ๋ธ๋์น push ์๋ฃ
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Dependencies & Execution Order
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
T001 โ T002 โ T003 โ T004
|
|
90
|
+
โ
|
|
91
|
+
T005, T006 (๐ ๋ณ๋ ฌ) โ T007
|
|
92
|
+
T008 (๐ ๋ณ๋ ฌ) โ T009
|
|
93
|
+
โ
|
|
94
|
+
T-INT-01 โ T-INT-02
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Estimated Effort
|
|
98
|
+
|
|
99
|
+
| Phase | ํ์คํฌ ์ | ์์ ์์ ์๊ฐ |
|
|
100
|
+
| ------------ | ----------------- | ------------------ |
|
|
101
|
+
| Setup | {PHASE1_COUNT} | {PHASE1_EFFORT} |
|
|
102
|
+
| Foundational | {PHASE2_COUNT} | {PHASE2_EFFORT} |
|
|
103
|
+
| User Stories | {PHASE3_COUNT} | {PHASE3_EFFORT} |
|
|
104
|
+
| Integration | 2 | {PHASEINT_EFFORT} |
|
|
105
|
+
| **ํฉ๊ณ** | **{TOTAL_COUNT}** | **{TOTAL_EFFORT}** |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## ์ถ์ ์ฑ (Traceability)
|
|
110
|
+
|
|
111
|
+
| ๋ฐฉํฅ | ์ฐ์ถ๋ฌผ | ๋น๊ณ |
|
|
112
|
+
| ---- | ------ | ---- |
|
|
113
|
+
| **Input from** | `docs/spec-kit/02_plan.md` (plan_template) | ๊ตฌํ ๊ณํ |
|
|
114
|
+
| **Output to** | ๊ตฌํ ์ปค๋ฐ/PR (`{TICKET_ID}`) | ์ฝ๋ ์ฐ์ถ๋ฌผ |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## ๋ณ๊ฒฝ ์ด๋ ฅ (Revision History)
|
|
119
|
+
|
|
120
|
+
| ๋ฒ์ | ๋ ์ง | ์์ฑ์ | ๋ณ๊ฒฝ ๋ด์ฉ |
|
|
121
|
+
| ---- | ------ | -------- | --------- |
|
|
122
|
+
| 0.1 | {DATE} | {AUTHOR} | ์ด์ ์์ฑ |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Checklist: Clinical Evaluation Report
|
|
2
|
+
|
|
3
|
+
## 1. Summary
|
|
4
|
+
|
|
5
|
+
Herein, we verify the completeness and consistency of the release of the Clinical Evaluation Report with the
|
|
6
|
+
requirements stated in Appendix A10 of the MEDDEV 2.7/1 revision 4 Guideline.
|
|
7
|
+
|
|
8
|
+
> This checklist is actually copy-pasted from the Appendix A10 of the MEDDEV 2.7/1 revision 4 Guideline.
|
|
9
|
+
>
|
|
10
|
+
> This template is the bare minimum to ensure that your Clinical Evaluation Report is compliant with the
|
|
11
|
+
> requirements for the initial CE-marking and follows the key points the notified bodies in the EU will assess
|
|
12
|
+
> your Clinical Evaluation Report for. Feel free to add further rows and / or adapt the current ones in the
|
|
13
|
+
> checklist if they make sense for your SaMD. Make sure to fill it out before you continue working on other
|
|
14
|
+
> technical documentation of your SaMD especially post-market surveillance and risk assessment-related
|
|
15
|
+
> activities.
|
|
16
|
+
|
|
17
|
+
## 2. Relevant Other Documentation
|
|
18
|
+
|
|
19
|
+
* Clinical Evaluation Report (Doc-ID)
|
|
20
|
+
|
|
21
|
+
## 3. Checklist Overview
|
|
22
|
+
|
|
23
|
+
The following documents are up to date:
|
|
24
|
+
|
|
25
|
+
> The table below shows examples only. Add - or reference - a list of all your required TechDoc records.
|
|
26
|
+
|
|
27
|
+
| Item | Yes | No | Comment |
|
|
28
|
+
|-------------------------------------|-------|------|---------|
|
|
29
|
+
| SOP Clinical Evaluation (Doc-ID) | | | |
|
|
30
|
+
| Clinical Evaluation Plan (Doc-ID) | | | |
|
|
31
|
+
| Clinical Evaluation Report (Doc-ID) | | | |
|
|
32
|
+
| Declaration of Conformity | | | |
|
|
33
|
+
|
|
34
|
+
The following activities have been performed:
|
|
35
|
+
|
|
36
|
+
| Checklist Items | Yes | No | Comment |
|
|
37
|
+
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----|----|---------|
|
|
38
|
+
| Can the report be read and understood by a third party, does it provide sufficient detail for understanding the data that are available, all assumptions made and all conclusions reached? | | | |
|
|
39
|
+
| If clinical data have been generated and are held by the manufacturer, are all data mentioned and adequately summarised in the report? | | | |
|
|
40
|
+
| If equivalence is claimed, | | | |
|
|
41
|
+
| \- is demonstration of equivalence included in the report? | | | |
|
|
42
|
+
| \- does the report disclose all the differences between the device under evaluation and the equivalent device? | | | |
|
|
43
|
+
| \- does it explain why the differences are not expected to affect the clinical performance and clinical safety of the device? | | | |
|
|
44
|
+
| If the product is already in the market in Europe or elsewhere, has the latest PMS/ PMCF data been taken into consideration and has it been summarised and referenced in the report? | | | |
|
|
45
|
+
| In respect to current knowledge/ the state of the art, | | | |
|
|
46
|
+
| \- has the report been updated? | | | |
|
|
47
|
+
| \- is current knowledge/ the state of the art summarised in the report and is it adequately substantiated by literature? | | | |
|
|
48
|
+
| \- does the content of the report fully correspond to current knowledge/ the state of the art? | | | |
|
|
49
|
+
| \- does the report explain why the benefit/risk profile and the undesirable side\-effects are acceptable in relation to current knowledge/ the state of the art? | | | |
|
|
50
|
+
| If the report covers several models/ sizes/ settings and/or different clinical situations, is there sufficient clinical evidence and are the reportโs conclusions correct for | | | |
|
|
51
|
+
| \- all the devices? | | | |
|
|
52
|
+
| \- all its sizes, models and settings? (including the smallest/ largest size, highest/ lowest dose, etc.) | | | |
|
|
53
|
+
| \- every medical indication? (as described in the IFU/ not excluded with contraindications in the IFU) | | | |
|
|
54
|
+
| \- the entire target population? (from pre term infants to old age, for males and females, etc., if not restricted in the IFU) | | | |
|
|
55
|
+
| \- every form, stage and severity of the medical condition, as applicable? (including the most severe/ most benign forms, acute/ chronic stage, if not excluded in the IFU) | | | |
|
|
56
|
+
| \- all intended users? (including lay persons, if not excluded in the IFU, and any unusual user group) | | | |
|
|
57
|
+
| \- the whole duration of product use, including the maximal number of repeated exposure? (as allowed by the IFU) | | | |
|
|
58
|
+
| \- if there are any discrepancies as to the above, are they identified in the reportโs conclusions? | | | |
|
|
59
|
+
| Is conformity to each of the relevant Essential Requirements (AIMDD ER1,2,5 / MDD ER1,3,6 ) clearly stated and are all discrepancies identified in the reportโs conclusions? | | | |
|
|
60
|
+
| Do the information materials supplied by the manufacturer correspond with the contents of the report and are all discrepancies identified in the reportโs conclusions? | | | |
|
|
61
|
+
| Do the reportโs conclusions identify all residual risks and uncertainties or unanswered questions that should be addressed with PMS/ PMCF studies? | | | |
|
|
62
|
+
| Is the report dated? | | | |
|
|
63
|
+
| Is the qualification of the evaluators included in the report and correct? | | | |
|
|
64
|
+
| Does the manufacturer hold a CV and declaration of interests of each of the evaluators and are these up-to-date? | | | |
|
|
65
|
+
|
|
66
|
+
## 4. Comments
|
|
67
|
+
|
|
68
|
+
\<Insert comments if applicable\>
|
|
69
|
+
|
|
70
|
+
## 5. Result
|
|
71
|
+
|
|
72
|
+
[ ] Checklist passed\
|
|
73
|
+
[ ] Checklist not passed\
|
|
74
|
+
[ ] Checklist passed with the following obligations: \<Insert if applicable\>
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
Template Copyright [openregulatory.com](https://openregulatory.com). See [template
|
|
79
|
+
license](https://openregulatory.com/template-license).
|
|
80
|
+
|
|
81
|
+
Please don't remove this notice even if you've modified contents of this template.
|