squad-kit 1.2.1 → 1.3.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/README.md +9 -5
- package/SECURITY.md +51 -14
- package/dist/cli.js +1094 -46127
- package/dist/console-ui/assets/index-DqDPMvqu.css +1 -0
- package/dist/console-ui/assets/index-iFT5f2Y0.js +669 -0
- package/dist/console-ui/index.html +2 -2
- package/package.json +1 -2
- package/CHANGELOG.md +0 -1157
- package/dist/console-ui/assets/index-CzFTrbcF.js +0 -637
- package/dist/console-ui/assets/index-kEkCko25.css +0 -1
- package/dist/console-ui/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-cyrillic-600-normal-EVf6-Yzo.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-cyrillic-ext-400-normal-C_uLvvQ5.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-cyrillic-ext-500-normal-C9ShMxGR.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-cyrillic-ext-600-normal-Dj6eZy5f.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-greek-600-normal-H7WoG9Et.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-latin-ext-600-normal-BfB_LPfz.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-vietnamese-400-normal-ByoDsISC.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-vietnamese-500-normal-BvH7FW2L.woff2 +0 -0
- package/dist/console-ui/assets/jetbrains-mono-vietnamese-600-normal-Dtizs43-.woff2 +0 -0
package/README.md
CHANGED
|
@@ -79,9 +79,11 @@ all your projects:
|
|
|
79
79
|
Keep the terminal open while you work. Press Ctrl-C there to stop squad-kit. The squad picks up where it was
|
|
80
80
|
the next time you run `squad`.
|
|
81
81
|
|
|
82
|
-
##
|
|
82
|
+
## Start or add a project
|
|
83
83
|
|
|
84
|
-
On Home, press **
|
|
84
|
+
Have only a BRD or an idea? On Home, press **New project**: squad-kit makes the folder and the squad starts from what you gave.
|
|
85
|
+
|
|
86
|
+
Already have a project? Press **Add project** and pick a folder in the folder browser. Or open a terminal in the folder and
|
|
85
87
|
run:
|
|
86
88
|
|
|
87
89
|
```bash
|
|
@@ -138,7 +140,9 @@ The step-by-step guide is in [Getting started](docs/getting-started.md).
|
|
|
138
140
|
- **The Builder works in a sandbox** where the computer allows it: its copy only, no keys or `.env` files, and only
|
|
139
141
|
the package registries and websites you allow.
|
|
140
142
|
- **The project's own commands run in a guard** on Mac and Linux: the tests, the setup and the app work normally, but
|
|
141
|
-
can't read
|
|
143
|
+
can't read the usual places for keys and sign-ins, or squad-kit's own files. The guard stops accidents and most bad
|
|
144
|
+
behaviour. It is not a wall against code built on purpose to break out, so use squad-kit on projects you trust and read
|
|
145
|
+
what the Builder changes.
|
|
142
146
|
- **Agents get fixed tools, no free commands**, for screenshots, the app and the checks. squad-kit checks each
|
|
143
147
|
request and does the job itself.
|
|
144
148
|
|
|
@@ -210,7 +214,7 @@ writes one line in the ticket's activity.
|
|
|
210
214
|
- squad-kit picks a **model level** for each role and step from the project's **Quality** setting: **Best**
|
|
211
215
|
(the default) builds and reviews on the strongest model, **Balanced** builds on it at medium effort, and
|
|
212
216
|
**Thrifty** builds on a lighter one. **Fast** stays for screenshots and small helpers. The team or each person
|
|
213
|
-
can change single steps on the **
|
|
217
|
+
can change single steps on the **Harness** page.
|
|
214
218
|
- The board shows **what each ticket and each role used**, the way you pay. On a Claude subscription it says the
|
|
215
219
|
work is included in your plan, and shows its size and its value at API prices (a value, not a bill). With an API
|
|
216
220
|
key it shows real dollars, against a budget per ticket and per month.
|
|
@@ -221,7 +225,7 @@ writes one line in the ticket's activity.
|
|
|
221
225
|
|
|
222
226
|
- [Getting started](docs/getting-started.md): your first hour, from install to a release.
|
|
223
227
|
- [Moving to 1.0](docs/migrating-to-1.0.md): from squad-kit 0.x, and from early 1.0 boards.
|
|
224
|
-
- [The app](docs/console.md): Home, the board, the ticket drawer,
|
|
228
|
+
- [The app](docs/console.md): Home, the board, the ticket drawer, the Harness page and Settings.
|
|
225
229
|
- [From a BRD to a built product](docs/requirements.md): upload a requirements document, approve the breakdown,
|
|
226
230
|
send it to Azure DevOps and let the squad build it.
|
|
227
231
|
- [CHANGELOG](CHANGELOG.md): what changed in each version.
|
package/SECURITY.md
CHANGED
|
@@ -39,25 +39,63 @@ Credit will be given in the release notes unless you prefer to remain anonymous.
|
|
|
39
39
|
(mode `0600` on POSIX), never in the project folder or in git. A project moved from 0.x has its
|
|
40
40
|
`.squad/secrets.yaml` moved there once. To run your app, squad-kit copies your project's `.env` files into its own
|
|
41
41
|
copy of the code in `~/.squad-kit/projects/<id>/apps/` (mode `0600`), never anywhere else.
|
|
42
|
-
- **Agents
|
|
42
|
+
- **Agents are kept from your secrets.** No agent may read squad-kit's secret files, and the commands squad-kit runs for
|
|
43
43
|
you (tests, setup and release) start without the AI and tracker keys.
|
|
44
|
+
- **Local files stay out of agents' reach.** An engineer can name files git does not carry, like `.env.dev`. Each one goes
|
|
45
|
+
in a story's copy for the project's own tests and app, and agents are refused it by its exact path. The project's own
|
|
46
|
+
commands can still read it, and a test the Builder wrote is one of those. So stories use values kept for them on this
|
|
47
|
+
computer: give them local test values, never real ones. A file with secrets that is already in git is not covered.
|
|
48
|
+
- **Docker stays closed, with one opening.** Project commands cannot reach Docker. squad-kit opens that one socket for its own
|
|
49
|
+
`docker compose up`, from the project's settings, when an engineer locked every compose file the command names. A story
|
|
50
|
+
cannot change those files. What runs inside the containers is the story's code, and the image builds run its Dockerfile.
|
|
44
51
|
- **Agents stay in their lane.** Every step runs with the permissions it needs and no more: the Builder edits only its
|
|
45
52
|
own copy of the code, the Tester cannot change code, and no agent may change the instruction files the next session
|
|
46
53
|
would follow, squad-kit's own `.squad/` folder, or git history. squad-kit checks after each step and puts back what
|
|
47
54
|
an agent changed outside its lane. Text from trackers and pasted messages reaches agents as data, never as orders.
|
|
48
55
|
- **Agents get fixed tools, no free commands.** For screenshots, the app and the checks, an agent presses one of
|
|
49
56
|
squad-kit's tools. squad-kit checks every field, does the job itself, and refuses and logs what breaks a check.
|
|
50
|
-
- **The project's own commands run in a guard** on Mac and Linux: the tests, setup, the app
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
- **The project's own commands run in a guard** on Mac and Linux: the tests, setup, the app, the release pipeline and the
|
|
58
|
+
commit hooks. **The guard stops accidents and most bad behaviour, but it is not a wall against code built on purpose to
|
|
59
|
+
break out.** On a Mac its rules start from allowing everything and block a list. Use squad-kit on projects and tickets you
|
|
60
|
+
trust, and read what the Builder changes.
|
|
61
|
+
|
|
62
|
+
What it stops:
|
|
63
|
+
- Reading the usual places for keys and sign-ins (`~/.ssh`, `~/.aws`, `~/.gnupg`, `~/.azure`, `~/.kube`, `~/.docker`, the
|
|
64
|
+
GitHub and cloud sign-ins, the keys into a runtime's virtual machine, an `.npmrc` with a token), browser profiles and
|
|
65
|
+
squad-kit's own folder. A place it does not know about is not hidden.
|
|
66
|
+
- Reading the `.env` files in your project folder. On a Mac, all of them. On Linux, the ones it finds 3 folders down when
|
|
67
|
+
a command starts, outside folders such as `node_modules`.
|
|
68
|
+
- Writing outside its copy, the proof folder, the temp folder and the package caches. `~/.cache` and
|
|
69
|
+
`~/Library/Caches` stay read only: your own tools run programs from there. The copy cannot be moved, and git's own
|
|
70
|
+
folder cannot be changed or moved, so nothing written there can make squad-kit's own git start a program.
|
|
71
|
+
- Reaching a container runtime. A container can mount any folder, so a command that reaches Docker could read everything
|
|
72
|
+
above. Connections to the sockets of Docker Desktop, colima, lima, Rancher Desktop, OrbStack, Finch and Podman are
|
|
73
|
+
refused where the guard knows them. A runtime that listens somewhere else is not covered. **1.2.0 and 1.2.1 did not
|
|
74
|
+
have this**: there, a command could read hidden files through Docker when Docker was running. If a project's own tests
|
|
75
|
+
need Docker, an engineer can allow its socket's folder in Settings, knowing that this opens what the guard hides.
|
|
76
|
+
- Signalling other programs. On a Mac a signal reaches only what the command started. On Linux other programs are not
|
|
77
|
+
visible at all.
|
|
78
|
+
|
|
79
|
+
What it does not stop:
|
|
80
|
+
- **The network.** A command can reach the network, so what it can read it can send.
|
|
81
|
+
- **Other local services.** On a Mac a command can still talk to other services on this computer, and to programs that
|
|
82
|
+
listen on a local port. On Linux it can reach your session's bus and gpg agent under `/run/user`, and Docker's own port
|
|
83
|
+
if you turned that on (on a Mac, ports 2375 and 2376 are refused).
|
|
84
|
+
- **Other programs' environments, on a Mac.** A command can read the environment of your other programs, so keys you
|
|
85
|
+
exported in a shell can be seen. Use squad-kit's sign-ins, not exported keys.
|
|
86
|
+
- **An ssh agent.** A command cannot read a key loaded in it, but it can ask the agent to use it.
|
|
87
|
+
- **What a command leaves running, on a Mac.** A process that leaves its group lives on after the command, with the same
|
|
88
|
+
guard around it, and can change the copy's files.
|
|
89
|
+
- **The project's commit hooks run once, on a throwaway git folder.** squad-kit makes that folder outside the project for
|
|
90
|
+
each run. It reads git's store of objects and writes only its own. Its settings are squad-kit's, with your branch by its
|
|
91
|
+
real name and the repo's own filters, which run only in the guard. On Mac and Linux the real git folder stays read only to
|
|
92
|
+
the hooks, all of it: objects, branches, settings, the stash and the hooks. Only two things come out: the files in the
|
|
93
|
+
copy and the commit's words. squad-kit's own git then stages the files and makes the real commit, outside the guard, with
|
|
94
|
+
your signature if your git signs. So nothing a hook puts in its git folder reaches the real store, and squad-kit's git
|
|
95
|
+
never reads a setting a hook wrote. The folder goes after each run, and at the next start after a crash. A hook that
|
|
96
|
+
reaches past it to the real folder can read there, and its writes are refused.
|
|
59
97
|
- **squad-kit runs no other hook.** Every other git it runs has hooks off: it does not run a project's `pre-push`,
|
|
60
|
-
`post-merge`, `post-checkout` or `post-commit` outside that one commit (a `post-commit` runs on the
|
|
98
|
+
`post-merge`, `post-checkout` or `post-commit` outside that one commit (a `post-commit` runs on the throwaway folder). The
|
|
61
99
|
project's own checks have already run in the guard by then. Pushing from your own terminal still runs your hooks.
|
|
62
100
|
A project that uses Git LFS still gets its large files uploaded: a push runs squad-kit's own small `pre-push`, kept in
|
|
63
101
|
its own folder, which does only that.
|
|
@@ -65,9 +103,8 @@ Credit will be given in the release notes unless you prefer to remain anonymous.
|
|
|
65
103
|
(`diff.external`, textconv), and it never looks inside a nested repo. Programs named in your own git settings for the
|
|
66
104
|
network, credentials, filters and merges stay on (`core.sshCommand`, git-lfs): they need a line in a settings file,
|
|
67
105
|
and neither the guard nor an agent's sandbox can write those files.
|
|
68
|
-
- **Windows
|
|
69
|
-
|
|
70
|
-
trust. Settings says so.
|
|
106
|
+
- **Windows has no guard and is not fully tested yet.** There, the agents' own commands and the project's own commands
|
|
107
|
+
can reach other files on the computer, squad-kit's own too. Use it on projects you trust. Settings says so.
|
|
71
108
|
- **The engine owns git and the release.** Agents never merge, push or grade their own work.
|
|
72
109
|
- **The npm package is built and published by GitHub Actions** from a release tag, with npm trusted publishing (no
|
|
73
110
|
npm token exists) and a signed provenance statement you can check on npmjs.com.
|