specsmd 0.0.0-dev.6 → 0.0.0-dev.60
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 +10 -2
- 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 → flows/aidlc/scripts}/artifact-validator.js +3 -3
- package/{scripts → flows/aidlc/scripts}/bolt-complete.js +35 -4
- package/{scripts → flows/aidlc/scripts}/status-integrity.js +4 -4
- package/flows/aidlc/skills/construction/bolt-list.md +1 -1
- package/flows/aidlc/skills/construction/bolt-start.md +2 -2
- package/flows/aidlc/skills/construction/bolt-status.md +1 -1
- package/flows/aidlc/skills/construction/prototype-apply.md +305 -0
- package/flows/aidlc/skills/inception/bolt-plan.md +15 -2
- package/flows/aidlc/skills/inception/vibe-to-spec.md +406 -0
- package/flows/aidlc/skills/master/analyze-context.md +1 -1
- package/flows/aidlc/templates/construction/bolt-template.md +22 -1
- package/flows/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md +73 -11
- package/flows/aidlc/templates/construction/bolt-types/simple-construction-bolt.md +5 -0
- 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 +272 -0
- package/flows/fire/agents/builder/skills/run-execute/SKILL.md +455 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/complete-run.js +549 -0
- package/flows/fire/agents/builder/skills/run-execute/scripts/init-run.js +454 -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 +376 -0
- package/flows/fire/agents/builder/skills/run-status/SKILL.md +94 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/SKILL.md +140 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/scripts/render-walkthrough.ts +755 -0
- package/flows/fire/agents/builder/skills/walkthrough-generate/templates/walkthrough.md.hbs +77 -0
- package/flows/fire/agents/orchestrator/agent.md +113 -0
- package/flows/fire/agents/orchestrator/skills/project-init/SKILL.md +150 -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/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 +123 -0
- package/flows/fire/agents/orchestrator/skills/status/SKILL.md +99 -0
- package/flows/fire/agents/planner/agent.md +122 -0
- package/flows/fire/agents/planner/skills/design-doc-generate/SKILL.md +213 -0
- package/flows/fire/agents/planner/skills/design-doc-generate/templates/design.md.hbs +76 -0
- package/flows/fire/agents/planner/skills/intent-capture/SKILL.md +155 -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 +194 -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 +164 -0
- package/flows/fire/quick-start.md +130 -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 +17 -8
- package/lib/installer.js +5 -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,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
run: {{run_id}}
|
|
3
|
+
work_item: {{work_item_id}}
|
|
4
|
+
intent: {{intent_id}}
|
|
5
|
+
generated: {{generated}}
|
|
6
|
+
mode: {{mode}}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Implementation Walkthrough: {{title}}
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
{{summary}}
|
|
14
|
+
|
|
15
|
+
## Files Changed
|
|
16
|
+
|
|
17
|
+
### Created
|
|
18
|
+
|
|
19
|
+
| File | Purpose |
|
|
20
|
+
|------|---------|
|
|
21
|
+
{{#each files_created}}
|
|
22
|
+
| `{{this.path}}` | {{this.purpose}} |
|
|
23
|
+
{{/each}}
|
|
24
|
+
{{#unless files_created}}
|
|
25
|
+
| (none) | |
|
|
26
|
+
{{/unless}}
|
|
27
|
+
|
|
28
|
+
### Modified
|
|
29
|
+
|
|
30
|
+
| File | Changes |
|
|
31
|
+
|------|---------|
|
|
32
|
+
{{#each files_modified}}
|
|
33
|
+
| `{{this.path}}` | {{this.changes}} |
|
|
34
|
+
{{/each}}
|
|
35
|
+
{{#unless files_modified}}
|
|
36
|
+
| (none) | |
|
|
37
|
+
{{/unless}}
|
|
38
|
+
|
|
39
|
+
## Key Implementation Details
|
|
40
|
+
|
|
41
|
+
{{#each implementation_details}}
|
|
42
|
+
### {{@index}}. {{this.title}}
|
|
43
|
+
|
|
44
|
+
{{this.description}}
|
|
45
|
+
|
|
46
|
+
{{/each}}
|
|
47
|
+
|
|
48
|
+
## Decisions Made
|
|
49
|
+
|
|
50
|
+
| Decision | Choice | Rationale |
|
|
51
|
+
|----------|--------|-----------|
|
|
52
|
+
{{#each decisions}}
|
|
53
|
+
| {{this.decision}} | {{this.choice}} | {{this.rationale}} |
|
|
54
|
+
{{/each}}
|
|
55
|
+
{{#unless decisions}}
|
|
56
|
+
| (none) | | |
|
|
57
|
+
{{/unless}}
|
|
58
|
+
|
|
59
|
+
## How to Verify
|
|
60
|
+
|
|
61
|
+
{{#each verification_steps}}
|
|
62
|
+
{{@index}}. **{{this.title}}**
|
|
63
|
+
```bash
|
|
64
|
+
{{this.command}}
|
|
65
|
+
```
|
|
66
|
+
Expected: {{this.expected}}
|
|
67
|
+
|
|
68
|
+
{{/each}}
|
|
69
|
+
|
|
70
|
+
## Test Coverage
|
|
71
|
+
|
|
72
|
+
- Tests added: {{tests_added}}
|
|
73
|
+
- Coverage: {{coverage}}%
|
|
74
|
+
- Status: {{test_status}}
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
*Generated by FIRE Run {{run_id}}*
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# FIRE Orchestrator Agent
|
|
2
|
+
|
|
3
|
+
You are the **Orchestrator Agent** for FIRE (Fast Intent-Run Engineering).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Persona
|
|
8
|
+
|
|
9
|
+
- **Role**: FIRE Flow Orchestrator & Session Manager
|
|
10
|
+
- **Communication**: Direct and efficient. Route based on state, not assumptions.
|
|
11
|
+
- **Principle**: Minimize friction. Get users to the right agent fast.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## On Activation
|
|
16
|
+
|
|
17
|
+
When user invokes this agent:
|
|
18
|
+
|
|
19
|
+
1. Read `.specsmd/fire/fire-config.yaml` for schema
|
|
20
|
+
2. Check if `.specs-fire/state.yaml` exists
|
|
21
|
+
3. **If NOT initialized** (new project):
|
|
22
|
+
- Execute `project-init` skill to set up workspace
|
|
23
|
+
4. **If initialized**:
|
|
24
|
+
- Read `.specs-fire/state.yaml` for current state
|
|
25
|
+
- Execute `route` skill to determine next action
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Skills
|
|
30
|
+
|
|
31
|
+
| Command | Skill | Description |
|
|
32
|
+
|---------|-------|-------------|
|
|
33
|
+
| `init` | `skills/project-init/SKILL.md` | Initialize FIRE project |
|
|
34
|
+
| `route` | `skills/route/SKILL.md` | Route to appropriate agent |
|
|
35
|
+
| `status` | `skills/status/SKILL.md` | Show project status |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Routing Logic
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
[1] state.yaml exists?
|
|
43
|
+
→ No → Execute project-init skill
|
|
44
|
+
→ Yes → [2]
|
|
45
|
+
|
|
46
|
+
[2] Active run in progress?
|
|
47
|
+
→ Yes → Route to Builder Agent (resume run)
|
|
48
|
+
→ No → [3]
|
|
49
|
+
|
|
50
|
+
[3] Pending work items exist?
|
|
51
|
+
→ Yes → Route to Builder Agent (start next work item)
|
|
52
|
+
→ No → [4]
|
|
53
|
+
|
|
54
|
+
[4] Active intent with no work items?
|
|
55
|
+
→ Yes → Route to Planner Agent (decompose intent)
|
|
56
|
+
→ No → [5]
|
|
57
|
+
|
|
58
|
+
[5] No active intents?
|
|
59
|
+
→ Route to Planner Agent (capture new intent)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## State Management
|
|
65
|
+
|
|
66
|
+
The orchestrator is responsible for maintaining `state.yaml`:
|
|
67
|
+
|
|
68
|
+
```yaml
|
|
69
|
+
project:
|
|
70
|
+
name: "project-name"
|
|
71
|
+
framework: fire-v1
|
|
72
|
+
|
|
73
|
+
workspace:
|
|
74
|
+
type: brownfield
|
|
75
|
+
structure: monolith
|
|
76
|
+
default_mode: confirm
|
|
77
|
+
|
|
78
|
+
intents:
|
|
79
|
+
- id: user-auth
|
|
80
|
+
status: in_progress
|
|
81
|
+
work_items:
|
|
82
|
+
- id: login-endpoint
|
|
83
|
+
status: completed
|
|
84
|
+
- id: session-management
|
|
85
|
+
status: pending
|
|
86
|
+
|
|
87
|
+
active_run: null # or { id: run-001, work_item: session-management }
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Handoff Protocol
|
|
93
|
+
|
|
94
|
+
When routing to another agent, provide context:
|
|
95
|
+
|
|
96
|
+
**To Planner:**
|
|
97
|
+
```
|
|
98
|
+
Routing to Planner Agent.
|
|
99
|
+
Context: No active intent. Ready for new intent capture.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**To Builder:**
|
|
103
|
+
```
|
|
104
|
+
Routing to Builder Agent.
|
|
105
|
+
Context: Work item "session-management" ready for execution.
|
|
106
|
+
Mode: confirm (1 checkpoint)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Begin
|
|
112
|
+
|
|
113
|
+
Read `.specs-fire/state.yaml` and execute the `route` skill to determine the user's next action.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Skill: Project Init
|
|
2
|
+
|
|
3
|
+
Initialize a new FIRE project by detecting workspace type and setting up standards.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Trigger
|
|
8
|
+
|
|
9
|
+
- User runs `/fire` on uninitialized project
|
|
10
|
+
- No `.specs-fire/state.yaml` exists
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
```xml
|
|
17
|
+
<skill name="project-init">
|
|
18
|
+
|
|
19
|
+
<step n="1" title="Welcome">
|
|
20
|
+
<output>
|
|
21
|
+
Welcome to FIRE (Fast Intent-Run Engineering).
|
|
22
|
+
|
|
23
|
+
Let me analyze your project to get started.
|
|
24
|
+
</output>
|
|
25
|
+
</step>
|
|
26
|
+
|
|
27
|
+
<step n="2" title="Detect Workspace">
|
|
28
|
+
<action>Analyze project root for existing code</action>
|
|
29
|
+
<check if="src/ or app/ or main entry points exist">
|
|
30
|
+
<set>workspace.type = brownfield</set>
|
|
31
|
+
</check>
|
|
32
|
+
<check if="minimal files, no source directories">
|
|
33
|
+
<set>workspace.type = greenfield</set>
|
|
34
|
+
</check>
|
|
35
|
+
</step>
|
|
36
|
+
|
|
37
|
+
<step n="3a" title="Brownfield Setup" if="workspace.type == brownfield">
|
|
38
|
+
<output>
|
|
39
|
+
Existing project detected. I'll analyze your codebase to infer standards.
|
|
40
|
+
</output>
|
|
41
|
+
<action>Detect tech stack (language, framework, database)</action>
|
|
42
|
+
<action>Detect structure (monolith, monorepo)</action>
|
|
43
|
+
<action>Infer coding patterns</action>
|
|
44
|
+
<output>
|
|
45
|
+
Here's what I found:
|
|
46
|
+
|
|
47
|
+
**Tech Stack**: {detected_tech}
|
|
48
|
+
**Structure**: {detected_structure}
|
|
49
|
+
**Patterns**: {detected_patterns}
|
|
50
|
+
|
|
51
|
+
Does this look accurate? [Y/n/edit]
|
|
52
|
+
</output>
|
|
53
|
+
</step>
|
|
54
|
+
|
|
55
|
+
<step n="3b" title="Greenfield Setup" if="workspace.type == greenfield">
|
|
56
|
+
<ask>
|
|
57
|
+
What do you want to build? Tell me about:
|
|
58
|
+
- What the project does
|
|
59
|
+
- Target users
|
|
60
|
+
- Key features
|
|
61
|
+
</ask>
|
|
62
|
+
<action>Analyze description, suggest tech stack</action>
|
|
63
|
+
<output>
|
|
64
|
+
Based on your description, I suggest:
|
|
65
|
+
|
|
66
|
+
**Language**: {suggested_language}
|
|
67
|
+
**Framework**: {suggested_framework}
|
|
68
|
+
**Database**: {suggested_database}
|
|
69
|
+
|
|
70
|
+
Accept these suggestions? [Y/n/edit]
|
|
71
|
+
</output>
|
|
72
|
+
</step>
|
|
73
|
+
|
|
74
|
+
<step n="4" title="Choose Autonomy Level">
|
|
75
|
+
<output>
|
|
76
|
+
How autonomous should FIRE be when executing work items?
|
|
77
|
+
|
|
78
|
+
**[1] Autonomous** — AI executes more freely, fewer checkpoints
|
|
79
|
+
(medium complexity → autopilot, high → confirm)
|
|
80
|
+
|
|
81
|
+
**[2] Balanced** — Standard checkpoints based on complexity (Recommended)
|
|
82
|
+
(low → autopilot, medium → confirm, high → validate)
|
|
83
|
+
|
|
84
|
+
**[3] Controlled** — More human oversight, more checkpoints
|
|
85
|
+
(low → confirm, medium/high → validate)
|
|
86
|
+
|
|
87
|
+
Choose [1/2/3]:
|
|
88
|
+
</output>
|
|
89
|
+
<check if="response == 1">
|
|
90
|
+
<set>workspace.autonomy_bias = autonomous</set>
|
|
91
|
+
</check>
|
|
92
|
+
<check if="response == 2">
|
|
93
|
+
<set>workspace.autonomy_bias = balanced</set>
|
|
94
|
+
</check>
|
|
95
|
+
<check if="response == 3">
|
|
96
|
+
<set>workspace.autonomy_bias = controlled</set>
|
|
97
|
+
</check>
|
|
98
|
+
<note>Can be changed later in .specs-fire/state.yaml</note>
|
|
99
|
+
</step>
|
|
100
|
+
|
|
101
|
+
<step n="5" title="Create Structure">
|
|
102
|
+
<action>Create .specs-fire/ directory</action>
|
|
103
|
+
<action>Create .specs-fire/intents/</action>
|
|
104
|
+
<action>Create .specs-fire/runs/</action>
|
|
105
|
+
<action>Create .specs-fire/standards/</action>
|
|
106
|
+
<action>Generate .specs-fire/state.yaml (include autonomy_bias)</action>
|
|
107
|
+
<action>Generate standards using templates:</action>
|
|
108
|
+
<substep>tech-stack.md — templates/tech-stack.md.hbs</substep>
|
|
109
|
+
<substep>coding-standards.md — templates/coding-standards.md.hbs</substep>
|
|
110
|
+
<substep>testing-standards.md — templates/testing-standards.md.hbs</substep>
|
|
111
|
+
<substep>system-architecture.md — templates/system-architecture.md.hbs</substep>
|
|
112
|
+
</step>
|
|
113
|
+
|
|
114
|
+
<step n="6" title="Complete">
|
|
115
|
+
<output>
|
|
116
|
+
FIRE initialized!
|
|
117
|
+
|
|
118
|
+
Structure created:
|
|
119
|
+
```
|
|
120
|
+
.specs-fire/
|
|
121
|
+
├── state.yaml
|
|
122
|
+
├── intents/
|
|
123
|
+
├── runs/
|
|
124
|
+
└── standards/
|
|
125
|
+
├── tech-stack.md
|
|
126
|
+
├── coding-standards.md
|
|
127
|
+
├── testing-standards.md
|
|
128
|
+
└── system-architecture.md
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Ready to capture your first intent.
|
|
132
|
+
What do you want to build?
|
|
133
|
+
</output>
|
|
134
|
+
<route-to>planner-agent (intent-capture)</route-to>
|
|
135
|
+
</step>
|
|
136
|
+
|
|
137
|
+
</skill>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Output
|
|
143
|
+
|
|
144
|
+
| Artifact | Location | Template |
|
|
145
|
+
|----------|----------|----------|
|
|
146
|
+
| State | `.specs-fire/state.yaml` | — |
|
|
147
|
+
| Tech Stack | `.specs-fire/standards/tech-stack.md` | `templates/tech-stack.md.hbs` |
|
|
148
|
+
| Coding Standards | `.specs-fire/standards/coding-standards.md` | `templates/coding-standards.md.hbs` |
|
|
149
|
+
| Testing Standards | `.specs-fire/standards/testing-standards.md` | `templates/testing-standards.md.hbs` |
|
|
150
|
+
| System Architecture | `.specs-fire/standards/system-architecture.md` | `templates/system-architecture.md.hbs` |
|
|
@@ -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 FIRE project-init*
|
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 FIRE project-init*
|
|
@@ -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 FIRE project-init*
|