@esneiderbravo/speclaw 0.1.9 → 0.1.10
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 +21 -9
- package/dist/modules/foundation/assets/docs/standards/lawbook.template.md +1 -1
- package/dist/modules/lawbook/assets/commands/draft.md +1 -1
- package/dist/modules/lawbook/assets/skills/draft/SKILL.md +2 -2
- package/dist/modules/lawbook/engine.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,26 +93,38 @@ Compass is inspired by [CodeGraph](https://github.com/colbymchenry/codegraph) an
|
|
|
93
93
|
## <img src="https://raw.githubusercontent.com/esneiderbravo/speclaw/main/brand/diamond.png" height="20" alt="◆" align="absmiddle"> The spec-driven workflow (Lawbook)
|
|
94
94
|
|
|
95
95
|
Lawbook is speclaw's answer to the biggest risk with AI agents: **code that
|
|
96
|
-
drifts from intent.**
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
drifts from intent.** The intent is written first, the code is made to match it,
|
|
97
|
+
and the spec is promoted to the project's canonical record — so nothing
|
|
98
|
+
non-trivial lands without a spec change. It's a loop of five steps:
|
|
99
99
|
|
|
100
100
|
```
|
|
101
|
-
|
|
101
|
+
┌─────────┐ ┌───────┐ ┌───────┐ ┌──────┐ ┌─────────┐
|
|
102
|
+
│ explore │ ─▶ │ draft │ ─▶ │ build │ ─▶ │ sync │ ─▶ │ archive │
|
|
103
|
+
└─────────┘ └───────┘ └───────┘ └──────┘ └─────────┘
|
|
102
104
|
```
|
|
103
105
|
|
|
104
106
|
| Step | What happens |
|
|
105
107
|
| :-- | :-- |
|
|
106
108
|
| **explore** | Think an idea through *before* committing to it — should we do this, and how. Writes nothing. |
|
|
107
|
-
| **draft** |
|
|
109
|
+
| **draft** | Capture the intent as a change under `lawbook/changes/<name>/` — four artifacts, always (see below). |
|
|
108
110
|
| **build** | Implement the tasks in order, keeping code and spec in agreement. |
|
|
109
111
|
| **sync** | Promote the change's delta specs into the canonical `lawbook/specs/` — the always-true description of how the system behaves. |
|
|
110
112
|
| **archive** | Validate, promote, and move the change to `lawbook/changes/archive/` — **in the same PR**, never a post-merge chore. |
|
|
111
113
|
|
|
112
|
-
**
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
**Every `draft` writes four artifacts under `lawbook/changes/<name>/` — none optional:**
|
|
115
|
+
|
|
116
|
+
| Artifact | What it captures |
|
|
117
|
+
| :-- | :-- |
|
|
118
|
+
| `proposal.md` | The **why** — motivation, what changes, non-goals, and whether migrations are needed. |
|
|
119
|
+
| `specs/<capability>/spec.md` | The **delta specs** — one per affected capability, normative and testable. |
|
|
120
|
+
| `design.md` | The **how** — approach, alternatives weighed, and the trade-offs behind the decision. |
|
|
121
|
+
| `tasks.md` | The **plan** — ordered, checkable steps, including the mandatory ones from `config.yaml`. |
|
|
122
|
+
|
|
123
|
+
> [!NOTE]
|
|
124
|
+
> **Delta specs are normative and testable.** Requirements use `SHALL`/`MUST`
|
|
125
|
+
> under `### Requirement:` headers, each with one or more `#### Scenario:` blocks
|
|
126
|
+
> whose acceptance criteria hold without production integrations. `lawbook_validate`
|
|
127
|
+
> checks that the code matches what the spec promises before you sync or archive.
|
|
116
128
|
|
|
117
129
|
**Three ways to drive it — same engine, no external CLI:**
|
|
118
130
|
|
|
@@ -10,7 +10,7 @@ No non-trivial change lands without a spec change:
|
|
|
10
10
|
|
|
11
11
|
1. **explore** — think an idea through before committing (writes nothing).
|
|
12
12
|
2. **draft** — create `lawbook/changes/<name>/`: `proposal.md`, delta specs under
|
|
13
|
-
`specs/<capability>/spec.md`,
|
|
13
|
+
`specs/<capability>/spec.md`, `design.md`, and `tasks.md`.
|
|
14
14
|
3. **build** — implement the tasks in order, keeping code and spec in
|
|
15
15
|
agreement.
|
|
16
16
|
4. **sync** — promote the change's delta specs into the canonical
|
|
@@ -7,6 +7,6 @@ Draft a new change under `lawbook/changes/<name>/` for: $ARGUMENTS
|
|
|
7
7
|
Follow the `draft` skill: ensure `lawbook/` exists (`lawbook_init`), investigate the
|
|
8
8
|
code with `compass_explore`/`compass_recall`, read the governing
|
|
9
9
|
`docs/standards/`, then write `proposal.md`, `specs/<capability>/spec.md`
|
|
10
|
-
(normative `SHALL`/`MUST` + `#### Scenario:`),
|
|
10
|
+
(normative `SHALL`/`MUST` + `#### Scenario:`), `design.md`, and
|
|
11
11
|
`tasks.md` (with the mandatory steps from `lawbook/config.yaml`). Finish by
|
|
12
12
|
running `lawbook_validate` and fixing every issue.
|
|
@@ -46,8 +46,8 @@ Create under `lawbook/changes/<name>/`:
|
|
|
46
46
|
- When <action>
|
|
47
47
|
- Then <observable outcome>
|
|
48
48
|
```
|
|
49
|
-
- **design.md**
|
|
50
|
-
|
|
49
|
+
- **design.md** — always: approach, alternatives weighed, and the trade-offs
|
|
50
|
+
behind the decision. For a small change, keep it short — but write it.
|
|
51
51
|
- **tasks.md** — ordered, checkable steps. MUST include the mandatory steps
|
|
52
52
|
from `lawbook/config.yaml` (feature branch first; tests reviewed and run;
|
|
53
53
|
manual verification executed by the agent; docs updated; archive within the
|
|
@@ -38,7 +38,7 @@ This directory is managed by speclaw's **lawbook** module.
|
|
|
38
38
|
|
|
39
39
|
- \`specs/\` — the canonical specifications (the current source of truth).
|
|
40
40
|
- \`changes/<name>/\` — an in-flight change: \`proposal.md\`, \`tasks.md\`,
|
|
41
|
-
|
|
41
|
+
\`design.md\`, and \`specs/<capability>/spec.md\` delta specs.
|
|
42
42
|
- \`changes/archive/\` — completed, archived changes.
|
|
43
43
|
- \`config.yaml\` — mandatory task steps and workflow rules.
|
|
44
44
|
|