squad-kit 0.12.4 → 1.0.1

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +175 -1
  2. package/README.md +110 -220
  3. package/dist/cli.js +14874 -1389
  4. package/dist/console-ui/assets/ibm-plex-sans-arabic-arabic-400-normal-CyU-ddYS.woff2 +0 -0
  5. package/dist/console-ui/assets/ibm-plex-sans-arabic-arabic-500-normal-C4MQITzh.woff2 +0 -0
  6. package/dist/console-ui/assets/ibm-plex-sans-arabic-arabic-600-normal-0pRdybE_.woff2 +0 -0
  7. package/dist/console-ui/assets/ibm-plex-sans-arabic-arabic-700-normal-DrtBj6UE.woff2 +0 -0
  8. package/dist/console-ui/assets/index-CSk4SKT_.css +1 -0
  9. package/dist/console-ui/assets/index-DKFsGYQn.js +500 -0
  10. package/dist/console-ui/assets/instrument-sans-latin-ext-standard-normal-C5E2Gvlv.woff2 +0 -0
  11. package/dist/console-ui/assets/instrument-sans-latin-standard-normal-BVScPF0l.woff2 +0 -0
  12. package/dist/console-ui/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
  13. package/dist/console-ui/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
  14. package/dist/console-ui/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2 +0 -0
  15. package/dist/console-ui/assets/jetbrains-mono-cyrillic-ext-400-normal-C_uLvvQ5.woff2 +0 -0
  16. package/dist/console-ui/assets/jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2 +0 -0
  17. package/dist/console-ui/assets/jetbrains-mono-cyrillic-ext-600-normal-Dj6eZy5f.woff2 +0 -0
  18. package/dist/console-ui/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
  19. package/dist/console-ui/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
  20. package/dist/console-ui/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2 +0 -0
  21. package/dist/console-ui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  22. package/dist/console-ui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  23. package/dist/console-ui/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 +0 -0
  24. package/dist/console-ui/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
  25. package/dist/console-ui/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
  26. package/dist/console-ui/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2 +0 -0
  27. package/dist/console-ui/assets/jetbrains-mono-vietnamese-400-normal-ByoDsISC.woff2 +0 -0
  28. package/dist/console-ui/assets/jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2 +0 -0
  29. package/dist/console-ui/assets/jetbrains-mono-vietnamese-600-normal-Dtizs43-.woff2 +0 -0
  30. package/dist/console-ui/index.html +5 -5
  31. package/dist/console-ui/logo.svg +8 -17
  32. package/package.json +5 -3
  33. package/templates/demo/proof/sk139-after.png +0 -0
  34. package/templates/demo/proof/sk139-before.png +0 -0
  35. package/templates/demo/proof/sk148-dark-b.png +0 -0
  36. package/templates/demo/proof/sk148-dark.png +0 -0
  37. package/templates/demo/proof/sk148-light.png +0 -0
  38. package/dist/console-ui/assets/index-DP-vFdYe.css +0 -1
  39. package/dist/console-ui/assets/index-DzO_eLUH.js +0 -442
