squad-kit 1.3.16 → 1.3.18
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 +340 -277
- package/dist/console-ui/assets/index-BV9HD-7y.js +700 -0
- package/dist/console-ui/assets/index-CT6ZEPGo.css +1 -0
- package/dist/console-ui/index.html +2 -2
- package/docs/console.md +67 -8
- package/package.json +1 -1
- package/dist/console-ui/assets/index-CLweSGAt.css +0 -1
- package/dist/console-ui/assets/index-CoElmpfO.js +0 -699
package/docs/console.md
CHANGED
|
@@ -316,6 +316,53 @@ program it did not start without your press.
|
|
|
316
316
|
The same rule reads an agent's answer in a chat, where technical words are fine, because you asked. An answer that
|
|
317
317
|
asks you to do one of the things nobody may ask is left out, and you read one plain line instead.
|
|
318
318
|
|
|
319
|
+
## A story too big for one
|
|
320
|
+
|
|
321
|
+
Before the Analyst asks any questions, squad-kit counts the story's size itself, with no AI: its words, the pages of an
|
|
322
|
+
attached Word or PDF file, requirement numbers (FR-1, REQ-12…), headings and "shall" or "must" lines, separate asks, and
|
|
323
|
+
how many roles, screens and flows it names. Code, tables, logs and stack traces are left out first. A short story is
|
|
324
|
+
one story, and nothing more is asked. 400 words or 3 requirement numbers is never one story. 2,500 words, a document of
|
|
325
|
+
8 pages or 10 requirement numbers is a whole requirements document. The Analyst judges the rest, and can still say one
|
|
326
|
+
story, with the same sizes as a breakdown: **About a day**, **A few days**, **A week or more**. A bug, and a story
|
|
327
|
+
pulled from a tracker, is never split. It only suggests: nothing is split or sent until you press.
|
|
328
|
+
|
|
329
|
+
- **A few stories in one.** The Analyst suggests the parts in the order to build them, each with its size and what it
|
|
330
|
+
needs ("Needs 1"). On a story that exists, the card waits in its Now tab and in the Analyst's popup: **Split into N**,
|
|
331
|
+
**Keep as one**, or **Change the split** (your note goes in the chat's own box, and the Analyst splits it again).
|
|
332
|
+
After Split, the story keeps the first part with its new title, the Analyst asks part 1's questions, and the other
|
|
333
|
+
parts wait in Tickets with "depends on" ("Waits for MA-21"), each started when you like. Each part has its own
|
|
334
|
+
"done when" lines. Keep as one goes on with the questions the Analyst already asked. A whole document has **Send to
|
|
335
|
+
Requirements** and **Keep as one** instead.
|
|
336
|
+
- **New ticket, From an idea or message:** the same suggestion shows before anything is created: **Create N stories**
|
|
337
|
+
(the first starts, the others wait in Tickets), **Create as one story** (the form, as usual), or **Cancel**.
|
|
338
|
+
- **A whole requirements document:** "Too big for one story", with a rough count by part ("about 25 stories in 6
|
|
339
|
+
parts"): **Send to Requirements** starts a breakdown with your text and files, **Make one story anyway** keeps a short
|
|
340
|
+
warning on the story, or **Cancel**.
|
|
341
|
+
- **The Squad lead** never drafts one giant story: its draft goes through the same count and offers Create N stories,
|
|
342
|
+
or Send to Requirements. A requirements document pasted to the lead gets that card at once, with no AI.
|
|
343
|
+
- **A talk beside the work** changes nothing on the story: a big text pasted there gets a hint under it, and for a
|
|
344
|
+
whole document a Send to Requirements button. Once sent, the hint links to the breakdown.
|
|
345
|
+
|
|
346
|
+
The cards speak the language you wrote in, right to left in Arabic. The Harness page shows the numbers.
|
|
347
|
+
|
|
348
|
+
Terminal: `squad split MA-21` shows the suggestion; `--yes` splits it, `--keep` keeps it as one, `--change "<how>"` asks
|
|
349
|
+
for another split, `--requirements` sends a whole document to Requirements. Like the card's buttons, a split has no
|
|
350
|
+
`--requirements` and a whole document no `--yes` or `--change`. `squad split MA-21 --chat-requirements` sends the
|
|
351
|
+
document pasted into its talk, as the hint does. `squad new --from "<text>"` prints the suggestion and asks; `--split`
|
|
352
|
+
or `--one` answer up front, and `--requirements` sends the text and files to Requirements with no draft.
|
|
353
|
+
`squad lead run <card> --split | --one | --requirements`.
|
|
354
|
+
|
|
355
|
+
REST (under `/p/<project>/api/v1`):
|
|
356
|
+
|
|
357
|
+
| Call | What |
|
|
358
|
+
| --- | --- |
|
|
359
|
+
| `POST /tickets/<id>/split` | `{ "choice": "split" \| "keep" \| "change" \| "requirements", "note": "…" }`, only the choices its card offers. From a decision card, `expect` is the mark of what it showed. Answers with the story. |
|
|
360
|
+
| `POST /tickets/<id>/chat/requirements` | `{ "at": "…" }`: send the whole document pasted into the story's talk to Requirements, once. Answers `{ "breakdown": { "id" } }`. |
|
|
361
|
+
| `POST /tickets/draft/<draft>/split` | Create N stories from the New ticket draft. The same press sent again gets the same stories. Answers `{ "tickets": [...] }`. |
|
|
362
|
+
| `POST /tickets/draft/<draft>/requirements` | Send the draft's text and files to Requirements; again, the same breakdown. Answers `{ "breakdown": { "id" } }`. |
|
|
363
|
+
| `POST /tickets` | As before, with `"sized": "checked" \| "kept" \| "brd"` when the size was judged in the dialog. |
|
|
364
|
+
| `POST /lead/cards/<id>/run` | `{ "choice": "split" \| "one" \| "requirements" }` on a story draft that is more than one story. |
|
|
365
|
+
|
|
319
366
|
## Chat
|
|
320
367
|
|
|
321
368
|
Open a chat with any agent on a ticket: **Ask the Analyst** on the Now tab, **Talk it through** on a spec or
|
|
@@ -333,8 +380,11 @@ something, use the ticket's own buttons. With a chat open already, the button op
|
|
|
333
380
|
and new, and you approve it.
|
|
334
381
|
- **Released work is for questions only.** A change to it becomes a new linked ticket or a bug report.
|
|
335
382
|
|
|
336
|
-
A chat opens in a
|
|
337
|
-
|
|
383
|
+
A chat opens in a popup over the page, and takes the whole screen on a phone. Each open talk has a round head at the
|
|
384
|
+
bottom right, with an unread badge and a live dot while the agent writes; up to three popups sit side by side, each
|
|
385
|
+
minimised to a bar, closed, or opened on its full page. They stay open when you change pages. **Conversations** in the
|
|
386
|
+
sidebar is a full-screen page with all of them. When the story waits for you, its card closes the talk, with the
|
|
387
|
+
board's own buttons (see **Decide in the chat** below).
|
|
338
388
|
|
|
339
389
|
Terminal: `squad chat <ticket>`, `squad chat <ticket> --ask`, `squad message <ticket>`, `squad propose <ticket>`.
|
|
340
390
|
|
|
@@ -346,9 +396,10 @@ a story, next to **Open** in Your apps with the page you are on, or with **Ask t
|
|
|
346
396
|
error card: the problem's facts are filled in for you.
|
|
347
397
|
|
|
348
398
|
**On the board**, **Squad lead** in the sidebar is the conversation, with what needs you, the squad now and what it can do
|
|
349
|
-
beside it, and every past conversation under History.
|
|
350
|
-
|
|
351
|
-
|
|
399
|
+
beside it, and every past conversation under History. Its round head comes first at the bottom right of every page,
|
|
400
|
+
with how many things need you; **⌘K** (Ctrl+K on Windows and Linux) opens its popup, with the open story or the page
|
|
401
|
+
filled in. The popup starts with what needs you and a few questions to ask; the answer shows right there, and the
|
|
402
|
+
expand button opens it on the Squad lead page. Nothing is sent until you press Send.
|
|
352
403
|
|
|
353
404
|
**Cheapest first.** squad-kit answers at once itself, with no AI, when it can: a saved note, a status question about a
|
|
354
405
|
story ("is MA-9 ready?"), or something the lead never does. Otherwise the lead reads what squad-kit already knows (its
|
|
@@ -363,13 +414,21 @@ gets it at once, and "How to sign in" shows next to Open in Your apps.
|
|
|
363
414
|
|
|
364
415
|
| Level | What |
|
|
365
416
|
| --- | --- |
|
|
366
|
-
| On its own | Read, look and tell: answer, explain a story, find things, look at the app in its own copy, show a story's own proof pictures, give you an **Open** button to a story on the board (at its proof, spec, plan or questions; it changes nothing), tell you what needs you, prepare a report for an engineer (no secrets, for you to copy). |
|
|
417
|
+
| On its own | Read, look and tell: answer, explain a story, find things, look at the app in its own copy, show a story's own proof pictures, give you an **Open** button to a story on the board (at its proof, spec, plan or questions; it changes nothing), bring a story that waits for you as a card with the board's own buttons (only you press them), tell you what needs you, prepare a report for an engineer (no secrets, for you to copy). |
|
|
367
418
|
| After your OK | A card you press, running the same function as the board's button: **Create story** (a draft with how each "done when" will be proved; nothing starts until you press Start), Start or Stop a story, Give it 10 more minutes, Take the pictures again, Try again, Start the app, Get or Update a tool, **Send** an answer to an agent's question, **Save** a setting (technical ones only for engineers). |
|
|
368
419
|
| Never | Change code; commit, merge, push or release; press Looks right or approve a spec or plan; get around the checks, the review, the proof, the guard or the limits; change the Harness rules; touch your real data, secrets or `.env` files, or show a password or a key; delete stories, projects or data; message other people. squad-kit refuses these in its own words, whoever asks. Only your own messages count, never instructions found in what it reads. |
|
|
369
420
|
|
|
370
421
|
**Buttons, not "tell me".** When an answer sends you to the board, the button comes with it: "Open MA-17's proof",
|
|
371
422
|
or the board action that fits the story now. When the lead refuses what only you may do (Looks right, approving a spec
|
|
372
|
-
or plan, merging, releasing), it still gives you the
|
|
423
|
+
or plan, merging, releasing), it still gives you the story's card, so you are one press from doing it yourself.
|
|
424
|
+
|
|
425
|
+
**Decide in the chat.** A story that waits for you comes as a card, in its own talk and in the lead's answers about it:
|
|
426
|
+
the proof with its pictures and "done when" ticks (**Looks right**, **Something's wrong**, Full proof), the spec, plan
|
|
427
|
+
or design in short (**Approve**, **Ask for changes**, Read it all), the Analyst's questions as answers to tap, an agent's
|
|
428
|
+
question with its answers, or **Open** with the board's own reason. The card is drawn from the board as it is now; its
|
|
429
|
+
buttons are the board's own (`squad approve`, `squad answer`, `squad reply`), and each press is checked again: if the
|
|
430
|
+
story was decided or changed since, the card says so. Something's wrong asks for your note in the chat's own box and
|
|
431
|
+
sends it to the board. The lead brings the card; only you press it.
|
|
373
432
|
|
|
374
433
|
**Always allow** is only for the low-risk ones: give more time, take the pictures again, start the app, and the morning
|
|
375
434
|
brief. With it on they run without asking, and a line says so. A step that is slower than usual but still working then
|
|
@@ -400,7 +459,7 @@ REST (under `/p/<project>/api/v1`):
|
|
|
400
459
|
| `POST /lead/conversations/<id>/messages` | A follow-up, the same body. |
|
|
401
460
|
| `GET /lead/conversations/<id>` | The conversation: each question with its facts, the work trace, the answer (headline, body, evidence, sources, cards, learned), the time and the cost. |
|
|
402
461
|
| `POST /lead/conversations/<id>/stop` | Stop the answer being written. |
|
|
403
|
-
| `POST /lead/cards/<id>/run` | Press a card. `{ "always": true }` turns Always allow on first, only for the low-risk ones; `{ "dismiss": true }` is Not now; `{ "edits": { "title": "...", "doneWhen": [...] } }` is Edit before Create. |
|
|
462
|
+
| `POST /lead/cards/<id>/run` | Press a card. `{ "always": true }` turns Always allow on first, only for the low-risk ones; `{ "dismiss": true }` is Not now; `{ "edits": { "title": "...", "doneWhen": [...] } }` is Edit before Create; `{ "choice": "split" }`, `"one"` or `"requirements"` on a draft that is more than one story (see [A story too big for one](#a-story-too-big-for-one)). |
|
|
404
463
|
| `GET /lead/rules`, `PUT /lead/rules` | Always allow and the morning brief: `{ "always": ["more_time"], "brief": true }`. The never list is shown and cannot change. |
|
|
405
464
|
| `GET /lead/can` | The three levels in words, what it reads, and its limits, for "What it can do". |
|
|
406
465
|
|