squad-kit 1.3.12 → 1.3.13
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 +600 -450
- package/dist/console-ui/assets/{index-cfiHDNuh.css → index-CEaZON9M.css} +1 -1
- package/dist/console-ui/assets/index-DgVvTf9I.js +694 -0
- package/dist/console-ui/index.html +2 -2
- package/docs/auth.md +280 -0
- package/docs/console.md +952 -0
- package/docs/customization.md +366 -0
- package/docs/error-audit.md +35 -0
- package/docs/getting-started.md +381 -0
- package/docs/migrating-from-0.1.md +307 -0
- package/docs/migrating-to-1.0.md +197 -0
- package/docs/philosophy.md +93 -0
- package/docs/requirements.md +193 -0
- package/docs/vs-spec-kit.md +97 -0
- package/package.json +2 -1
- package/dist/console-ui/assets/index-Cim1mkO6.js +0 -689
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: From a BRD to a built product
|
|
3
|
+
description: Upload a requirements document, let the Analyst break it into epics, features and stories, approve it, send it to Azure DevOps, and let the squad build it story by story.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Write the requirements once, in the document you already have. squad-kit breaks it down, asks only what it must,
|
|
7
|
+
and builds it story by story. You stay in charge: nothing is built or sent before you approve, and you send every
|
|
8
|
+
release out yourself.
|
|
9
|
+
|
|
10
|
+
Everything here has a button on the **Requirements** page (right after Overview in the sidebar) and a terminal
|
|
11
|
+
command.
|
|
12
|
+
|
|
13
|
+
## 1. Add a BRD
|
|
14
|
+
|
|
15
|
+
Press **Add a BRD** and drop the document: **PDF**, **Word** (.docx), **Markdown** or **text**, up to 10 MB. Or
|
|
16
|
+
press **Paste the text instead**. Add mockups and pictures with it if you have them. The breakdown is named after
|
|
17
|
+
the document; change the name if you like. Press **Break it down**.
|
|
18
|
+
|
|
19
|
+
squad-kit keeps the document in `.squad/requirements/BR-1/`. A Word file becomes text, with its pictures kept where
|
|
20
|
+
they were; text hidden in Word is left out, as you don't see it either. A PDF is read as it is. A document's text
|
|
21
|
+
can be up to 20 MB.
|
|
22
|
+
|
|
23
|
+
Terminal: `squad requirements add "Case Portal BRD v1.docx" [--name "…"] [--with mockup.png]`, or
|
|
24
|
+
`squad requirements add --paste` to read the text from the terminal.
|
|
25
|
+
|
|
26
|
+
## 2. The Analyst reads it
|
|
27
|
+
|
|
28
|
+
The page shows the reading live: which page or part it is on, what it found so far, and how long it usually takes.
|
|
29
|
+
You can leave the page; the work goes on. **Stop** stops it, and **Try again** carries on.
|
|
30
|
+
|
|
31
|
+
Terminal: `squad requirements show BR-1`, `squad requirements stop BR-1`, `squad requirements retry BR-1`.
|
|
32
|
+
|
|
33
|
+
A step that reaches its limit says so and offers **Give it more**: it carries on where it stopped, with twice the room
|
|
34
|
+
(`squad requirements more BR-1`). A long document (about 100 PDF pages or more) waits for you before anything is paid: it says
|
|
35
|
+
how long the read usually takes, and **Read it** starts it (`squad requirements retry BR-1`). A password-protected PDF is refused
|
|
36
|
+
when you add it: add a copy with no password.
|
|
37
|
+
|
|
38
|
+
## 3. Only the unclear parts come to you
|
|
39
|
+
|
|
40
|
+
The Analyst asks only about two things:
|
|
41
|
+
|
|
42
|
+
- **Missing in the BRD**: something the document leaves out that changes what gets built.
|
|
43
|
+
- **Two parts clash**: two parts of the document disagree.
|
|
44
|
+
|
|
45
|
+
Each question shows where it is in the document and what it changes. Pick an answer, type your own, or press **Ask
|
|
46
|
+
about this**. **Skip: let the Analyst decide** leaves it to the Analyst.
|
|
47
|
+
|
|
48
|
+
Everything small the Analyst decides by itself is listed under **Decided for you**, so nothing is hidden. You can
|
|
49
|
+
change any of them.
|
|
50
|
+
|
|
51
|
+
Parts of the document the Analyst left out on purpose (out of scope, already built) are listed under **parts left
|
|
52
|
+
out**, each with why. **Ask the Analyst to add it** brings one in.
|
|
53
|
+
|
|
54
|
+
Terminal: `squad requirements answer BR-1` (asks in the terminal; `--skip` lets the Analyst decide),
|
|
55
|
+
`squad requirements ask BR-1 q2 "…"`.
|
|
56
|
+
|
|
57
|
+
## 4. Review and approve the breakdown
|
|
58
|
+
|
|
59
|
+
The Analyst writes **epics**, then **features**, then **stories**. A small document may skip features. Each story
|
|
60
|
+
has:
|
|
61
|
+
|
|
62
|
+
- **Story**: "As a …, I want …, so that …".
|
|
63
|
+
- **Done when**: its checks, as Given, When and Then.
|
|
64
|
+
- **Size**: S, M or L.
|
|
65
|
+
- **Needs**: the stories it builds on.
|
|
66
|
+
- **From the BRD**: the place in the document it comes from.
|
|
67
|
+
|
|
68
|
+
Keys stay the same for good: E-1 for epics, F-1 for features, S-1 for stories.
|
|
69
|
+
|
|
70
|
+
The **tree** is the main view. Select a part to change it in the side panel:
|
|
71
|
+
|
|
72
|
+
- rename it or rewrite it;
|
|
73
|
+
- change its checks, size and needs;
|
|
74
|
+
- move it under another feature or epic;
|
|
75
|
+
- remove it.
|
|
76
|
+
|
|
77
|
+
You can also add epics, features and stories. **Ask the Analyst to redo this** rewrites one part with your words.
|
|
78
|
+
**Ask the Analyst** at the top works on the whole breakdown. While a redo runs, the stories in that part do not
|
|
79
|
+
start, and a story that has started already is never rewritten: change it on its ticket instead.
|
|
80
|
+
|
|
81
|
+
**Map** shows the same breakdown as boxes and lines, for presenting. On a phone the tree is shown instead.
|
|
82
|
+
|
|
83
|
+
The top line gives an **estimate**, such as "20 stories, about $140 and 6 hours to build, 2 at a time". It comes
|
|
84
|
+
from this project's finished tickets. With no finished tickets yet it is a rough guess from the story sizes. You
|
|
85
|
+
see dollars only when you pay per use; on a subscription the work uses your plan.
|
|
86
|
+
|
|
87
|
+
Press **Approve breakdown** when it looks right. squad-kit checks every story has at least one check, that every need
|
|
88
|
+
exists, and that no stories need each other in a loop. Nothing is built or sent before you approve.
|
|
89
|
+
|
|
90
|
+
Terminal: `squad requirements show BR-1 [--map]`, `squad requirements edit BR-1 S-4 …`,
|
|
91
|
+
`squad requirements add-item BR-1 --under F-2 …`, `squad requirements move BR-1 S-4 --under F-3 [--before S-9]`,
|
|
92
|
+
`squad requirements remove BR-1 S-4`, `squad requirements redo BR-1 S-4 "…"`, `squad requirements rename BR-1 "…"`,
|
|
93
|
+
`squad requirements approve BR-1`.
|
|
94
|
+
|
|
95
|
+
## 5. Send it to Azure DevOps (optional)
|
|
96
|
+
|
|
97
|
+
**Send to Azure DevOps** shows what it will create before it sends anything:
|
|
98
|
+
|
|
99
|
+
- epics, features and stories, in the item types your project uses (User Story, Product Backlog Item or
|
|
100
|
+
Requirement);
|
|
101
|
+
- each story under its feature;
|
|
102
|
+
- each story's "done when" as its acceptance criteria;
|
|
103
|
+
- links between stories that need each other.
|
|
104
|
+
|
|
105
|
+
Items go into the project's backlog, never into a sprint. Each part keeps its number (AB#139).
|
|
106
|
+
|
|
107
|
+
- **Send changes** later updates the same items, and only the ones that changed.
|
|
108
|
+
- squad-kit **never deletes** anything in Azure DevOps.
|
|
109
|
+
- Changes made in Azure DevOps do not come back. The breakdown in squad-kit is the one that counts.
|
|
110
|
+
- The progress shows the items first, then the links ("14 of 30 items, then 20 links").
|
|
111
|
+
- A send cut off half-way carries on where it stopped, with no doubles.
|
|
112
|
+
- A story's ticket moves its Azure DevOps item along as the squad works, as pulled tickets do.
|
|
113
|
+
|
|
114
|
+
Your Azure DevOps token needs **Work Items (Read & write)**. In a Basic process, features become Issues and stories
|
|
115
|
+
become Tasks. Items go into the project's main area.
|
|
116
|
+
|
|
117
|
+
Terminal: `squad requirements send BR-1` (`--preview` shows what it would send).
|
|
118
|
+
|
|
119
|
+
## 6. Build continuously
|
|
120
|
+
|
|
121
|
+
Press **Build continuously**. squad-kit starts the next story as soon as two things are true:
|
|
122
|
+
|
|
123
|
+
- everything it needs is merged;
|
|
124
|
+
- there is a free place. The squad builds as many tickets at once as your parallel setting allows, and all
|
|
125
|
+
projects share those places.
|
|
126
|
+
|
|
127
|
+
Each story becomes a ticket on the **Builds by itself** track:
|
|
128
|
+
|
|
129
|
+
- **No questions.** Its story and checks were approved with the breakdown, and its plan is approved by itself.
|
|
130
|
+
- **Small choices are made, not asked.** Each one is listed under **Decided for you**, on the ticket and on the
|
|
131
|
+
breakdown. Press **Change** on any of them. Before the story merges, your change becomes a small change on its
|
|
132
|
+
ticket. After it merges, the change becomes a new linked ticket.
|
|
133
|
+
- **It merges by itself** once its checks pass, the Reviewer agrees and the screenshots pass. The screenshots are
|
|
134
|
+
still taken and kept. A "done when" that is **Not on a screen** does not hold it, and one that is **Not working
|
|
135
|
+
yet** or **Not shown yet** does: it waits for your check. If the merge clashes with newer work, squad-kit brings in
|
|
136
|
+
the latest main and checks again, up to 3 times while main keeps moving. If main has not moved since it last came
|
|
137
|
+
in, or after the third time, the story stops with the clash card. If your pull requests need a person to approve
|
|
138
|
+
them, the story waits there, shows as waiting for you, and squad-kit checks every 2 minutes whether it merged. That
|
|
139
|
+
is not a failure, and it does not hold a place.
|
|
140
|
+
- **It stops only when a person is needed**:
|
|
141
|
+
- **Missing in the BRD**: something is missing that changes what gets built.
|
|
142
|
+
- **Two parts clash**: two requirements disagree, or one disagrees with what is already built.
|
|
143
|
+
- **A check failed** and could not be fixed after the usual tries. Only you can let it go on past a failed
|
|
144
|
+
check.
|
|
145
|
+
|
|
146
|
+
Only that story stops, and the stories that need it wait. The others keep building. **Decide** opens the story's
|
|
147
|
+
ticket with the question, where it comes from (**Sources**: the place in the BRD, your earlier answer, or the
|
|
148
|
+
ticket whose work it clashes with) and the Architect's suggestion.
|
|
149
|
+
|
|
150
|
+
**Pause** stops new stories from starting; stories already running finish their step.
|
|
151
|
+
|
|
152
|
+
The queue also holds, and says why, when:
|
|
153
|
+
|
|
154
|
+
- your month budget is used up. Raise it, or press **Build continuously** to go on this month;
|
|
155
|
+
- your AI plan's usage limit is reached. It carries on when the limit resets;
|
|
156
|
+
- squad-kit is waiting for a story that needs you;
|
|
157
|
+
- two stories stopped on a failed check, an app that would not open or an unexpected error, so the next ones do not pay
|
|
158
|
+
to reach the same stop. Settle one of them and it goes on. A question about a gap or a clash never holds it.
|
|
159
|
+
|
|
160
|
+
**Carry on** on one story's budget card covers that story only. The queue goes past the budget only when you press
|
|
161
|
+
**Build continuously** again.
|
|
162
|
+
|
|
163
|
+
A story the Analyst rewrites after you approved does not start by itself: the queue holds, naming it, until you read it and
|
|
164
|
+
press **Build continuously** again. Changing a decision that is about no one part rewrites the whole breakdown, so it says so
|
|
165
|
+
first, with the rough cost.
|
|
166
|
+
|
|
167
|
+
A story whose ticket you deleted does not start again by itself. The queue says so, and **Start this story now** builds it
|
|
168
|
+
again.
|
|
169
|
+
|
|
170
|
+
The Analyst's own work on a breakdown stops at your month budget too, before its next step, never in the middle of one.
|
|
171
|
+
**Carry on** lets it go on this month (`squad requirements retry BR-1`), or raise the budget in Settings.
|
|
172
|
+
|
|
173
|
+
When every story is merged, Build continuously turns itself off. Merged stories wait in the next release, and you
|
|
174
|
+
send it out from **Releases** as always.
|
|
175
|
+
|
|
176
|
+
Terminal: `squad requirements build BR-1 [--pause]`, `squad requirements start BR-1 S-4` (one story now),
|
|
177
|
+
`squad decided RO-31` and `squad decided RO-31 d2 "…"`, `squad requirements decided BR-1 d3 "…"`.
|
|
178
|
+
|
|
179
|
+
## Where it is kept
|
|
180
|
+
|
|
181
|
+
- `.squad/requirements/BR-1/breakdown.yaml` holds the breakdown. The document, its text and its pictures sit beside
|
|
182
|
+
it. The folder goes into git with each of its stories' changes, so your team has it once the first story merges.
|
|
183
|
+
- What only this computer needs (the Analyst's progress, the build switch, the send's progress) is kept in
|
|
184
|
+
squad-kit's folder on this computer.
|
|
185
|
+
- Only the person who added a breakdown has their squad read, build and send it. Others see it.
|
|
186
|
+
|
|
187
|
+
To delete a breakdown and its document, use **Delete** in the **…** menu on the breakdown or its row in the list,
|
|
188
|
+
or `squad requirements delete BR-1`. It cannot be deleted while its stories build.
|
|
189
|
+
|
|
190
|
+
## Not yet
|
|
191
|
+
|
|
192
|
+
- Uploading a new version of a BRD and comparing it with the old one.
|
|
193
|
+
- Bringing changes made in Azure DevOps back into the breakdown.
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# squad-kit vs Spec-Kit
|
|
2
|
+
|
|
3
|
+
Both are spec-driven-development workflow tools for AI coding agents. Same problem, different shape.
|
|
4
|
+
|
|
5
|
+
## TL;DR
|
|
6
|
+
|
|
7
|
+
- **Pick Spec-Kit** if you want clarification and consistency-analysis phases baked in; you're okay with heavier context per command; you prefer Python tooling.
|
|
8
|
+
- **Pick squad-kit** if you trust your planner and want every implementation turn to start with as little ceremony as possible; you prefer Node tooling; you are fine with **shared meta-prompts in the package** and **project rules in your intakes and plans**.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Commands
|
|
13
|
+
|
|
14
|
+
| Stage | squad-kit | Spec-Kit |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| Governance | (none — project-coupled by design) | `/speckit.constitution` |
|
|
17
|
+
| Intake | `squad new-story` (tracker auto-fetch for Jira / Azure DevOps) | `/speckit.specify` |
|
|
18
|
+
| Clarification | (manual during intake review) | `/speckit.clarify` (optional) |
|
|
19
|
+
| Plan | `/squad-plan` or `squad new-plan` / `squad new-plan --api` | `/speckit.plan` |
|
|
20
|
+
| Task breakdown | (inlined in the plan file) | `/speckit.tasks` |
|
|
21
|
+
| Quality gates | `squad doctor` (config / credential / layout checks) | `/speckit.analyze`, `/speckit.checklist` |
|
|
22
|
+
| Execution | open plan file in a fresh agent session | `/speckit.implement` |
|
|
23
|
+
| Housekeeping | `squad status`, `squad list`, `squad rm`, `squad config`, `squad migrate`, `squad upgrade` | — |
|
|
24
|
+
|
|
25
|
+
Squad-kit's `/squad-plan` merges what Spec-Kit splits into `plan → tasks → implement`. One artifact, one contract.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Artifacts per story
|
|
30
|
+
|
|
31
|
+
| | squad-kit | Spec-Kit |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| Intake | `intake.md` | `spec.md` |
|
|
34
|
+
| Plan | `NN-story-<slug>.md` | `plan.md` + `data-model.md` + `contracts/` + `research.md` + `quickstart.md` + `tasks.md` |
|
|
35
|
+
| Reference | `00-overview.md` (feature), `00-index.md` (global) | `.specify/memory/constitution.md` |
|
|
36
|
+
|
|
37
|
+
## Context cost per implementation turn
|
|
38
|
+
|
|
39
|
+
Both measurements include only *framework-induced* context — not your actual code.
|
|
40
|
+
|
|
41
|
+
| | squad-kit | Spec-Kit |
|
|
42
|
+
|---|---|---|
|
|
43
|
+
| Command template loaded | none (plan file is the prompt) | `/implement` template: ~13 KB |
|
|
44
|
+
| Cross-artifact reads | none | tasks + plan + data-model + contracts + research + quickstart |
|
|
45
|
+
| Typical starting context | one plan file (5–15 KB) | 15–25 KB before code is touched |
|
|
46
|
+
|
|
47
|
+
Across dozens of implement turns per feature, that delta compounds.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Customization model
|
|
52
|
+
|
|
53
|
+
| | squad-kit | Spec-Kit |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| Prompt location | Bundled inside the squad-kit npm package (`templates/prompts/`), not user-editable at runtime | `.specify/templates/` + overrides + presets |
|
|
56
|
+
| How to customize | fork squad-kit and patch, or request upstream changes | template override stack, preset priority |
|
|
57
|
+
| Per-project rules | in intakes, plans, and `.squad/config.yaml` (via `squad config`) | managed via overrides |
|
|
58
|
+
|
|
59
|
+
Squad-kit keeps shared meta-prompts in the package; project-specific detail lives in your story and plan files. Spec-Kit uses a template override stack.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Agent integration
|
|
64
|
+
|
|
65
|
+
| | squad-kit | Spec-Kit |
|
|
66
|
+
|---|---|---|
|
|
67
|
+
| Supported agents (v0.2) | Claude Code, Cursor, Copilot, Gemini CLI | 30+ agents |
|
|
68
|
+
| Install style | `squad init --agents <list>` copies slash-command files | Agent-specific install steps |
|
|
69
|
+
| Works without slash commands | yes (`squad new-plan` / `squad new-plan --api` for direct API; copy-paste mode prints to stdout) | yes (CLI-only mode) |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Runtime & distribution
|
|
74
|
+
|
|
75
|
+
| | squad-kit | Spec-Kit |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| Language | Node + TypeScript | Python 3.11+ |
|
|
78
|
+
| Install | `npm i -g squad-kit` | `uv tool install specify-cli --from git+…` |
|
|
79
|
+
| Binary size | single ~174 KB minified JS bundle (~44 KB gzip) | Python package with deps |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## When Spec-Kit is the right choice
|
|
84
|
+
|
|
85
|
+
- You ship to production and want `/analyze` to catch spec-plan drift automatically.
|
|
86
|
+
- Your team includes non-engineers who need `/clarify` to iterate on specs.
|
|
87
|
+
- You are already in the Python/`uv` ecosystem.
|
|
88
|
+
- You want the constitution/governance layer.
|
|
89
|
+
|
|
90
|
+
## When squad-kit is the right choice
|
|
91
|
+
|
|
92
|
+
- You trust yourself (or a strong planner like Opus) to produce correct plans without a clarification phase.
|
|
93
|
+
- You want every implementation turn to be as token-lean as possible.
|
|
94
|
+
- You live in Node/TypeScript tooling already.
|
|
95
|
+
- You are fine with **shared meta-prompts in the package**; project rules live in intakes, plans, and `squad config`, not a parallel template tree.
|
|
96
|
+
- You want **config and credential** changes to be a `squad config set …` away, not a hand-edit-YAML task.
|
|
97
|
+
- You want to use a cheap model for the execution step with confidence.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "squad-kit",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.13",
|
|
4
4
|
"author": "Momen Yasser <momenysr@gmail.com>",
|
|
5
5
|
"description": "Your AI Engineering Squad transforms ideas into production-ready software.",
|
|
6
6
|
"keywords": [
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"files": [
|
|
22
22
|
"dist",
|
|
23
23
|
"templates",
|
|
24
|
+
"docs/*.md",
|
|
24
25
|
"README.md",
|
|
25
26
|
"SECURITY.md",
|
|
26
27
|
"LICENSE"
|