create-ai-project 1.11.2 → 1.12.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.
Files changed (146) hide show
  1. package/.claude/agents/acceptance-test-generator.md +179 -245
  2. package/.claude/agents/code-reviewer.md +3 -9
  3. package/.claude/agents/design-sync.md +221 -0
  4. package/.claude/agents/document-reviewer.md +15 -10
  5. package/.claude/agents/integration-test-reviewer.md +192 -0
  6. package/.claude/agents/prd-creator.md +10 -6
  7. package/.claude/agents/quality-fixer-frontend.md +324 -0
  8. package/.claude/agents/quality-fixer.md +48 -62
  9. package/.claude/agents/requirement-analyzer.md +8 -8
  10. package/.claude/agents/rule-advisor.md +84 -103
  11. package/.claude/agents/task-decomposer.md +21 -27
  12. package/.claude/agents/task-executor-frontend.md +264 -0
  13. package/.claude/agents/task-executor.md +4 -16
  14. package/.claude/agents/technical-designer-frontend.md +444 -0
  15. package/.claude/agents/technical-designer.md +52 -27
  16. package/.claude/agents/work-planner.md +41 -14
  17. package/.claude/agents-en/acceptance-test-generator.md +13 -13
  18. package/.claude/agents-en/code-reviewer.md +8 -10
  19. package/.claude/agents-en/design-sync.md +6 -5
  20. package/.claude/agents-en/document-reviewer.md +8 -7
  21. package/.claude/agents-en/integration-test-reviewer.md +5 -4
  22. package/.claude/agents-en/prd-creator.md +7 -6
  23. package/.claude/agents-en/quality-fixer-frontend.md +3 -14
  24. package/.claude/agents-en/quality-fixer.md +9 -20
  25. package/.claude/agents-en/requirement-analyzer.md +8 -7
  26. package/.claude/agents-en/rule-advisor.md +57 -128
  27. package/.claude/agents-en/task-decomposer.md +4 -10
  28. package/.claude/agents-en/task-executor-frontend.md +4 -16
  29. package/.claude/agents-en/task-executor.md +5 -16
  30. package/.claude/agents-en/technical-designer-frontend.md +17 -15
  31. package/.claude/agents-en/technical-designer.md +13 -15
  32. package/.claude/agents-en/work-planner.md +9 -14
  33. package/.claude/agents-ja/acceptance-test-generator.md +9 -15
  34. package/.claude/agents-ja/code-reviewer.md +3 -11
  35. package/.claude/agents-ja/design-sync.md +2 -6
  36. package/.claude/agents-ja/document-reviewer.md +4 -9
  37. package/.claude/agents-ja/integration-test-reviewer.md +2 -5
  38. package/.claude/agents-ja/prd-creator.md +3 -7
  39. package/.claude/agents-ja/quality-fixer-frontend.md +2 -13
  40. package/.claude/agents-ja/quality-fixer.md +7 -18
  41. package/.claude/agents-ja/requirement-analyzer.md +5 -8
  42. package/.claude/agents-ja/rule-advisor.md +57 -128
  43. package/.claude/agents-ja/task-decomposer.md +4 -10
  44. package/.claude/agents-ja/task-executor-frontend.md +3 -15
  45. package/.claude/agents-ja/task-executor.md +3 -17
  46. package/.claude/agents-ja/technical-designer-frontend.md +17 -15
  47. package/.claude/agents-ja/technical-designer.md +13 -15
  48. package/.claude/agents-ja/work-planner.md +9 -14
  49. package/.claude/commands/build.md +7 -10
  50. package/.claude/commands/design.md +15 -5
  51. package/.claude/commands/front-build.md +103 -0
  52. package/.claude/commands/front-design.md +42 -0
  53. package/.claude/commands/front-plan.md +40 -0
  54. package/.claude/commands/implement.md +23 -29
  55. package/.claude/commands/plan.md +4 -4
  56. package/.claude/commands/project-inject.md +4 -4
  57. package/.claude/{commands-ja/refine-rule.md → commands/refine-skill.md} +25 -25
  58. package/.claude/{commands-ja/sync-rules.md → commands/sync-skills.md} +28 -28
  59. package/.claude/commands/task.md +1 -1
  60. package/.claude/commands-en/build.md +2 -2
  61. package/.claude/commands-en/design.md +1 -1
  62. package/.claude/commands-en/implement.md +8 -8
  63. package/.claude/commands-en/plan.md +3 -3
  64. package/.claude/commands-en/project-inject.md +4 -4
  65. package/.claude/commands-en/{refine-rule.md → refine-skill.md} +47 -48
  66. package/.claude/commands-en/{sync-rules.md → sync-skills.md} +29 -29
  67. package/.claude/commands-ja/build.md +2 -2
  68. package/.claude/commands-ja/design.md +1 -1
  69. package/.claude/commands-ja/implement.md +8 -8
  70. package/.claude/commands-ja/plan.md +3 -3
  71. package/.claude/commands-ja/project-inject.md +4 -4
  72. package/.claude/{commands/refine-rule.md → commands-ja/refine-skill.md} +25 -25
  73. package/.claude/{commands/sync-rules.md → commands-ja/sync-skills.md} +28 -28
  74. package/.claude/settings.local.json +21 -1
  75. package/{docs/rules/ai-development-guide.md → .claude/skills/coding-standards/SKILL.md} +94 -108
  76. package/{docs/rules/documentation-criteria.md → .claude/skills/documentation-criteria/SKILL.md} +19 -6
  77. package/.claude/skills/documentation-criteria/references/adr-template.md +64 -0
  78. package/.claude/skills/documentation-criteria/references/design-template.md +242 -0
  79. package/.claude/skills/documentation-criteria/references/plan-template.md +130 -0
  80. package/.claude/skills/documentation-criteria/references/prd-template.md +109 -0
  81. package/.claude/skills/frontend/technical-spec/SKILL.md +147 -0
  82. package/.claude/skills/frontend/typescript-rules/SKILL.md +315 -0
  83. package/.claude/skills/frontend/typescript-testing/SKILL.md +212 -0
  84. package/{docs/rules-ja/architecture/implementation-approach.md → .claude/skills/implementation-approach/SKILL.md} +10 -5
  85. package/.claude/skills/integration-e2e-testing/SKILL.md +146 -0
  86. package/{docs/rules-ja/project-context.md → .claude/skills/project-context/SKILL.md} +7 -3
  87. package/.claude/skills/subagents-orchestration-guide/SKILL.md +212 -0
  88. package/.claude/skills/task-analyzer/SKILL.md +142 -0
  89. package/.claude/skills/task-analyzer/references/skills-index.yaml +211 -0
  90. package/.claude/skills/technical-spec/SKILL.md +86 -0
  91. package/{docs/rules/typescript.md → .claude/skills/typescript-rules/SKILL.md} +22 -67
  92. package/.claude/skills/typescript-testing/SKILL.md +155 -0
  93. package/{docs/rules-en/coding-standards.md → .claude/skills-en/coding-standards/SKILL.md} +21 -108
  94. package/{docs/rules-en/documentation-criteria.md → .claude/skills-en/documentation-criteria/SKILL.md} +40 -42
  95. package/{docs/adr/template-en.md → .claude/skills-en/documentation-criteria/references/adr-template.md} +1 -1
  96. package/{docs/design/template-en.md → .claude/skills-en/documentation-criteria/references/design-template.md} +11 -31
  97. package/{docs/plans/template-en.md → .claude/skills-en/documentation-criteria/references/plan-template.md} +4 -4
  98. package/{docs/prd/template-en.md → .claude/skills-en/documentation-criteria/references/prd-template.md} +1 -1
  99. package/{docs/rules-en/frontend/technical-spec.md → .claude/skills-en/frontend/technical-spec/SKILL.md} +17 -13
  100. package/{docs/rules-en/frontend/typescript.md → .claude/skills-en/frontend/typescript-rules/SKILL.md} +17 -12
  101. package/{docs/rules-en/frontend/typescript-testing.md → .claude/skills-en/frontend/typescript-testing/SKILL.md} +11 -6
  102. package/{docs/rules-en/architecture/implementation-approach.md → .claude/skills-en/implementation-approach/SKILL.md} +7 -2
  103. package/{docs/rules-en/integration-e2e-testing.md → .claude/skills-en/integration-e2e-testing/SKILL.md} +15 -18
  104. package/{docs/rules-en/project-context.md → .claude/skills-en/project-context/SKILL.md} +7 -3
  105. package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +224 -0
  106. package/.claude/skills-en/task-analyzer/SKILL.md +131 -0
  107. package/{docs/rules-en/rules-index.yaml → .claude/skills-en/task-analyzer/references/skills-index.yaml} +34 -20
  108. package/{docs/rules-en/technical-spec.md → .claude/skills-en/technical-spec/SKILL.md} +6 -6
  109. package/{docs/rules-en/typescript.md → .claude/skills-en/typescript-rules/SKILL.md} +15 -10
  110. package/{docs/rules-en/typescript-testing.md → .claude/skills-en/typescript-testing/SKILL.md} +10 -4
  111. package/{docs/rules-ja/coding-standards.md → .claude/skills-ja/coding-standards/SKILL.md} +12 -99
  112. package/{docs/rules-ja/documentation-criteria.md → .claude/skills-ja/documentation-criteria/SKILL.md} +18 -5
  113. package/.claude/skills-ja/documentation-criteria/references/adr-template.md +64 -0
  114. package/.claude/skills-ja/documentation-criteria/references/design-template.md +261 -0
  115. package/{docs/plans/template-ja.md → .claude/skills-ja/documentation-criteria/references/plan-template.md} +38 -38
  116. package/{docs/prd/template-ja.md → .claude/skills-ja/documentation-criteria/references/prd-template.md} +33 -33
  117. package/{docs/rules-ja/frontend/technical-spec.md → .claude/skills-ja/frontend/technical-spec/SKILL.md} +13 -9
  118. package/.claude/skills-ja/frontend/typescript-rules/SKILL.md +315 -0
  119. package/{docs/rules-ja/frontend/typescript-testing.md → .claude/skills-ja/frontend/typescript-testing/SKILL.md} +93 -5
  120. package/{docs/rules/architecture/implementation-approach.md → .claude/skills-ja/implementation-approach/SKILL.md} +10 -5
  121. package/{docs/rules-ja/integration-e2e-testing.md → .claude/skills-ja/integration-e2e-testing/SKILL.md} +5 -8
  122. package/{docs/rules/project-context.md → .claude/skills-ja/project-context/SKILL.md} +7 -3
  123. package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +212 -0
  124. package/.claude/skills-ja/task-analyzer/SKILL.md +131 -0
  125. package/{docs/rules-ja/rules-index.yaml → .claude/skills-ja/task-analyzer/references/skills-index.yaml} +34 -19
  126. package/{docs/rules-ja/technical-spec.md → .claude/skills-ja/technical-spec/SKILL.md} +6 -6
  127. package/{docs/rules-ja/typescript.md → .claude/skills-ja/typescript-rules/SKILL.md} +16 -11
  128. package/{docs/rules-ja/typescript-testing.md → .claude/skills-ja/typescript-testing/SKILL.md} +11 -5
  129. package/CLAUDE.en.md +6 -6
  130. package/CLAUDE.ja.md +6 -6
  131. package/CLAUDE.md +19 -28
  132. package/README.ja.md +39 -10
  133. package/README.md +39 -10
  134. package/package.json +1 -1
  135. package/scripts/set-language.js +35 -53
  136. package/scripts/setup-project.js +4 -1
  137. package/docs/adr/template-ja.md +0 -64
  138. package/docs/design/template-ja.md +0 -285
  139. package/docs/guides/en/sub-agents.md +0 -343
  140. package/docs/guides/ja/sub-agents.md +0 -343
  141. package/docs/guides/sub-agents.md +0 -306
  142. package/docs/plans/20250123-integration-test-improvement.md +0 -993
  143. package/docs/rules/rules-index.yaml +0 -137
  144. package/docs/rules/technical-spec.md +0 -47
  145. package/docs/rules/typescript-testing.md +0 -188
  146. package/docs/rules-ja/frontend/typescript.md +0 -131
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: coding-standards
3
+ description: Language-agnostic coding principles for maintainability, readability, and quality. Use when implementing features, refactoring code, or reviewing code quality.
4
+ ---
5
+
1
6
  # Universal Coding Standards