package/CHANGELOG.md CHANGED
@@ -7,6 +7,178 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.1] — 2026-11-03
11
+
12
+ squad-kit 1.0.1 makes the squad steadier and easier to follow, from what we saw in the first trials. To get it
13
+ from 1.0.0, run `squad upgrade` once. From now on the app updates itself with one button.
14
+
15
+ ### Easier to follow
16
+
17
+ - **"From an idea or message" works and shows its progress.** The dialog no longer disappears behind a blurred
18
+ board. The Analyst works in the background with three steps and a clock, and you can press Cancel. You can
19
+ close the window: the draft waits for you under New ticket.
20
+ - **Errors stay on screen** until you close them.
21
+ - **The Conversation tab reads in plain words.** "Handed in its answer" replaces the raw answer, and a command
22
+ the step may not run shows in grey as skipped, not in red as a failure.
23
+ - **A ticket waiting for a free place says so**: "Waiting for a free place", with the limit, instead of
24
+ looking as if it runs.
25
+ - **"Resumed after sleep"** shows when the computer slept in the middle of a step.
26
+
27
+ ### The Update button
28
+
29
+ - **The app looks for a new version** on start and once a day. When one is out, Home and every project show
30
+ it with what is new. **Update now** waits until no agent is in the middle of a step, installs, and restarts
31
+ the app on the same link. Every ticket carries on where it was.
32
+ - **Settings › About squad-kit** shows your version, when it last checked, and a switch for the daily check.
33
+ Terminal: `squad upgrade`.
34
+
35
+ ### Quality
36
+
37
+ - **A new Quality setting** on the Squad and AI page: **Best** (the default), **Balanced** or **Thrifty**.
38
+ On Best, the strongest model builds and reviews at high effort. On Claude Code that is Opus. Terminal:
39
+ `squad config set quality best`.
40
+ - **A new "extra high" effort.** On Best, a Builder run that fails moves the next one up to extra high.
41
+ - **The Reviewer is never weaker than the Builder** on Best and Balanced.
42
+ - **Reading the project after a merge is cheaper.** The project map is only read again when files are added,
43
+ moved or removed, and that read runs on a lighter model.
44
+
45
+ ### No silent hangs
46
+
47
+ - **Stop works at every moment**, also between two runs, and it ends the agent with everything it started. A
48
+ step that runs out of time ends the same way.
49
+ - **Git that talks to a remote has a time limit**, and never waits for a password prompt nobody sees.
50
+ - **Starting an agent has a time limit.** If it cannot start, the step says why instead of waiting.
51
+ - **The Builder no longer waits for the "before" screenshots.** They are taken beside it, with their own time
52
+ limit.
53
+ - **A test, lint or build command with no output for 5 minutes is stopped**, and the ticket says which one.
54
+
55
+ ### Agents stay in their lane
56
+
57
+ - **Every agent runs with the permissions of its step.** The Tester can run the app but cannot change the code;
58
+ what it changes anyway, squad-kit puts back.
59
+ - **No agent can change the instruction files** the next session would follow, such as `CLAUDE.md`, or
60
+ squad-kit's own `.squad/` folder. Agents read copies of the project's rules, never your own folder.
61
+ - **No agent can rewrite git history.** squad-kit checks after each Builder and Tester step.
62
+ - **Every answer is checked.** An incomplete answer is asked for once more, then the step says so plainly.
63
+ - **Text from outside**, such as a tracker item or a pasted message, reaches the agents as data, never as
64
+ orders.
65
+ - **Test, setup and release commands no longer get the AI and tracker keys.**
66
+
67
+ ### No lost work
68
+
69
+ - **A release and a "Looks right" at the same moment** no longer get in each other's way.
70
+ - **Stop keeps the step the ticket was at.**
71
+ - **"Bring in the latest main"** uses the remote's main, not an old local copy.
72
+ - **Only a real clash counts as a clash.** Other git errors say what went wrong. `squad doctor` checks the git
73
+ version.
74
+ - **Tracker updates are kept until they are sent**, and retried when the tracker is down.
75
+ - **A release whose push failed** says "not pushed yet", with **Push again** on the Releases page. Terminal:
76
+ `squad release <version> --push-again`.
77
+ - **Withdraw change** takes back an approved change the squad has not built yet, and puts the spec back to how
78
+ it was. Terminal: `squad propose <ID> --withdraw`.
79
+
80
+ ### Fixes
81
+
82
+ - **The Architect writes the stack**, with each part's role, from the code it reads. `stack.md` was empty.
83
+ - **The Reviewer is told the checks already ran**, so it does not run them again.
84
+
85
+ ## [1.0.0] — 2026-11-02
86
+
87
+ squad-kit 1.0 is an agent harness for the whole software cycle. You write a ticket in plain words. A squad of
88
+ AI agents (Analyst, Architect, Builder, Tester and Reviewer) takes it from that ask to a release, and you stay
89
+ in control through buttons and approvals. It needs Node.js 22 or newer, git, and an AI tool installed and
90
+ signed in: Claude Code today. Moving an existing project: [Moving to 1.0](docs/migrating-to-1.0.md).
91
+
92
+ ### The one app
93
+
94
+ - **Plain `squad` opens one app for all your projects**, from any folder, in your browser at `127.0.0.1:4571`.
95
+ It runs on your computer only, behind a private link.
96
+ - **Home** lists your projects and one **Waiting for you** list across all of them.
97
+ - **Add project** opens a folder browser inside the page. It says what kind of folder you picked, and can make
98
+ a new one.
99
+ - **`squad console`** in a folder adds that project to the app and opens its board, starting the app if needed.
100
+ - Every project has its own board, at its own address. Every button has a terminal command, and commands take
101
+ `--project <name>` from any folder. New: `squad projects`, and `squad inbox` across every project.
102
+ - `squad --restart` and **Restart the board** start a fresh app on the same link. Running work picks up where it
103
+ stopped.
104
+
105
+ ### Projects and files
106
+
107
+ - **Any folder can be a project**: an empty folder (a new repo), code with git (kept as it is), code without git
108
+ (a new repo with your files in its first commit, without `node_modules`, `dist` or `.env`), or a folder with
109
+ several code repos.
110
+ - **The project keeps its own memory in `.squad/`**, as Markdown people can read and edit: `config.yaml`, and
111
+ `tickets/<ID>/` with `ticket.md`, `spec.md`, `questions.md`, `design.md`, `notes.md`, `proof.md` and attached
112
+ files, plus `decisions/`, `releases/`, `rules/` and `knowledge/`.
113
+ - **This computer keeps its own part in `~/.squad-kit/projects/<id>/`**: live progress, agent chats,
114
+ screenshots, voice notes, sign-ins and cost. Nothing secret, personal or big goes into the project folder.
115
+ - **Git stays quiet.** `.squad/` goes in git's local ignore list, never in `.gitignore`. For a project whose
116
+ `.squad/` sits in its one repo, squad-kit commits each ticket's documents on the ticket's branch, and the
117
+ release commit carries the rest. `git log .squad/tickets/<ID>` shows each big moment of a ticket.
118
+
119
+ ### Tickets and the squad
120
+
121
+ - **Write a ticket on the board** in plain words, with criteria, business rules, edge cases and files. Or paste
122
+ an idea or a chat message and the Analyst fills in the ticket for you to check. Bugs have their own form.
123
+ - **Pull a ticket from your tracker.** Azure DevOps today: the backlog by sprint, comments, states, bugs, pull
124
+ requests on Azure Repos, and items closed with the version on release. Tickets keep the tracker's name, like
125
+ `AB-46`; a project without a tracker names its own (`LR-1`).
126
+ - **The squad's loop**: questions, spec, design, build, checks, review, proof, release. You answer, approve the
127
+ spec, approve the design (a developer can do this part), check the proof and release.
128
+ - **Full and Express tracks.** Express is for small fixes: no questions and the plan approved on its own; the
129
+ build, checks, review and your **Looks right** still run.
130
+ - **squad-kit is the boss.** It runs the tests, lint and build itself, starts a fresh Reviewer, and does the git
131
+ and tracker work. Agents never merge, push or grade their own work. The Builder works in its own copy of the
132
+ code; your folder is never touched while it works.
133
+ - **Decisions are saved and linked**, named by the ticket that made them (`AB-46.1`), or `STACK.1` for what the
134
+ Architect found in the existing code. The Architecture page shows how they build on each other.
135
+ - **Every stop has a way out**: try again, fix it yourself, continue anyway (only you can, with a reason that
136
+ stays on the record), or go back to the plan. Nothing hangs silently.
137
+ - **Model levels per role and step**: strongest, balanced or fast, with an effort. squad-kit sets the defaults;
138
+ the team and each person can change them on the Squad and AI page.
139
+ - **One limit of tickets at once** (2 by default, up to 5), shared by all projects, because they share your AI
140
+ account.
141
+ - AI tools plug in as modules. Claude Code runs every role today; Codex is found but cannot run yet.
142
+
143
+ ### Chat
144
+
145
+ - **Talk to any agent** on a ticket, with screenshots, files and voice notes.
146
+ - **Asking never stops the work.** While the squad works, the chat runs beside it and changes nothing.
147
+ - **A change goes through the spec.** **Propose a change**: the Analyst writes the old and new wording and says
148
+ if it is small or big, and you approve. A small change reaches the Builder at the end of its current step. A
149
+ big one pauses it, the Architect updates the design for your approval, and the Builder redoes only what
150
+ changed. One change at a time per ticket. Terminal: `squad propose`.
151
+ - **Released work is for questions only.** A change to it becomes a new linked ticket or a bug report.
152
+ - A new chat window is coming in this release: a side panel with tabs, a full-screen page, a phone layout, and
153
+ Arabic and English shown the right way.
154
+
155
+ ### Teams
156
+
157
+ - **An owner on each ticket**, kept in `ticket.md`, so two squads never build the same ticket.
158
+ - **Hand over** (button and `squad hand-over`) pushes the ticket's branch with its code and documents, and names
159
+ the new owner. Their squad carries on from the branch, with a fresh session from the spec, design and code.
160
+ - **A fresh clone shows the same board**: every ticket with its spec, answers, design, stage and owner, and
161
+ every decision. Live progress, chats and screenshots stay on the computer that made them.
162
+ - Hand over and clones work for a project whose `.squad/` sits in its one repo.
163
+
164
+ ### Cost
165
+
166
+ - **What each ticket and each role used**: runs, tokens, and the cost at the AI company's API prices, per role
167
+ and step. On the ticket's Cost tab, the Squad and AI page, the board's footer and in `squad show`.
168
+ - Your own AI subscription pays for it. The numbers show where the cost goes, so the team can tune the levels.
169
+
170
+ ### Moving from 0.x
171
+
172
+ - **Open a 0.x project** with `squad console` or Add project. Its `stories/`, `plans/` and tracker settings in
173
+ `config.yaml` stay as they are; `config.yaml` gains a `board:` section.
174
+ - **Sign-ins move** from `.squad/secrets.yaml` to `~/.squad-kit/projects/<id>/secrets.yaml`. The 0.x commands
175
+ find them there.
176
+ - **A board from an early 1.0 build** (`.squad/board/`) moves to the new layout on its own, once, with a backup
177
+ in `~/.squad-kit/backups/` and a field-by-field check. Tickets and decisions keep their names. It waits until
178
+ no board runs.
179
+ - The 0.x commands (`new-story`, `new-plan`, `auth`, `config`, `doctor` and others) still ship. The 0.x console
180
+ pages are replaced by the 1.0 app.
181
+
10
182
  ## [0.12.4] — 2026-08-26
