project-iris 0.0.11 → 0.0.12
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/dist/cli.js +4 -2
- package/dist/commands/create.js +25 -0
- package/dist/iris_bundle/frameworks/iris-core/framework.yaml +9 -0
- package/dist/iris_bundle/frameworks/iris-core/memory/memory-bank.yaml +1 -0
- package/dist/iris_bundle/frameworks/iris-core/policy.yaml +7 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/config/memory-bank.yaml +1 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-template.md +226 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/construction/bolt-types/spike-bolt.md +240 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/requirements-template.md +144 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/stories-template.md +38 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/story-template.md +147 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/system-context-template.md +29 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/unit-brief-template.md +177 -0
- package/dist/iris_bundle/frameworks/iris-core/templates/inception/units-template.md +52 -0
- package/dist/templates/construction/bolt-template.md +226 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/adr-template.md +49 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-01-domain-model-template.md +55 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-02-technical-design-template.md +67 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt/ddd-03-test-report-template.md +62 -0
- package/dist/templates/construction/bolt-types/ddd-construction-bolt.md +528 -0
- package/dist/templates/construction/bolt-types/simple-construction-bolt.md +347 -0
- package/dist/templates/construction/bolt-types/spike-bolt.md +240 -0
- package/dist/templates/inception/requirements-template.md +144 -0
- package/dist/templates/inception/stories-template.md +38 -0
- package/dist/templates/inception/story-template.md +147 -0
- package/dist/templates/inception/system-context-template.md +29 -0
- package/dist/templates/inception/unit-brief-template.md +177 -0
- package/dist/templates/inception/units-template.md +52 -0
- package/dist/workflows/bolt-plan.js +57 -28
- package/dist/workflows/intent-inception.js +82 -7
- package/dist/workflows/memory-bank-generator.js +180 -0
- package/package.json +3 -2
package/dist/cli.js
CHANGED
|
@@ -15,11 +15,12 @@ import { bridgeCommand } from "./commands/bridge.js";
|
|
|
15
15
|
import { frameworkCommand } from "./commands/framework.js";
|
|
16
16
|
import { generateCommand } from "./commands/generate.js";
|
|
17
17
|
import { useCommand } from "./commands/use.js";
|
|
18
|
+
import { createCommand } from "./commands/create.js";
|
|
18
19
|
const program = new Command();
|
|
19
20
|
program
|
|
20
21
|
.name("iris")
|
|
21
22
|
.description("IRIS CLI - Intelligent Repository for Intent-driven Systems")
|
|
22
|
-
.version("0.0.
|
|
23
|
+
.version("0.0.12")
|
|
23
24
|
.addCommand(installCommand)
|
|
24
25
|
.addCommand(uninstallCommand)
|
|
25
26
|
.addCommand(frameworkCommand)
|
|
@@ -34,5 +35,6 @@ program
|
|
|
34
35
|
.addCommand(doctorCommand)
|
|
35
36
|
.addCommand(developCommand)
|
|
36
37
|
.addCommand(bridgeCommand)
|
|
37
|
-
.addCommand(useCommand)
|
|
38
|
+
.addCommand(useCommand)
|
|
39
|
+
.addCommand(createCommand);
|
|
38
40
|
program.parseAsync(process.argv);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { generateMemoryBankStructure } from "../workflows/memory-bank-generator.js";
|
|
3
|
+
import { createConnector } from "../bridge/connector-factory.js";
|
|
4
|
+
import kleur from "kleur";
|
|
5
|
+
export const createCommand = new Command("create")
|
|
6
|
+
.description("Create memory bank artifacts")
|
|
7
|
+
.addCommand(new Command("intent")
|
|
8
|
+
.description("Create a new intent with full structure")
|
|
9
|
+
.argument("<intent>", "Intent description")
|
|
10
|
+
.action(async (intent) => {
|
|
11
|
+
console.log(kleur.bold(`Creating intent: ${intent}`));
|
|
12
|
+
const connector = createConnector("auto");
|
|
13
|
+
try {
|
|
14
|
+
await generateMemoryBankStructure({
|
|
15
|
+
intent,
|
|
16
|
+
answers: {}, // No answers for pure creation, or we could prompt
|
|
17
|
+
connector
|
|
18
|
+
});
|
|
19
|
+
console.log(kleur.green("✓ Intent created successfully"));
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.error(kleur.red(`Failed to create intent: ${error.message}`));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
metadata: true
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
metadata: true
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Bolt Instance Template
|
|
2
|
+
|
|
3
|
+
## Mandatory Output Rules (READ FIRST)
|
|
4
|
+
|
|
5
|
+
- 🚫 **NEVER** use ASCII tables for options - they break at different terminal widths
|
|
6
|
+
- ✅ **ALWAYS** use numbered list format: `N - **Option**: Description`
|
|
7
|
+
- ✅ **ALWAYS** use status indicators: ✅ (done) ⏳ (current) [ ] (pending) 🚫 (blocked)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Use this template when creating new bolt instances during bolt planning.
|
|
12
|
+
|
|
13
|
+
**Directory Structure**: Each bolt gets its own directory containing the bolt metadata and stage artifacts:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
memory-bank/bolts/{bolt-id}/
|
|
17
|
+
├── bolt.md # Bolt instance metadata (this template)
|
|
18
|
+
├── ddd-01-domain-model.md # Stage 1 artifact (created during execution)
|
|
19
|
+
├── ddd-02-technical-design.md # Stage 2 artifact (created during execution)
|
|
20
|
+
└── ddd-03-test-report.md # Stage 4 artifact (created during execution)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Frontmatter
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
---
|
|
29
|
+
id: bolt-{unit}-{sequence}
|
|
30
|
+
unit: {UUU}-{unit-name}
|
|
31
|
+
intent: {NNN}-{intent-name}
|
|
32
|
+
type: ddd-construction-bolt
|
|
33
|
+
status: planned
|
|
34
|
+
stories:
|
|
35
|
+
- story-1
|
|
36
|
+
- story-2
|
|
37
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
38
|
+
started: null
|
|
39
|
+
completed: null
|
|
40
|
+
current_stage: null
|
|
41
|
+
stages_completed: []
|
|
42
|
+
|
|
43
|
+
# Bolt Dependencies (for execution ordering)
|
|
44
|
+
requires_bolts: [] # Bolts that must complete before this bolt can start
|
|
45
|
+
enables_bolts: [] # Bolts that become unblocked when this bolt completes
|
|
46
|
+
requires_units: [] # Units that must exist (usually empty)
|
|
47
|
+
blocks: false # Computed: true if any requires_bolts are incomplete
|
|
48
|
+
|
|
49
|
+
# Complexity Assessment (aggregate of included stories)
|
|
50
|
+
complexity:
|
|
51
|
+
avg_complexity: 2 # 1=Low, 2=Medium, 3=High
|
|
52
|
+
avg_uncertainty: 1 # 1=Low, 2=Medium, 3=High
|
|
53
|
+
max_dependencies: 2 # Highest dependency score among stories
|
|
54
|
+
testing_scope: 2 # 1=Unit, 2=Integration, 3=E2E
|
|
55
|
+
---
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Required Frontmatter Fields (VALIDATION CHECKLIST)
|
|
61
|
+
|
|
62
|
+
Before creating a bolt, verify ALL required fields are present:
|
|
63
|
+
|
|
64
|
+
| Field | Required | Description |
|
|
65
|
+
|-------|----------|-------------|
|
|
66
|
+
| `id` | **YES** | Bolt identifier (format: `{BBB}-{unit-name}`) |
|
|
67
|
+
| `unit` | **YES** | Parent unit ID |
|
|
68
|
+
| `intent` | **YES** | Parent intent ID |
|
|
69
|
+
| `type` | **YES** | Bolt type (`ddd-construction-bolt` or `simple-construction-bolt`) |
|
|
70
|
+
| `status` | **YES** | Current status (`planned`, `in-progress`, `completed`, `blocked`) |
|
|
71
|
+
| `stories` | **YES** | Array of story IDs included in this bolt |
|
|
72
|
+
| `created` | **YES** | Creation timestamp |
|
|
73
|
+
| `requires_bolts` | **YES** | Array of bolt IDs this depends on (can be empty `[]`) |
|
|
74
|
+
| `enables_bolts` | **YES** | Array of bolt IDs waiting on this (can be empty `[]`) |
|
|
75
|
+
| `complexity` | **YES** | Complexity assessment block |
|
|
76
|
+
|
|
77
|
+
**If any required field is missing, the bolt is INVALID.**
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Content
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# Bolt: {bolt-id}
|
|
85
|
+
|
|
86
|
+
## Overview
|
|
87
|
+
|
|
88
|
+
{Brief description of what this bolt will accomplish}
|
|
89
|
+
|
|
90
|
+
## Objective
|
|
91
|
+
|
|
92
|
+
{Specific goal of this bolt tied to the stories it covers}
|
|
93
|
+
|
|
94
|
+
## Stories Included
|
|
95
|
+
|
|
96
|
+
- **{story-1}**: {title} (Must)
|
|
97
|
+
- **{story-2}**: {title} (Should)
|
|
98
|
+
|
|
99
|
+
## Bolt Type
|
|
100
|
+
|
|
101
|
+
**Type**: {type name}
|
|
102
|
+
**Definition**: `.iris/aidlc/templates/construction/bolt-types/{type}.md`
|
|
103
|
+
|
|
104
|
+
## Stages
|
|
105
|
+
|
|
106
|
+
- [ ] **1. {stage-1}**: Pending → {artifact}
|
|
107
|
+
- [ ] **2. {stage-2}**: Pending → {artifact}
|
|
108
|
+
- [ ] **3. {stage-3}**: Pending → {artifact}
|
|
109
|
+
- [ ] **4. {stage-4}**: Pending → {artifact}
|
|
110
|
+
|
|
111
|
+
## Dependencies
|
|
112
|
+
|
|
113
|
+
### Requires
|
|
114
|
+
- {Previous bolt or None}
|
|
115
|
+
|
|
116
|
+
### Enables
|
|
117
|
+
- {Next bolt or deployment}
|
|
118
|
+
|
|
119
|
+
## Success Criteria
|
|
120
|
+
|
|
121
|
+
- [ ] All stories implemented
|
|
122
|
+
- [ ] All acceptance criteria met
|
|
123
|
+
- [ ] Tests passing
|
|
124
|
+
- [ ] Code reviewed
|
|
125
|
+
|
|
126
|
+
## Notes
|
|
127
|
+
|
|
128
|
+
{Any additional context or considerations}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Status Values
|
|
134
|
+
|
|
135
|
+
- **planned**: Bolt created, not started
|
|
136
|
+
- **in-progress**: Currently being executed
|
|
137
|
+
- **completed**: All stages done
|
|
138
|
+
- **blocked**: Cannot proceed due to dependency
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Stage Status Symbols
|
|
143
|
+
|
|
144
|
+
- [ ] = Pending
|
|
145
|
+
- ⏳ = In Progress
|
|
146
|
+
- ✅ = Complete
|
|
147
|
+
- 🚫 = Blocked
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Example
|
|
152
|
+
|
|
153
|
+
```yaml
|
|
154
|
+
---
|
|
155
|
+
id: bolt-auth-service-1
|
|
156
|
+
unit: 001-auth-service
|
|
157
|
+
intent: 001-user-authentication
|
|
158
|
+
type: ddd-construction-bolt
|
|
159
|
+
status: in-progress
|
|
160
|
+
stories:
|
|
161
|
+
- story-1
|
|
162
|
+
- story-2
|
|
163
|
+
created: 2024-12-05
|
|
164
|
+
started: 2024-12-05
|
|
165
|
+
completed: null
|
|
166
|
+
current_stage: design
|
|
167
|
+
stages_completed:
|
|
168
|
+
- name: model
|
|
169
|
+
completed: 2024-12-05T10:00:00Z
|
|
170
|
+
artifact: ddd-01-domain-model.md
|
|
171
|
+
|
|
172
|
+
requires_bolts: []
|
|
173
|
+
enables_bolts:
|
|
174
|
+
- bolt-auth-service-2
|
|
175
|
+
requires_units: []
|
|
176
|
+
blocks: false
|
|
177
|
+
|
|
178
|
+
complexity:
|
|
179
|
+
avg_complexity: 2
|
|
180
|
+
avg_uncertainty: 1
|
|
181
|
+
max_dependencies: 1
|
|
182
|
+
testing_scope: 2
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
# Bolt: bolt-auth-service-1
|
|
186
|
+
|
|
187
|
+
## Overview
|
|
188
|
+
|
|
189
|
+
First bolt for authentication service covering user registration and login.
|
|
190
|
+
|
|
191
|
+
## Objective
|
|
192
|
+
|
|
193
|
+
Implement core authentication functionality including user registration with email verification and secure login.
|
|
194
|
+
|
|
195
|
+
## Stories Included
|
|
196
|
+
|
|
197
|
+
- **story-1**: User can register (Must)
|
|
198
|
+
- **story-2**: User can login (Must)
|
|
199
|
+
|
|
200
|
+
## Bolt Type
|
|
201
|
+
|
|
202
|
+
**Type**: DDD Construction Bolt
|
|
203
|
+
**Definition**: `.iris/aidlc/templates/construction/bolt-types/ddd-construction-bolt.md`
|
|
204
|
+
|
|
205
|
+
## Stages
|
|
206
|
+
|
|
207
|
+
- ✅ **1. model**: Complete → ddd-01-domain-model.md
|
|
208
|
+
- ⏳ **2. design**: In Progress → ddd-02-technical-design.md ← current
|
|
209
|
+
- [ ] **3. implement**: Pending → src/auth-service/
|
|
210
|
+
- [ ] **4. test**: Pending → ddd-03-test-report.md
|
|
211
|
+
|
|
212
|
+
## Dependencies
|
|
213
|
+
|
|
214
|
+
### Requires
|
|
215
|
+
- None (first bolt)
|
|
216
|
+
|
|
217
|
+
### Enables
|
|
218
|
+
- bolt-auth-service-2 (MFA implementation)
|
|
219
|
+
|
|
220
|
+
## Success Criteria
|
|
221
|
+
|
|
222
|
+
- ✅ Domain model defined
|
|
223
|
+
- [ ] API design complete
|
|
224
|
+
- [ ] Implementation complete
|
|
225
|
+
- [ ] Tests passing
|
|
226
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
bolt: {bolt-id}
|
|
3
|
+
created: {YYYY-MM-DDTHH:MM:SSZ}
|
|
4
|
+
status: proposed | accepted | deprecated | superseded
|
|
5
|
+
superseded_by: {adr-number if applicable}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ADR-{number}: {title}
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
{Describe the situation that requires a decision. What is the problem or opportunity? What constraints exist? What forces are at play?}
|
|
13
|
+
|
|
14
|
+
## Decision
|
|
15
|
+
|
|
16
|
+
{State the decision clearly. What did we decide to do?}
|
|
17
|
+
|
|
18
|
+
## Rationale
|
|
19
|
+
|
|
20
|
+
{Explain why this decision was made. What alternatives were considered? Why were they rejected?}
|
|
21
|
+
|
|
22
|
+
### Alternatives Considered
|
|
23
|
+
|
|
24
|
+
| Alternative | Pros | Cons | Why Rejected |
|
|
25
|
+
|-------------|------|------|--------------|
|
|
26
|
+
| {option 1} | | | |
|
|
27
|
+
| {option 2} | | | |
|
|
28
|
+
|
|
29
|
+
## Consequences
|
|
30
|
+
|
|
31
|
+
### Positive
|
|
32
|
+
|
|
33
|
+
- {Benefit 1}
|
|
34
|
+
- {Benefit 2}
|
|
35
|
+
|
|
36
|
+
### Negative
|
|
37
|
+
|
|
38
|
+
- {Trade-off 1}
|
|
39
|
+
- {Trade-off 2}
|
|
40
|
+
|
|
41
|
+
### Risks
|
|
42
|
+
|
|
43
|
+
- {Risk 1 and mitigation}
|
|
44
|
+
|
|
45
|
+
## Related
|
|
46
|
+
|
|
47
|
+
- **Stories**: {related story IDs}
|
|
48
|
+
- **Standards**: {if this should be added to standards later}
|
|
49
|
+
- **Previous ADRs**: {related ADR numbers}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
unit: {UUU}-{unit-name}
|
|
3
|
+
bolt: {BBB}-{unit-name}
|
|
4
|
+
stage: model
|
|
5
|
+
status: complete
|
|
6
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Static Model - {Unit Name}
|
|
10
|
+
|
|
11
|
+
## Bounded Context
|
|
12
|
+
|
|
13
|
+
{Define the bounded context for this unit}
|
|
14
|
+
|
|
15
|
+
## Domain Entities
|
|
16
|
+
|
|
17
|
+
| Entity | Properties | Business Rules |
|
|
18
|
+
|--------|------------|----------------|
|
|
19
|
+
| {Entity} | {properties} | {rules} |
|
|
20
|
+
|
|
21
|
+
## Value Objects
|
|
22
|
+
|
|
23
|
+
| Value Object | Properties | Constraints |
|
|
24
|
+
|--------------|------------|-------------|
|
|
25
|
+
| {ValueObject} | {properties} | {constraints} |
|
|
26
|
+
|
|
27
|
+
## Aggregates
|
|
28
|
+
|
|
29
|
+
| Aggregate Root | Members | Invariants |
|
|
30
|
+
|----------------|---------|------------|
|
|
31
|
+
| {Root} | {members} | {invariants} |
|
|
32
|
+
|
|
33
|
+
## Domain Events
|
|
34
|
+
|
|
35
|
+
| Event | Trigger | Payload |
|
|
36
|
+
|-------|---------|---------|
|
|
37
|
+
| {Event} | {trigger} | {payload} |
|
|
38
|
+
|
|
39
|
+
## Domain Services
|
|
40
|
+
|
|
41
|
+
| Service | Operations | Dependencies |
|
|
42
|
+
|---------|------------|--------------|
|
|
43
|
+
| {Service} | {operations} | {dependencies} |
|
|
44
|
+
|
|
45
|
+
## Repository Interfaces
|
|
46
|
+
|
|
47
|
+
| Repository | Entity | Methods |
|
|
48
|
+
|------------|--------|---------|
|
|
49
|
+
| {Repository} | {entity} | {methods} |
|
|
50
|
+
|
|
51
|
+
## Ubiquitous Language
|
|
52
|
+
|
|
53
|
+
| Term | Definition |
|
|
54
|
+
|------|------------|
|
|
55
|
+
| {term} | {definition} |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
unit: {UUU}-{unit-name}
|
|
3
|
+
bolt: {BBB}-{unit-name}
|
|
4
|
+
stage: design
|
|
5
|
+
status: complete
|
|
6
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Technical Design - {Unit Name}
|
|
10
|
+
|
|
11
|
+
## Architecture Pattern
|
|
12
|
+
|
|
13
|
+
{Selected pattern and rationale - e.g., Hexagonal, Clean Architecture}
|
|
14
|
+
|
|
15
|
+
## Layer Structure
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
┌─────────────────────────────┐
|
|
19
|
+
│ Presentation │ API/UI
|
|
20
|
+
├─────────────────────────────┤
|
|
21
|
+
│ Application │ Use Cases
|
|
22
|
+
├─────────────────────────────┤
|
|
23
|
+
│ Domain │ Business Logic
|
|
24
|
+
├─────────────────────────────┤
|
|
25
|
+
│ Infrastructure │ Database/External
|
|
26
|
+
└─────────────────────────────┘
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## API Design
|
|
30
|
+
|
|
31
|
+
| Endpoint | Method | Request | Response |
|
|
32
|
+
|----------|--------|---------|----------|
|
|
33
|
+
| {endpoint} | {GET/POST/etc} | {request schema} | {response schema} |
|
|
34
|
+
|
|
35
|
+
## Data Persistence
|
|
36
|
+
|
|
37
|
+
| Table | Columns | Relationships |
|
|
38
|
+
|-------|---------|---------------|
|
|
39
|
+
| {table} | {columns} | {relationships} |
|
|
40
|
+
|
|
41
|
+
## Security Design
|
|
42
|
+
|
|
43
|
+
| Concern | Approach |
|
|
44
|
+
|---------|----------|
|
|
45
|
+
| Authentication | {approach} |
|
|
46
|
+
| Authorization | {approach} |
|
|
47
|
+
| Data Encryption | {approach} |
|
|
48
|
+
|
|
49
|
+
## NFR Implementation
|
|
50
|
+
|
|
51
|
+
| Requirement | Design Approach |
|
|
52
|
+
|-------------|-----------------|
|
|
53
|
+
| Performance | {approach} |
|
|
54
|
+
| Scalability | {approach} |
|
|
55
|
+
| Reliability | {approach} |
|
|
56
|
+
|
|
57
|
+
## Error Handling
|
|
58
|
+
|
|
59
|
+
| Error Type | Code | Response |
|
|
60
|
+
|------------|------|----------|
|
|
61
|
+
| {type} | {code} | {response} |
|
|
62
|
+
|
|
63
|
+
## External Dependencies
|
|
64
|
+
|
|
65
|
+
| Service | Purpose | Integration |
|
|
66
|
+
|---------|---------|-------------|
|
|
67
|
+
| {service} | {purpose} | {REST/Event/etc} |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
unit: {UUU}-{unit-name}
|
|
3
|
+
bolt: {BBB}-{unit-name}
|
|
4
|
+
stage: test
|
|
5
|
+
status: complete
|
|
6
|
+
updated: {YYYY-MM-DDTHH:MM:SSZ}
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Test Report - {Unit Name}
|
|
10
|
+
|
|
11
|
+
## Test Summary
|
|
12
|
+
|
|
13
|
+
| Category | Passed | Failed | Skipped | Coverage |
|
|
14
|
+
|----------|--------|--------|---------|----------|
|
|
15
|
+
| Unit | {n} | {n} | {n} | {n}% |
|
|
16
|
+
| Integration | {n} | {n} | {n} | {n}% |
|
|
17
|
+
| Security | {n} | {n} | {n} | - |
|
|
18
|
+
| Performance | {n} | {n} | {n} | - |
|
|
19
|
+
| **Total** | {n} | {n} | {n} | {n}% |
|
|
20
|
+
|
|
21
|
+
## Acceptance Criteria Validation
|
|
22
|
+
|
|
23
|
+
| Story | Criteria | Status |
|
|
24
|
+
|-------|----------|--------|
|
|
25
|
+
| {story-id} | {criteria} | ✅/❌ |
|
|
26
|
+
|
|
27
|
+
## Unit Tests
|
|
28
|
+
|
|
29
|
+
{Unit test results and notable tests}
|
|
30
|
+
|
|
31
|
+
## Integration Tests
|
|
32
|
+
|
|
33
|
+
{Integration test results}
|
|
34
|
+
|
|
35
|
+
## Security Tests
|
|
36
|
+
|
|
37
|
+
{Security test results - authentication, authorization, injection, etc.}
|
|
38
|
+
|
|
39
|
+
## Performance Tests
|
|
40
|
+
|
|
41
|
+
| Metric | Target | Actual | Status |
|
|
42
|
+
|--------|--------|--------|--------|
|
|
43
|
+
| Response Time (p95) | {target} | {actual} | ✅/❌ |
|
|
44
|
+
| Throughput | {target} | {actual} | ✅/❌ |
|
|
45
|
+
|
|
46
|
+
## Coverage Report
|
|
47
|
+
|
|
48
|
+
{Coverage details by module/layer}
|
|
49
|
+
|
|
50
|
+
## Issues Found
|
|
51
|
+
|
|
52
|
+
| Issue | Severity | Status |
|
|
53
|
+
|-------|----------|--------|
|
|
54
|
+
| {issue} | {High/Medium/Low} | {Fixed/Open} |
|
|
55
|
+
|
|
56
|
+
## Ready for Operations
|
|
57
|
+
|
|
58
|
+
- [ ] All acceptance criteria met
|
|
59
|
+
- [ ] Code coverage > 80%
|
|
60
|
+
- [ ] No critical/high severity issues open
|
|
61
|
+
- [ ] Performance targets met
|
|
62
|
+
- [ ] Security tests passing
|