2
7
 
3
8
  ## Technical Anti-patterns (Red Flag Patterns)
@@ -22,8 +27,8 @@ Immediately stop and reconsider design when detecting the following patterns:
22
27
 
23
28
  ## Basic Principles
24
29
 
25
- **Aggressive Refactoring** - Prevent technical debt and maintain health
26
- **Unused "Just in Case" Code** - Violates YAGNI principle (Kent Beck)
30
+ - **Aggressive Refactoring** - Prevent technical debt and maintain health
31
+ - **No Unused "Just in Case" Code** - Violates YAGNI principle (Kent Beck)
27
32
 
28
33
  ## Comment Writing Rules
29
34
 
@@ -63,16 +68,6 @@ How to handle duplicate code based on Martin Fowler's "Refactoring":
63
68
  - Significant readability decrease from commonalization
64
69
  - Simple helpers in test code
65
70
 
66
- ### Implementation Example
67
- ```typescript
68
- // ❌ Immediate commonalization on 1st duplication
69
- function validateUserEmail(email: string) { /* ... */ }
70
- function validateContactEmail(email: string) { /* ... */ }
71
-
72
- // ✅ Commonalize on 3rd occurrence
73
- function validateEmail(email: string, context: 'user' | 'contact' | 'admin') { /* ... */ }
74
- ```
75
-
76
71
  ## Common Failure Patterns and Avoidance Methods
