create-ax-project 1.0.0
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/README.md +374 -0
- package/bin/create.js +193 -0
- package/package.json +38 -0
- package/template/.claude/CLAUDE.md +7 -0
- package/template/.claude/commands/CLAUDE.md +0 -0
- package/template/.claude/commands/benchmark.md +103 -0
- package/template/.claude/commands/brainstorm.md +67 -0
- package/template/.claude/commands/checkpoint.md +93 -0
- package/template/.claude/commands/codex.md +107 -0
- package/template/.claude/commands/collaborate.md +85 -0
- package/template/.claude/commands/context.md +154 -0
- package/template/.claude/commands/deploy.md +102 -0
- package/template/.claude/commands/fork.md +142 -0
- package/template/.claude/commands/gemini.md +84 -0
- package/template/.claude/commands/handoff.md +80 -0
- package/template/.claude/commands/implement.md +82 -0
- package/template/.claude/commands/init-project.md +49 -0
- package/template/.claude/commands/next.md +125 -0
- package/template/.claude/commands/planning.md +69 -0
- package/template/.claude/commands/qa.md +81 -0
- package/template/.claude/commands/refactor.md +95 -0
- package/template/.claude/commands/research.md +60 -0
- package/template/.claude/commands/restore.md +113 -0
- package/template/.claude/commands/run-stage.md +78 -0
- package/template/.claude/commands/stages.md +109 -0
- package/template/.claude/commands/status.md +73 -0
- package/template/.claude/commands/tasks.md +80 -0
- package/template/.claude/commands/test.md +93 -0
- package/template/.claude/commands/ui-ux.md +61 -0
- package/template/.claude/commands/validate.md +174 -0
- package/template/.claude/hooks/CLAUDE.md +0 -0
- package/template/.claude/hooks/ai-selector.sh +223 -0
- package/template/.claude/hooks/auto-checkpoint.sh +187 -0
- package/template/.claude/hooks/output-validator.sh +289 -0
- package/template/.claude/hooks/post-stage.sh +123 -0
- package/template/.claude/hooks/pre-stage.sh +186 -0
- package/template/.claude/hooks/session-start.sh +90 -0
- package/template/.claude/hooks/statusline.sh +115 -0
- package/template/.claude/hooks/stop.sh +104 -0
- package/template/.claude/settings.json +149 -0
- package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
- package/template/.claude/skills/ai-collaboration/README.md +61 -0
- package/template/.claude/skills/ai-collaboration/debate.md +148 -0
- package/template/.claude/skills/ai-collaboration/parallel.md +96 -0
- package/template/.claude/skills/ai-collaboration/prompts/CLAUDE.md +107 -0
- package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
- package/template/.claude/skills/auto-checkpoint/README.md +77 -0
- package/template/.claude/skills/auto-checkpoint/prompts/CLAUDE.md +113 -0
- package/template/.claude/skills/auto-checkpoint/rollback.md +152 -0
- package/template/.claude/skills/auto-checkpoint/trigger.md +122 -0
- package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/README.md +121 -0
- package/template/.claude/skills/context-compression/analyze.md +114 -0
- package/template/.claude/skills/context-compression/compress.md +175 -0
- package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/prompts/compression.md +172 -0
- package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
- package/template/.claude/skills/output-validator/README.md +86 -0
- package/template/.claude/skills/output-validator/prompts/CLAUDE.md +119 -0
- package/template/.claude/skills/output-validator/validate.md +182 -0
- package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
- package/template/.claude/skills/smart-handoff/README.md +59 -0
- package/template/.claude/skills/smart-handoff/extract.md +76 -0
- package/template/.claude/skills/smart-handoff/prompts/CLAUDE.md +86 -0
- package/template/.claude/skills/smart-handoff/summarize.md +94 -0
- package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/README.md +84 -0
- package/template/.claude/skills/stage-transition/handoff-gen.md +160 -0
- package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/prompts/transition.md +145 -0
- package/template/.claude/skills/stage-transition/validate.md +108 -0
- package/template/CLAUDE.md +528 -0
- package/template/config/CLAUDE.md +0 -0
- package/template/config/ai_benchmarking.yaml +184 -0
- package/template/config/ai_collaboration.yaml +159 -0
- package/template/config/ai_logging.yaml +129 -0
- package/template/config/auto_checkpoint.yaml +189 -0
- package/template/config/context.yaml +78 -0
- package/template/config/git.yaml +161 -0
- package/template/config/handoff_intelligence.yaml +229 -0
- package/template/config/implementation.yaml.template +181 -0
- package/template/config/mcp_fallbacks.yaml +252 -0
- package/template/config/memory_integration.yaml +200 -0
- package/template/config/model_enforcement.yaml +141 -0
- package/template/config/models.yaml +242 -0
- package/template/config/output_validation.yaml +352 -0
- package/template/config/pipeline.yaml +357 -0
- package/template/config/pipeline_forking.yaml +236 -0
- package/template/config/qa_logging.yaml +166 -0
- package/template/config/smart_rollback.yaml +209 -0
- package/template/config/stage_personas.yaml +354 -0
- package/template/config/workflow.yaml +54 -0
- package/template/scripts/CLAUDE.md +0 -0
- package/template/scripts/ai-benchmark.sh +272 -0
- package/template/scripts/codex-wrapper.sh +97 -0
- package/template/scripts/context-manager.sh +528 -0
- package/template/scripts/create-checkpoint.sh +116 -0
- package/template/scripts/gemini-wrapper.sh +96 -0
- package/template/scripts/init-project.sh +109 -0
- package/template/scripts/list-stages.sh +245 -0
- package/template/scripts/next-stage.sh +228 -0
- package/template/scripts/output-validate.sh +12 -0
- package/template/scripts/pipeline-fork.sh +293 -0
- package/template/scripts/pre-run-check.sh +361 -0
- package/template/scripts/restore-checkpoint.sh +247 -0
- package/template/scripts/run-stage.sh +139 -0
- package/template/scripts/show-status.sh +185 -0
- package/template/scripts/smart-handoff.sh +254 -0
- package/template/stages/01-brainstorm/CLAUDE.md +103 -0
- package/template/stages/01-brainstorm/HANDOFF.md +110 -0
- package/template/stages/01-brainstorm/HANDOFF.md.template +112 -0
- package/template/stages/01-brainstorm/README.md +97 -0
- package/template/stages/01-brainstorm/config.yaml +92 -0
- package/template/stages/01-brainstorm/inputs/.gitkeep +0 -0
- package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/inputs/project_brief.md +40 -0
- package/template/stages/01-brainstorm/outputs/.gitkeep +0 -0
- package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/outputs/ideas.md +159 -0
- package/template/stages/01-brainstorm/outputs/requirements_analysis.md +222 -0
- package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/prompts/collaboration.md +46 -0
- package/template/stages/01-brainstorm/prompts/ideation.md +62 -0
- package/template/stages/01-brainstorm/prompts/persona.md +73 -0
- package/template/stages/01-brainstorm/prompts/requirements.md +73 -0
- package/template/stages/01-brainstorm/prompts/validation.md +50 -0
- package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/templates/ideas.md +91 -0
- package/template/stages/01-brainstorm/templates/requirements_analysis.md +129 -0
- package/template/stages/02-research/CLAUDE.md +101 -0
- package/template/stages/02-research/HANDOFF.md +158 -0
- package/template/stages/02-research/HANDOFF.md.template +102 -0
- package/template/stages/02-research/config.yaml +68 -0
- package/template/stages/02-research/inputs/.gitkeep +0 -0
- package/template/stages/02-research/outputs/.gitkeep +0 -0
- package/template/stages/02-research/outputs/CLAUDE.md +0 -0
- package/template/stages/02-research/outputs/feasibility_report.md +176 -0
- package/template/stages/02-research/outputs/tech_research.md +403 -0
- package/template/stages/02-research/prompts/CLAUDE.md +0 -0
- package/template/stages/02-research/prompts/collaboration.md +51 -0
- package/template/stages/02-research/prompts/feasibility.md +73 -0
- package/template/stages/02-research/prompts/market_analysis.md +58 -0
- package/template/stages/02-research/prompts/tech_stack.md +60 -0
- package/template/stages/02-research/prompts/validation.md +51 -0
- package/template/stages/02-research/templates/.gitkeep +0 -0
- package/template/stages/03-planning/CLAUDE.md +98 -0
- package/template/stages/03-planning/HANDOFF.md +168 -0
- package/template/stages/03-planning/HANDOFF.md.template +91 -0
- package/template/stages/03-planning/config.yaml +64 -0
- package/template/stages/03-planning/inputs/.gitkeep +0 -0
- package/template/stages/03-planning/outputs/.gitkeep +0 -0
- package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
- package/template/stages/03-planning/outputs/architecture.md +400 -0
- package/template/stages/03-planning/outputs/implementation.yaml +209 -0
- package/template/stages/03-planning/outputs/project_plan.md +204 -0
- package/template/stages/03-planning/outputs/tech_stack.md +176 -0
- package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
- package/template/stages/03-planning/prompts/architecture.md +62 -0
- package/template/stages/03-planning/prompts/collaboration.md +57 -0
- package/template/stages/03-planning/prompts/validation.md +59 -0
- package/template/stages/03-planning/templates/.gitkeep +0 -0
- package/template/stages/04-ui-ux/CLAUDE.md +88 -0
- package/template/stages/04-ui-ux/HANDOFF.md +165 -0
- package/template/stages/04-ui-ux/HANDOFF.md.template +92 -0
- package/template/stages/04-ui-ux/config.yaml +57 -0
- package/template/stages/04-ui-ux/inputs/.gitkeep +0 -0
- package/template/stages/04-ui-ux/outputs/.gitkeep +0 -0
- package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/outputs/design_system.md +449 -0
- package/template/stages/04-ui-ux/outputs/user_flows.md +321 -0
- package/template/stages/04-ui-ux/outputs/wireframes.md +241 -0
- package/template/stages/04-ui-ux/prompts/.gitkeep +0 -0
- package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/prompts/collaboration.md +56 -0
- package/template/stages/04-ui-ux/prompts/validation.md +54 -0
- package/template/stages/04-ui-ux/templates/.gitkeep +0 -0
- package/template/stages/05-task-management/CLAUDE.md +105 -0
- package/template/stages/05-task-management/HANDOFF.md +187 -0
- package/template/stages/05-task-management/HANDOFF.md.template +97 -0
- package/template/stages/05-task-management/config.yaml +81 -0
- package/template/stages/05-task-management/inputs/.gitkeep +0 -0
- package/template/stages/05-task-management/outputs/.gitkeep +0 -0
- package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
- package/template/stages/05-task-management/outputs/milestones.md +253 -0
- package/template/stages/05-task-management/outputs/sprint_plan.md +203 -0
- package/template/stages/05-task-management/outputs/tasks.md +402 -0
- package/template/stages/05-task-management/prompts/.gitkeep +0 -0
- package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
- package/template/stages/05-task-management/prompts/collaboration.md +54 -0
- package/template/stages/05-task-management/prompts/validation.md +66 -0
- package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
- package/template/stages/05-task-management/templates/notion_integration.md +176 -0
- package/template/stages/05-task-management/templates/parallel_groups.yaml +153 -0
- package/template/stages/05-task-management/templates/task_schema.yaml +154 -0
- package/template/stages/06-implementation/CLAUDE.md +163 -0
- package/template/stages/06-implementation/HANDOFF.md +184 -0
- package/template/stages/06-implementation/HANDOFF.md.template +192 -0
- package/template/stages/06-implementation/config.yaml +62 -0
- package/template/stages/06-implementation/inputs/.gitkeep +0 -0
- package/template/stages/06-implementation/outputs/.gitkeep +0 -0
- package/template/stages/06-implementation/prompts/.gitkeep +0 -0
- package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
- package/template/stages/06-implementation/prompts/collaboration.md +64 -0
- package/template/stages/06-implementation/prompts/validation.md +65 -0
- package/template/stages/06-implementation/templates/.gitkeep +0 -0
- package/template/stages/07-refactoring/CLAUDE.md +180 -0
- package/template/stages/07-refactoring/HANDOFF.md +82 -0
- package/template/stages/07-refactoring/HANDOFF.md.template +97 -0
- package/template/stages/07-refactoring/config.yaml +68 -0
- package/template/stages/07-refactoring/inputs/.gitkeep +0 -0
- package/template/stages/07-refactoring/outputs/.gitkeep +0 -0
- package/template/stages/07-refactoring/outputs/refactoring_report.md +102 -0
- package/template/stages/07-refactoring/prompts/.gitkeep +0 -0
- package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
- package/template/stages/07-refactoring/prompts/collaboration.md +71 -0
- package/template/stages/07-refactoring/prompts/validation.md +76 -0
- package/template/stages/07-refactoring/templates/.gitkeep +0 -0
- package/template/stages/08-qa/CLAUDE.md +93 -0
- package/template/stages/08-qa/HANDOFF.md +114 -0
- package/template/stages/08-qa/HANDOFF.md.template +96 -0
- package/template/stages/08-qa/config.yaml +56 -0
- package/template/stages/08-qa/inputs/.gitkeep +0 -0
- package/template/stages/08-qa/outputs/.gitkeep +0 -0
- package/template/stages/08-qa/outputs/qa_report.md +138 -0
- package/template/stages/08-qa/prompts/.gitkeep +0 -0
- package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
- package/template/stages/08-qa/prompts/collaboration.md +65 -0
- package/template/stages/08-qa/prompts/validation.md +71 -0
- package/template/stages/08-qa/templates/.gitkeep +0 -0
- package/template/stages/09-testing/CLAUDE.md +124 -0
- package/template/stages/09-testing/HANDOFF.md +118 -0
- package/template/stages/09-testing/HANDOFF.md.template +113 -0
- package/template/stages/09-testing/config.yaml +65 -0
- package/template/stages/09-testing/inputs/.gitkeep +0 -0
- package/template/stages/09-testing/outputs/.gitkeep +0 -0
- package/template/stages/09-testing/outputs/test_report.md +146 -0
- package/template/stages/09-testing/prompts/.gitkeep +0 -0
- package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
- package/template/stages/09-testing/prompts/collaboration.md +77 -0
- package/template/stages/09-testing/prompts/validation.md +83 -0
- package/template/stages/09-testing/templates/.gitkeep +0 -0
- package/template/stages/10-deployment/CLAUDE.md +117 -0
- package/template/stages/10-deployment/HANDOFF.md +141 -0
- package/template/stages/10-deployment/HANDOFF.md.template +148 -0
- package/template/stages/10-deployment/config.yaml +61 -0
- package/template/stages/10-deployment/inputs/.gitkeep +0 -0
- package/template/stages/10-deployment/outputs/.gitkeep +0 -0
- package/template/stages/10-deployment/prompts/.gitkeep +0 -0
- package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
- package/template/stages/10-deployment/prompts/collaboration.md +80 -0
- package/template/stages/10-deployment/prompts/validation.md +93 -0
- package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
- package/template/stages/10-deployment/templates/github-actions-cd.yaml +118 -0
- package/template/stages/10-deployment/templates/github-actions-ci.yaml +136 -0
- package/template/state/progress.json.template +111 -0
- package/template/state/templates/CLAUDE.md +0 -0
- package/template/state/templates/handoff_base.md.template +187 -0
- package/template/state/templates/phase_state.md.template +97 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# ax-templates HANDOFF Intelligence Configuration
|
|
2
|
+
# Smart context extraction and summarization
|
|
3
|
+
|
|
4
|
+
smart_handoff:
|
|
5
|
+
enabled: true
|
|
6
|
+
description: "자동 컨텍스트 추출 및 지능형 HANDOFF 생성"
|
|
7
|
+
|
|
8
|
+
# 자동 추출 설정
|
|
9
|
+
auto_extraction:
|
|
10
|
+
enabled: true
|
|
11
|
+
description: "HANDOFF에 포함할 정보 자동 추출"
|
|
12
|
+
|
|
13
|
+
extract_from:
|
|
14
|
+
completed_tasks:
|
|
15
|
+
enabled: true
|
|
16
|
+
format: "checklist"
|
|
17
|
+
include_timestamps: true
|
|
18
|
+
|
|
19
|
+
key_decisions:
|
|
20
|
+
enabled: true
|
|
21
|
+
format: "decision_log"
|
|
22
|
+
include_rationale: true
|
|
23
|
+
include_alternatives: false
|
|
24
|
+
|
|
25
|
+
modified_files:
|
|
26
|
+
enabled: true
|
|
27
|
+
format: "file_list"
|
|
28
|
+
include_diff_summary: true
|
|
29
|
+
max_files: 20
|
|
30
|
+
|
|
31
|
+
pending_issues:
|
|
32
|
+
enabled: true
|
|
33
|
+
format: "issue_list"
|
|
34
|
+
priority_order: true
|
|
35
|
+
|
|
36
|
+
ai_call_history:
|
|
37
|
+
enabled: true
|
|
38
|
+
format: "table"
|
|
39
|
+
include_prompts: false # 토큰 절약
|
|
40
|
+
include_results_summary: true
|
|
41
|
+
|
|
42
|
+
# 추출 우선순위 (높을수록 먼저)
|
|
43
|
+
priority:
|
|
44
|
+
- blocking_issues: 100
|
|
45
|
+
- key_decisions: 90
|
|
46
|
+
- pending_issues: 80
|
|
47
|
+
- modified_files: 70
|
|
48
|
+
- completed_tasks: 60
|
|
49
|
+
- ai_call_history: 50
|
|
50
|
+
|
|
51
|
+
# 압축 설정
|
|
52
|
+
compression:
|
|
53
|
+
enabled: true
|
|
54
|
+
strategy: "semantic"
|
|
55
|
+
description: "의미 기반 컨텍스트 압축"
|
|
56
|
+
|
|
57
|
+
max_tokens: 4000
|
|
58
|
+
compression_ratio_target: 0.3 # 원본의 30%
|
|
59
|
+
|
|
60
|
+
preserve:
|
|
61
|
+
always:
|
|
62
|
+
- "critical_decisions"
|
|
63
|
+
- "blocking_issues"
|
|
64
|
+
- "current_task"
|
|
65
|
+
conditionally:
|
|
66
|
+
- "file_changes"
|
|
67
|
+
- "test_results"
|
|
68
|
+
|
|
69
|
+
summarization:
|
|
70
|
+
enabled: true
|
|
71
|
+
method: "extractive" # extractive or abstractive
|
|
72
|
+
model: "claude"
|
|
73
|
+
|
|
74
|
+
# 컨텍스트 전달 최적화
|
|
75
|
+
context_transfer:
|
|
76
|
+
format: "structured_markdown"
|
|
77
|
+
|
|
78
|
+
sections:
|
|
79
|
+
critical:
|
|
80
|
+
title: "Critical Context"
|
|
81
|
+
max_tokens: 1500
|
|
82
|
+
content:
|
|
83
|
+
- blocking_issues
|
|
84
|
+
- critical_decisions
|
|
85
|
+
|
|
86
|
+
primary:
|
|
87
|
+
title: "Primary Context"
|
|
88
|
+
max_tokens: 1500
|
|
89
|
+
content:
|
|
90
|
+
- current_task_state
|
|
91
|
+
- key_file_changes
|
|
92
|
+
- next_steps
|
|
93
|
+
|
|
94
|
+
secondary:
|
|
95
|
+
title: "Secondary Context"
|
|
96
|
+
max_tokens: 1000
|
|
97
|
+
content:
|
|
98
|
+
- completed_tasks_summary
|
|
99
|
+
- ai_call_summary
|
|
100
|
+
|
|
101
|
+
# 다음 스테이지에 즉시 필요한 정보 하이라이트
|
|
102
|
+
highlight:
|
|
103
|
+
enabled: true
|
|
104
|
+
marker: "!!"
|
|
105
|
+
content:
|
|
106
|
+
- immediate_actions
|
|
107
|
+
- required_inputs
|
|
108
|
+
|
|
109
|
+
# 컨텍스트 요약 설정
|
|
110
|
+
contextual_summarization:
|
|
111
|
+
enabled: true
|
|
112
|
+
description: "스테이지별 맞춤 요약 생성"
|
|
113
|
+
|
|
114
|
+
strategies:
|
|
115
|
+
completed_tasks:
|
|
116
|
+
method: "bullet_points"
|
|
117
|
+
max_items: 10
|
|
118
|
+
grouping: "by_type" # by_type, by_priority, chronological
|
|
119
|
+
|
|
120
|
+
file_changes:
|
|
121
|
+
method: "impact_analysis"
|
|
122
|
+
include:
|
|
123
|
+
- file_path
|
|
124
|
+
- change_type
|
|
125
|
+
- impact_scope
|
|
126
|
+
exclude_patterns:
|
|
127
|
+
- "*.log"
|
|
128
|
+
- "*.tmp"
|
|
129
|
+
- "node_modules/*"
|
|
130
|
+
|
|
131
|
+
decisions:
|
|
132
|
+
method: "structured"
|
|
133
|
+
format: |
|
|
134
|
+
**결정**: {{decision}}
|
|
135
|
+
**이유**: {{rationale}}
|
|
136
|
+
**영향**: {{impact}}
|
|
137
|
+
|
|
138
|
+
next_steps:
|
|
139
|
+
method: "actionable"
|
|
140
|
+
format: "numbered_list"
|
|
141
|
+
include_prerequisites: true
|
|
142
|
+
|
|
143
|
+
# 스테이지별 요약 초점
|
|
144
|
+
stage_focus:
|
|
145
|
+
"01-brainstorm":
|
|
146
|
+
emphasize: ["ideas", "requirements"]
|
|
147
|
+
de_emphasize: ["technical_details"]
|
|
148
|
+
|
|
149
|
+
"06-implementation":
|
|
150
|
+
emphasize: ["code_changes", "technical_decisions"]
|
|
151
|
+
de_emphasize: ["ideation"]
|
|
152
|
+
|
|
153
|
+
"08-qa":
|
|
154
|
+
emphasize: ["bugs", "test_results"]
|
|
155
|
+
de_emphasize: ["planning_details"]
|
|
156
|
+
|
|
157
|
+
# HANDOFF 템플릿 설정
|
|
158
|
+
templates:
|
|
159
|
+
default:
|
|
160
|
+
sections:
|
|
161
|
+
- name: "Summary"
|
|
162
|
+
required: true
|
|
163
|
+
auto_generate: true
|
|
164
|
+
|
|
165
|
+
- name: "Completed Tasks"
|
|
166
|
+
required: true
|
|
167
|
+
auto_generate: true
|
|
168
|
+
|
|
169
|
+
- name: "Key Decisions"
|
|
170
|
+
required: true
|
|
171
|
+
auto_generate: true
|
|
172
|
+
|
|
173
|
+
- name: "Modified Files"
|
|
174
|
+
required: false
|
|
175
|
+
auto_generate: true
|
|
176
|
+
|
|
177
|
+
- name: "Pending Issues"
|
|
178
|
+
required: false
|
|
179
|
+
auto_generate: true
|
|
180
|
+
|
|
181
|
+
- name: "Next Steps"
|
|
182
|
+
required: true
|
|
183
|
+
auto_generate: true
|
|
184
|
+
|
|
185
|
+
- name: "AI Call History"
|
|
186
|
+
required: false
|
|
187
|
+
auto_generate: true
|
|
188
|
+
|
|
189
|
+
# 스테이지 전환용 간소화 템플릿
|
|
190
|
+
compact:
|
|
191
|
+
max_tokens: 2000
|
|
192
|
+
sections:
|
|
193
|
+
- name: "Critical"
|
|
194
|
+
required: true
|
|
195
|
+
- name: "Next Actions"
|
|
196
|
+
required: true
|
|
197
|
+
|
|
198
|
+
# 세션 복구용 상세 템플릿
|
|
199
|
+
recovery:
|
|
200
|
+
max_tokens: 6000
|
|
201
|
+
sections:
|
|
202
|
+
- name: "Full Context"
|
|
203
|
+
required: true
|
|
204
|
+
- name: "Step-by-Step Recovery"
|
|
205
|
+
required: true
|
|
206
|
+
|
|
207
|
+
# 품질 검증
|
|
208
|
+
quality_assurance:
|
|
209
|
+
validation:
|
|
210
|
+
check_completeness: true
|
|
211
|
+
check_consistency: true
|
|
212
|
+
check_actionability: true
|
|
213
|
+
|
|
214
|
+
scoring:
|
|
215
|
+
enabled: true
|
|
216
|
+
criteria:
|
|
217
|
+
- clarity: 0.3
|
|
218
|
+
- completeness: 0.3
|
|
219
|
+
- actionability: 0.4
|
|
220
|
+
|
|
221
|
+
minimum_score: 0.7
|
|
222
|
+
|
|
223
|
+
auto_improve:
|
|
224
|
+
enabled: true
|
|
225
|
+
max_iterations: 2
|
|
226
|
+
improvement_prompts:
|
|
227
|
+
low_clarity: "이 섹션을 더 명확하게 다시 작성하세요."
|
|
228
|
+
low_completeness: "누락된 정보가 있습니다. 다음을 추가하세요: {{missing}}"
|
|
229
|
+
low_actionability: "다음 단계를 더 구체적인 액션으로 변환하세요."
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Implementation Rules Template
|
|
2
|
+
# ax-templates-3 프로젝트별 구현 규칙 정의 (Issue #10 해결)
|
|
3
|
+
#
|
|
4
|
+
# 이 파일은 Planning 스테이지(03)에서 프로젝트에 맞게 작성하고
|
|
5
|
+
# Implementation 스테이지(06)에서 참조합니다.
|
|
6
|
+
#
|
|
7
|
+
# 사용법:
|
|
8
|
+
# 1. 이 템플릿을 프로젝트 루트에 implementation.yaml로 복사
|
|
9
|
+
# 2. 프로젝트 요구사항에 맞게 수정
|
|
10
|
+
# 3. 구현 시 이 규칙을 따름
|
|
11
|
+
|
|
12
|
+
project:
|
|
13
|
+
name: "{{PROJECT_NAME}}"
|
|
14
|
+
created_at: "{{TIMESTAMP}}"
|
|
15
|
+
|
|
16
|
+
# 컴포넌트 규칙
|
|
17
|
+
components:
|
|
18
|
+
# 컴포넌트 타입
|
|
19
|
+
type: "functional" # functional | class | both
|
|
20
|
+
|
|
21
|
+
# export 방식
|
|
22
|
+
export: "named" # named | default | both
|
|
23
|
+
|
|
24
|
+
# 파일당 컴포넌트 수
|
|
25
|
+
single_component_per_file: true
|
|
26
|
+
|
|
27
|
+
# Props 정의 방식
|
|
28
|
+
props_definition: "interface" # interface | type | inline
|
|
29
|
+
|
|
30
|
+
# 기본 구조
|
|
31
|
+
structure: |
|
|
32
|
+
// imports
|
|
33
|
+
// types/interfaces
|
|
34
|
+
// component
|
|
35
|
+
// exports
|
|
36
|
+
|
|
37
|
+
# 스타일링 규칙
|
|
38
|
+
styling:
|
|
39
|
+
# 접근 방식
|
|
40
|
+
approach: "css-modules" # css-modules | styled-components | tailwind | emotion | vanilla
|
|
41
|
+
|
|
42
|
+
# 파일 위치
|
|
43
|
+
location: "colocated" # colocated | separate | global
|
|
44
|
+
|
|
45
|
+
# 네이밍
|
|
46
|
+
naming: "BEM" # BEM | camelCase | kebab-case
|
|
47
|
+
|
|
48
|
+
# CSS 변수 사용
|
|
49
|
+
css_variables: true
|
|
50
|
+
|
|
51
|
+
# 상태 관리 규칙
|
|
52
|
+
state_management:
|
|
53
|
+
# 전역 상태
|
|
54
|
+
global: "context" # context | redux | zustand | recoil | jotai
|
|
55
|
+
|
|
56
|
+
# 서버 상태
|
|
57
|
+
server: "tanstack-query" # tanstack-query | swr | rtk-query
|
|
58
|
+
|
|
59
|
+
# 로컬 상태
|
|
60
|
+
local: "useState" # useState | useReducer
|
|
61
|
+
|
|
62
|
+
# 파일/폴더 네이밍
|
|
63
|
+
file_naming:
|
|
64
|
+
# 컴포넌트 파일
|
|
65
|
+
components: "PascalCase" # PascalCase | kebab-case | camelCase
|
|
66
|
+
|
|
67
|
+
# 훅 파일
|
|
68
|
+
hooks: "camelCase" # useXxx 패턴
|
|
69
|
+
|
|
70
|
+
# 유틸리티 파일
|
|
71
|
+
utilities: "camelCase"
|
|
72
|
+
|
|
73
|
+
# 상수 파일
|
|
74
|
+
constants: "SCREAMING_SNAKE_CASE"
|
|
75
|
+
|
|
76
|
+
# 테스트 파일
|
|
77
|
+
tests: "{name}.test.{ext}" # {name}.test.{ext} | {name}.spec.{ext}
|
|
78
|
+
|
|
79
|
+
# 폴더 구조
|
|
80
|
+
folder_structure:
|
|
81
|
+
# 구조 타입
|
|
82
|
+
type: "feature-based" # feature-based | type-based | atomic
|
|
83
|
+
|
|
84
|
+
# 기본 구조
|
|
85
|
+
structure: |
|
|
86
|
+
src/
|
|
87
|
+
├── components/ # 공용 컴포넌트
|
|
88
|
+
├── features/ # 기능별 모듈
|
|
89
|
+
│ └── [feature]/
|
|
90
|
+
│ ├── components/
|
|
91
|
+
│ ├── hooks/
|
|
92
|
+
│ ├── utils/
|
|
93
|
+
│ └── index.ts
|
|
94
|
+
├── hooks/ # 공용 훅
|
|
95
|
+
├── utils/ # 공용 유틸리티
|
|
96
|
+
├── types/ # 타입 정의
|
|
97
|
+
├── constants/ # 상수
|
|
98
|
+
└── styles/ # 전역 스타일
|
|
99
|
+
|
|
100
|
+
# API 연동 규칙
|
|
101
|
+
api:
|
|
102
|
+
# HTTP 클라이언트
|
|
103
|
+
client: "axios" # axios | fetch | ky
|
|
104
|
+
|
|
105
|
+
# API 호출 위치
|
|
106
|
+
location: "services" # services | features | hooks
|
|
107
|
+
|
|
108
|
+
# 에러 핸들링
|
|
109
|
+
error_handling: "centralized" # centralized | per-request
|
|
110
|
+
|
|
111
|
+
# 인터셉터 사용
|
|
112
|
+
interceptors: true
|
|
113
|
+
|
|
114
|
+
# 에러 처리 규칙
|
|
115
|
+
error_handling:
|
|
116
|
+
# Error Boundary 사용
|
|
117
|
+
error_boundary: true
|
|
118
|
+
|
|
119
|
+
# 로깅
|
|
120
|
+
logging: "console" # console | service | both
|
|
121
|
+
|
|
122
|
+
# 사용자 알림
|
|
123
|
+
user_notification: "toast" # toast | modal | inline
|
|
124
|
+
|
|
125
|
+
# 테스트 규칙
|
|
126
|
+
testing:
|
|
127
|
+
# 테스트 프레임워크
|
|
128
|
+
framework: "vitest" # vitest | jest
|
|
129
|
+
|
|
130
|
+
# E2E 프레임워크
|
|
131
|
+
e2e: "playwright" # playwright | cypress
|
|
132
|
+
|
|
133
|
+
# 커버리지 목표
|
|
134
|
+
coverage_target: 80
|
|
135
|
+
|
|
136
|
+
# 필수 테스트
|
|
137
|
+
required:
|
|
138
|
+
- "unit"
|
|
139
|
+
- "integration"
|
|
140
|
+
|
|
141
|
+
# 코드 품질 규칙
|
|
142
|
+
code_quality:
|
|
143
|
+
# 린터
|
|
144
|
+
linter: "eslint"
|
|
145
|
+
|
|
146
|
+
# 포매터
|
|
147
|
+
formatter: "prettier"
|
|
148
|
+
|
|
149
|
+
# 타입 체크
|
|
150
|
+
type_check: "strict" # strict | loose
|
|
151
|
+
|
|
152
|
+
# 커밋 훅
|
|
153
|
+
commit_hooks: true
|
|
154
|
+
|
|
155
|
+
# 문서화 규칙
|
|
156
|
+
documentation:
|
|
157
|
+
# JSDoc 사용
|
|
158
|
+
jsdoc: true
|
|
159
|
+
|
|
160
|
+
# README 필수
|
|
161
|
+
readme_per_feature: false
|
|
162
|
+
|
|
163
|
+
# 컴포넌트 문서
|
|
164
|
+
component_docs: "storybook" # storybook | docz | none
|
|
165
|
+
|
|
166
|
+
# 금지 사항
|
|
167
|
+
prohibited:
|
|
168
|
+
- "any 타입 사용 (명시적 escape 제외)"
|
|
169
|
+
- "console.log (개발 중 제외)"
|
|
170
|
+
- "인라인 스타일 (동적 스타일 제외)"
|
|
171
|
+
- "매직 넘버/스트링"
|
|
172
|
+
- "중첩 삼항 연산자"
|
|
173
|
+
- "var 키워드"
|
|
174
|
+
|
|
175
|
+
# 권장 사항
|
|
176
|
+
recommended:
|
|
177
|
+
- "Early return 패턴"
|
|
178
|
+
- "Descriptive naming"
|
|
179
|
+
- "Small functions (< 30 lines)"
|
|
180
|
+
- "Composition over inheritance"
|
|
181
|
+
- "Immutable data patterns"
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# MCP Fallback Configuration
|
|
2
|
+
# ax-templates-3 MCP 도구 폴백 설정 (Issue #3 해결)
|
|
3
|
+
|
|
4
|
+
mcp_fallbacks:
|
|
5
|
+
# 활성화 여부
|
|
6
|
+
enabled: true
|
|
7
|
+
|
|
8
|
+
# 폴백 트리거 조건
|
|
9
|
+
triggers:
|
|
10
|
+
- quota_exceeded # 할당량 초과
|
|
11
|
+
- service_unavailable # 서비스 불가
|
|
12
|
+
- timeout # 타임아웃
|
|
13
|
+
- rate_limited # 요청 제한
|
|
14
|
+
|
|
15
|
+
# 검색 도구 우선순위
|
|
16
|
+
search:
|
|
17
|
+
# 코드/문서 검색
|
|
18
|
+
code_documentation:
|
|
19
|
+
primary: "context7"
|
|
20
|
+
fallbacks:
|
|
21
|
+
- "exa"
|
|
22
|
+
- "web_search"
|
|
23
|
+
|
|
24
|
+
# 폴백 규칙
|
|
25
|
+
rules:
|
|
26
|
+
on_quota_exceeded: "use_fallback"
|
|
27
|
+
on_timeout: "retry_then_fallback"
|
|
28
|
+
retry_count: 2
|
|
29
|
+
retry_delay_ms: 1000
|
|
30
|
+
|
|
31
|
+
# 웹 검색
|
|
32
|
+
web_search:
|
|
33
|
+
primary: "exa"
|
|
34
|
+
fallbacks:
|
|
35
|
+
- "web_search"
|
|
36
|
+
|
|
37
|
+
rules:
|
|
38
|
+
on_quota_exceeded: "use_fallback"
|
|
39
|
+
on_timeout: "use_fallback"
|
|
40
|
+
|
|
41
|
+
# Reddit/커뮤니티 검색
|
|
42
|
+
community:
|
|
43
|
+
primary: "exa"
|
|
44
|
+
fallbacks:
|
|
45
|
+
- "web_search"
|
|
46
|
+
|
|
47
|
+
# 커뮤니티 검색 전용 설정
|
|
48
|
+
settings:
|
|
49
|
+
include_domains:
|
|
50
|
+
- "reddit.com"
|
|
51
|
+
- "news.ycombinator.com"
|
|
52
|
+
- "dev.to"
|
|
53
|
+
- "stackoverflow.com"
|
|
54
|
+
|
|
55
|
+
# 브라우저/웹 도구 우선순위
|
|
56
|
+
browser:
|
|
57
|
+
primary: "playwright"
|
|
58
|
+
fallbacks:
|
|
59
|
+
- "chrome-devtools"
|
|
60
|
+
|
|
61
|
+
rules:
|
|
62
|
+
on_connection_failed: "use_fallback"
|
|
63
|
+
|
|
64
|
+
# Notion 도구 (폴백 없음)
|
|
65
|
+
notion:
|
|
66
|
+
primary: "notion"
|
|
67
|
+
fallbacks: []
|
|
68
|
+
|
|
69
|
+
# Notion은 폴백 불가, 에러 시 알림만
|
|
70
|
+
on_error:
|
|
71
|
+
action: "notify_user"
|
|
72
|
+
message: "Notion 연결 실패. MCP 설정을 확인하세요."
|
|
73
|
+
|
|
74
|
+
# Figma 도구 (폴백 없음)
|
|
75
|
+
figma:
|
|
76
|
+
primary: "figma-dev-mode"
|
|
77
|
+
fallbacks: []
|
|
78
|
+
|
|
79
|
+
on_error:
|
|
80
|
+
action: "notify_user"
|
|
81
|
+
message: "Figma 연결 실패. Dev Mode MCP 설정을 확인하세요."
|
|
82
|
+
|
|
83
|
+
# 스테이지별 MCP 우선순위
|
|
84
|
+
stage_preferences:
|
|
85
|
+
"01-brainstorm":
|
|
86
|
+
search: ["exa", "web_search"] # 웹 리서치 중심
|
|
87
|
+
reason: "커뮤니티/아이디어 검색에 Exa 우선"
|
|
88
|
+
|
|
89
|
+
"02-research":
|
|
90
|
+
search: ["context7", "exa", "web_search"]
|
|
91
|
+
reason: "기술 문서 검색에 Context7 우선"
|
|
92
|
+
|
|
93
|
+
"03-planning":
|
|
94
|
+
search: ["context7", "exa"]
|
|
95
|
+
reason: "아키텍처 패턴/문서 검색"
|
|
96
|
+
|
|
97
|
+
"04-ui-ux":
|
|
98
|
+
browser: ["figma-dev-mode", "playwright"]
|
|
99
|
+
search: ["exa", "web_search"]
|
|
100
|
+
reason: "UI 레퍼런스 검색"
|
|
101
|
+
|
|
102
|
+
"06-implementation":
|
|
103
|
+
search: ["context7"]
|
|
104
|
+
reason: "라이브러리 문서 검색에 Context7 필수"
|
|
105
|
+
|
|
106
|
+
"09-testing":
|
|
107
|
+
browser: ["playwright", "chrome-devtools"]
|
|
108
|
+
reason: "E2E 테스트에 Playwright 필수"
|
|
109
|
+
|
|
110
|
+
# 상태 모니터링
|
|
111
|
+
monitoring:
|
|
112
|
+
# 할당량 경고
|
|
113
|
+
quota_warning:
|
|
114
|
+
threshold_percent: 80
|
|
115
|
+
action: "warn_user"
|
|
116
|
+
|
|
117
|
+
# 사용량 로깅
|
|
118
|
+
usage_logging:
|
|
119
|
+
enabled: true
|
|
120
|
+
log_file: "state/mcp_usage.log"
|
|
121
|
+
|
|
122
|
+
# 에러 처리
|
|
123
|
+
error_handling:
|
|
124
|
+
# 모든 폴백 실패 시
|
|
125
|
+
all_fallbacks_failed:
|
|
126
|
+
action: "notify_user_and_continue"
|
|
127
|
+
message: |
|
|
128
|
+
⚠️ 모든 MCP 검색 도구가 실패했습니다.
|
|
129
|
+
- 수동 검색을 진행하거나
|
|
130
|
+
- MCP 서버 상태를 확인하세요.
|
|
131
|
+
|
|
132
|
+
# 복구 불가 에러
|
|
133
|
+
fatal_error:
|
|
134
|
+
action: "save_state_and_notify"
|
|
135
|
+
message: "MCP 치명적 오류. 상태를 저장하고 세션을 재시작하세요."
|
|
136
|
+
|
|
137
|
+
# =============================================================================
|
|
138
|
+
# AI 모델 폴백 설정 (외부 AI: Gemini, Codex)
|
|
139
|
+
# =============================================================================
|
|
140
|
+
ai_model_fallbacks:
|
|
141
|
+
enabled: true
|
|
142
|
+
description: "외부 AI CLI 실패 시 ClaudeCode로 자동 폴백"
|
|
143
|
+
|
|
144
|
+
# 폴백 트리거 조건
|
|
145
|
+
triggers:
|
|
146
|
+
- cli_not_installed # CLI 미설치
|
|
147
|
+
- authentication_failed # 인증 실패
|
|
148
|
+
- api_timeout # API 타임아웃
|
|
149
|
+
- rate_limited # 요청 제한
|
|
150
|
+
- service_error # 서비스 오류
|
|
151
|
+
|
|
152
|
+
# 스테이지별 AI 폴백 설정
|
|
153
|
+
stage_fallbacks:
|
|
154
|
+
"01-brainstorm":
|
|
155
|
+
primary: "gemini"
|
|
156
|
+
fallback: "claudecode"
|
|
157
|
+
fallback_reason_template: "Gemini CLI 호출 실패: {{ERROR}} - ClaudeCode로 폴백"
|
|
158
|
+
|
|
159
|
+
"03-planning":
|
|
160
|
+
primary: "gemini"
|
|
161
|
+
fallback: "claudecode"
|
|
162
|
+
fallback_reason_template: "Gemini CLI 호출 실패: {{ERROR}} - ClaudeCode로 폴백"
|
|
163
|
+
|
|
164
|
+
"04-ui-ux":
|
|
165
|
+
primary: "gemini"
|
|
166
|
+
fallback: "claudecode"
|
|
167
|
+
fallback_reason_template: "Gemini CLI 호출 실패: {{ERROR}} - ClaudeCode로 폴백"
|
|
168
|
+
|
|
169
|
+
"07-refactoring":
|
|
170
|
+
primary: "codex"
|
|
171
|
+
fallback: "claudecode"
|
|
172
|
+
fallback_reason_template: "Codex CLI 호출 실패: {{ERROR}} - ClaudeCode로 폴백"
|
|
173
|
+
|
|
174
|
+
"09-testing":
|
|
175
|
+
primary: "codex"
|
|
176
|
+
fallback: "claudecode"
|
|
177
|
+
fallback_reason_template: "Codex CLI 호출 실패: {{ERROR}} - ClaudeCode로 폴백"
|
|
178
|
+
|
|
179
|
+
# 폴백 동작 설정
|
|
180
|
+
behavior:
|
|
181
|
+
# 자동 폴백 활성화
|
|
182
|
+
auto_fallback: true
|
|
183
|
+
|
|
184
|
+
# 재시도 설정
|
|
185
|
+
retry:
|
|
186
|
+
enabled: true
|
|
187
|
+
max_attempts: 2
|
|
188
|
+
delay_ms: 3000
|
|
189
|
+
|
|
190
|
+
# 폴백 전 경고 표시
|
|
191
|
+
show_warning_before_fallback: true
|
|
192
|
+
warning_message: |
|
|
193
|
+
⚠️ 외부 AI {{PRIMARY_MODEL}} 호출 실패
|
|
194
|
+
- 오류: {{ERROR_MESSAGE}}
|
|
195
|
+
- 폴백: {{FALLBACK_MODEL}}로 계속 진행
|
|
196
|
+
|
|
197
|
+
# 폴백 기록 (HANDOFF.md에 포함)
|
|
198
|
+
logging:
|
|
199
|
+
enabled: true
|
|
200
|
+
log_file: "state/ai_fallback.log"
|
|
201
|
+
include_in_handoff: true
|
|
202
|
+
|
|
203
|
+
# 기록 형식
|
|
204
|
+
format:
|
|
205
|
+
timestamp: true
|
|
206
|
+
stage: true
|
|
207
|
+
intended_model: true
|
|
208
|
+
fallback_model: true
|
|
209
|
+
error_reason: true
|
|
210
|
+
result: true
|
|
211
|
+
|
|
212
|
+
# HANDOFF.md 폴백 섹션 템플릿
|
|
213
|
+
handoff_template: |
|
|
214
|
+
### 폴백 기록
|
|
215
|
+
|
|
216
|
+
| 시도한 AI | 실패 시간 | 오류 | 폴백 AI | 결과 |
|
|
217
|
+
|----------|----------|------|---------|------|
|
|
218
|
+
{{#each FALLBACK_EVENTS}}
|
|
219
|
+
| {{this.attempted_model}} | {{this.failure_time}} | {{this.error}} | {{this.fallback_model}} | {{this.result}} |
|
|
220
|
+
{{/each}}
|
|
221
|
+
|
|
222
|
+
# 사전 점검 스크립트 통합
|
|
223
|
+
pre_run_check:
|
|
224
|
+
enabled: true
|
|
225
|
+
script: "scripts/pre-run-check.sh"
|
|
226
|
+
|
|
227
|
+
# 점검 항목
|
|
228
|
+
checks:
|
|
229
|
+
- name: "gemini_cli"
|
|
230
|
+
command: "which gemini"
|
|
231
|
+
on_failure: "warn"
|
|
232
|
+
message: "Gemini CLI 미설치 - 01, 03, 04 스테이지에서 ClaudeCode 폴백 예상"
|
|
233
|
+
|
|
234
|
+
- name: "codex_cli"
|
|
235
|
+
command: "which codex"
|
|
236
|
+
on_failure: "warn"
|
|
237
|
+
message: "Codex CLI 미설치 - 07, 09 스테이지에서 ClaudeCode 폴백 예상"
|
|
238
|
+
|
|
239
|
+
- name: "tmux"
|
|
240
|
+
command: "which tmux"
|
|
241
|
+
on_failure: "error"
|
|
242
|
+
message: "tmux 미설치 - 외부 AI 호출 불가"
|
|
243
|
+
|
|
244
|
+
- name: "gemini_wrapper"
|
|
245
|
+
command: "test -x scripts/gemini-wrapper.sh"
|
|
246
|
+
on_failure: "warn"
|
|
247
|
+
message: "gemini-wrapper.sh 실행 불가"
|
|
248
|
+
|
|
249
|
+
- name: "codex_wrapper"
|
|
250
|
+
command: "test -x scripts/codex-wrapper.sh"
|
|
251
|
+
on_failure: "warn"
|
|
252
|
+
message: "codex-wrapper.sh 실행 불가"
|