squad-kit 1.0.0 → 1.1.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/CHANGELOG.md +148 -1
- package/README.md +32 -7
- package/SECURITY.md +42 -13
- package/dist/cli.js +7204 -2092
- package/dist/console-ui/assets/index-B5OB6sbE.css +1 -0
- package/dist/console-ui/assets/index-CmwEXgR9.js +551 -0
- package/dist/console-ui/index.html +2 -2
- package/package.json +2 -2
- package/dist/console-ui/assets/index-Bu__eV-2.js +0 -495
- package/dist/console-ui/assets/index-nCcUzpPA.css +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,151 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.1.0] — 2026-11-03
|
|
11
|
+
|
|
12
|
+
squad-kit 1.1 is about never wondering what the squad is doing, and always having a way out.
|
|
13
|
+
|
|
14
|
+
### Always know what is happening
|
|
15
|
+
|
|
16
|
+
- **Every card says what is happening** in plain words: "Builder · step 3 of 6 · editing the booking page", how
|
|
17
|
+
long it has run, and how long that step usually takes on this project. squad-kit learns the usual times from the
|
|
18
|
+
project's own history. A ticket over the limit says "Next in line: starts when a slot is free".
|
|
19
|
+
- **The Now tab** says in one sentence what happens now and what comes next. The stage tracker shows how long each
|
|
20
|
+
stage took. Terminal: `squad status <ticket>`, and `squad show` prints the same.
|
|
21
|
+
- **Ask about a ticket**: "is there a problem?", "when will it be ready?", "what is it doing?". Status questions are
|
|
22
|
+
answered at once from the live record, in English or Arabic, at no AI cost. A question that would change the work
|
|
23
|
+
offers Propose a change or a note, and says when the note will be read. Terminal: `squad ask <ticket> "..."`.
|
|
24
|
+
|
|
25
|
+
### Waiting for you, loud
|
|
26
|
+
|
|
27
|
+
- **A banner on every page** when something needs you, with the button to press on each item.
|
|
28
|
+
- **The browser tab shows the count**: "(2) roomflow".
|
|
29
|
+
- **Desktop notices**, asked for once: one notice per new question, approval, proof or stop. No sound. Settings ›
|
|
30
|
+
Desktop notices turns them on or off.
|
|
31
|
+
|
|
32
|
+
### Time limits you can see
|
|
33
|
+
|
|
34
|
+
- **"Taking longer than usual"** past twice a step's usual time, with what it is doing, its last progress and when
|
|
35
|
+
squad-kit stops it: **Give it 10 more minutes**, **Stop and try again**, **Stop**. Terminal:
|
|
36
|
+
`squad wait <ticket> --more 10m`, `squad stop <ticket> --again`.
|
|
37
|
+
- **"Looks stuck"** says what squad-kit checked, and keeps **End the stuck command**.
|
|
38
|
+
|
|
39
|
+
### Your apps
|
|
40
|
+
|
|
41
|
+
- **Start, Open, Restart and Stop** your app from the sidebar. squad-kit runs it from its own copy of `main` (never
|
|
42
|
+
your folder), brings the copy up to date first, copies your `.env` files into it, and says Running only when the
|
|
43
|
+
address answers. **Show output**
|
|
44
|
+
has the last lines.
|
|
45
|
+
- **Run the new version** after Looks right.
|
|
46
|
+
- **A busy port** gets a plain message, and the fix when there is one. No start command: **Ask the Architect to find
|
|
47
|
+
it**, or **Type it**.
|
|
48
|
+
- Terminal: `squad app start|stop|restart|status|set|find`.
|
|
49
|
+
|
|
50
|
+
### Delete and Archive
|
|
51
|
+
|
|
52
|
+
- **Delete** a ticket that is not merged: squad-kit stops the squad on it, then removes its copy of the code, its
|
|
53
|
+
branch, its files, its unmerged decisions, its chats and screenshots. The tracker item and the cost stay. A delete
|
|
54
|
+
cut off half-way finishes with **Delete again**.
|
|
55
|
+
- **Archive** a merged or released ticket to take it off the board; **Show archived** and **Unarchive** bring it
|
|
56
|
+
back.
|
|
57
|
+
- Terminal: `squad delete <ticket>`, `squad archive <ticket> [--undo]`, `squad board --archived`.
|
|
58
|
+
|
|
59
|
+
### When something goes wrong
|
|
60
|
+
|
|
61
|
+
- **Every stop says what happened, what is safe, and the ways out** as buttons. The exact error is in the
|
|
62
|
+
Developer tab and the app log.
|
|
63
|
+
- **Claude's usage limit pauses the squad** for every project, shows when it resets, and carries on by itself from
|
|
64
|
+
the same step, without counting a failed try. **Try now** carries on at once (`squad try-now`).
|
|
65
|
+
- **Report a problem** saves one `.zip` to send for help: the ticket, its conversations, the last day of the app
|
|
66
|
+
log and the versions. Never sign-ins, tokens or `.env` files. Terminal: `squad report [ticket]`.
|
|
67
|
+
- **An app log** in `~/.squad-kit/logs/`, one file a day, kept 14 days. Terminal: `squad logs --tail`.
|
|
68
|
+
|
|
69
|
+
### Also
|
|
70
|
+
|
|
71
|
+
- **On a phone**, the sidebar folds away behind a menu button, and the ticket drawer takes the whole screen.
|
|
72
|
+
- **`squad inbox`** names a newer decision that changes a plan correctly (it said "Looks stuck").
|
|
73
|
+
- **Copied terminal commands quote pasted text safely.** A note or answer with `$(…)`, backticks or a trailing `\`
|
|
74
|
+
could run or break when the command beside its button was pasted into a terminal.
|
|
75
|
+
- **Tracker text is decoded once.** A written `&lt;` in a Jira or Azure DevOps item no longer turns into `<`.
|
|
76
|
+
- **Security**: GitHub code scanning, secret scanning with push protection and Dependabot are on, the release
|
|
77
|
+
workflow's Actions are pinned to exact versions, npm publishing runs only from release tags, and `SECURITY.md`
|
|
78
|
+
describes 1.0. The issues code scanning found are fixed.
|
|
79
|
+
|
|
80
|
+
## [1.0.1] — 2026-11-03
|
|
81
|
+
|
|
82
|
+
squad-kit 1.0.1 makes the squad steadier and easier to follow, from what we saw in the first trials. To get it
|
|
83
|
+
from 1.0.0, run `squad upgrade` once. From now on the app updates itself with one button.
|
|
84
|
+
|
|
85
|
+
### Easier to follow
|
|
86
|
+
|
|
87
|
+
- **"From an idea or message" works and shows its progress.** The dialog no longer disappears behind a blurred
|
|
88
|
+
board. The Analyst works in the background with three steps and a clock, and you can press Cancel. You can
|
|
89
|
+
close the window: the draft waits for you under New ticket.
|
|
90
|
+
- **Errors stay on screen** until you close them.
|
|
91
|
+
- **The Conversation tab reads in plain words.** "Handed in its answer" replaces the raw answer, and a command
|
|
92
|
+
the step may not run shows in grey as skipped, not in red as a failure.
|
|
93
|
+
- **A ticket waiting for a free place says so**: "Waiting for a free place", with the limit, instead of
|
|
94
|
+
looking as if it runs.
|
|
95
|
+
- **"Resumed after sleep"** shows when the computer slept in the middle of a step.
|
|
96
|
+
|
|
97
|
+
### The Update button
|
|
98
|
+
|
|
99
|
+
- **The app looks for a new version** on start and once a day. When one is out, Home and every project show
|
|
100
|
+
it with what is new. **Update now** waits until no agent is in the middle of a step, installs, and restarts
|
|
101
|
+
the app on the same link. Every ticket carries on where it was.
|
|
102
|
+
- **Settings › About squad-kit** shows your version, when it last checked, and a switch for the daily check.
|
|
103
|
+
Terminal: `squad upgrade`.
|
|
104
|
+
|
|
105
|
+
### Quality
|
|
106
|
+
|
|
107
|
+
- **A new Quality setting** on the Squad and AI page: **Best** (the default), **Balanced** or **Thrifty**.
|
|
108
|
+
On Best, the strongest model builds and reviews at high effort. On Claude Code that is Opus. Terminal:
|
|
109
|
+
`squad config set quality best`.
|
|
110
|
+
- **A new "extra high" effort.** On Best, a Builder run that fails moves the next one up to extra high.
|
|
111
|
+
- **The Reviewer is never weaker than the Builder** on Best and Balanced.
|
|
112
|
+
- **Reading the project after a merge is cheaper.** The project map is only read again when files are added,
|
|
113
|
+
moved or removed, and that read runs on a lighter model.
|
|
114
|
+
|
|
115
|
+
### No silent hangs
|
|
116
|
+
|
|
117
|
+
- **Stop works at every moment**, also between two runs, and it ends the agent with everything it started. A
|
|
118
|
+
step that runs out of time ends the same way.
|
|
119
|
+
- **Git that talks to a remote has a time limit**, and never waits for a password prompt nobody sees.
|
|
120
|
+
- **Starting an agent has a time limit.** If it cannot start, the step says why instead of waiting.
|
|
121
|
+
- **The Builder no longer waits for the "before" screenshots.** They are taken beside it, with their own time
|
|
122
|
+
limit.
|
|
123
|
+
- **A test, lint or build command with no output for 5 minutes is stopped**, and the ticket says which one.
|
|
124
|
+
|
|
125
|
+
### Agents stay in their lane
|
|
126
|
+
|
|
127
|
+
- **Every agent runs with the permissions of its step.** The Tester can run the app but cannot change the code;
|
|
128
|
+
what it changes anyway, squad-kit puts back.
|
|
129
|
+
- **No agent can change the instruction files** the next session would follow, such as `CLAUDE.md`, or
|
|
130
|
+
squad-kit's own `.squad/` folder. Agents read copies of the project's rules, never your own folder.
|
|
131
|
+
- **No agent can rewrite git history.** squad-kit checks after each Builder and Tester step.
|
|
132
|
+
- **Every answer is checked.** An incomplete answer is asked for once more, then the step says so plainly.
|
|
133
|
+
- **Text from outside**, such as a tracker item or a pasted message, reaches the agents as data, never as
|
|
134
|
+
orders.
|
|
135
|
+
- **Test, setup and release commands no longer get the AI and tracker keys.**
|
|
136
|
+
|
|
137
|
+
### No lost work
|
|
138
|
+
|
|
139
|
+
- **A release and a "Looks right" at the same moment** no longer get in each other's way.
|
|
140
|
+
- **Stop keeps the step the ticket was at.**
|
|
141
|
+
- **"Bring in the latest main"** uses the remote's main, not an old local copy.
|
|
142
|
+
- **Only a real clash counts as a clash.** Other git errors say what went wrong. `squad doctor` checks the git
|
|
143
|
+
version.
|
|
144
|
+
- **Tracker updates are kept until they are sent**, and retried when the tracker is down.
|
|
145
|
+
- **A release whose push failed** says "not pushed yet", with **Push again** on the Releases page. Terminal:
|
|
146
|
+
`squad release <version> --push-again`.
|
|
147
|
+
- **Withdraw change** takes back an approved change the squad has not built yet, and puts the spec back to how
|
|
148
|
+
it was. Terminal: `squad propose <ID> --withdraw`.
|
|
149
|
+
|
|
150
|
+
### Fixes
|
|
151
|
+
|
|
152
|
+
- **The Architect writes the stack**, with each part's role, from the code it reads. `stack.md` was empty.
|
|
153
|
+
- **The Reviewer is told the checks already ran**, so it does not run them again.
|
|
154
|
+
|
|
10
155
|
## [1.0.0] — 2026-11-02
|
|
11
156
|
|
|
12
157
|
squad-kit 1.0 is an agent harness for the whole software cycle. You write a ticket in plain words. A squad of
|
|
@@ -728,7 +873,9 @@ First public release.
|
|
|
728
873
|
- Plan-generation meta-prompt (`generate-plan.md`), intake template (`intake.md`), and plan skeleton reference (`story-skeleton.md`).
|
|
729
874
|
- Documentation: `docs/philosophy.md`, `docs/getting-started.md`, `docs/customization.md`, `docs/vs-spec-kit.md`.
|
|
730
875
|
|
|
731
|
-
[Unreleased]: https://github.com/AzmSquad/squad-kit/compare/v1.
|
|
876
|
+
[Unreleased]: https://github.com/AzmSquad/squad-kit/compare/v1.1.0...HEAD
|
|
877
|
+
[1.1.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v1.1.0
|
|
878
|
+
[1.0.1]: https://github.com/AzmSquad/squad-kit/releases/tag/v1.0.1
|
|
732
879
|
[1.0.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v1.0.0
|
|
733
880
|
[0.6.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v0.6.0
|
|
734
881
|
[0.5.0]: https://github.com/AzmSquad/squad-kit/releases/tag/v0.5.0
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
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
|
-
**
|
|
14
|
+
**Your AI Engineering Squad. One Unified Harness.**
|
|
15
15
|
|
|
16
16
|
squad-kit is an agent harness for the whole software cycle. You describe what you need in plain words. A
|
|
17
17
|
squad of AI agents takes it from that ask to a release: the Analyst, the Architect, the Builder, the Tester
|
|
@@ -38,8 +38,9 @@ without your approval.
|
|
|
38
38
|
7. You check this **proof** and press **Looks right**.
|
|
39
39
|
8. You press **Release**. squad-kit writes the changelog, sets the version and adds the git tag.
|
|
40
40
|
|
|
41
|
-
When the squad needs you, a
|
|
42
|
-
|
|
41
|
+
When the squad needs you, a banner shows on every page with the button to press, the browser tab shows how many
|
|
42
|
+
things wait, and a desktop notice can tell you too. Everything else, the squad handles. Every button also has a
|
|
43
|
+
terminal command, so developers can do the same from the terminal.
|
|
43
44
|
|
|
44
45
|
## What you need
|
|
45
46
|
|
|
@@ -98,10 +99,33 @@ test, build and run it. You can follow it on the board.
|
|
|
98
99
|
2. Write what you want in plain words. Add business rules, examples or screenshots if you have them. Or paste
|
|
99
100
|
an idea or a chat message, and the Analyst fills in the ticket for you to check.
|
|
100
101
|
3. Press create. The card moves across the board as the squad works.
|
|
101
|
-
4. Answer, approve and check when
|
|
102
|
+
4. Answer, approve and check when the **Waiting for you** banner asks you.
|
|
102
103
|
|
|
103
104
|
The step-by-step guide is in [Getting started](docs/getting-started.md).
|
|
104
105
|
|
|
106
|
+
## While the squad works
|
|
107
|
+
|
|
108
|
+
- **Every card says what is happening**, for example "Builder · step 3 of 6 · editing the booking page", with how
|
|
109
|
+
long it has run and how long that step usually takes on this project. A ticket waiting for a free place says so.
|
|
110
|
+
- **Ask about a ticket** on its **Now** tab: "is there a problem?", "when will it be ready?". Status questions are
|
|
111
|
+
answered at once, in English or Arabic, at no AI cost. Terminal: `squad ask`, `squad status`.
|
|
112
|
+
- **A slow step says so**, with what it is doing and three ways out: **Give it 10 more minutes**, **Stop and try
|
|
113
|
+
again**, or **Stop**. A step that makes no progress says what squad-kit checked.
|
|
114
|
+
- **Run your app** from **Your apps** in the sidebar: Start, Open, Restart and Stop, from squad-kit's own copy of
|
|
115
|
+
`main`. After **Looks right**, **Run the new version** shows the change. Terminal: `squad app start`.
|
|
116
|
+
- **Remove a ticket** you no longer want with **Delete**, and take finished ones off the board with **Archive**.
|
|
117
|
+
The dialog lists what goes and what stays; the cost stays in Usage. Terminal: `squad delete`, `squad archive`.
|
|
118
|
+
|
|
119
|
+
## When something goes wrong
|
|
120
|
+
|
|
121
|
+
- **Every stop says what happened, what is safe, and the ways out**, as buttons: Try again, Fix it yourself,
|
|
122
|
+
Continue anyway, or Report a problem. The exact error is one click away in the ticket's Developer tab.
|
|
123
|
+
- **Claude's usage limit pauses the squad** for every project, shows when it resets, and the squad carries on by
|
|
124
|
+
itself, from the same step. **Try now** carries on at once.
|
|
125
|
+
- **Report a problem** saves one `.zip` to send to whoever helps you: the ticket, its conversations, the last day
|
|
126
|
+
of the app log and the versions. It never holds sign-ins, tokens or `.env` files. Terminal: `squad report`.
|
|
127
|
+
- **The app log** is in `~/.squad-kit/logs/`, one file a day, kept 14 days. Terminal: `squad logs --tail`.
|
|
128
|
+
|
|
105
129
|
## Where your files live
|
|
106
130
|
|
|
107
131
|
squad-kit keeps files in two places. The test is simple: does another person need it to carry on?
|
|
@@ -148,9 +172,10 @@ linked ticket or a bug report.
|
|
|
148
172
|
|
|
149
173
|
## Cost and models
|
|
150
174
|
|
|
151
|
-
- squad-kit picks a **model level** for each role and step
|
|
152
|
-
|
|
153
|
-
|
|
175
|
+
- squad-kit picks a **model level** for each role and step from the project's **Quality** setting: **Best**
|
|
176
|
+
(the default) builds and reviews on the strongest model, **Balanced** builds on it at medium effort, and
|
|
177
|
+
**Thrifty** builds on a lighter one. **Fast** stays for screenshots and small helpers. The team or each person
|
|
178
|
+
can change single steps on the **Squad and AI** page.
|
|
154
179
|
- The board shows **what each ticket and each role used**, in tokens and in money at the AI company's API
|
|
155
180
|
prices. Your own AI subscription pays for it. This shows where the cost goes.
|
|
156
181
|
- One **limit of tickets at once** (2 by default, up to 5) is shared by all your projects, because they use the
|
package/SECURITY.md
CHANGED
|
@@ -2,23 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported versions
|
|
4
4
|
|
|
5
|
-
Only the latest
|
|
5
|
+
Only the latest release of squad-kit receives security fixes. Update with the **Update now** button in the app,
|
|
6
|
+
or `squad upgrade`.
|
|
6
7
|
|
|
7
8
|
| Version | Supported |
|
|
8
9
|
| ------- | --------- |
|
|
9
|
-
|
|
|
10
|
-
|
|
|
11
|
-
| < 0.1 | ❌ |
|
|
10
|
+
| 1.1.x | ✅ |
|
|
11
|
+
| < 1.1 | ❌ |
|
|
12
12
|
|
|
13
13
|
## Reporting a vulnerability
|
|
14
14
|
|
|
15
15
|
**Please do not open a public GitHub issue for security reports.**
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Report it privately on GitHub: [Report a vulnerability](https://github.com/AzmSquad/Squad-Kit/security/advisories/new)
|
|
18
|
+
(the repository's **Security** tab). Or email the maintainer at **momenysr@gmail.com**. Include:
|
|
18
19
|
|
|
19
20
|
- A description of the issue and its impact.
|
|
20
21
|
- Steps to reproduce (proof-of-concept preferred).
|
|
21
|
-
- Affected version(s) and environment (OS, Node version).
|
|
22
|
+
- Affected version(s) and environment (OS, Node version, AI tool and its version).
|
|
22
23
|
- Any suggested mitigation, if you have one.
|
|
23
24
|
|
|
24
25
|
You can expect:
|
|
@@ -29,7 +30,27 @@ You can expect:
|
|
|
29
30
|
|
|
30
31
|
Credit will be given in the release notes unless you prefer to remain anonymous.
|
|
31
32
|
|
|
32
|
-
##
|
|
33
|
+
## How squad-kit keeps you safe
|
|
34
|
+
|
|
35
|
+
- **The app runs on your computer only.** It listens on `127.0.0.1`, behind a private link with a token kept in
|
|
36
|
+
`~/.squad-kit/app.json`. Nothing is hosted.
|
|
37
|
+
- **Sign-ins stay on this computer.** Tracker tokens and keys live in `~/.squad-kit/projects/<id>/secrets.yaml`
|
|
38
|
+
(mode `0600` on POSIX), never in the project folder or in git. A project moved from 0.x has its
|
|
39
|
+
`.squad/secrets.yaml` moved there once. To run your app, squad-kit copies your project's `.env` files into its own
|
|
40
|
+
copy of the code in `~/.squad-kit/projects/<id>/apps/` (mode `0600`), never anywhere else.
|
|
41
|
+
- **Agents never see your secrets.** No agent may read squad-kit's secret files, and the commands squad-kit runs for
|
|
42
|
+
you (tests, setup and release) start without the AI and tracker keys.
|
|
43
|
+
- **Agents stay in their lane.** Every step runs with the permissions it needs and no more: the Builder edits only its
|
|
44
|
+
own copy of the code, the Tester cannot change code, and no agent may change the instruction files the next session
|
|
45
|
+
would follow, squad-kit's own `.squad/` folder, or git history. squad-kit checks after each step and puts back what
|
|
46
|
+
an agent changed outside its lane. Text from trackers and pasted messages reaches agents as data, never as orders.
|
|
47
|
+
- **The engine owns git and the release.** Agents never merge, push or grade their own work.
|
|
48
|
+
- **The npm package is built and published by GitHub Actions** from a release tag, with npm trusted publishing (no
|
|
49
|
+
npm token exists) and a signed provenance statement you can check on npmjs.com.
|
|
50
|
+
|
|
51
|
+
## 0.x commands: credentials
|
|
52
|
+
|
|
53
|
+
The 0.x commands that still ship (`new-plan`, `auth`, `config` and others) keep their own credential handling:
|
|
33
54
|
|
|
34
55
|
squad-kit reads API tokens from (in order):
|
|
35
56
|
|
|
@@ -59,13 +80,21 @@ squad-kit runs the Agent SDK with `settingSources: []`, which prevents it from r
|
|
|
59
80
|
|
|
60
81
|
## Scope
|
|
61
82
|
|
|
62
|
-
squad-kit
|
|
83
|
+
squad-kit runs on your computer and starts AI agents (Claude Code today) that read and change code in their own copy
|
|
84
|
+
of your project and run commands there. It calls network APIs you set up: your tracker, your code host and your AI
|
|
85
|
+
tool. Reports in scope include:
|
|
63
86
|
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
87
|
+
- A secret (a sign-in, a token, a key) reaching an agent, a log, a report file or git.
|
|
88
|
+
- The app answering anyone other than you, from this computer or another one.
|
|
89
|
+
- An agent getting past its permissions: writing outside its copy, changing instruction files, git history or
|
|
90
|
+
`.squad/`, or merging or pushing.
|
|
91
|
+
- Arbitrary file read/write outside the project caused by malformed input (for example path traversal through a
|
|
92
|
+
ticket name or an attachment).
|
|
93
|
+
- Command injection through anything squad-kit runs for you.
|
|
94
|
+
- Supply-chain concerns in shipped dependencies or in how the package is built and published.
|
|
67
95
|
|
|
68
96
|
Out of scope:
|
|
69
97
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
98
|
+
- Vulnerabilities in the AI tools themselves (Claude Code and others). Report those upstream.
|
|
99
|
+
- What the code an agent writes does in your project. squad-kit checks it (tests, review, proof), and you approve it
|
|
100
|
+
before it merges.
|