77
72
 
78
73
  ### Pattern 1: Error Fix Chain
@@ -95,11 +90,6 @@ function validateEmail(email: string, context: 'user' | 'contact' | 'admin') { /
95
90
  **Cause**: Assuming "it should work according to official documentation" without prior investigation
96
91
  **Avoidance**:
97
92
  - Record certainty evaluation at the beginning of task files
98
- ```
99
- Certainty: low (Reason: no examples of MCP connection found)
100
- Exploratory implementation: true
101
- Fallback: use conventional API
102
- ```
103
93
  - For low certainty cases, create minimal verification code first
104
94
 
105
95
  ### Pattern 5: Insufficient Existing Code Investigation
@@ -107,9 +97,9 @@ function validateEmail(email: string, context: 'user' | 'contact' | 'admin') { /
107
97
  **Cause**: Insufficient understanding of existing code before implementation
108
98
  **Avoidance Methods**:
109
99
  - Before implementation, always search for similar functionality (using domain, responsibility, configuration patterns as keywords)
110
- - Similar functionality found Use that implementation (do not create new implementation)
111
- - Similar functionality is technical debt Create ADR improvement proposal before implementation
112
- - No similar functionality exists Implement new functionality following existing design philosophy
100
+ - Similar functionality found -> Use that implementation (do not create new implementation)
101
+ - Similar functionality is technical debt -> Create ADR improvement proposal before implementation
102
+ - No similar functionality exists -> Implement new functionality following existing design philosophy
113
103
  - Record all decisions and rationale in "Existing Codebase Analysis" section of Design Doc
114
104
 
115
105
  ## Debugging Techniques
@@ -122,8 +112,8 @@ function validateEmail(email: string, context: 'user' | 'contact' | 'admin') { /
122
112
  ### 2. 5 Whys - Root Cause Analysis
123
113
  ```
124
114
  Symptom: Build error
125
- Why1: Type definitions don't match Why2: Interface was updated
126
- Why3: Dependency change Why4: Package update impact
115
+ Why1: Type definitions don't match -> Why2: Interface was updated
116
+ Why3: Dependency change -> Why4: Package update impact
127
117
  Why5: Major version upgrade with breaking changes
128
118
  Root cause: Inappropriate version specification
129
119
  ```
@@ -134,16 +124,6 @@ To isolate problems, attempt reproduction with minimal code:
134
124
  - Replace external dependencies with mocks
135
125
  - Create minimal configuration that reproduces problem
136
126
 
137
- ### 4. Debug Log Output
138
- ```typescript
139
- console.log('DEBUG:', {
140
- context: 'operation-name',
141
- input: { /* relevant data */ },
142
- state: currentState,
143
- timestamp: new Date().toISOString()
144
- })
145
- ```
146
-
147
127
  ## Type Safety Fundamentals
148
128
 
149
129
  **Type Safety Principle**: Use `unknown` type with type guards. `any` type disables type checking and causes runtime errors.
@@ -151,7 +131,7 @@ console.log('DEBUG:', {
151
131
  **any Type Alternatives (Priority Order)**
152
132
  1. **unknown Type + Type Guards**: Use for validating external input
153
133
  2. **Generics**: When type flexibility is needed
154
- 3. **Union TypesIntersection Types**: Combinations of multiple types
134
+ 3. **Union Types/Intersection Types**: Combinations of multiple types
155
135
  4. **Type Assertions (Last Resort)**: Only when type is certain
156
136
 
157
137
  **Type Guard Implementation Pattern**
@@ -161,12 +141,6 @@ function isUser(value: unknown): value is User {
161
141
  }
162
142
  ```
163
143
 
164
- **Modern Type Features**
165
- - **satisfies Operator**: `const config = { port: 3000 } satisfies Config` - Preserves inference
166
- - **const Assertion**: `const ROUTES = { HOME: '/' } as const satisfies Routes` - Immutable and type-safe
167
- - **Branded Types**: `type UserId = string & { __brand: 'UserId' }` - Distinguish meaning
168
- - **Template Literal Types**: `type Endpoint = \`\${HttpMethod} \${Route}\`` - Express string patterns with types
169
-
170
144
  **Type Complexity Management**
171
145
  - Field Count: Up to 20 (split by responsibility if exceeded, external API types are exceptions)
172
146
  - Optional Ratio: Up to 30% (separate required/optional if exceeded)
@@ -181,33 +155,10 @@ function isUser(value: unknown): value is User {
181
155
  - Safe Changes: Minimize the scope of changes at once
182
156
  - Behavior Guarantee: Ensure existing behavior remains unchanged while proceeding
183
157
 
184
- **Implementation Procedure**: Understand Current State Gradual Changes Behavior Verification Final Validation
158
+ **Implementation Procedure**: Understand Current State -> Gradual Changes -> Behavior Verification -> Final Validation
185
159
 
186
160
  **Priority**: Duplicate Code Removal > Large Function Division > Complex Conditional Branch Simplification > Type Safety Improvement
187
161
 
188
- ## Situations Requiring Technical Decisions
189
-
190
- ### Timing of Abstraction
191
- - Extract patterns after writing concrete implementation 3 times
192
- - Be conscious of YAGNI, implement only currently needed features
193
- - Prioritize current simplicity over future extensibility
194
-
195
- ### Performance vs Readability
196
- - Prioritize readability unless clear bottleneck exists
197
- - Measure before optimizing (don't guess, measure)
198
- - Document reason with comments when optimizing
199
-
200
- ### Granularity of Type Definitions
201
- - Overly detailed types reduce maintainability
202
- - Design types that appropriately express domain
203
- - Use utility types to reduce duplication
204
-
205
- ## Continuous Improvement Mindset
206
-
207
- - **Humility**: Perfect code doesn't exist, welcome feedback
208
- - **Courage**: Execute necessary refactoring boldly
209
- - **Transparency**: Clearly document technical decision reasoning
210
-
211
162
  ## Implementation Completeness Assurance
212
163
 
213
164
  ### Required Procedure for Impact Analysis
@@ -225,7 +176,7 @@ Grep -n "targetData\|SetData\|UpdateData" -o content
225
176
  **Mandatory**: Read all discovered files and include necessary parts in context:
226
177
  - Caller's purpose and context
227
178
  - Dependency direction
228
- - Data flow: generation modification reference
179
+ - Data flow: generation -> modification -> reference
229
180
 
230
181
  #### 3. Identification
231
182
  Structured impact report (mandatory):
@@ -233,36 +184,23 @@ Structured impact report (mandatory):
233
184
  ## Impact Analysis
234
185
  ### Direct Impact: ClassA, ClassB (with reasons)
235
186
  ### Indirect Impact: SystemX, ComponentY (with integration paths)
236
- ### Processing Flow: Input Process1 Process2 Output
187
+ ### Processing Flow: Input -> Process1 -> Process2 -> Output
237
188
  ```
238
189
 
239
190
  **Important**: Do not stop at search; execute all 3 stages
240
191
 
241
192
  ### Unused Code Deletion Rule
242
193
 
243
- When unused code is detected Will it be used?
244
- - Yes Implement immediately (no deferral allowed)
245
- - No Delete immediately (remains in Git history)
194
+ When unused code is detected -> Will it be used?
195
+ - Yes -> Implement immediately (no deferral allowed)
196
+ - No -> Delete immediately (remains in Git history)
246
197
 
247
198
  Target: Code, documentation, configuration files
248
199
 
249
- ### Existing Code Deletion Decision Flow
250
-
251
- ```
252
- In use? No → Delete immediately (remains in Git history)
253
- Yes → Working? No → Delete + Reimplement
254
- Yes → Fix
255
- ```
256
-
257
200
  ## Red-Green-Refactor Process (Test-First Development)
258
201
 
259
202
  **Recommended Principle**: Always start code changes with tests
260
203
 
261
- **Background**:
262
- - Ensure behavior before changes, prevent regression
263
- - Clarify expected behavior before implementation
264
- - Ensure safety during refactoring
265
-
266
204
  **Development Steps**:
267
205
  1. **Red**: Write test for expected behavior (it fails)
268
206
  2. **Green**: Pass test with minimal implementation
@@ -288,11 +226,11 @@ In use? No → Delete immediately (remains in Git history)
288
226
 
289
227
  ### Mock and Stub Usage Policy
290
228
 
291
- **Recommended: Mock external dependencies in unit tests**
229
+ **Recommended: Mock external dependencies in unit tests**
292
230
  - Merit: Ensures test independence and reproducibility
293
231
  - Practice: Mock DB, API, file system, and other external dependencies
294
232
 
295
- **Avoid: Actual external connections in unit tests**
233
+ **Avoid: Actual external connections in unit tests**
296
234
  - Reason: Slows test speed and causes environment-dependent problems
297
235
 
298
236
  ### Test Failure Response Decision Criteria
@@ -301,33 +239,8 @@ In use? No → Delete immediately (remains in Git history)
301
239
  **Fix implementation**: Valid specifications, business logic, important edge cases
302
240
  **When in doubt**: Confirm with user
303
241
 
304
- ## Test Helper Utilization Rules
305
-
306
- ### Basic Principles
307
- Use test helpers to reduce duplication and improve maintainability.
308
-
309
- ### Decision Criteria
310
- | Mock Characteristics | Response Policy |
311
- |---------------------|-----------------|
312
- | **Simple and stable** | Consolidate in common helpers |
313
- | **Complex or frequently changing** | Individual implementation |
314
- | **Duplicated in 3+ places** | Consider consolidation |
315
- | **Test-specific logic** | Individual implementation |
316
-
317
242
  ## Test Granularity Principles
318
243
 
319
244
  ### Core Principle: Observable Behavior Only
320
245
  **MUST Test**: Public APIs, return values, exceptions, external calls, persisted state
321
246
  **MUST NOT Test**: Private methods, internal state, algorithm implementation details
322
-
323
- ```typescript
324
- // ✅ Test observable behavior
325
- expect(calculateTotal(100, 0.1)).toBe(110)
326
-
327
- // ❌ Test implementation details
328
- expect((calculator as any).internalState).toBe(someValue)
329
- ```
330
-
331
- ## Continuity Test Scope
332
-
333
- Limited to verifying existing feature impact when adding new features. Long-term operations and load testing are infrastructure responsibilities, not test scope.
@@ -1,13 +1,18 @@
1
+ ---
2
+ name: documentation-criteria
3
+ description: Documentation creation criteria including PRD, ADR, Design Doc, and Work Plan requirements with templates. Use when creating or reviewing technical documents.
4
+ ---
5
+
1
6
  # Documentation Creation Criteria
2
7
 
3
8
  ## Creation Decision Matrix
4
9
 
5
10
  | Condition | Required Documents | Creation Order |
6
11
  |-----------|-------------------|----------------|
7
- | New Feature Addition | PRD [ADR] Design Doc Work Plan | After PRD approval |
8
- | ADR Conditions Met (see below) | ADR Design Doc Work Plan | Start immediately |
9
- | 6+ Files | ADR Design Doc Work Plan (Required) | Start immediately |
10
- | 3-5 Files | Design Doc Work Plan (Recommended) | Start immediately |
12
+ | New Feature Addition | PRD -> [ADR] -> Design Doc -> Work Plan | After PRD approval |
13
+ | ADR Conditions Met (see below) | ADR -> Design Doc -> Work Plan | Start immediately |
14
+ | 6+ Files | ADR -> Design Doc -> Work Plan (Required) | Start immediately |
15
+ | 3-5 Files | Design Doc -> Work Plan (Recommended) | Start immediately |
11
16
  | 1-2 Files | None | Direct implementation |
12
17
 
13
18
  ## ADR Creation Conditions (Required if Any Apply)
@@ -17,14 +22,14 @@
17
22
  - Rationale: Deep nesting has high complexity and wide impact scope
18
23
  - **Changing/deleting types used in 3+ locations**
19
24
  - Rationale: Multiple location impacts require careful consideration
20
- - **Type responsibility changes** (e.g., DTOEntity)
25
+ - **Type responsibility changes** (e.g., DTO->Entity)
21
26
  - Rationale: Conceptual model changes affect design philosophy
22
27
 
23
28
  ### 2. Data Flow Changes
24
- - **Storage location changes** (DBFile, MemoryCache)
29
+ - **Storage location changes** (DB->File, Memory->Cache)
25
30
  - **Processing order changes with 3+ steps**
26
- - Example: "InputValidationSave" to "InputSaveAsync Validation"
27
- - **Data passing method changes** (propsContext, direct referenceevents)
31
+ - Example: "Input->Validation->Save" to "Input->Save->Async Validation"
32
+ - **Data passing method changes** (props->Context, direct reference->events)
28
33
 
29
34
  ### 3. Architecture Changes
30
35
  - Layer addition, responsibility changes, component relocation
@@ -52,10 +57,10 @@
52
57
  - Scope boundary diagram (required)
53
58
 
54
59
  **Excludes**:
55
- - Technical implementation details (Design Doc)
56
- - Technical selection rationale (ADR)
57
- - **Implementation phases** (Work Plan)
58
- - **Task breakdown** (Work Plan)
60
+ - Technical implementation details (->Design Doc)
61
+ - Technical selection rationale (->ADR)
62
+ - **Implementation phases** (->Work Plan)
63
+ - **Task breakdown** (->Work Plan)
59
64
 
60
65
  ### ADR (Architecture Decision Record)
61
66
 
@@ -69,10 +74,10 @@
69
74
  - Principled implementation guidelines (e.g., "Use dependency injection")
70
75
 
71
76
  **Excludes**:
72
- - Implementation schedule, duration (Work Plan)
73
- - Detailed implementation procedures (Design Doc)
74
- - Specific code examples (Design Doc)
75
- - Resource assignments (Work Plan)
77
+ - Implementation schedule, duration (->Work Plan)
78
+ - Detailed implementation procedures (->Design Doc)
79
+ - Specific code examples (->Design Doc)
80
+ - Resource assignments (->Work Plan)
76
81
 
77
82
  ### Design Document
78
83
 
@@ -94,25 +99,10 @@
94
99
  - **Agreement checklist** (agreements with stakeholders)
95
100
  - **Prerequisite ADRs** (including common ADRs)
96
101
 
97
- **Required Structural Elements**:
98
- ```yaml
99
- Change Impact Map:
100
- Change Target: [Component/Feature]
101
- Direct Impact: [Files/Functions]
102
- Indirect Impact: [Data format/Processing time]
103
- No Ripple Effect: [Unaffected features]
104
-
105
- Interface Change Matrix:
106
- Existing: [Method name]
107
- New: [Method name]
108
- Conversion Required: [Yes/No]
109
- Compatibility Method: [Approach]
110
- ```
111
-
112
102
  **Excludes**:
113
- - Why that technology was chosen (Reference ADR)
114
- - When to implement, duration (Work Plan)
115
- - Who will implement (Work Plan)
103
+ - Why that technology was chosen (->Reference ADR)
104
+ - When to implement, duration (->Work Plan)
105
+ - Who will implement (->Work Plan)
116
106
 
117
107
  ### Work Plan
118
108
 
@@ -126,8 +116,8 @@ Interface Change Matrix:
126
116
  - Progress records (checkbox format)
127
117
 
128
118
  **Excludes**:
129
- - Technical rationale (ADR)
130
- - Design details (Design Doc)
119
+ - Technical rationale (->ADR)
120
+ - Design details (->Design Doc)
131
121
 
132
122
  **Phase Division Criteria**:
133
123
  1. **Phase 1: Foundation Implementation** - Type definitions, interfaces, test preparation
@@ -151,15 +141,15 @@ Interface Change Matrix:
151
141
 
152
142
  | Document | Path | Naming Convention | Template |
153
143
  |----------|------|------------------|----------|
154
- | PRD | `docs/prd/` | `[feature-name]-prd.md` | `template-en.md` |
155
- | ADR | `docs/adr/` | `ADR-[4-digits]-[title].md` | `template-en.md` |
156
- | Design Doc | `docs/design/` | `[feature-name]-design.md` | `template-en.md` |
157
- | Work Plan | `docs/plans/` | `YYYYMMDD-{type}-{description}.md` | `template-en.md` |
144
+ | PRD | `docs/prd/` | `[feature-name]-prd.md` | See prd-template.md |
145
+ | ADR | `docs/adr/` | `ADR-[4-digits]-[title].md` | See adr-template.md |
146
+ | Design Doc | `docs/design/` | `[feature-name]-design.md` | See design-template.md |
147
+ | Work Plan | `docs/plans/` | `YYYYMMDD-{type}-{description}.md` | See plan-template.md |
158
148
 
159
149
  *Note: Work plans are excluded by `.gitignore`
160
150
 
161
151
  ## ADR Status
162
- `Proposed` `Accepted` `Deprecated`/`Superseded`/`Rejected`
152
+ `Proposed` -> `Accepted` -> `Deprecated`/`Superseded`/`Rejected`
163
153
 
164
154
  ## AI Automation Rules
165
155
  - 5+ files: Suggest ADR creation
@@ -181,4 +171,12 @@ Required diagrams for each document (using mermaid notation):
181
171
  1. **At creation**: Identify common technical areas (logging, error handling, async processing, etc.), reference existing common ADRs
182
172
  2. **When missing**: Consider creating necessary common ADRs
183
173
  3. **Design Doc**: Specify common ADRs in "Prerequisite ADRs" section
184
- 4. **Compliance check**: Verify design aligns with common ADR decisions
174
+ 4. **Compliance check**: Verify design aligns with common ADR decisions
175
+
176
+ ## Templates
177
+
178
+ Templates are available in the `references/` directory:
179
+ - [Design Document template](references/design-template.md)
180
+ - [Product Requirements Document template](references/prd-template.md)
181
+ - [Work Plan template](references/plan-template.md)
182
+ - [Architecture Decision Record template](references/adr-template.md)
@@ -61,4 +61,4 @@ Example: "Use dependency injection" ✓, "Implement in Phase 1" ✗
61
61
 
62
62
  ## Related Information
63
63
 
64
- - [Links to related ADRs, documents, issues, PRs, etc.]
64
+ - [Links to related ADRs, documents, issues, PRs, etc.]
@@ -163,20 +163,19 @@ Invariants:
163
163
  - [Conditions that remain unchanged before and after processing]
164
164
  ```
165
165
 
166
- ### State Transitions and Invariants (When Applicable)
166
+ ### State Transitions and Invariants
167
167
 
168
- ```yaml
169
- State Definition:
170
- - Initial State: [Initial values and conditions]
171
- - Possible States: [List of states]
172
-
173
- State Transitions:
174
- Current State → Event → Next State
168
+ [If the feature involves state management, describe state transitions and invariants here]
175
169
 
176
- System Invariants:
177
- - [Conditions that hold in any state]
170
+ ```
171
+ [State A] ---(event 1)---> [State B]
172
+ [State B] ---(event 2)---> [State C]
178
173
  ```
179
174
 
175
+ **Invariants**:
176
+ - [Condition that must always hold true]
177
+ - [Constraints on valid state transitions]
178
+
180
179
  ### Error Handling
181
180
 
182
181
  [Types of errors and how to handle them]
@@ -207,11 +206,7 @@ System Invariants:
207
206
  Each integration point requires E2E verification:
208
207
 
209
208
  **Integration Point 1: [Name]**
210
- - Components: [Component A] [Component B]
211
- - Verification: [How to verify integration works]
212
-
213
- **Integration Point 2: [Name]**
214
- - Components: [Component B] → [Component C]
209
+ - Components: [Component A] -> [Component B]
215
210
  - Verification: [How to verify integration works]
216
211
 
217
212
  ### Migration Strategy
@@ -220,12 +215,6 @@ Each integration point requires E2E verification:
220
215
 
221
216
  ## Test Strategy
222
217
 
223
- ### Basic Test Design Policy
224
-
225
- Automatically derive test cases from acceptance criteria:
226
- - Create at least one test case for each acceptance criterion
227
- - Implement measurable standards from acceptance criteria as assertions
228
-
229
218
  ### Unit Tests
230
219
 
231
220
  [Unit testing policy and coverage goals]
@@ -242,19 +231,10 @@ Automatically derive test cases from acceptance criteria:
242
231
  - Verify entire scenarios of acceptance criteria
243
232
  - Confirm functional operation from user perspective
244
233
 
245
- ### Performance Tests
246
-
247
- [Performance testing methods and standards]
248
- - Verify performance standards of non-functional acceptance criteria
249
-
250
234
  ## Security Considerations
251
235
 
252
236
  [Security concerns and countermeasures]
253
237
 
254
- ## Future Extensibility
255
-
256
- [Considerations for future feature additions or changes]
257
-
258
238
  ## Alternative Solutions
259
239
 
260
240
  ### Alternative 1
@@ -278,4 +258,4 @@ Automatically derive test cases from acceptance criteria:
278
258
 
279
259
  | Date | Version | Changes | Author |
280
260
  |------|---------|---------|--------|
281
- | YYYY-MM-DD | 1.0 | Initial version | [Name] |
261
+ | YYYY-MM-DD | 1.0 | Initial version | [Name] |
@@ -39,7 +39,7 @@ Related Issue/PR: #XXX (if any)
39
39
  #### Tasks
40
40
  - [ ] Task 1: Specific work content
41
41
  - [ ] Task 2: Specific work content
42
- - [ ] Quality check: Implement staged quality checks (refer to @docs/rules/technical-spec.md "Build and Testing")
42
+ - [ ] Quality check: Implement staged quality checks (refer to technical-spec skill)
43
43
  - [ ] Unit tests: All related tests pass
44
44
 
45
45
  #### Phase Completion Criteria
@@ -57,7 +57,7 @@ Related Issue/PR: #XXX (if any)
57
57
  #### Tasks
58
58
  - [ ] Task 1: Specific work content
59
59
  - [ ] Task 2: Specific work content
60
- - [ ] Quality check: Implement staged quality checks (refer to @docs/rules/technical-spec.md "Build and Testing")
60
+ - [ ] Quality check: Implement staged quality checks (refer to technical-spec skill)
61
61
  - [ ] Integration tests: Verify overall feature functionality
62
62
 
63
63
  #### Phase Completion Criteria
@@ -75,7 +75,7 @@ Related Issue/PR: #XXX (if any)
75
75
  #### Tasks
76
76
  - [ ] Task 1: Specific work content
77
77
  - [ ] Task 2: Specific work content
78
- - [ ] Quality check: Implement staged quality checks (refer to @docs/rules/technical-spec.md "Build and Testing")
78
+ - [ ] Quality check: Implement staged quality checks (refer to technical-spec skill)
79
79
  - [ ] Integration tests: Verify component coordination
80
80
 
81
81
  #### Phase Completion Criteria
@@ -99,7 +99,7 @@ Related Issue/PR: #XXX (if any)
99
99
  [Copy E2E verification procedures from Design Doc]
100
100
 
101
101
  ### Quality Assurance
102
- - [ ] Implement staged quality checks (details: refer to @docs/rules/technical-spec.md "Build and Testing")
102
+ - [ ] Implement staged quality checks (details: refer to technical-spec skill)
103
103
 
104
104
  ## Risks and Countermeasures
105
105
  | Risk | Countermeasure |
@@ -106,4 +106,4 @@ So that [expected value/benefit]
106
106
 
107
107
  ### Glossary
108
108
  - **Term 1**: [Definition]
109
- - **Term 2**: [Definition]
109
+ - **Term 2**: [Definition]
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: frontend/technical-spec
3
+ description: Frontend technical design rules including environment variables, architecture design, data flow, and build/testing commands.
4
+ ---
5
+
1
6
  # Technical Design Rules (Frontend)
2
7
 
3
8
  ## Basic Technology Stack Policy
@@ -12,13 +17,13 @@ TypeScript-based React application implementation. Architecture patterns should
12
17
  - Properly implement default value settings and mandatory checks
13
18
 
14
19
  ```typescript
15
- // Build tool environment variables (public values only)
20
+ // Build tool environment variables (public values only)
16
21
  const config = {
17
22
  apiUrl: import.meta.env.API_URL || 'http://localhost:3000',
18
23
  appName: import.meta.env.APP_NAME || 'My App'
19
24
  }
20
25
 
21
- // Does not work in frontend
26
+ // Does not work in frontend
22
27
  const apiUrl = process.env.API_URL
23
28
  ```
24
29
 
@@ -31,23 +36,22 @@ const apiUrl = process.env.API_URL
31
36
 
32
37
  **Correct Approach for Secrets**:
33
38
  ```typescript
34
- // Security risk: API key exposed in browser
39
+ // Security risk: API key exposed in browser
35
40
  const apiKey = import.meta.env.API_KEY
36
41
  const response = await fetch(`https://api.example.com/data?key=${apiKey}`)
37
42
 
38
- // Correct: Backend manages secrets, frontend accesses via proxy
43
+ // Correct: Backend manages secrets, frontend accesses via proxy
39
44
  const response = await fetch('/api/data') // Backend handles API key authentication
40
45
  ```
41
46
 
42
47
  ## Architecture Design
43
48
 
44
49
  ### Frontend Architecture Patterns
45
- Strictly adhere to selected project patterns. Project-specific details reference `docs/rules/architecture/`.
46
50
 
47
51
  **React Component Architecture**:
48
52
  - **Function Components**: Mandatory, class components deprecated
49
53
  - **Custom Hooks**: For logic reuse and dependency injection
50
- - **Component Hierarchy**: Atoms Molecules Organisms Templates Pages
54
+ - **Component Hierarchy**: Atoms -> Molecules -> Organisms -> Templates -> Pages
51
55
  - **Props-driven**: Components receive all necessary data via props
52
56
  - **Co-location**: Place tests, styles, and related files alongside components
53
57
 
@@ -69,26 +73,26 @@ Maintain consistent data flow throughout the React application:
69
73
 
70
74
  - **Unidirectional Flow**: Data flows top-down via props
71
75
  ```
72
- API Response State Props Render UI
73
- User Input Event Handler State Update Re-render
76
+ API Response -> State -> Props -> Render -> UI
77
+ User Input -> Event Handler -> State Update -> Re-render
74
78
  ```
75
79
 
76
80
  - **Immutable Updates**: Use immutable patterns for state updates
77
81
  ```typescript
78
- // Immutable state update
82
+ // Immutable state update
79
83
  setUsers(prev => [...prev, newUser])
80
84
 
81
- // Mutable state update
85
+ // Mutable state update (avoid)
82
86
  users.push(newUser)
83
87
  setUsers(users)
84
88
  ```
85
89
 
86
90
  ### Type Safety in Data Flow
87
- - **Frontend Backend**: Props/State (Type Guaranteed) API Request (Serialization)
88
- - **Backend Frontend**: API Response (`unknown`) Type Guard State (Type Guaranteed)
91
+ - **Frontend -> Backend**: Props/State (Type Guaranteed) -> API Request (Serialization)
92
+ - **Backend -> Frontend**: API Response (`unknown`) -> Type Guard -> State (Type Guaranteed)
89
93
 
90
94
  ```typescript
91
- // Type-safe data flow
95
+ // Type-safe data flow
92
96
  async function fetchUser(id: string): Promise<User> {
93
97
  const response = await fetch(`/api/users/${id}`)
94
98
  const data: unknown = await response.json()
@@ -1,8 +1,13 @@
1
- # TypeScript Development Rules
1
+ ---
2
+ name: frontend/typescript-rules
3
+ description: React/TypeScript frontend development rules including type safety, component design, state management, and error handling.
4
+ ---
5
+
6
+ # TypeScript Development Rules (Frontend)
2
7
 
3
8
  ## Frontend-Specific Anti-patterns
4
9
 
5
- In addition to universal anti-patterns in coding-standards.md, watch for these Frontend-specific issues:
10
+ In addition to universal anti-patterns in coding-standards skill, watch for these Frontend-specific issues:
6
11
 
7
12
  - **Prop drilling through 3+ levels** - Should use Context API or state management
8
13
  - **Massive components (300+ lines)** - Split into smaller components
@@ -10,8 +15,8 @@ In addition to universal anti-patterns in coding-standards.md, watch for these F
10
15
  ## Type Safety in Frontend Implementation
11
16
 
12
17
  **Type Safety in Data Flow**
13
- - **Frontend Backend**: Props/State (Type Guaranteed) API Request (Serialization)
14
- - **Backend Frontend**: API Response (`unknown`) Type Guard State (Type Guaranteed)
18
+ - **Frontend -> Backend**: Props/State (Type Guaranteed) -> API Request (Serialization)
19
+ - **Backend -> Frontend**: API Response (`unknown`) -> Type Guard -> State (Type Guaranteed)
15
20
 
16
21
  **Frontend-Specific Type Scenarios**:
17
22
  - **React Props/State**: TypeScript manages types, unknown unnecessary
@@ -38,7 +43,7 @@ In addition to universal anti-patterns in coding-standards.md, watch for these F
38
43
  **Function Design**
39
44
  - **0-2 parameters maximum**: Use object for 3+ parameters
40
45
  ```typescript
41
- // Object parameter
46
+ // Object parameter
42
47
  function createUser({ name, email, role }: CreateUserParams) {}
43
48
  ```
44
49
 
@@ -65,10 +70,10 @@ In addition to universal anti-patterns in coding-standards.md, watch for these F
65
70
  - Imports use absolute paths (`src/`)
66
71
 
67
72
  **Clean Code Principles**
68
- - Delete unused code immediately
69
- - Delete debug `console.log()`
70
- - Commented-out code (manage history with version control)
71
- - Comments explain "why" (not "what")
73
+ - Delete unused code immediately
74
+ - Delete debug `console.log()`
75
+ - No commented-out code (manage history with version control)
76
+ - Comments explain "why" (not "what")
72
77
 
73
78
  ## Error Handling
74
79
 
@@ -76,12 +81,12 @@ In addition to universal anti-patterns in coding-standards.md, watch for these F
76
81
 
77
82
  **Fail-Fast Principle**: Fail quickly on errors to prevent continued processing in invalid states
78
83
  ```typescript
79
- // Prohibited: Unconditional fallback
84
+ // Prohibited: Unconditional fallback
80
85
  catch (error) {
81
86
  return defaultValue // Hides error
82
87
  }
83
88
 
84
- // Required: Explicit failure
89
+ // Required: Explicit failure
85
90
  catch (error) {
86
91
  logger.error('Processing failed', error)
87
92
  throw error // Handle with Error Boundary or higher layer
@@ -128,4 +133,4 @@ Never include sensitive information (password, token, apiKey, secret, creditCard
128
133
  - Component Memoization: Use React.memo for expensive components
129
134
  - State Optimization: Minimize re-renders with proper state structure
130
135
  - Lazy Loading: Use React.lazy and Suspense for code splitting
131
- - Bundle Size: Monitor with the `build` script (use the appropriate run command based on the `packageManager` field in package.json) and keep under 500KB
136
+ - Bundle Size: Monitor with the `build` script and keep under 500KB