@luizsantiago/spec-guardrails 3.1.3 → 3.1.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 +18 -12
- package/lib/gates.js +2 -2
- package/lib/install.js +2 -2
- package/lib/next-steps.js +4 -2
- package/package.json +2 -2
- package/templates/GETTING_STARTED.md +2 -2
package/README.md
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
| | |
|
|
9
9
|
| --- | --- |
|
|
10
10
|
| **Problem** | Agents ship “looks good” with thin specs, missing evidence, and the same context that wrote the code declaring victory. |
|
|
11
|
-
| **Solution** |
|
|
12
|
-
| **Result** | Traceable `.specs/` memory, fewer fake finishes, cheaper turns (~70% less skill text on planning)
|
|
11
|
+
| **Solution** | One kit, two deliberate modes: **Process** (Node only) for a flexible spec-driven workflow; **Brakes** (Node + Python) for the **full product** — structural gates that exit non-zero when paperwork or evidence is missing. You approve specs/tasks in both. |
|
|
12
|
+
| **Result** | Traceable `.specs/` memory, fewer fake finishes, cheaper turns (~70% less skill text on planning). Choose Process for light ceremony; add Python when you want the [Guarantees matrix](#guarantees-matrix) enforced automatically. |
|
|
13
13
|
|
|
14
14
|
npm: [`@luizsantiago/spec-guardrails`](https://www.npmjs.com/package/@luizsantiago/spec-guardrails) **3.1.x**
|
|
15
15
|
|
|
@@ -26,17 +26,19 @@ npx @luizsantiago/spec-guardrails install
|
|
|
26
26
|
| Requirement | Role |
|
|
27
27
|
| --- | --- |
|
|
28
28
|
| **Node.js 18+** | Required — runs the CLI and `install` |
|
|
29
|
-
| **Python 3.10+** | Activates **Brakes mode** — structural gates (`validate-spec`, `validate-tasks`, …). Without Python you stay in **Process mode**: same phases and checklists, no exit-code enforcement. Run [`doctor`](#install) to see
|
|
29
|
+
| **Python 3.10+** | Activates **Brakes mode** — the **full** kit with Python structural gates (`validate-spec`, `validate-tasks`, …). Gates stay Python by design. Without Python you stay in **Process mode**: same phases and checklists, no exit-code enforcement. Run [`doctor`](#install) to see which mode you are in |
|
|
30
30
|
|
|
31
31
|
### What install does
|
|
32
32
|
|
|
33
33
|
| Lands in your project | Purpose |
|
|
34
34
|
| --- | --- |
|
|
35
|
-
| `.cursor/skills/` + `.claude/skills/` | Hub, phase references, sister skills |
|
|
36
|
-
| `.specs/guardrails/scripts/` | Python gate scripts |
|
|
37
|
-
| `.specs/STATE.md`, `.specs/features/`, … | Project memory |
|
|
35
|
+
| `.cursor/skills/` + `.claude/skills/` | Hub, phase references, sister skills (first shipped **adapters** — not the only supported agents) |
|
|
36
|
+
| `.specs/guardrails/scripts/` | Python gate scripts (Brakes mode) |
|
|
37
|
+
| `.specs/STATE.md`, `.specs/features/`, … | Project memory (any agent) |
|
|
38
38
|
| `.cursor/rules/engineering-baseline.mdc` | Always-on Cursor rule |
|
|
39
39
|
|
|
40
|
+
**Agent environments:** the **core** (`.specs/`, CLI, hub, Python gates) works with any AI agent that reads repo instructions and runs shell commands. Install ships Cursor + Claude Code adapters today; Codex, GitHub Copilot, and others are documented in [Architecture](docs/guide/Architecture.md).
|
|
41
|
+
|
|
40
42
|
Re-run `install` anytime to refresh skills; your `.specs/` decisions and `STATE.md` are kept.
|
|
41
43
|
|
|
42
44
|
| Need | Command |
|
|
@@ -68,12 +70,16 @@ Plain-language tour: [Home](docs/guide/Home.md) · [How it works](docs/guide/How
|
|
|
68
70
|
|
|
69
71
|
## Operating modes
|
|
70
72
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
|
74
|
-
|
|
|
73
|
+
Two modes, one package — pick how much rigor you want:
|
|
74
|
+
|
|
75
|
+
| Mode | Runtime | What you get | Best for |
|
|
76
|
+
| --- | --- | --- | --- |
|
|
77
|
+
| **Process** | Node.js 18+ | Spec-driven workflow, `.specs/` memory, progressive loading, independent `/verify` | Flexible ceremony, exploration, teams that enforce by review |
|
|
78
|
+
| **Brakes** | Node + **Python 3.10+** | Everything in Process **plus** Python gates from the [Guarantees matrix](#guarantees-matrix) — exit ≠ 0 → stop and fix | The **full Spec Guardrails** — traceability, evidence, and structural guarantees enforced automatically |
|
|
79
|
+
|
|
80
|
+
**Gates stay Python.** That is the product: Brakes mode is the complete version with automated enforcement. Process mode is the same loop without exit-code brakes — intentional, not incomplete.
|
|
75
81
|
|
|
76
|
-
Python
|
|
82
|
+
Install Python when you want gates to fire; run `doctor` to confirm Brakes are available.
|
|
77
83
|
|
|
78
84
|
---
|
|
79
85
|
|
|
@@ -180,7 +186,7 @@ Full reference: **[Gates](docs/guide/gates.md)** · [Guarantees matrix](docs/gui
|
|
|
180
186
|
| [Concepts](docs/guide/concepts.md) | Spec-driven + guardrails + loop + graph |
|
|
181
187
|
| [Skills and hub](docs/guide/skills-and-hub.md) | What each skill file does |
|
|
182
188
|
| [Gates](docs/guide/gates.md) | How each gate works |
|
|
183
|
-
| [Platform parity](docs/guide/Platform-parity.md) | Cursor
|
|
189
|
+
| [Platform parity](docs/guide/Platform-parity.md) | Shipped adapters (Cursor, Claude Code) — core works with any agent |
|
|
184
190
|
| [FAQ](docs/guide/FAQ.md) | Common questions |
|
|
185
191
|
| [Changelog](docs/CHANGELOG.md) | Full version history |
|
|
186
192
|
|
package/lib/gates.js
CHANGED
|
@@ -112,8 +112,8 @@ export async function runGuardrailsScript(command, args, options = {}) {
|
|
|
112
112
|
|
|
113
113
|
if (!python) {
|
|
114
114
|
throw new Error(
|
|
115
|
-
"Python 3 not found. Install Python 3.10+
|
|
116
|
-
"or perform the equivalent checks manually
|
|
115
|
+
"Python 3 not found. Install Python 3.10+ for Brakes mode (automatic gates), " +
|
|
116
|
+
"or perform the equivalent checks manually in Process mode.",
|
|
117
117
|
);
|
|
118
118
|
}
|
|
119
119
|
|
package/lib/install.js
CHANGED
|
@@ -129,8 +129,8 @@ export async function install(options = {}) {
|
|
|
129
129
|
const pythonAvailable = await hasPython();
|
|
130
130
|
if (!pythonAvailable) {
|
|
131
131
|
log(
|
|
132
|
-
"⚠️ Python 3 not found
|
|
133
|
-
"
|
|
132
|
+
"⚠️ Python 3 not found — Process mode only (flexible workflow, manual checkpoints). " +
|
|
133
|
+
"Install Python 3.10+ for Brakes mode (full kit with automatic gates).",
|
|
134
134
|
);
|
|
135
135
|
}
|
|
136
136
|
|
package/lib/next-steps.js
CHANGED
|
@@ -12,9 +12,10 @@ export function formatInstallNextSteps(options = {}) {
|
|
|
12
12
|
"✨ Setup complete.",
|
|
13
13
|
"",
|
|
14
14
|
"Next:",
|
|
15
|
-
" 1. Open Cursor
|
|
15
|
+
" 1. Open your AI coding agent in this project (Cursor and Claude Code adapters install automatically).",
|
|
16
16
|
" 2. Run **Specify** (`/specify` or “Specify a feature: …”).",
|
|
17
17
|
"",
|
|
18
|
+
" Other agents: core + CLI work anywhere — see docs/guide/Architecture.md",
|
|
18
19
|
" Guide: docs/guide/Quick-start.md (repo) · .specs/GETTING_STARTED.md (this project)",
|
|
19
20
|
];
|
|
20
21
|
|
|
@@ -24,7 +25,8 @@ export function formatInstallNextSteps(options = {}) {
|
|
|
24
25
|
|
|
25
26
|
if (options.pythonAvailable === false) {
|
|
26
27
|
lines.push(
|
|
27
|
-
" Note: install Python 3.10+ for
|
|
28
|
+
" Note: install Python 3.10+ for Brakes mode (full kit with automatic gates), " +
|
|
29
|
+
"or stay in Process mode (same phases, manual checkpoints).",
|
|
28
30
|
);
|
|
29
31
|
}
|
|
30
32
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luizsantiago/spec-guardrails",
|
|
3
|
-
"version": "3.1.
|
|
4
|
-
"description": "Spec-driven process kit for repo-local AI
|
|
3
|
+
"version": "3.1.4",
|
|
4
|
+
"description": "Spec-driven process kit for any repo-local AI agent: Process mode (Node) or full Brakes mode (Node + Python gates). Progressive loading, independent verify, Guarantees matrix.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"spec-guardrails": "./index.js"
|
|
@@ -4,7 +4,7 @@ You installed the **Spec Guardrails**. You do **not** need to memorize CLI comma
|
|
|
4
4
|
|
|
5
5
|
## What to do now
|
|
6
6
|
|
|
7
|
-
1. Open **
|
|
7
|
+
1. Open your **AI coding agent** in this project (Cursor or Claude Code if you use those adapters).
|
|
8
8
|
2. Start with **Specify** (an **agent command** — chat, not terminal):
|
|
9
9
|
|
|
10
10
|
```
|
|
@@ -20,7 +20,7 @@ You installed the **Spec Guardrails**. You do **not** need to memorize CLI comma
|
|
|
20
20
|
|
|
21
21
|
## Agent commands (chat — not terminal)
|
|
22
22
|
|
|
23
|
-
Type these in **
|
|
23
|
+
Type these in **chat** in your agent environment. They load phase procedures from the installed skills tree (e.g. `.cursor/skills/references/`). In **Brakes mode**, the agent runs Python gates for you.
|
|
24
24
|
|
|
25
25
|
| Command | When |
|
|
26
26
|
| --- | --- |
|