specsmd 0.0.0-dev.8 → 0.0.0-dev.80
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 +175 -231
- package/flows/aidlc/commands/construction-agent.md +5 -1
- package/flows/aidlc/commands/inception-agent.md +4 -0
- package/flows/aidlc/commands/master-agent.md +4 -0
- package/flows/aidlc/commands/operations-agent.md +4 -0
- package/flows/aidlc/memory-bank.yaml +2 -1
- package/{scripts/artifact-validator.js → flows/aidlc/scripts/artifact-validator.cjs} +3 -3
- package/{scripts/bolt-complete.js → flows/aidlc/scripts/bolt-complete.cjs} +36 -5
- package/{scripts/status-integrity.js → flows/aidlc/scripts/status-integrity.cjs} +5 -5
- package/flows/aidlc/skills/construction/bolt-list.md +1 -1
- package/flows/aidlc/skills/construction/bolt-start.md +3 -3
- package/flows/aidlc/skills/construction/bolt-status.md +1 -1
- package/flows/aidlc/skills/construction/prototype-apply.md +311 -0
- package/flows/aidlc/skills/inception/bolt-plan.md +2 -0
- package/flows/aidlc/skills/inception/vibe-to-spec.md +410 -0
- package/flows/aidlc/skills/master/analyze-context.md +1 -1
- package/flows/aidlc/templates/construction/bolt-template.md +2 -2
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +73 -11
- package/flows/aidlc/templates/standards/decision-index-template.md +32 -0
- package/flows/fire/README.md +19 -0
- package/flows/fire/agents/builder/agent.md +260 -0
- package/flows/fire/agents/builder/skills/code-review/SKILL.md +257 -0
- package/flows/fire/agents/builder/skills/code-review/references/auto-fix-rules.md +218 -0
- package/flows/fire/agents/builder/skills/code-review/references/review-categories.md +154 -0
- package/flows/fire/agents/builder/skills/code-review/templates/review-report.md.hbs +120 -0
- package/flows/fire/agents/builder/skills/run-execute/SKILL.md +705 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.cjs +781 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/init-run.cjs +457 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/update-phase.cjs +239 -0
- package/flows/fire/agents/builder/skills/run-execute/templates/plan.md.hbs +61 -0
- package/flows/fire/agents/builder/skills/run-execute/templates/test-report.md.hbs +81 -0
- package/flows/fire/agents/builder/skills/run-plan/SKILL.md +378 -0
- package/flows/fire/agents/builder/skills/run-status/SKILL.md +96 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +264 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/templates/walkthrough.md.hbs +176 -0
- package/flows/fire/agents/orchestrator/agent.md +144 -0
- package/flows/fire/agents/orchestrator/skills/project-init/SKILL.md +226 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/coding-standards.md.hbs +149 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/constitution.md.hbs +43 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/system-architecture.md.hbs +101 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/tech-stack.md.hbs +136 -0
- package/flows/fire/agents/orchestrator/skills/project-init/templates/testing-standards.md.hbs +94 -0
- package/flows/fire/agents/orchestrator/skills/route/SKILL.md +146 -0
- package/flows/fire/agents/orchestrator/skills/status/SKILL.md +696 -0
- package/flows/fire/agents/planner/agent.md +143 -0
- package/flows/fire/agents/planner/skills/design-doc-generate/SKILL.md +156 -0
- package/flows/fire/agents/planner/skills/design-doc-generate/templates/design.md.hbs +124 -0
- package/flows/fire/agents/planner/skills/intent-capture/SKILL.md +125 -0
- package/flows/fire/agents/planner/skills/intent-capture/templates/brief.md.hbs +40 -0
- package/flows/fire/agents/planner/skills/work-item-decompose/SKILL.md +166 -0
- package/flows/fire/agents/planner/skills/work-item-decompose/templates/work-item.md.hbs +40 -0
- package/flows/fire/commands/fire-builder.md +56 -0
- package/flows/fire/commands/fire-planner.md +48 -0
- package/flows/fire/commands/fire.md +46 -0
- package/flows/fire/memory-bank.yaml +240 -0
- package/flows/fire/quick-start.md +146 -0
- package/flows/simple/README.md +190 -0
- package/flows/simple/agents/agent.md +404 -0
- package/flows/simple/commands/agent.md +60 -0
- package/flows/simple/context-config.yaml +34 -0
- package/flows/simple/memory-bank.yaml +66 -0
- package/flows/simple/quick-start.md +231 -0
- package/flows/simple/skills/design.md +96 -0
- package/flows/simple/skills/execute.md +190 -0
- package/flows/simple/skills/requirements.md +94 -0
- package/flows/simple/skills/tasks.md +136 -0
- package/flows/simple/templates/design-template.md +138 -0
- package/flows/simple/templates/requirements-template.md +85 -0
- package/flows/simple/templates/tasks-template.md +104 -0
- package/lib/analytics/tracker.js +6 -2
- package/lib/constants.js +20 -8
- package/lib/installer.js +19 -15
- package/lib/installers/KiroInstaller.js +55 -0
- package/lib/installers/OpenCodeInstaller.js +9 -1
- package/lib/installers/ToolInstaller.js +4 -1
- package/lib/installers/WindsurfInstaller.js +0 -54
- package/package.json +3 -52
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-init
|
|
3
|
+
description: Initialize a new FIRE project by detecting workspace type and setting up standards.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<objective>
|
|
8
|
+
Initialize a new FIRE project by detecting workspace type and setting up standards.
|
|
9
|
+
</objective>
|
|
10
|
+
|
|
11
|
+
<triggers>
|
|
12
|
+
- User runs `/specsmd-fire` on uninitialized project
|
|
13
|
+
- No `.specs-fire/state.yaml` exists
|
|
14
|
+
</triggers>
|
|
15
|
+
|
|
16
|
+
<flow>
|
|
17
|
+
<step n="1" title="Welcome">
|
|
18
|
+
<output>
|
|
19
|
+
Welcome to FIRE (Fast Intent-Run Engineering).
|
|
20
|
+
|
|
21
|
+
Let me analyze your project to get started.
|
|
22
|
+
</output>
|
|
23
|
+
</step>
|
|
24
|
+
|
|
25
|
+
<step n="2" title="Detect Workspace">
|
|
26
|
+
<action>Analyze project root for existing code</action>
|
|
27
|
+
<check if="src/ or app/ or main entry points exist">
|
|
28
|
+
<set>workspace.type = brownfield</set>
|
|
29
|
+
</check>
|
|
30
|
+
<check if="minimal files, no source directories">
|
|
31
|
+
<set>workspace.type = greenfield</set>
|
|
32
|
+
</check>
|
|
33
|
+
</step>
|
|
34
|
+
|
|
35
|
+
<step n="3a" title="Brownfield Setup" if="workspace.type == brownfield">
|
|
36
|
+
<output>
|
|
37
|
+
Existing project detected. I'll analyze your codebase to infer standards.
|
|
38
|
+
</output>
|
|
39
|
+
<action>Detect tech stack (language, framework, database)</action>
|
|
40
|
+
<action>Detect structure (monolith, monorepo)</action>
|
|
41
|
+
<action>Infer coding patterns</action>
|
|
42
|
+
|
|
43
|
+
<monorepo_detection>
|
|
44
|
+
Check for monorepo indicators:
|
|
45
|
+
- nx.json, turbo.json, pnpm-workspace.yaml, lerna.json, rush.json
|
|
46
|
+
- package.json with "workspaces" field
|
|
47
|
+
- Cargo.toml with [workspace] section
|
|
48
|
+
- go.work file
|
|
49
|
+
- Multiple independent package/dependency manifests
|
|
50
|
+
- Common patterns: packages/*, apps/*, services/*, libs/*
|
|
51
|
+
|
|
52
|
+
If any indicator found → workspace.structure = "monorepo"
|
|
53
|
+
</monorepo_detection>
|
|
54
|
+
|
|
55
|
+
<output>
|
|
56
|
+
Here's what I found:
|
|
57
|
+
|
|
58
|
+
**Tech Stack**: {detected_tech}
|
|
59
|
+
**Structure**: {detected_structure}
|
|
60
|
+
**Patterns**: {detected_patterns}
|
|
61
|
+
|
|
62
|
+
Does this look accurate? [Y/n/edit]
|
|
63
|
+
</output>
|
|
64
|
+
</step>
|
|
65
|
+
|
|
66
|
+
<step n="3b" title="Greenfield Setup" if="workspace.type == greenfield">
|
|
67
|
+
<ask>
|
|
68
|
+
What do you want to build? Tell me about:
|
|
69
|
+
- What the project does
|
|
70
|
+
- Target users
|
|
71
|
+
- Key features
|
|
72
|
+
</ask>
|
|
73
|
+
<action>Analyze description, suggest tech stack</action>
|
|
74
|
+
<output>
|
|
75
|
+
Based on your description, I suggest:
|
|
76
|
+
|
|
77
|
+
**Language**: {suggested_language}
|
|
78
|
+
**Framework**: {suggested_framework}
|
|
79
|
+
**Database**: {suggested_database}
|
|
80
|
+
|
|
81
|
+
Accept these suggestions? [Y/n/edit]
|
|
82
|
+
</output>
|
|
83
|
+
</step>
|
|
84
|
+
|
|
85
|
+
<step n="4" title="Choose Autonomy Level">
|
|
86
|
+
<output>
|
|
87
|
+
How autonomous should FIRE be when executing work items?
|
|
88
|
+
|
|
89
|
+
**[1] Autonomous** — AI executes more freely, fewer checkpoints
|
|
90
|
+
(medium complexity → autopilot, high → confirm)
|
|
91
|
+
|
|
92
|
+
**[2] Balanced** — Standard checkpoints based on complexity (Recommended)
|
|
93
|
+
(low → autopilot, medium → confirm, high → validate)
|
|
94
|
+
|
|
95
|
+
**[3] Controlled** — More human oversight, more checkpoints
|
|
96
|
+
(low → confirm, medium/high → validate)
|
|
97
|
+
|
|
98
|
+
Choose [1/2/3]:
|
|
99
|
+
</output>
|
|
100
|
+
<check if="response == 1">
|
|
101
|
+
<set>workspace.autonomy_bias = autonomous</set>
|
|
102
|
+
</check>
|
|
103
|
+
<check if="response == 2">
|
|
104
|
+
<set>workspace.autonomy_bias = balanced</set>
|
|
105
|
+
</check>
|
|
106
|
+
<check if="response == 3">
|
|
107
|
+
<set>workspace.autonomy_bias = controlled</set>
|
|
108
|
+
</check>
|
|
109
|
+
<note>Can be changed later in .specs-fire/state.yaml</note>
|
|
110
|
+
</step>
|
|
111
|
+
|
|
112
|
+
<step n="5" title="Detect Modules" if="workspace.structure == monorepo">
|
|
113
|
+
<output>
|
|
114
|
+
Monorepo detected. Let me find and analyze the modules.
|
|
115
|
+
</output>
|
|
116
|
+
|
|
117
|
+
<action>Find module directories by exploring:</action>
|
|
118
|
+
<substep>Paths from workspace config (nx.json projects, pnpm-workspace.yaml, etc.)</substep>
|
|
119
|
+
<substep>Common patterns: packages/*, apps/*, services/*, libs/*, modules/*</substep>
|
|
120
|
+
<substep>Directories with their own dependency manifest</substep>
|
|
121
|
+
|
|
122
|
+
<action>For each discovered module, analyze (AI-driven, no hardcoded mappings):</action>
|
|
123
|
+
<substep>Primary language (from file extensions, config files)</substep>
|
|
124
|
+
<substep>Build/test commands (from CI config, package scripts, Makefile)</substep>
|
|
125
|
+
<substep>Linter/formatter (from config files in module)</substep>
|
|
126
|
+
<substep>Package manager (from lock files, manifests)</substep>
|
|
127
|
+
|
|
128
|
+
<output>
|
|
129
|
+
Found {{module_count}} modules:
|
|
130
|
+
|
|
131
|
+
| Module | Language | Test Command | Linter |
|
|
132
|
+
|--------|----------|--------------|--------|
|
|
133
|
+
{{#each modules}}
|
|
134
|
+
| {{path}} | {{language}} | {{test_cmd}} | {{linter}} |
|
|
135
|
+
{{/each}}
|
|
136
|
+
|
|
137
|
+
Create module-specific standards?
|
|
138
|
+
[c] All modules — create standards for all
|
|
139
|
+
[s] Select — choose which modules
|
|
140
|
+
[n] None — I'll create them manually later
|
|
141
|
+
</output>
|
|
142
|
+
|
|
143
|
+
<check if="response == c or response == s">
|
|
144
|
+
<action>For each selected module, create {module}/.specs-fire/standards/tech-stack.md</action>
|
|
145
|
+
<note>Only tech-stack.md by default — other standards inherit from root</note>
|
|
146
|
+
</check>
|
|
147
|
+
</step>
|
|
148
|
+
|
|
149
|
+
<step n="6" title="Create Structure">
|
|
150
|
+
<action>Create .specs-fire/ directory</action>
|
|
151
|
+
<action>Create .specs-fire/intents/</action>
|
|
152
|
+
<action>Create .specs-fire/runs/</action>
|
|
153
|
+
<action>Create .specs-fire/standards/</action>
|
|
154
|
+
<action>Generate .specs-fire/state.yaml (include autonomy_bias, workspace.structure)</action>
|
|
155
|
+
<action>Generate standards using templates:</action>
|
|
156
|
+
<substep>constitution.md — templates/constitution.md.hbs</substep>
|
|
157
|
+
<substep>tech-stack.md — templates/tech-stack.md.hbs</substep>
|
|
158
|
+
<substep>coding-standards.md — templates/coding-standards.md.hbs</substep>
|
|
159
|
+
<substep>testing-standards.md — templates/testing-standards.md.hbs</substep>
|
|
160
|
+
<substep>system-architecture.md — templates/system-architecture.md.hbs</substep>
|
|
161
|
+
|
|
162
|
+
<check if="workspace.structure == monorepo and modules_selected">
|
|
163
|
+
<action>For each selected module:</action>
|
|
164
|
+
<substep>Create {module}/.specs-fire/standards/</substep>
|
|
165
|
+
<substep>Generate {module}/.specs-fire/standards/tech-stack.md with detected settings</substep>
|
|
166
|
+
</check>
|
|
167
|
+
</step>
|
|
168
|
+
|
|
169
|
+
<step n="7" title="Complete">
|
|
170
|
+
<output>
|
|
171
|
+
FIRE initialized!
|
|
172
|
+
|
|
173
|
+
Structure created:
|
|
174
|
+
```
|
|
175
|
+
.specs-fire/
|
|
176
|
+
├── state.yaml
|
|
177
|
+
├── intents/
|
|
178
|
+
├── runs/
|
|
179
|
+
└── standards/
|
|
180
|
+
├── constitution.md # Universal policies (always inherited)
|
|
181
|
+
├── tech-stack.md
|
|
182
|
+
├── coding-standards.md
|
|
183
|
+
├── testing-standards.md
|
|
184
|
+
└── system-architecture.md
|
|
185
|
+
{{#if modules_created}}
|
|
186
|
+
|
|
187
|
+
Module standards created:
|
|
188
|
+
{{#each modules_created}}
|
|
189
|
+
{{path}}/.specs-fire/standards/
|
|
190
|
+
└── tech-stack.md
|
|
191
|
+
{{/each}}
|
|
192
|
+
{{/if}}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Ready to capture your first intent.
|
|
196
|
+
What do you want to build?
|
|
197
|
+
</output>
|
|
198
|
+
<route_to>planner-agent (intent-capture)</route_to>
|
|
199
|
+
</step>
|
|
200
|
+
</flow>
|
|
201
|
+
|
|
202
|
+
<output_artifacts>
|
|
203
|
+
|
|
204
|
+
| Artifact | Location | Template |
|
|
205
|
+
|----------|----------|----------|
|
|
206
|
+
| State | `.specs-fire/state.yaml` | — |
|
|
207
|
+
| Constitution | `.specs-fire/standards/constitution.md` | `templates/constitution.md.hbs` |
|
|
208
|
+
| Tech Stack | `.specs-fire/standards/tech-stack.md` | `templates/tech-stack.md.hbs` |
|
|
209
|
+
| Coding Standards | `.specs-fire/standards/coding-standards.md` | `templates/coding-standards.md.hbs` |
|
|
210
|
+
| Testing Standards | `.specs-fire/standards/testing-standards.md` | `templates/testing-standards.md.hbs` |
|
|
211
|
+
| System Architecture | `.specs-fire/standards/system-architecture.md` | `templates/system-architecture.md.hbs` |
|
|
212
|
+
| Module Tech Stack | `{module}/.specs-fire/standards/tech-stack.md` | AI-generated |
|
|
213
|
+
</output_artifacts>
|
|
214
|
+
|
|
215
|
+
<success_criteria>
|
|
216
|
+
<criterion>Workspace type correctly detected (greenfield/brownfield)</criterion>
|
|
217
|
+
<criterion>Workspace structure correctly detected (monolith/monorepo)</criterion>
|
|
218
|
+
<criterion>Tech stack identified or suggested</criterion>
|
|
219
|
+
<criterion>Autonomy level selected</criterion>
|
|
220
|
+
<criterion>.specs-fire/ directory structure created</criterion>
|
|
221
|
+
<criterion>constitution.md generated (universal policies)</criterion>
|
|
222
|
+
<criterion>Standards files generated from templates</criterion>
|
|
223
|
+
<criterion>state.yaml created with correct configuration</criterion>
|
|
224
|
+
<criterion>If monorepo: modules detected and analyzed</criterion>
|
|
225
|
+
<criterion>If monorepo: module standards created for selected modules</criterion>
|
|
226
|
+
</success_criteria>
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Coding Standards
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
{{overview}}
|
|
6
|
+
|
|
7
|
+
## Code Formatting
|
|
8
|
+
|
|
9
|
+
**Tool**: {{formatter}}
|
|
10
|
+
**Config**: {{formatter_config}}
|
|
11
|
+
**Enforcement**: {{formatter_enforcement}}
|
|
12
|
+
|
|
13
|
+
### Key Settings
|
|
14
|
+
|
|
15
|
+
{{#each formatter_settings}}
|
|
16
|
+
- **{{this.setting}}**: {{this.value}}
|
|
17
|
+
{{/each}}
|
|
18
|
+
|
|
19
|
+
## Linting
|
|
20
|
+
|
|
21
|
+
**Tool**: {{linter}}
|
|
22
|
+
**Base Config**: {{linter_base}}
|
|
23
|
+
**Strictness**: {{linter_strictness}}
|
|
24
|
+
|
|
25
|
+
### Key Rules
|
|
26
|
+
|
|
27
|
+
{{#each linter_rules}}
|
|
28
|
+
- `{{this.rule}}`: {{this.setting}} — {{this.rationale}}
|
|
29
|
+
{{/each}}
|
|
30
|
+
|
|
31
|
+
## Naming Conventions
|
|
32
|
+
|
|
33
|
+
### Variables and Functions
|
|
34
|
+
|
|
35
|
+
| Element | Convention | Example |
|
|
36
|
+
|---------|------------|---------|
|
|
37
|
+
{{#each naming_conventions}}
|
|
38
|
+
| {{this.element}} | {{this.convention}} | `{{this.example}}` |
|
|
39
|
+
{{/each}}
|
|
40
|
+
|
|
41
|
+
### Files and Folders
|
|
42
|
+
|
|
43
|
+
{{#each file_naming}}
|
|
44
|
+
- **{{this.type}}**: {{this.convention}} (e.g., `{{this.example}}`)
|
|
45
|
+
{{/each}}
|
|
46
|
+
|
|
47
|
+
## File Organization
|
|
48
|
+
|
|
49
|
+
### Project Structure
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
{{project_structure}}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Conventions
|
|
56
|
+
|
|
57
|
+
{{#each organization_conventions}}
|
|
58
|
+
- **{{this.item}}**: {{this.convention}}
|
|
59
|
+
{{/each}}
|
|
60
|
+
|
|
61
|
+
## Import Order
|
|
62
|
+
|
|
63
|
+
```{{language}}
|
|
64
|
+
{{import_order_example}}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Rules**:
|
|
68
|
+
{{#each import_rules}}
|
|
69
|
+
- {{this}}
|
|
70
|
+
{{/each}}
|
|
71
|
+
|
|
72
|
+
## Error Handling
|
|
73
|
+
|
|
74
|
+
### Pattern
|
|
75
|
+
|
|
76
|
+
**Approach**: {{error_pattern}}
|
|
77
|
+
|
|
78
|
+
### Guidelines
|
|
79
|
+
|
|
80
|
+
{{#each error_guidelines}}
|
|
81
|
+
- {{this}}
|
|
82
|
+
{{/each}}
|
|
83
|
+
|
|
84
|
+
### Example
|
|
85
|
+
|
|
86
|
+
```{{language}}
|
|
87
|
+
{{error_example}}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Logging
|
|
91
|
+
|
|
92
|
+
**Tool**: {{logging_tool}}
|
|
93
|
+
**Format**: {{logging_format}}
|
|
94
|
+
|
|
95
|
+
### Log Levels
|
|
96
|
+
|
|
97
|
+
| Level | Usage |
|
|
98
|
+
|-------|-------|
|
|
99
|
+
{{#each log_levels}}
|
|
100
|
+
| {{this.level}} | {{this.usage}} |
|
|
101
|
+
{{/each}}
|
|
102
|
+
|
|
103
|
+
### Guidelines
|
|
104
|
+
|
|
105
|
+
**Always log**:
|
|
106
|
+
{{#each log_always}}
|
|
107
|
+
- {{this}}
|
|
108
|
+
{{/each}}
|
|
109
|
+
|
|
110
|
+
**Never log**:
|
|
111
|
+
{{#each log_never}}
|
|
112
|
+
- {{this}}
|
|
113
|
+
{{/each}}
|
|
114
|
+
|
|
115
|
+
## Comments and Documentation
|
|
116
|
+
|
|
117
|
+
### When to Comment
|
|
118
|
+
|
|
119
|
+
{{#each comment_guidelines}}
|
|
120
|
+
- {{this}}
|
|
121
|
+
{{/each}}
|
|
122
|
+
|
|
123
|
+
### Documentation Format
|
|
124
|
+
|
|
125
|
+
**Functions**: {{doc_format_functions}}
|
|
126
|
+
**Classes**: {{doc_format_classes}}
|
|
127
|
+
|
|
128
|
+
## Code Patterns
|
|
129
|
+
|
|
130
|
+
### Preferred Patterns
|
|
131
|
+
|
|
132
|
+
{{#each preferred_patterns}}
|
|
133
|
+
#### {{this.name}}
|
|
134
|
+
|
|
135
|
+
{{this.description}}
|
|
136
|
+
|
|
137
|
+
```{{../language}}
|
|
138
|
+
{{this.example}}
|
|
139
|
+
```
|
|
140
|
+
{{/each}}
|
|
141
|
+
|
|
142
|
+
### Anti-Patterns to Avoid
|
|
143
|
+
|
|
144
|
+
{{#each anti_patterns}}
|
|
145
|
+
- **{{this.name}}**: {{this.why}}
|
|
146
|
+
{{/each}}
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
*Generated by specs.md - fabriqa.ai FIRE Flow*
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Project Constitution
|
|
2
|
+
|
|
3
|
+
> Universal policies that apply to ALL code in this project.
|
|
4
|
+
> This file is always inherited from root — modules cannot override it.
|
|
5
|
+
|
|
6
|
+
## Git Workflow
|
|
7
|
+
|
|
8
|
+
- **Commit Style**: {{#if commit_style}}{{commit_style}}{{else}}Conventional commits (feat:, fix:, chore:, docs:, refactor:, test:){{/if}}
|
|
9
|
+
- **Branch Strategy**: {{#if branch_strategy}}{{branch_strategy}}{{else}}Feature branches merged via pull request{{/if}}
|
|
10
|
+
- **Main Branch**: {{#if main_branch}}{{main_branch}}{{else}}main{{/if}} is always deployable
|
|
11
|
+
|
|
12
|
+
## Code Review
|
|
13
|
+
|
|
14
|
+
- All changes require pull request review
|
|
15
|
+
- {{#if approval_count}}{{approval_count}}{{else}}At least one{{/if}} approval required before merge
|
|
16
|
+
- No self-merging to main/master
|
|
17
|
+
- Security-sensitive changes require additional review
|
|
18
|
+
|
|
19
|
+
## CI/CD
|
|
20
|
+
|
|
21
|
+
{{#if ci_platform}}
|
|
22
|
+
- **Platform**: {{ci_platform}}
|
|
23
|
+
{{else}}
|
|
24
|
+
- All PRs must pass CI checks before merge
|
|
25
|
+
{{/if}}
|
|
26
|
+
- Automated tests run on every push
|
|
27
|
+
- Main branch deployments are automated
|
|
28
|
+
|
|
29
|
+
## Security Policies
|
|
30
|
+
|
|
31
|
+
- **No secrets in code** — use environment variables or secret management
|
|
32
|
+
- Dependencies must be from trusted sources
|
|
33
|
+
- Security vulnerabilities addressed within SLA
|
|
34
|
+
- No credentials, API keys, or tokens in source control
|
|
35
|
+
|
|
36
|
+
## Documentation
|
|
37
|
+
|
|
38
|
+
- Public APIs must be documented
|
|
39
|
+
- Breaking changes require migration notes
|
|
40
|
+
- README kept up to date with setup instructions
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
*Generated by specs.md - fabriqa.ai FIRE Flow*
|
package/flows/fire/agents/orchestrator/skills/project-init/templates/system-architecture.md.hbs
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# System Architecture
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
{{overview}}
|
|
6
|
+
|
|
7
|
+
## System Context
|
|
8
|
+
|
|
9
|
+
{{system_context}}
|
|
10
|
+
|
|
11
|
+
### Context Diagram
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
{{context_diagram}}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Users
|
|
18
|
+
|
|
19
|
+
{{#each users}}
|
|
20
|
+
- **{{this.name}}**: {{this.description}}
|
|
21
|
+
{{/each}}
|
|
22
|
+
|
|
23
|
+
### External Systems
|
|
24
|
+
|
|
25
|
+
{{#each external_systems}}
|
|
26
|
+
- **{{this.name}}**: {{this.purpose}}
|
|
27
|
+
{{/each}}
|
|
28
|
+
|
|
29
|
+
## Architecture Pattern
|
|
30
|
+
|
|
31
|
+
**Pattern**: {{architecture_pattern}}
|
|
32
|
+
**Rationale**: {{architecture_rationale}}
|
|
33
|
+
|
|
34
|
+
## Component Architecture
|
|
35
|
+
|
|
36
|
+
### Components
|
|
37
|
+
|
|
38
|
+
{{#each components}}
|
|
39
|
+
#### {{this.name}}
|
|
40
|
+
|
|
41
|
+
- **Purpose**: {{this.purpose}}
|
|
42
|
+
- **Responsibilities**: {{this.responsibilities}}
|
|
43
|
+
- **Dependencies**: {{this.dependencies}}
|
|
44
|
+
{{/each}}
|
|
45
|
+
|
|
46
|
+
### Component Diagram
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
{{component_diagram}}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Data Flow
|
|
53
|
+
|
|
54
|
+
{{data_flow_description}}
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
{{data_flow_diagram}}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Technology Stack
|
|
61
|
+
|
|
62
|
+
| Layer | Technology | Purpose |
|
|
63
|
+
|-------|------------|---------|
|
|
64
|
+
{{#each tech_stack}}
|
|
65
|
+
| {{this.layer}} | {{this.technology}} | {{this.purpose}} |
|
|
66
|
+
{{/each}}
|
|
67
|
+
|
|
68
|
+
## Non-Functional Requirements
|
|
69
|
+
|
|
70
|
+
### Performance
|
|
71
|
+
|
|
72
|
+
{{#each nfr_performance}}
|
|
73
|
+
- **{{this.metric}}**: {{this.target}}
|
|
74
|
+
{{/each}}
|
|
75
|
+
|
|
76
|
+
### Security
|
|
77
|
+
|
|
78
|
+
{{#each nfr_security}}
|
|
79
|
+
- {{this}}
|
|
80
|
+
{{/each}}
|
|
81
|
+
|
|
82
|
+
### Scalability
|
|
83
|
+
|
|
84
|
+
{{scalability_approach}}
|
|
85
|
+
|
|
86
|
+
## Constraints
|
|
87
|
+
|
|
88
|
+
{{#each constraints}}
|
|
89
|
+
- {{this}}
|
|
90
|
+
{{/each}}
|
|
91
|
+
|
|
92
|
+
## Key Decisions
|
|
93
|
+
|
|
94
|
+
| Decision | Choice | Rationale |
|
|
95
|
+
|----------|--------|-----------|
|
|
96
|
+
{{#each key_decisions}}
|
|
97
|
+
| {{this.decision}} | {{this.choice}} | {{this.rationale}} |
|
|
98
|
+
{{/each}}
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
*Generated by specs.md - fabriqa.ai FIRE Flow*
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Tech Stack
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
{{overview}}
|
|
6
|
+
|
|
7
|
+
## Core Technologies
|
|
8
|
+
|
|
9
|
+
### Language
|
|
10
|
+
|
|
11
|
+
**Primary**: {{primary_language}}
|
|
12
|
+
**Version**: {{language_version}}
|
|
13
|
+
|
|
14
|
+
### Framework
|
|
15
|
+
|
|
16
|
+
**Framework**: {{framework}}
|
|
17
|
+
**Version**: {{framework_version}}
|
|
18
|
+
**Rationale**: {{framework_rationale}}
|
|
19
|
+
|
|
20
|
+
### Runtime
|
|
21
|
+
|
|
22
|
+
**Runtime**: {{runtime}}
|
|
23
|
+
**Version**: {{runtime_version}}
|
|
24
|
+
|
|
25
|
+
## Data Layer
|
|
26
|
+
|
|
27
|
+
### Database
|
|
28
|
+
|
|
29
|
+
**Type**: {{database_type}}
|
|
30
|
+
**Database**: {{database}}
|
|
31
|
+
**Version**: {{database_version}}
|
|
32
|
+
|
|
33
|
+
### ORM / Data Access
|
|
34
|
+
|
|
35
|
+
**Tool**: {{orm}}
|
|
36
|
+
**Rationale**: {{orm_rationale}}
|
|
37
|
+
|
|
38
|
+
### Caching
|
|
39
|
+
|
|
40
|
+
{{#if caching}}
|
|
41
|
+
**Solution**: {{caching}}
|
|
42
|
+
{{else}}
|
|
43
|
+
Not configured.
|
|
44
|
+
{{/if}}
|
|
45
|
+
|
|
46
|
+
## API Layer
|
|
47
|
+
|
|
48
|
+
### API Style
|
|
49
|
+
|
|
50
|
+
**Style**: {{api_style}}
|
|
51
|
+
|
|
52
|
+
### Documentation
|
|
53
|
+
|
|
54
|
+
**Tool**: {{api_docs}}
|
|
55
|
+
|
|
56
|
+
## Frontend (if applicable)
|
|
57
|
+
|
|
58
|
+
{{#if frontend}}
|
|
59
|
+
### UI Framework
|
|
60
|
+
|
|
61
|
+
**Framework**: {{frontend.framework}}
|
|
62
|
+
**Version**: {{frontend.version}}
|
|
63
|
+
|
|
64
|
+
### Styling
|
|
65
|
+
|
|
66
|
+
**Approach**: {{frontend.styling}}
|
|
67
|
+
|
|
68
|
+
### State Management
|
|
69
|
+
|
|
70
|
+
**Solution**: {{frontend.state_management}}
|
|
71
|
+
{{else}}
|
|
72
|
+
Not applicable (backend-only or CLI project).
|
|
73
|
+
{{/if}}
|
|
74
|
+
|
|
75
|
+
## Infrastructure
|
|
76
|
+
|
|
77
|
+
### Hosting
|
|
78
|
+
|
|
79
|
+
**Platform**: {{hosting_platform}}
|
|
80
|
+
|
|
81
|
+
### Containerization
|
|
82
|
+
|
|
83
|
+
{{#if containerization}}
|
|
84
|
+
**Tool**: {{containerization}}
|
|
85
|
+
{{else}}
|
|
86
|
+
Not configured.
|
|
87
|
+
{{/if}}
|
|
88
|
+
|
|
89
|
+
### CI/CD
|
|
90
|
+
|
|
91
|
+
**Platform**: {{ci_platform}}
|
|
92
|
+
|
|
93
|
+
## Development Tools
|
|
94
|
+
|
|
95
|
+
### Package Manager
|
|
96
|
+
|
|
97
|
+
**Manager**: {{package_manager}}
|
|
98
|
+
|
|
99
|
+
### Build Tool
|
|
100
|
+
|
|
101
|
+
**Tool**: {{build_tool}}
|
|
102
|
+
|
|
103
|
+
### Linting
|
|
104
|
+
|
|
105
|
+
**Linter**: {{linter}}
|
|
106
|
+
**Config**: {{linter_config}}
|
|
107
|
+
|
|
108
|
+
### Formatting
|
|
109
|
+
|
|
110
|
+
**Formatter**: {{formatter}}
|
|
111
|
+
**Config**: {{formatter_config}}
|
|
112
|
+
|
|
113
|
+
## Dependencies
|
|
114
|
+
|
|
115
|
+
### Production Dependencies
|
|
116
|
+
|
|
117
|
+
{{#each prod_dependencies}}
|
|
118
|
+
- `{{this.name}}` ({{this.version}}) — {{this.purpose}}
|
|
119
|
+
{{/each}}
|
|
120
|
+
|
|
121
|
+
### Development Dependencies
|
|
122
|
+
|
|
123
|
+
{{#each dev_dependencies}}
|
|
124
|
+
- `{{this.name}}` ({{this.version}}) — {{this.purpose}}
|
|
125
|
+
{{/each}}
|
|
126
|
+
|
|
127
|
+
## Version Requirements
|
|
128
|
+
|
|
129
|
+
| Tool | Minimum Version | Recommended |
|
|
130
|
+
|------|-----------------|-------------|
|
|
131
|
+
{{#each version_requirements}}
|
|
132
|
+
| {{this.tool}} | {{this.minimum}} | {{this.recommended}} |
|
|
133
|
+
{{/each}}
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
*Generated by specs.md - fabriqa.ai FIRE Flow*
|