squadrant 0.27.1 → 0.28.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.
- package/dist/index.js +906 -608
- package/dist/index.js.map +1 -1
- package/dist/squadrantd.js +576 -325
- package/dist/squadrantd.js.map +1 -1
- package/package.json +1 -1
- package/plugin/skills/knowledge-extract/SKILL.md +2 -0
- package/plugin/skills/knowledge-review/SKILL.md +5 -0
- package/templates/crew.claude.md +1 -0
- package/templates/crew.generic.md +1 -0
- package/templates/crew.opencode.md +1 -0
package/package.json
CHANGED
|
@@ -34,6 +34,8 @@ Works from any agent: it is plain CLI plus a JSON file.
|
|
|
34
34
|
`squadrant knowledge apply <kb> candidates.json`
|
|
35
35
|
|
|
36
36
|
List a ref in `complete` **only** when this file covers every section of that source (no carried sections). Rules from a `complete` source that no candidate matches are marked `stale`; listing a partially-covered source would wrongly stale its rules.
|
|
37
|
+
A source marked `review: required` in `sources.yaml` never produces live rules: its new rules land in `_proposed/` and wait for the operator (a same-meaning candidate for an existing rule still merges). Extract it exactly the same way.
|
|
38
|
+
If the KB has an `errata.yaml`, candidates that hit a stale passage come back as rejected with reason `errata:<id>`. That is expected, not a failure: do not re-emit or rephrase them. An "errata <id> … quote no longer found" line means the raw file changed; tell the captain, do not edit `errata.yaml` yourself.
|
|
37
39
|
5. **Report** the apply output: created / merged / proposed / rejected counts. If it says a source is flagged "conversion likely poor, try docling", tell the captain; do not retry the same conversion.
|
|
38
40
|
|
|
39
41
|
## Rules
|
|
@@ -29,11 +29,16 @@ You are the **reviewer** for one knowledge base pass. Code enforces every hard r
|
|
|
29
29
|
5. **Apply.** `squadrant knowledge review <kb> --apply decisions.json`.
|
|
30
30
|
6. **Close.** `squadrant knowledge reconcile <kb> [--full] --finish` writes REPORT.md, advances the schedule and sends the captain a one-line count.
|
|
31
31
|
|
|
32
|
+
## Stale rules from a removed source
|
|
33
|
+
|
|
34
|
+
`squadrant knowledge sources <kb> --remove <path>` can leave rules with no source (status `stale`, empty `sources`). They appear in the packet's `stale` list like any other. Retire (`approve`) one only if its statement is still unsupported; a `reject` (keep) on a source-less rule always escalates (`no-source`), and the operator cannot keep it either: they must add a source to the rule or retire it.
|
|
35
|
+
|
|
32
36
|
## Always escalated (code enforces this, whatever your confidence)
|
|
33
37
|
|
|
34
38
|
- two `company`-priority sources in conflict
|
|
35
39
|
- retiring a `must` or `must-not` rule
|
|
36
40
|
- anything you flag, and any code-vs-doc conflict where the code is newer
|
|
41
|
+
- any proposal from a source marked `review: required` in `sources.yaml` (escalated as `review-required`, at any confidence). You may still decide and justify it; the operator makes the call.
|
|
37
42
|
|
|
38
43
|
## Rules
|
|
39
44
|
|
package/templates/crew.claude.md
CHANGED
|
@@ -43,6 +43,7 @@ Your captain learns you are done from an **explicit signal**, not from your CLI
|
|
|
43
43
|
1. Commit your work.
|
|
44
44
|
2. Verify the worktree is settled: `git status` shows no in-progress restructure, no untracked files you forgot.
|
|
45
45
|
3. Run **`squadrant crew signal done --message "<one-line summary>"`** — this transitions your task to `done` in the squadrant daemon so the captain sees terminal state without scraping your pane.
|
|
46
|
+
If you applied any knowledge-base rules, end the message with `Rules: <id>, <id>` (leave it out when none applied). The signal records those ids as citations, and it also picks up rule ids named in your branch's commit messages.
|
|
46
47
|
4. Then (and only then) exit your CLI.
|
|
47
48
|
|
|
48
49
|
If you need the captain's input or a decision and you will wait for it, do NOT just ask in prose — run this BEFORE ending your turn, then wait:
|
|
@@ -39,6 +39,7 @@ Your captain learns you are done from an **explicit signal**, not from your CLI
|
|
|
39
39
|
1. Commit your work.
|
|
40
40
|
2. Verify the worktree is settled (`git status` clean).
|
|
41
41
|
3. Run **`squadrant crew signal done --message "<one-line summary>"`** — this transitions your task to `done` in the squadrant daemon so the captain sees terminal state without scraping your pane.
|
|
42
|
+
If you applied any knowledge-base rules, end the message with `Rules: <id>, <id>` (leave it out when none applied). The signal records those ids as citations, and it also picks up rule ids named in your branch's commit messages.
|
|
42
43
|
4. Then (and only then) exit your CLI.
|
|
43
44
|
|
|
44
45
|
If you need the captain's input or a decision and you will wait for it, do NOT just ask in prose — run `squadrant crew signal blocked --question "<the question>"` BEFORE ending your turn, then wait. Asking conversationally alone does not notify the captain; the explicit signal is what surfaces your question as CREW BLOCKED. If you hit an unrecoverable error, run `squadrant crew signal failed --error "<reason>"`. The signal verb reads `SQUADRANT_CREW_TASK_ID` and `SQUADRANT_CREW_PROJECT` from your environment — both are set automatically by your spawn.
|
|
@@ -39,6 +39,7 @@ Your captain learns you are done from an **explicit signal**, not from your CLI
|
|
|
39
39
|
1. Commit your work.
|
|
40
40
|
2. Verify the worktree is settled (`git status` clean).
|
|
41
41
|
3. Run **`squadrant crew signal done --message "<one-line summary>"`** — this transitions your task to `done` in the squadrant daemon so the captain sees terminal state without scraping your pane.
|
|
42
|
+
If you applied any knowledge-base rules, end the message with `Rules: <id>, <id>` (leave it out when none applied). The signal records those ids as citations, and it also picks up rule ids named in your branch's commit messages.
|
|
42
43
|
4. Then (and only then) exit your CLI.
|
|
43
44
|
|
|
44
45
|
If you need the captain's input or a decision and you will wait for it, do NOT just ask in prose — run `squadrant crew signal blocked --question "<the question>"` BEFORE ending your turn, then wait. Asking conversationally alone does not notify the captain; the explicit signal is what surfaces your question as CREW BLOCKED. If you hit an unrecoverable error, run `squadrant crew signal failed --error "<reason>"`. The signal verb reads `SQUADRANT_CREW_TASK_ID` and `SQUADRANT_CREW_PROJECT` from your environment — both are set automatically by your spawn.
|