speckeeper 0.9.2 → 0.9.4
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 +2 -0
- package/cli-contract.yaml +574 -0
- package/docs/cli-reference.md +449 -0
- package/docs/design/actors.md +72 -0
- package/docs/design/arch-actors.md +42 -0
- package/docs/design/artifacts.md +69 -0
- package/docs/design/cli-commands.md +332 -0
- package/docs/design/constraints.md +66 -0
- package/docs/design/containers.md +86 -0
- package/docs/design/entities.md +161 -0
- package/docs/design/external-systems.md +42 -0
- package/docs/design/functional-requirements.md +810 -0
- package/docs/design/glossary.md +242 -0
- package/docs/design/nonfunctional-requirements.md +242 -0
- package/docs/design/test-refs.md +258 -0
- package/docs/design/usecases.md +114 -0
- package/docs/directory-entries.md +22 -0
- package/docs/framework_requirements_spec.md +1052 -0
- package/docs/model-guide.md +762 -0
- package/docs/model_entity_catalog.md +67 -0
- package/docs/scaffold-mermaid-spec.md +357 -0
- package/package.json +7 -2
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# CLI Commands
|
|
2
|
+
|
|
3
|
+
| Command | Description |
|
|
4
|
+
|---------|-------------|
|
|
5
|
+
| build | Generate human-readable (docs/) and machine-readable (specs/) artifacts from TS models |
|
|
6
|
+
| lint | Validate TS model consistency and integrity |
|
|
7
|
+
| drift | Detect differences between generated docs/specs/ and committed files |
|
|
8
|
+
| check | Check consistency with external SSOT (OpenAPI/DDL/IaC) |
|
|
9
|
+
| init | Initialize a new speckeeper project with starter templates |
|
|
10
|
+
| new | Create a new element with auto-generated ID |
|
|
11
|
+
| scaffold | Generate _models/ from a mermaid flowchart definition |
|
|
12
|
+
| impact | Analyze the change impact scope of a specified ID |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## CMD-BUILD: build
|
|
17
|
+
|
|
18
|
+
Generate human-readable (docs/) and machine-readable (specs/) artifacts from TS models
|
|
19
|
+
|
|
20
|
+
### Usage
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
speckeeper build [options]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Parameters
|
|
27
|
+
|
|
28
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
29
|
+
|------|------|------|----------|---------|-------------|
|
|
30
|
+
| -c, --config | option | path | | - | Path to config file |
|
|
31
|
+
| -o, --output | option | path | | . | Output directory base path |
|
|
32
|
+
| -f, --format | option | enum | | both | Output format |
|
|
33
|
+
| -w, --watch | option | boolean | | false | Watch file changes and auto-regenerate |
|
|
34
|
+
| -v, --verbose | option | boolean | | false | Show detailed output |
|
|
35
|
+
|
|
36
|
+
### Examples
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
speckeeper build
|
|
40
|
+
speckeeper build --output ./dist
|
|
41
|
+
speckeeper build --format markdown
|
|
42
|
+
speckeeper build --watch
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Exit Codes
|
|
46
|
+
|
|
47
|
+
| Code | Description |
|
|
48
|
+
|------|-------------|
|
|
49
|
+
| 0 | Success |
|
|
50
|
+
| 1 | Generation error |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## CMD-LINT: lint
|
|
55
|
+
|
|
56
|
+
Validate TS model consistency and integrity
|
|
57
|
+
|
|
58
|
+
### Usage
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
speckeeper lint [options]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Parameters
|
|
65
|
+
|
|
66
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
67
|
+
|------|------|------|----------|---------|-------------|
|
|
68
|
+
| -c, --config | option | path | | - | Path to config file |
|
|
69
|
+
| -p, --phase | option | enum | | - | Phase gate (prohibit TBD at specified phase) |
|
|
70
|
+
| -s, --strict | option | boolean | | false | Strict mode (treat warnings as errors) |
|
|
71
|
+
| --fix | option | boolean | | false | Fix auto-fixable issues |
|
|
72
|
+
| -f, --format | option | enum | | text | Output format |
|
|
73
|
+
|
|
74
|
+
### Examples
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
speckeeper lint
|
|
78
|
+
speckeeper lint --phase LLD
|
|
79
|
+
speckeeper lint --strict
|
|
80
|
+
speckeeper lint --format json
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Exit Codes
|
|
84
|
+
|
|
85
|
+
| Code | Description |
|
|
86
|
+
|------|-------------|
|
|
87
|
+
| 0 | No issues |
|
|
88
|
+
| 1 | Errors found |
|
|
89
|
+
| 2 | Warnings found (in strict mode) |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## CMD-DRIFT: drift
|
|
94
|
+
|
|
95
|
+
Detect differences between generated docs/specs/ and committed files
|
|
96
|
+
|
|
97
|
+
### Usage
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
speckeeper drift [options]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Parameters
|
|
104
|
+
|
|
105
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
106
|
+
|------|------|------|----------|---------|-------------|
|
|
107
|
+
| -c, --config | option | path | | - | Path to config file |
|
|
108
|
+
| -u, --update | option | boolean | | false | Auto-update if differences exist |
|
|
109
|
+
| -f, --format | option | enum | | text | Output format |
|
|
110
|
+
|
|
111
|
+
### Examples
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
speckeeper drift
|
|
115
|
+
speckeeper drift --update
|
|
116
|
+
speckeeper drift --format diff
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Exit Codes
|
|
120
|
+
|
|
121
|
+
| Code | Description |
|
|
122
|
+
|------|-------------|
|
|
123
|
+
| 0 | No differences |
|
|
124
|
+
| 1 | Differences found (manual edits detected) |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## CMD-CHECK: check
|
|
129
|
+
|
|
130
|
+
Check consistency with external SSOT (OpenAPI/DDL/IaC)
|
|
131
|
+
|
|
132
|
+
### Usage
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
speckeeper check <subcommand> [options]
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Parameters
|
|
139
|
+
|
|
140
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
141
|
+
|------|------|------|----------|---------|-------------|
|
|
142
|
+
| <type> | argument | string | | - | Type of check: external-ssot, openapi, ddl, iac, custom, all, test |
|
|
143
|
+
| -c, --config | option | path | | - | Path to config file |
|
|
144
|
+
| --strict | option | boolean | | false | Treat warnings as errors |
|
|
145
|
+
| -v, --verbose | option | boolean | | false | Show detailed output |
|
|
146
|
+
| --coverage | option | boolean | | false | Check if all testable acceptance criteria are covered by TestRefs |
|
|
147
|
+
|
|
148
|
+
### Subcommands
|
|
149
|
+
|
|
150
|
+
#### openapi
|
|
151
|
+
|
|
152
|
+
Check consistency with OpenAPI specification
|
|
153
|
+
|
|
154
|
+
#### ddl
|
|
155
|
+
|
|
156
|
+
Check consistency with DDL/Schema
|
|
157
|
+
|
|
158
|
+
#### iac
|
|
159
|
+
|
|
160
|
+
Check consistency with IaC (CloudFormation/Terraform)
|
|
161
|
+
|
|
162
|
+
#### external-ssot
|
|
163
|
+
|
|
164
|
+
Check consistency with all external SSOTs
|
|
165
|
+
|
|
166
|
+
#### test
|
|
167
|
+
|
|
168
|
+
Check consistency between test files and requirements
|
|
169
|
+
|
|
170
|
+
#### contract
|
|
171
|
+
|
|
172
|
+
Check consistency between implementation and contract (type definitions/schema)
|
|
173
|
+
|
|
174
|
+
### Examples
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
speckeeper check openapi
|
|
178
|
+
speckeeper check ddl
|
|
179
|
+
speckeeper check iac
|
|
180
|
+
speckeeper check external-ssot
|
|
181
|
+
speckeeper check contract
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
### Exit Codes
|
|
185
|
+
|
|
186
|
+
| Code | Description |
|
|
187
|
+
|------|-------------|
|
|
188
|
+
| 0 | Consistency OK |
|
|
189
|
+
| 1 | Consistency error |
|
|
190
|
+
| 2 | External SSOT file not found |
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## CMD-INIT: init
|
|
195
|
+
|
|
196
|
+
Initialize a new speckeeper project with starter templates
|
|
197
|
+
|
|
198
|
+
### Usage
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
speckeeper init [options]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Parameters
|
|
205
|
+
|
|
206
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
207
|
+
|------|------|------|----------|---------|-------------|
|
|
208
|
+
| -f, --force | option | boolean | | false | Overwrite existing files |
|
|
209
|
+
|
|
210
|
+
### Examples
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
speckeeper init
|
|
214
|
+
speckeeper init --force
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Exit Codes
|
|
218
|
+
|
|
219
|
+
| Code | Description |
|
|
220
|
+
|------|-------------|
|
|
221
|
+
| 0 | Initialization successful |
|
|
222
|
+
| 1 | Initialization error |
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## CMD-NEW: new
|
|
227
|
+
|
|
228
|
+
Create a new element with auto-generated ID
|
|
229
|
+
|
|
230
|
+
### Usage
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
speckeeper new [options]
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Parameters
|
|
237
|
+
|
|
238
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
239
|
+
|------|------|------|----------|---------|-------------|
|
|
240
|
+
| <type> | argument | string | ✓ | - | Type: requirement, usecase, entity, component, screen, flow, error-case, term |
|
|
241
|
+
| -k, --kind | option | string | | - | Sub-kind (e.g., functional, non-functional for requirements) |
|
|
242
|
+
| -n, --name | option | string | | - | Name of the element |
|
|
243
|
+
| -o, --output | option | path | | - | Output directory path |
|
|
244
|
+
| -t, --template | option | path | | - | Path to template file |
|
|
245
|
+
|
|
246
|
+
### Examples
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
speckeeper new requirement --kind functional --name "User Login"
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### Exit Codes
|
|
253
|
+
|
|
254
|
+
| Code | Description |
|
|
255
|
+
|------|-------------|
|
|
256
|
+
| 0 | Element created |
|
|
257
|
+
| 1 | Creation error |
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## CMD-SCAFFOLD: scaffold
|
|
262
|
+
|
|
263
|
+
Generate _models/ from a mermaid flowchart definition
|
|
264
|
+
|
|
265
|
+
### Usage
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
speckeeper scaffold [options]
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Parameters
|
|
272
|
+
|
|
273
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
274
|
+
|------|------|------|----------|---------|-------------|
|
|
275
|
+
| -s, --source | option | path | ✓ | - | Path to Markdown file containing mermaid flowchart |
|
|
276
|
+
| -o, --output | option | path | | design/ | Output directory |
|
|
277
|
+
| -f, --force | option | boolean | | false | Overwrite existing files |
|
|
278
|
+
| --dry-run | option | boolean | | false | Preview generated files without writing |
|
|
279
|
+
|
|
280
|
+
### Examples
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
speckeeper scaffold --source requirements.md
|
|
284
|
+
speckeeper scaffold -s spec.md --dry-run
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Exit Codes
|
|
288
|
+
|
|
289
|
+
| Code | Description |
|
|
290
|
+
|------|-------------|
|
|
291
|
+
| 0 | Scaffold successful |
|
|
292
|
+
| 1 | Scaffold error |
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## CMD-IMPACT: impact
|
|
297
|
+
|
|
298
|
+
Analyze the change impact scope of a specified ID
|
|
299
|
+
|
|
300
|
+
### Usage
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
speckeeper impact [options]
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### Parameters
|
|
307
|
+
|
|
308
|
+
| Name | Kind | Type | Required | Default | Description |
|
|
309
|
+
|------|------|------|----------|---------|-------------|
|
|
310
|
+
| <id> | argument | string | ✓ | - | ID to analyze |
|
|
311
|
+
| -c, --config | option | path | | - | Path to config file |
|
|
312
|
+
| -d, --depth | option | number | | 3 | Analysis depth (reference tracking level) |
|
|
313
|
+
| --direction | option | enum | | both | Analysis direction |
|
|
314
|
+
| -f, --format | option | enum | | text | Output format |
|
|
315
|
+
|
|
316
|
+
### Examples
|
|
317
|
+
|
|
318
|
+
```bash
|
|
319
|
+
speckeeper impact REQ-001
|
|
320
|
+
speckeeper impact ENT-ORDER --depth 5
|
|
321
|
+
speckeeper impact COMP-API --direction downstream
|
|
322
|
+
speckeeper impact UC-001 --format mermaid
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Exit Codes
|
|
326
|
+
|
|
327
|
+
| Code | Description |
|
|
328
|
+
|------|-------------|
|
|
329
|
+
| 0 | Analysis successful |
|
|
330
|
+
| 1 | Target ID not found |
|
|
331
|
+
|
|
332
|
+
---
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Requirements
|
|
2
|
+
|
|
3
|
+
## Constraints
|
|
4
|
+
|
|
5
|
+
| ID | Name | Priority | Category |
|
|
6
|
+
|----|------|----------|----------|
|
|
7
|
+
| CR-001 | Minimize External Dependencies | should | technical |
|
|
8
|
+
| CR-002 | Zero-config Startup | should | usability |
|
|
9
|
+
| CR-003 | No Implementation Code Generation | must | scope |
|
|
10
|
+
| CR-004 | Respect External SSOT | must | scope |
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## CR-001: Minimize External Dependencies
|
|
15
|
+
|
|
16
|
+
**Type**: constraint | **Priority**: should | **Category**: technical
|
|
17
|
+
|
|
18
|
+
Limit external dependencies to stable libraries like Zod, Commander, Chalk
|
|
19
|
+
|
|
20
|
+
### Acceptance Criteria
|
|
21
|
+
|
|
22
|
+
- **CR-001-01**: Keep dependency package count under 20 [inspection]
|
|
23
|
+
- **CR-001-02**: Use only packages with stable major versions [review]
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## CR-002: Zero-config Startup
|
|
28
|
+
|
|
29
|
+
**Type**: constraint | **Priority**: should | **Category**: usability
|
|
30
|
+
|
|
31
|
+
Basic functionality works without config file
|
|
32
|
+
|
|
33
|
+
### Acceptance Criteria
|
|
34
|
+
|
|
35
|
+
- **CR-002-01**: build/lint/drift works without speckeeper.config.ts [test]
|
|
36
|
+
- **CR-002-02**: Default settings cover typical use cases [review]
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## CR-003: No Implementation Code Generation
|
|
41
|
+
|
|
42
|
+
**Type**: constraint | **Priority**: must | **Category**: scope
|
|
43
|
+
|
|
44
|
+
speckeeper does not generate implementation code. API contracts and DB connection code are handled by external tools
|
|
45
|
+
|
|
46
|
+
### Acceptance Criteria
|
|
47
|
+
|
|
48
|
+
- **CR-003-01**: speckeeper does not generate or modify code under src/ [review]
|
|
49
|
+
- **CR-003-02**: API contracts (TypeScript types, routes, clients) generated by external tools from OpenAPI [review]
|
|
50
|
+
- **CR-003-03**: DB connections (Entity types, repositories) generated by ORM/DDL tools from DDL/schema [review]
|
|
51
|
+
- **CR-003-04**: speckeeper only handles requirement definition and external SSOT consistency checks [review]
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## CR-004: Respect External SSOT
|
|
56
|
+
|
|
57
|
+
**Type**: constraint | **Priority**: must | **Category**: scope
|
|
58
|
+
|
|
59
|
+
Treat API specs, DB definitions, IaC definitions as external SSOT, speckeeper only references and verifies
|
|
60
|
+
|
|
61
|
+
### Acceptance Criteria
|
|
62
|
+
|
|
63
|
+
- **CR-004-01**: Do not directly generate or modify OpenAPI files [review]
|
|
64
|
+
- **CR-004-02**: Do not directly generate or modify DDL/Prisma schemas [review]
|
|
65
|
+
- **CR-004-03**: Do not directly generate or modify CloudFormation/Terraform [review]
|
|
66
|
+
- **CR-004-04**: Principle is to fix speckeeper side when consistency check fails [review]
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Components
|
|
2
|
+
|
|
3
|
+
| ID | Name | Type | Description |
|
|
4
|
+
|----|------|------|-------------|
|
|
5
|
+
| CONT-001 | CLI | container | Command line interface |
|
|
6
|
+
| CONT-002 | Types | container | Type definitions with Zod schemas |
|
|
7
|
+
| CONT-003 | DSL | container | Builder functions and checker factories |
|
|
8
|
+
| CONT-004 | Generators | container | Markdown, Mermaid, JSON Schema generation engine |
|
|
9
|
+
| CONT-005 | Validators | container | Validation and lint rule execution engine |
|
|
10
|
+
| CONT-006 | Checkers | container | External SSOT consistency checker |
|
|
11
|
+
| CONT-007 | Utils | container | Utilities for file I/O, config loading, ID generation, etc. |
|
|
12
|
+
| CONT-008 | Scaffold | container | Mermaid flowchart-based project scaffold generator |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## CONT-001: CLI
|
|
17
|
+
|
|
18
|
+
**Type**: container
|
|
19
|
+
**Technology**: TypeScript + Commander
|
|
20
|
+
|
|
21
|
+
Command line interface
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## CONT-002: Types
|
|
26
|
+
|
|
27
|
+
**Type**: container
|
|
28
|
+
**Technology**: TypeScript + Zod
|
|
29
|
+
|
|
30
|
+
Type definitions with Zod schemas
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## CONT-003: DSL
|
|
35
|
+
|
|
36
|
+
**Type**: container
|
|
37
|
+
**Technology**: TypeScript
|
|
38
|
+
|
|
39
|
+
Builder functions and checker factories
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## CONT-004: Generators
|
|
44
|
+
|
|
45
|
+
**Type**: container
|
|
46
|
+
**Technology**: TypeScript
|
|
47
|
+
|
|
48
|
+
Markdown, Mermaid, JSON Schema generation engine
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## CONT-005: Validators
|
|
53
|
+
|
|
54
|
+
**Type**: container
|
|
55
|
+
**Technology**: TypeScript
|
|
56
|
+
|
|
57
|
+
Validation and lint rule execution engine
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## CONT-006: Checkers
|
|
62
|
+
|
|
63
|
+
**Type**: container
|
|
64
|
+
**Technology**: TypeScript
|
|
65
|
+
|
|
66
|
+
External SSOT consistency checker
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## CONT-007: Utils
|
|
71
|
+
|
|
72
|
+
**Type**: container
|
|
73
|
+
**Technology**: TypeScript
|
|
74
|
+
|
|
75
|
+
Utilities for file I/O, config loading, ID generation, etc.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## CONT-008: Scaffold
|
|
80
|
+
|
|
81
|
+
**Type**: container
|
|
82
|
+
**Technology**: TypeScript
|
|
83
|
+
|
|
84
|
+
Mermaid flowchart-based project scaffold generator
|
|
85
|
+
|
|
86
|
+
---
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Entities
|
|
2
|
+
|
|
3
|
+
| ID | Name | Description |
|
|
4
|
+
|----|------|-------------|
|
|
5
|
+
| E-001 | Requirement | Entity representing requirements. Base for functional requirements, non-functional requirements, and constraints |
|
|
6
|
+
| E-010 | Component | Architecture component (system, container, component, person) |
|
|
7
|
+
| E-011 | Boundary | Architecture boundary (system boundary, subsystem boundary, etc.) |
|
|
8
|
+
| E-012 | Layer | Architecture layer (presentation, business, data, etc.) |
|
|
9
|
+
| E-020 | Entity | Concept model entity |
|
|
10
|
+
| E-030 | Screen | Screen definition |
|
|
11
|
+
| E-040 | APIRef | Reference to external API (OpenAPI) |
|
|
12
|
+
| E-041 | TableRef | Reference to external table definition (DDL/Prisma) |
|
|
13
|
+
| E-050 | Artifact | Artifact classification. Manages human-readable/machine-readable artifacts generated from SSOT |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## E-001: Requirement
|
|
18
|
+
|
|
19
|
+
Entity representing requirements. Base for functional requirements, non-functional requirements, and constraints
|
|
20
|
+
|
|
21
|
+
### Attributes
|
|
22
|
+
|
|
23
|
+
| Name | Type | Required | Description |
|
|
24
|
+
|------|------|----------|-------------|
|
|
25
|
+
| id | string | Yes | Unique ID (FR-001, etc.) |
|
|
26
|
+
| name | string | Yes | Requirement name |
|
|
27
|
+
| description | string | Yes | Detailed description of requirement |
|
|
28
|
+
| rationale | string | No | Reason/background for requirement |
|
|
29
|
+
| priority | enum | Yes | Priority |
|
|
30
|
+
| status | enum | No | Status |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## E-010: Component
|
|
35
|
+
|
|
36
|
+
Architecture component (system, container, component, person)
|
|
37
|
+
|
|
38
|
+
### Attributes
|
|
39
|
+
|
|
40
|
+
| Name | Type | Required | Description |
|
|
41
|
+
|------|------|----------|-------------|
|
|
42
|
+
| id | string | Yes | Unique ID (COMP-001, etc.) |
|
|
43
|
+
| name | string | Yes | Component name |
|
|
44
|
+
| description | string | Yes | Description |
|
|
45
|
+
| type | enum | Yes | Component type |
|
|
46
|
+
| external | boolean | No | Whether external component |
|
|
47
|
+
| layerId | string | No | Belonging layer ID |
|
|
48
|
+
| boundaryId | string | No | Belonging boundary ID |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## E-011: Boundary
|
|
53
|
+
|
|
54
|
+
Architecture boundary (system boundary, subsystem boundary, etc.)
|
|
55
|
+
|
|
56
|
+
### Attributes
|
|
57
|
+
|
|
58
|
+
| Name | Type | Required | Description |
|
|
59
|
+
|------|------|----------|-------------|
|
|
60
|
+
| id | string | Yes | Unique ID |
|
|
61
|
+
| name | string | Yes | Boundary name |
|
|
62
|
+
| description | string | No | Description |
|
|
63
|
+
| type | enum | No | Boundary type |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## E-012: Layer
|
|
68
|
+
|
|
69
|
+
Architecture layer (presentation, business, data, etc.)
|
|
70
|
+
|
|
71
|
+
### Attributes
|
|
72
|
+
|
|
73
|
+
| Name | Type | Required | Description |
|
|
74
|
+
|------|------|----------|-------------|
|
|
75
|
+
| id | string | Yes | Unique ID |
|
|
76
|
+
| name | string | Yes | Layer name |
|
|
77
|
+
| order | integer | Yes | Layer order (higher is more upper) |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## E-020: Entity
|
|
82
|
+
|
|
83
|
+
Concept model entity
|
|
84
|
+
|
|
85
|
+
### Attributes
|
|
86
|
+
|
|
87
|
+
| Name | Type | Required | Description |
|
|
88
|
+
|------|------|----------|-------------|
|
|
89
|
+
| id | string | Yes | Unique ID (ENT-001, etc.) |
|
|
90
|
+
| name | string | Yes | Entity name |
|
|
91
|
+
| description | string | Yes | Description |
|
|
92
|
+
| isAggregate | boolean | No | Whether aggregate root |
|
|
93
|
+
| boundaryId | string | No | Belonging boundary ID |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## E-030: Screen
|
|
98
|
+
|
|
99
|
+
Screen definition
|
|
100
|
+
|
|
101
|
+
### Attributes
|
|
102
|
+
|
|
103
|
+
| Name | Type | Required | Description |
|
|
104
|
+
|------|------|----------|-------------|
|
|
105
|
+
| id | string | Yes | Unique ID (SCR-001, etc.) |
|
|
106
|
+
| name | string | Yes | Screen name |
|
|
107
|
+
| description | string | Yes | Description |
|
|
108
|
+
| type | enum | No | Screen type |
|
|
109
|
+
| url | string | No | URL path |
|
|
110
|
+
| authRequired | boolean | No | Whether authentication required |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## E-040: APIRef
|
|
115
|
+
|
|
116
|
+
Reference to external API (OpenAPI)
|
|
117
|
+
|
|
118
|
+
### Attributes
|
|
119
|
+
|
|
120
|
+
| Name | Type | Required | Description |
|
|
121
|
+
|------|------|----------|-------------|
|
|
122
|
+
| id | string | Yes | Unique ID |
|
|
123
|
+
| specPath | string | Yes | OpenAPI file path |
|
|
124
|
+
| operationId | string | Yes | Operation ID |
|
|
125
|
+
| componentId | string | No | Related component ID |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## E-041: TableRef
|
|
130
|
+
|
|
131
|
+
Reference to external table definition (DDL/Prisma)
|
|
132
|
+
|
|
133
|
+
### Attributes
|
|
134
|
+
|
|
135
|
+
| Name | Type | Required | Description |
|
|
136
|
+
|------|------|----------|-------------|
|
|
137
|
+
| id | string | Yes | Unique ID |
|
|
138
|
+
| tableName | string | Yes | Table name |
|
|
139
|
+
| sourceType | enum | No | Source type |
|
|
140
|
+
| sourcePath | string | Yes | Source file path |
|
|
141
|
+
| entityId | string | No | Corresponding concept entity ID |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## E-050: Artifact
|
|
146
|
+
|
|
147
|
+
Artifact classification. Manages human-readable/machine-readable artifacts generated from SSOT
|
|
148
|
+
|
|
149
|
+
### Attributes
|
|
150
|
+
|
|
151
|
+
| Name | Type | Required | Description |
|
|
152
|
+
|------|------|----------|-------------|
|
|
153
|
+
| id | string | Yes | Unique ID |
|
|
154
|
+
| name | string | Yes | Artifact name |
|
|
155
|
+
| category | enum | Yes | Classification (SSOT/human-readable/machine-readable/implementation code) |
|
|
156
|
+
| location | string | Yes | Directory path (design/, docs/, specs/, src/) |
|
|
157
|
+
| purpose | string | Yes | Purpose |
|
|
158
|
+
| driftTarget | boolean | No | Whether drift detection target |
|
|
159
|
+
| generatedFrom | string | No | Source (SSOT ID) |
|
|
160
|
+
|
|
161
|
+
---
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Components
|
|
2
|
+
|
|
3
|
+
| ID | Name | Type | Description |
|
|
4
|
+
|----|------|------|-------------|
|
|
5
|
+
| EXT-001 | OpenAPI Specification | system | External SSOT managing API specifications. speckeeper references via APIRef |
|
|
6
|
+
| EXT-002 | Database Schema | system | External SSOT managing DB definitions via DDL/Prisma. speckeeper references via TableRef |
|
|
7
|
+
| EXT-003 | Infrastructure as Code | system | IaC definitions like Terraform/CloudFormation. speckeeper references via IaCRef |
|
|
8
|
+
| EXT-004 | GitHub/GitLab | system | Repository managing source code and documentation |
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## EXT-001: OpenAPI Specification
|
|
13
|
+
|
|
14
|
+
**Type**: system
|
|
15
|
+
|
|
16
|
+
External SSOT managing API specifications. speckeeper references via APIRef
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## EXT-002: Database Schema
|
|
21
|
+
|
|
22
|
+
**Type**: system
|
|
23
|
+
|
|
24
|
+
External SSOT managing DB definitions via DDL/Prisma. speckeeper references via TableRef
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## EXT-003: Infrastructure as Code
|
|
29
|
+
|
|
30
|
+
**Type**: system
|
|
31
|
+
|
|
32
|
+
IaC definitions like Terraform/CloudFormation. speckeeper references via IaCRef
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## EXT-004: GitHub/GitLab
|
|
37
|
+
|
|
38
|
+
**Type**: system
|
|
39
|
+
|
|
40
|
+
Repository managing source code and documentation
|
|
41
|
+
|
|
42
|
+
---
|