doctrina-cli 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/src/commands/change.js +62 -1
- package/src/commands/contract.js +254 -0
- package/src/commands/coverage.js +179 -0
- package/src/commands/intake.js +16 -7
- package/src/commands/skill.js +4 -1
- package/src/commands/spec.js +16 -5
- package/src/commands/templates.js +1 -1
- package/src/commands/validate.js +127 -3
- package/src/commands/verify.js +153 -0
- package/src/commands/work.js +21 -10
- package/src/index.js +9 -2
- package/src/lib/index-json.js +9 -0
- package/src/lib/scan.js +41 -7
- package/templates/AGENTS.md.template +28 -0
- package/templates/change/proposal.md.template +10 -1
- package/templates/contract.md.template +58 -0
- package/templates/decision.md.template +10 -0
- package/templates/doctrina/product.md.template +12 -0
- package/templates/spec.md.template +41 -3
|
@@ -5,6 +5,16 @@
|
|
|
5
5
|
- **Deciders:**
|
|
6
6
|
- **Supersedes:** —
|
|
7
7
|
- **Superseded by:** —
|
|
8
|
+
- **Evidence:** —
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
Evidence anchors the decision to reality. Once accepted, cite the file(s)
|
|
12
|
+
that prove this decision is actually implemented, in backticks, e.g.
|
|
13
|
+
"- **Evidence:** `proto/order.proto`, `services/gateway/grpc.ts`".
|
|
14
|
+
`doctrina validate` warns when cited evidence is missing on disk (the
|
|
15
|
+
decision drifted from the code) or when an accepted ADR cites none. For a
|
|
16
|
+
process decision with no code artifact, write "n/a — <why>".
|
|
17
|
+
-->
|
|
8
18
|
|
|
9
19
|
## Context
|
|
10
20
|
|
|
@@ -29,3 +29,15 @@ Out of scope (deferred or rejected):
|
|
|
29
29
|
## Success criteria
|
|
30
30
|
|
|
31
31
|
<!-- How you will know this project is working. Prefer measurable signals. -->
|
|
32
|
+
|
|
33
|
+
## Delivery order (walking skeleton)
|
|
34
|
+
|
|
35
|
+
<!--
|
|
36
|
+
Depth before breadth. Name the ONE end-to-end path that must work and be
|
|
37
|
+
verified before any capability fans out — the walking skeleton (e.g.
|
|
38
|
+
auth -> ingest -> ws -> ui). A spec'd capability with no working slice
|
|
39
|
+
through it is breadth bought on credit: build and `doctrina verify` the
|
|
40
|
+
skeleton first, then spec the next capability.
|
|
41
|
+
-->
|
|
42
|
+
|
|
43
|
+
1.
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
# Spec — {{CAPABILITY}}
|
|
2
2
|
|
|
3
3
|
**Capability:** {{CAPABILITY}}
|
|
4
|
-
**Status:**
|
|
4
|
+
**Status:** draft
|
|
5
|
+
**Implementation:** planned
|
|
5
6
|
**Last updated:** {{DATE}}
|
|
6
7
|
**Version:** 0.1.0
|
|
7
8
|
|
|
9
|
+
<!--
|
|
10
|
+
Two independent axes — keep them honest:
|
|
11
|
+
Status — the document: draft -> active -> deprecated
|
|
12
|
+
Implementation — the capability: planned -> partial -> implemented -> verified
|
|
13
|
+
Flip Status to "active" only once this spec reflects intended truth.
|
|
14
|
+
Advance Implementation as code lands; "verified" means a test proves it
|
|
15
|
+
(cite the test per acceptance criterion — see `doctrina coverage`).
|
|
16
|
+
An "active" spec left at "planned" is an inventory claim with nothing
|
|
17
|
+
behind it, and `doctrina validate` warns. To record a deliberate gap and
|
|
18
|
+
silence the warning, add a note after the value, e.g.
|
|
19
|
+
"**Implementation:** planned — backend deferred to Q3, see ADR 0007".
|
|
20
|
+
-->
|
|
21
|
+
|
|
8
22
|
## Purpose
|
|
9
23
|
|
|
10
24
|
<!-- One paragraph: what this capability does and why it exists. -->
|
|
@@ -43,9 +57,33 @@ Easy Approach to Requirements Syntax. Use one of the five forms per item:
|
|
|
43
57
|
|
|
44
58
|
## Acceptance criteria
|
|
45
59
|
|
|
46
|
-
<!--
|
|
60
|
+
<!--
|
|
61
|
+
Concrete, observable signals that the capability is correctly implemented.
|
|
62
|
+
Each criterion is also a claim that must be proven: mark it [verified] or
|
|
63
|
+
[unverified] and cite the artifact/test in backticks. `doctrina coverage`
|
|
64
|
+
reports which criteria have no linked evidence — an [unverified] criterion
|
|
65
|
+
with no test is explicit debt, not a fact.
|
|
66
|
+
-->
|
|
67
|
+
|
|
68
|
+
1. [unverified] <observable signal> — verified by `path/to/test`.
|
|
47
69
|
|
|
48
|
-
|
|
70
|
+
## Maturity
|
|
71
|
+
|
|
72
|
+
<!--
|
|
73
|
+
The line between an MVP and a product wishlist. List under MVP only what
|
|
74
|
+
this capability COMMITS to now. Anything aspirational goes under Future and
|
|
75
|
+
is explicitly NOT accepted scope — do not write Future items in EARS as if
|
|
76
|
+
they were already built (no WebGPU/multi-cloud/"50k entities at 30fps"
|
|
77
|
+
smuggled in as committed requirements).
|
|
78
|
+
-->
|
|
79
|
+
|
|
80
|
+
**MVP (committed):**
|
|
81
|
+
|
|
82
|
+
-
|
|
83
|
+
|
|
84
|
+
**Future (aspirational, not committed):**
|
|
85
|
+
|
|
86
|
+
-
|
|
49
87
|
|
|
50
88
|
## Out of scope for this spec
|
|
51
89
|
|