11
183
 
12
184
  ### Bug fixes
@@ -631,7 +803,9 @@ First public release.
631
803
  - Plan-generation meta-prompt (`generate-plan.md`), intake template (`intake.md`), and plan skeleton reference (`story-skeleton.md`).
632
804
  - Documentation: `docs/philosophy.md`, `docs/getting-started.md`, `docs/customization.md`, `docs/vs-spec-kit.md`.
633
805
 
634
- [Unreleased]: https://github.com/AzmSquad/squad-kit/compare/v0.6.0...HEAD
806
+ [Unreleased]: https://github.com/AzmSquad/squad-kit/compare/v1.0.1...HEAD
807
+ [1.0.1]: https://github.com/AzmSquad/squad-kit/releases/tag/v1.0.1
808
+ [1.0.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v1.0.0
635
809
  [0.6.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v0.6.0
636
810
  [0.5.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v0.5.0
637
811
  [0.3.0]: https://github.com/AzmSquad/Squad-Kit/releases/tag/v0.3.0
package/README.md CHANGED
@@ -11,274 +11,164 @@
11
11
  <a href="https://squad-kit.com"><img src="https://img.shields.io/badge/site-squad--kit.com-7cffa0?labelColor=0a0a0c" alt="Website"></a>
12
12
  </p>
13
13
 
14
- **Plan once, execute cheap.** A 3-step SDD-style workflow CLI for AI-assisted coding: **raw story → good plan → implementation**. Your expensive model plans once. A cheap model executes many times. Squad-kit owns the folder conventions, the plan meta-prompt, and the agent slash-commands so the token cost goes where it pays off. Deeper product notes live on **[squad-kit.com](https://squad-kit.com)** and in [`docs/`](docs/philosophy.md).
14
+ **Your AI Engineering Squad. One Unified Harness.**
15
15
 
16
- - **Visual console** — `squad console` opens a local, dark-modern web UI for stories, plans, live planner runs, config, secrets, tracker, and doctor. Loopback-only, token-gated. v0.6.0 redesigned the console with a near-monochrome Vercel/Geist palette, a Cmd+K command palette, Linear-style chord shortcuts (`g s`, `g p`, `?`), a portal-rendered dialog system, and a density toggle. Full tour: [`docs/console.md`](docs/console.md).
16
+ squad-kit is an agent harness for the whole software cycle. You describe what you need in plain words. A
17
+ squad of AI agents takes it from that ask to a release: the Analyst, the Architect, the Builder, the Tester
18
+ and the Reviewer. You stay in control. The squad asks you when it needs you, and nothing important moves on
19
+ without your approval.
17
20
 
18
- ![Squad console dashboard](docs/images/console/dashboard.png)
21
+ ## Who it is for
19
22
 
20
- ```
21
- .squad/
22
- ├── stories/<feature>/<id>/ # intake + attachments (one per story)
23
- └── plans/<feature>/ # NN-story-<id>.md (one per executable plan)
24
- ```
25
-
26
- ## What's new in 0.12.0
27
-
28
- - **Plan on your Claude subscription.** `squad auth login` signs in with your Anthropic account and `squad new-plan --api` runs on your Claude plan — no API key, no per-token API bill. Usage draws on the same limits as Claude and Claude Code. Full guide: [`docs/auth.md`](docs/auth.md) · [on the site](https://squad-kit.com/docs/auth).
29
- - **`planner.auth.anthropic`** — `subscription` | `api-key` | `auto` (default `auto`). Existing API-key workspaces keep working; `squad doctor` gained `planner auth mode` and `planner auth vs. runtime` so the resolved mode is never a mystery.
30
- - **Console auth surface** — an Authentication control on Config, a Claude Account card on Secrets, an auth badge on Generate and on every run record.
31
-
32
- ## What's new in 0.11.0
33
-
34
- - **Persisted run history** — `--api` runs append to `.squad/runs/<id>.events.jsonl` (thinking text redacted on disk, old files rotated), and the console gained a runs index plus a full run report page.
35
- - **Richer live telemetry** — tool lifecycle, thinking deltas, and runtime metadata stream to both the CLI and the console; the CLI prints a stage pipeline and budget meters.
36
-
37
- ## What's new in 0.10.0
38
-
39
- - **Anthropic planning moved to the Claude Agent SDK** by default so Opus 4.7 can use adaptive thinking and effort. OpenAI and Google stay on the Vercel AI SDK.
40
- - **Thinking, effort, and runtime are configurable** — `planner.runtime.anthropic`, `planner.providerOptions.anthropic`, and the `--anthropic-runtime` / `--effort` / `--scout-effort` / `--no-thinking` flags.
41
- - **`squad doctor` checks runtime wiring**, model-vs-runtime fit, and the Agent SDK binary.
42
-
43
- ## What's new in 0.9.0
44
-
45
- - **Scout stage** — a cheap-tier model picks the files worth preloading before your plan model drafts, cutting the expensive model's read loop.
46
- - **LLM-free validation pass** flags missing paths, line ranges past EOF, and simple symbol problems; `--strict-validation` writes `*.partial.md` when it finds something.
47
-
48
- ## What's new in 0.8.0
49
-
50
- - **Rate-limit handling you can watch** — the Generate page shows a countdown, auto-retry banner, and rerun control; the planner emits `rate_limit` events distinguishing "retrying" from "aborted".
51
-
52
- ## What's new in 0.7.0
23
+ - **Business analysts and project managers** who want to turn tickets into working software, and always see
24
+ where each ticket is. No terminal skills needed after the first step.
25
+ - **Developers** who want the squad to do the routine work, while they approve designs and read the code.
26
+ - **Teams** who want specs, decisions and releases kept with the project, in files anyone can read.
53
27
 
54
- - **GitHub Issues as a tracker** — owner/repo in config, PAT (or `GITHUB_TOKEN`) in secrets, search and import like Jira or Azure. **Linear was removed** as a tracker type in the same release.
28
+ ## How a ticket goes
55
29
 
56
- ## What's new in 0.6.0
30
+ 1. You write a ticket on the board, or pull one from your tracker (the tool where your team keeps its work
31
+ items).
32
+ 2. The Analyst asks you questions. You answer with a click.
33
+ 3. The Analyst writes the **spec**: the story and a "done when" list. You approve it.
34
+ 4. The Architect writes the **design**: the decision and the steps. You, or a developer, approve it.
35
+ 5. The Builder writes the code in its own copy of the project. Your own folder stays as it is.
36
+ 6. squad-kit runs the tests, lint and build itself. The Reviewer checks the work with fresh eyes. The Tester
37
+ takes a screenshot for each "done when".
38
+ 7. You check this **proof** and press **Looks right**.
39
+ 8. You press **Release**. squad-kit writes the changelog, sets the version and adds the git tag.
57
40
 
58
- - **Console redesign** — Geist-style flat dark UI, Cmd+K command palette, global keyboard shortcuts, portal dialogs, density toggle. Same CLI and `.squad/` on disk; no migration. See [`docs/console.md`](docs/console.md).
59
-
60
- ## What's new in 0.5.0
61
-
62
- - **`squad console`** — local web UI on `127.0.0.1:4571` for the whole workflow (dashboard with run charts, stories, plans + diff, live Generate SSE, config/secrets editors, tracker search/import, graphical doctor). See [`docs/console.md`](docs/console.md).
63
- - **Run history** — last 20 planner runs under `.squad/runs/` power dashboard charts; **recent projects** list in `~/.squad/recent-projects.json` for quick handoff between repos.
64
- - **`pnpm size:guard`** — publish tarball must stay under 2.5 MB unpacked.
65
-
66
- ## What's new in 0.4.0
67
-
68
- - **`squad new-plan --api` limits UX.** When a budget or cap stops the planner, the CLI asks before more API spend. Stop saves a `*.partial.md` with a clear status flag; exit code **2** when the run did not finish cleanly.
69
- - **`planner.maxOutputTokens`** in merged config (default **16384** tokens per model round).
70
- - **Shorter plan filenames** — new plans use the story folder id (`NN-story-<id-slug>.md`), not a long title slug; the overview table still shows the title.
71
- - **Richer intakes** when `squad new-story` fetches Jira / Azure work items (more fields wired into the template).
72
- - **`squad list`** reads `<!-- squad-kit: … -->` metadata from the first matching line near the top of a plan file, not only line 1.
73
-
74
- ## What's new in 0.3.0
75
-
76
- - **Prompt caching** across Anthropic, OpenAI, and Google — ~70% fewer billed input tokens on
77
- a typical planning run, and Anthropic Tier 1 ITPM pressure roughly 5× lower.
78
-
79
- ## What's new in 0.2.0
80
-
81
- - **Direct planner.** `squad new-plan --api` runs Anthropic, OpenAI, or Google from your terminal and writes the plan file. Demand-driven context keeps tokens bounded.
82
- - **Tracker auto-fetch.** `squad new-story --id <ID>` pulls title, description, labels, and attachments (≤ 10 MB each) from Jira Cloud or Azure DevOps Services.
83
- - **Secrets split.** API tokens live in `.squad/secrets.yaml` (git-ignored, `0600` on POSIX). `.squad/config.yaml` never holds secrets; the loader rejects secret-shaped keys.
84
- - **Interactive-first UX.** Missing input prompts in a TTY; `-y` / `--yes` or `CI=1` opts out and fails fast.
85
- - **`squad doctor`.** Full read-only health check; `--fix` for non-destructive repairs, `--json` for scripting.
86
- - **`squad migrate`.** One-shot 0.1.x → 0.2.0 structural migrations (delete legacy `.squad/prompts/`, permissions, config normalisation). Destructive; use `--dry-run` first.
87
- - **`squad upgrade`.** Safe npm-backed self-update (`--check` to verify only).
88
- - **`squad config`.** `show`, `set planner` / `set tracker`, `unset …`, `remove-credential …` — edit config and secrets without hand-editing YAML.
89
- - **`squad rm`.** `rm story` / `rm plan` / `rm feature` with `--dry-run`, `--trash`, and cascading overview updates.
90
- - **Bundled prompts.** `generate-plan.md`, `intake.md`, and `story-skeleton.md` ship inside the npm package; upgrade the CLI to update them.
91
-
92
- Full list in [`CHANGELOG.md`](CHANGELOG.md).
93
-
94
- ## Upgrading from 0.1.x
95
-
96
- Existing squad-kit users should run two commands, once per repo:
97
-
98
- ```bash
99
- pnpm add -g squad-kit # or: npm install -g squad-kit — or: squad upgrade
100
- cd your-project && squad migrate
101
- ```
41
+ When the squad needs you, a card shows up in **Waiting for you**. Everything else, the squad handles. Every
42
+ button also has a terminal command, so developers can do the same from the terminal.
102
43
 
103
- `squad migrate` deletes the now-unused `.squad/prompts/` directory, appends the managed `.gitignore` block, tightens `.squad/secrets.yaml` permissions to `0600`, and normalises `.squad/config.yaml`. It is idempotent but destructive — run it with `--dry-run` first if you forked the prompt files.
44
+ ## What you need
104
45
 
105
- Full upgrade walkthrough, including what-if scenarios and how to recover customised prompts: [migration guide (repo)](docs/migrating-from-0.1.md) · [migration guide (site)](https://squad-kit.com/docs/migrating-from-0.1).
46
+ - **Node.js** 22 or newer.
47
+ - **git**.
48
+ - **An AI tool**, installed and signed in once with your own account. Today that is **Claude Code**, the only
49
+ AI tool the squad runs on. squad-kit uses your existing sign-in, so there is nothing new to buy. squad-kit
50
+ also finds Codex, but cannot run it yet.
106
51
 
107
52
  ## Install
108
53
 
109
54
  ```bash
110
- npm install -g squad-kit
111
- # or
112
- pnpm add -g squad-kit
55
+ npm i -g squad-kit
113
56
  ```
114
57
 
115
- Requires Node 18+.
116
-
117
- ## Quickstart
58
+ ## Open squad-kit
118
59
 
119
60
  ```bash
120
- cd your-project
121
- squad init # interactive: tracker, planner, agents, name
122
- squad new-story auth --title "SSO support" # or: squad new-story auth --id ENG-42 to auto-fetch
123
- # → edit .squad/stories/auth/ENG-42/intake.md
124
-
125
- /squad-plan .squad/stories/auth/ENG-42/intake.md # in your agent (Claude / Cursor / Copilot / Gemini)
126
- # → .squad/plans/auth/01-story-sso-support.md
127
-
128
- # new agent chat · attach ONLY the plan file · a cheap model ships it
61
+ squad
129
62
  ```
130
63
 
131
- No slash commands in your agent? Skip the meta-prompt copy-paste entirely:
64
+ This opens squad-kit in your browser. It runs on your computer only, at `127.0.0.1:4571`. It is one app for
65
+ all your projects:
132
66
 
133
- ```bash
134
- squad new-plan --api # interactive picker, direct provider call, writes the plan file
135
- ```
67
+ - **Home** lists your projects, and one **Waiting for you** list for all of them.
68
+ - Each project has its own **board**, with its tickets in columns, from a new ticket to its release.
69
+
70
+ Keep the terminal open while you work. Press Ctrl-C there to stop squad-kit. The squad picks up where it was
71
+ the next time you run `squad`.
136
72
 
137
- ### Plan on your Claude subscription
73
+ ## Add a project
138
74
 
139
- If you already pay for **Claude Pro or Max**, you do not need an Anthropic API key to use the direct planner:
75
+ On Home, press **Add project** and pick a folder in the folder browser. Or open a terminal in the folder and
76
+ run:
140
77
 
141
78
  ```bash
142
- squad init # choose Anthropic, then "Use my Claude subscription (browser login)"
143
- squad auth login # browser sign-in; or just run `claude` and use /login
144
- squad new-plan --api # plans on your Claude plan
79
+ squad console
145
80
  ```
146
81
 
147
- **No API key is needed** on this path. Planning usage draws on your **Claude plan's usage limits** — the same limits Claude and Claude Code consume — so there is no per-token API bill, but a long planning run does consume part of your window. Opus planning against a **Pro** plan drains that window noticeably faster than against **Max**.
148
-
149
- Already signed in to Claude Code? squad-kit picks that login up automatically. Prefer an API key? Nothing changed — set `planner.auth.anthropic: api-key`. Details, CI setup, precedence, and troubleshooting: [`docs/auth.md`](docs/auth.md) · [on the site](https://squad-kit.com/docs/auth).
82
+ Any folder works:
150
83
 
151
- Configuration, credential edits, and non-interactive flags: see [`docs/customization.md`](docs/customization.md) and `squad config show`. Full walkthrough: [`docs/getting-started.md`](docs/getting-started.md).
152
-
153
- ## Commands
154
-
155
- | Command | What it does |
84
+ | The folder | What squad-kit does |
156
85
  | --- | --- |
157
- | `squad init` | Scaffold `.squad/` with config, bundled prompts reference, and agent slash-commands. See [`docs/getting-started.md`](docs/getting-started.md). |
158
- | `squad new-story [feature] [--id ID] [--title …] [--no-tracker] [--no-fetch] [--no-attachments] [--attachment-mb n]` | Create a story intake. Auto-fetches from the configured tracker when `--id` is given. |
159
- | `squad new-plan [intake] [--api] [--copy] [--feature <slug>] [--all]` | Generate a plan from an intake. `--api` calls the configured planner; without `--api`, copy-paste mode prints the prompt to stdout and clipboard (`--no-clipboard` to skip the clipboard). |
160
- | `squad status` | Counts, next `NN`, planner and tracker rows (including credential source). |
161
- | `squad list [--feature <slug>]` | Table of stories and plan state. |
162
- | `squad tracker link [story] [id]` | Attach or update a tracker id on an intake. |
163
- | `squad auth <login\|status\|logout>` | Sign in to Anthropic with your Claude subscription, inspect the resolved auth, or clear the stored token. `login` takes `--token <v>` (CI) and `--print-only`; `status` takes `--json` and `--offline`. See [`docs/auth.md`](docs/auth.md) · [site](https://squad-kit.com/docs/auth). |
164
- | `squad config <show\|set\|unset\|remove-credential> …` | View and edit `.squad/config.yaml` and `.squad/secrets.yaml` interactively. See [`docs/customization.md`](docs/customization.md). |
165
- | `squad rm <story\|plan\|feature> [target] [--dry-run] [--trash] [-y]` | Safely delete with cascading overview updates. |
166
- | `squad doctor [--fix] [--json]` | Full health check; `--fix` applies non-destructive repairs. |
167
- | `squad migrate [--dry-run] [-y]` | One-shot 0.1.x → 0.2.0 structural migrations. Destructive. |
168
- | `squad upgrade [--check] [-y]` | Check npm and install a newer squad-kit release. |
169
- | `squad console [--port n] [--no-open]` | Start the loopback web console; see [`docs/console.md`](docs/console.md). |
170
-
171
- Deeper option lists: `squad <command> --help` and the `docs/` pages above.
172
-
173
- ## Direct planner (optional)
174
-
175
- Off by default. Enable during `squad init` (answer **yes** to *Enable automatic plan generation?*) or later with `squad config set planner`. Supported providers: Anthropic, OpenAI, Google.
176
-
177
- ### Credential resolution order
178
-
179
- **Anthropic — default: your Claude subscription**
86
+ | An empty folder | Makes a new git repo. The Architect picks the stack with you on your first ticket. |
87
+ | Code with git | Keeps your repo and its history as they are. |
88
+ | Code without git | Makes a repo, with your files in its first commit. Generated folders like `node_modules` and `dist`, and `.env` files, stay out. |
89
+ | A folder with several code repos | Works across them. Each ticket works in one repo. |
90
+ | A squad-kit 0.x project | Keeps your stories, plans and tracker settings. Moves your sign-ins to this computer. |
180
91
 
181
- 1. **`planner.auth.anthropic`** in `.squad/config.yaml` — `subscription` | `api-key` | `auto` (merged default: **`auto`**).
182
- 2. **`subscription`** — the login created by `squad auth login` (or `claude` → `/login`), resolved in this order:
183
- `CLAUDE_CODE_OAUTH_TOKEN` → `planner.anthropicOauthToken` in `.squad/secrets.yaml` → the OS credential store (macOS Keychain / `~/.claude/.credentials.json`).
184
- 3. **`api-key`** — `ANTHROPIC_API_KEY` → `SQUAD_PLANNER_API_KEY` → `.squad/secrets.yaml`.
185
- 4. **`auto`** — a detected Claude login first, otherwise the API key chain, otherwise fail naming both recovery paths.
92
+ Then the Architect reads the project, which takes a few minutes. It maps the code and finds how to install,
93
+ test, build and run it. You can follow it on the board.
186
94
 
187
- In subscription mode squad-kit **clears `ANTHROPIC_API_KEY` and `ANTHROPIC_AUTH_TOKEN` from the planner subprocess** (your shell is untouched): both outrank the login credential inside Claude Code, so an inherited one would silently bill API credits instead. If you have a key exported and it is being ignored, that is why.
95
+ ## Your first ticket
188
96
 
189
- `auth: subscription` requires the Agent SDK runtime — `planner.runtime.anthropic: vercel` is a hard, early failure, never a silent downgrade.
97
+ 1. On the board, press **New ticket**.
98
+ 2. Write what you want in plain words. Add business rules, examples or screenshots if you have them. Or paste
99
+ an idea or a chat message, and the Analyst fills in the ticket for you to check.
100
+ 3. Press create. The card moves across the board as the squad works.
101
+ 4. Answer, approve and check when a card shows up in **Waiting for you**.
190
102
 
191
- **OpenAI / Google — API key only, unchanged**
103
+ The step-by-step guide is in [Getting started](docs/getting-started.md).
192
104
 
193
- 1. Provider env var (`OPENAI_API_KEY`, `GOOGLE_API_KEY`).
194
- 2. `.squad/secrets.yaml` under `planner.<provider>` (or cross-provider `SQUAD_PLANNER_API_KEY`).
195
- 3. Interactive prompt (TTY only).
196
- 4. Fail with a recovery hint.
105
+ ## Where your files live
197
106
 
198
- The deep page — both login paths, per-platform credential storage, CI, usage limits, and a troubleshooting table — is [`docs/auth.md`](docs/auth.md), also served at [squad-kit.com/docs/auth](https://squad-kit.com/docs/auth).
107
+ squad-kit keeps files in two places. The test is simple: does another person need it to carry on?
199
108
 
200
- Override the default plan-phase model without editing squad-kit:
109
+ **Yes: in the project folder, in `.squad/`.** This is the project's memory. It is plain Markdown and YAML that
110
+ people can read and edit.
201
111
 
202
- ```yaml
203
- planner:
204
- enabled: true
205
- provider: anthropic
206
- auth:
207
- anthropic: subscription # or api-key, or auto (default)
208
- cache:
209
- enabled: true # default; turn off via squad config set planner
210
- modelOverride:
211
- anthropic: claude-opus-5-0 # riding a newer provider release early
112
+ ```
113
+ .squad/
114
+ config.yaml the project's settings
115
+ tickets/AB-46/ one folder per ticket: ticket.md, spec.md, questions.md,
116
+ design.md, notes.md, proof.md, and files people attached
117
+ decisions/ what the squad decided, and why: AB-46.1.md, STACK.1.md
118
+ releases/ what each release carried
119
+ rules/ house rules for each role
120
+ knowledge/ what the squad learned about the project
212
121
  ```
213
122
 
214
- `squad status` marks the planner row `(override)` when a `modelOverride` is active, and shows a **planner auth** row with the resolved mode. `squad doctor` probes the provider's `/v1/models` endpoint (no paid completion) and tells you what to do if the id is no longer served — that probe and the API rate-tier check both **skip on subscription auth**, since there is no API key to list models with and no API rate tier to warn about.
215
-
216
- Slash commands inside your agent (`/squad-plan`) continue to work unchanged — the agent already has your repo in scope. The direct planner is an alternative path, not a replacement. For where keys live, see [Secrets](#secrets) below and [`docs/customization.md`](docs/customization.md).
217
-
218
- ## Tracker auto-fetch
219
-
220
- `squad new-story <feature> --id <ID>` pulls the work item's title, description, labels, and attachments (≤ 10 MB each) straight into the intake. Supported trackers in 0.2.0: **Jira Cloud**, **Azure DevOps Services**.
221
-
222
- Credentials follow the same resolution order as the planner (env → `.squad/secrets.yaml` → prompt → fail). `squad init` prompts for them when a supported tracker is selected.
223
-
224
- Flags:
225
-
226
- - `--no-fetch` — scaffold an empty intake; never call the tracker.
227
- - `--no-attachments` — fetch metadata only.
228
- - `--attachment-mb <n>` — override the 10 MB per-file cap.
229
- - `--no-tracker` — skip the tracker id requirement for this story even when `naming.includeTrackerId: true`.
230
-
231
- Full example with Azure DevOps: [`docs/getting-started.md`](docs/getting-started.md).
232
-
233
- ## Secrets
234
-
235
- squad-kit stores settings in two files:
236
-
237
- | File | Purpose | Git-tracked? | Editable by hand? |
238
- | --- | --- | --- | --- |
239
- | `.squad/config.yaml` | Project name, tracker, naming, agents, planner shape. | yes — commit it | yes, but `squad config set` is safer |
240
- | `.squad/secrets.yaml` | Planner + tracker API tokens, and the Claude OAuth token (`planner.anthropicOauthToken`). | **no** — auto-ignored, `0600` on POSIX | no — use `squad auth login` / `squad config set` / `squad init` |
241
-
242
- `config.yaml` rejects credential-shaped key names at load time — `apiKey`, `api_key`, `token`, `oauthToken`, `anthropicOauthToken`, `secret`, `credential`, `credentials` — so accidental commits fail loud. Matching is on the **exact lowercased key name**, not a substring: a substring rule would reject the legitimate `planner.maxOutputTokens`. Any future credential-shaped key has to be added to that list by name.
123
+ **No: on this computer, in `~/.squad-kit/`.** Live progress, agent chats, screenshots, sign-ins (tokens) and
124
+ cost belong to you and this computer. They never go into the project folder.
243
125
 
244
- Rotate a credential with `squad config set planner` or `squad config set tracker`; remove one with `squad config remove-credential <section>`. `squad auth logout` removes only the Claude OAuth token squad-kit stored and never touches your global Claude Code login.
126
+ For a project whose `.squad/` sits inside its code repo, squad-kit commits each ticket's documents on the
127
+ ticket's own branch, so they reach `main` with the code. `.squad/` stays out of your own `git status`.
245
128
 
246
- ## Why not Spec-Kit?
129
+ ## Work with your team
247
130
 
248
- Both aim at spec-driven development. They make different bets.
131
+ - **Tracker.** Connect your tracker in Settings, then pull work items onto the board. Tickets keep the tracker's
132
+ name, like `AB-46`. squad-kit moves the item along as the squad works, posts the answers and the plan as
133
+ comments, and opens a pull request for each finished ticket. Today this works with **Azure DevOps** (Azure
134
+ Boards and Azure Repos).
135
+ - **Hand over.** Give a ticket to a teammate with **Hand over**. squad-kit pushes the ticket's branch with its
136
+ code and documents, and names the new owner. Their squad carries on from there.
137
+ - **A new computer or a new teammate.** Clone the project and add it. The board comes back from `.squad/`:
138
+ every ticket with its spec, answers, design, stage and owner, and every decision.
249
139
 
250
- | | squad-kit | Spec-Kit |
251
- | --- | --- | --- |
252
- | Commands | `init`, `new-story`, `new-plan`, `status`, `doctor`, `migrate`, `upgrade`, `list`, `rm`, `tracker link`, `auth`, `config` | `constitution`, `specify`, `clarify`, `plan`, `tasks`, `analyze`, `checklist`, `implement` |
253
- | `/implement` turn starts with | one plan file (~5–15 KB) | 5–7 command templates + cross-artifact reads (~15–25 KB) |
254
- | Model-tier awareness | Built into the philosophy (planner ≠ executor) | Not prescribed |
255
- | Generated artifacts per story | `intake.md`, `NN-story-<id>.md`, overview row | `spec.md`, `plan.md`, `data-model.md`, `contracts/`, `research.md`, `quickstart.md`, `tasks.md` |
256
- | Customization | Prompts ship with the CLI (fork squad-kit to change them). | Template override stack with presets/extensions |
257
- | Runtime | Node + TypeScript, npm-distributable | Python + `uv` |
258
- | Scope | Intentionally small | Broad, with safety nets (`clarify`, `analyze`) |
140
+ Hand over and clones work for a project whose `.squad/` sits in its one code repo.
259
141
 
260
- Spec-Kit ships safety rails. Squad-kit ships the cheap path and gets out of the way. Pick squad-kit when your planner already produces trustworthy plans; pick Spec-Kit when you want the process to catch planning mistakes for you.
142
+ ## Talk to the squad
261
143
 
262
- See [`docs/philosophy.md`](docs/philosophy.md) for the token math and [`docs/vs-spec-kit.md`](docs/vs-spec-kit.md) for the full comparison.
144
+ Open a chat with any agent on a ticket. **Asking never stops the work**: the squad keeps working while you
145
+ talk. To change what gets built, press **Propose a change**. The Analyst writes the change into the spec, old
146
+ and new side by side, and you approve it. A released ticket answers questions only. A change to it becomes a new
147
+ linked ticket or a bug report.
263
148
 
264
- ## Tradeoffs to know
149
+ ## Cost and models
265
150
 
266
- - **Quality depends on the planning model.** squad-kit has no safety-net commands. Use a strong model for `new-plan`.
267
- - **Plans are project-coupled.** They reference real file paths. That is the point — do not expect portability between projects.
268
- - **Global `NN` can collide on parallel branches.** Rebase-and-renumber is the resolution. Documented in [`docs/customization.md`](docs/customization.md).
269
- - **Anthropic Tier 1 + Opus** shares a tight input-token-per-minute bucket. **0.3.0** added prompt caching (on by default) so typical multi-turn plans stay viable; see [Prompt caching](docs/customization.md#prompt-caching) in the customization docs.
270
- - **Subscription planning is not free planning.** It removes the per-token API bill, not the cost: Agent SDK usage draws on your Claude plan's usage limits. Opus planning on **Pro** will exhaust a window much faster than on **Max**. See [`docs/auth.md`](docs/auth.md).
151
+ - squad-kit picks a **model level** for each role and step from the project's **Quality** setting: **Best**
152
+ (the default) builds and reviews on the strongest model, **Balanced** builds on it at medium effort, and
153
+ **Thrifty** builds on a lighter one. **Fast** stays for screenshots and small helpers. The team or each person
154
+ can change single steps on the **Squad and AI** page.
155
+ - The board shows **what each ticket and each role used**, in tokens and in money at the AI company's API
156
+ prices. Your own AI subscription pays for it. This shows where the cost goes.
157
+ - One **limit of tickets at once** (2 by default, up to 5) is shared by all your projects, because they use the
158
+ same AI account.
271
159
 
272
- ## Non-goals for 0.2
160
+ ## Docs
273
161
 
274
- We ship lean on purpose. Current non-goals:
162
+ - [Getting started](docs/getting-started.md): your first hour, from install to a release.
163
+ - [Moving to 1.0](docs/migrating-to-1.0.md): from squad-kit 0.x, and from early 1.0 boards.
164
+ - [The app](docs/console.md): Home, the board, the ticket drawer, Squad and AI, and Settings.
165
+ - [CHANGELOG](CHANGELOG.md): what changed in each version.
275
166
 
276
- - OpenAI-compatible generic endpoint (local models, OpenRouter, etc.); [Direct planner (optional)](#direct-planner-optional) covers hosted Anthropic, OpenAI, and Google
277
- - MCP server
278
- - `squad implement` (future release)
279
- - `/clarify`, `/analyze`, constitution-equivalent
280
- - Telemetry
167
+ The 0.x planner commands (`squad new-story`, `squad new-plan`, `squad auth` and others) still ship. Their docs
168
+ are kept as they were: [auth](docs/auth.md), [customization](docs/customization.md),
169
+ [philosophy](docs/philosophy.md), [squad-kit vs Spec-Kit](docs/vs-spec-kit.md) and
170
+ [migrating from 0.1](docs/migrating-from-0.1.md).
281
171
 
282
172
  ## License
283
173
 
284
- MIT. Contributions welcome — see [`CONTRIBUTING.md`](CONTRIBUTING.md).
174
+ MIT. Contributions welcome. See [`CONTRIBUTING.md`](CONTRIBUTING.md).