@feigi/fleet-ctl 3.82.2 → 3.82.4
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/agents/fleet-finisher.agent.md +1 -1
- package/agents/fleet-merge-bot.agent.md +5 -5
- package/agents/fleet-recipe-deriver.agent.md +4 -3
- package/package.json +1 -1
- package/skills/next-ticket/SKILL.md +2 -0
- package/skills/run-team/SKILL.md +483 -854
- package/skills/run-team/references/ci-and-staleness.md +36 -2
- package/skills/run-team/references/ci-watcher.md +40 -1
- package/skills/run-team/references/correction-tickets.md +6 -0
- package/skills/run-team/references/finisher.md +13 -1
- package/skills/run-team/references/member-lifecycle.md +2 -2
- package/skills/run-team/references/merge-bot.md +6 -1
- package/skills/run-team/references/phase-0.md +6 -6
- package/skills/run-team/references/pull.md +4 -4
- package/skills/run-team/references/reaping.md +1 -1
- package/skills/run-team/references/reviewers.md +36 -1
- package/skills/run-team/references/shell-traps.md +5 -5
- package/skills/run-team/references/tick-rows.md +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: fleet-finisher
|
|
3
|
-
description: A `/skill:run-team` finisher — dispatched by the controller
|
|
3
|
+
description: A `/skill:run-team` finisher — dispatched by the controller through the finisher gate once a PR's review has returned and CI is green; audits the worktree, re-runs the acceptance mutation, applies one release label, reports. Never invoked directly.
|
|
4
4
|
model: "@smol:low"
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -19,8 +19,8 @@ the path your brief names, holding every PR you merged in `merged`. Your final
|
|
|
19
19
|
message is the one line your brief gives, `merge-bot-<n>: done <path>`.
|
|
20
20
|
|
|
21
21
|
The shell traps below are copied from the controller's skill file,
|
|
22
|
-
`run-team/SKILL.md`. In them
|
|
23
|
-
do not run, and "this file" is that skill file; each trap applies to every shell
|
|
22
|
+
`run-team/SKILL.md`. In them **Own the CI waits** is that file's section on the
|
|
23
|
+
controller's CI watcher, which you do not run, and "this file" is that skill file; each trap applies to every shell
|
|
24
24
|
command and loop you run.
|
|
25
25
|
|
|
26
26
|
**zsh word-splits an unquoted command substitution's result; it does NOT split
|
|
@@ -53,8 +53,8 @@ $prs
|
|
|
53
53
|
EOF
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
The inline `$(printf '%s\n' "$prs")` form splits correctly too and is what
|
|
57
|
-
|
|
56
|
+
The inline `$(printf '%s\n' "$prs")` form splits correctly too and is what the
|
|
57
|
+
watcher block under **Own the CI waits** uses, but it splits on *every* whitespace character, so it is safe only
|
|
58
58
|
for values that cannot contain one — PR numbers cannot, branch names and paths
|
|
59
59
|
can. Measured on a two-line list whose first value is `two words`: three
|
|
60
60
|
iterations through `$(printf …)`, two through `while IFS= read -r`. On an empty
|
|
@@ -70,7 +70,7 @@ word-split bug, so a correct heredoc fix missing this half looks exactly like no
|
|
|
70
70
|
fix at all, and reads as one.
|
|
71
71
|
|
|
72
72
|
**A probe that could not look emits an event; it never `continue`s.** Stated in
|
|
73
|
-
full at *A probe that cannot read is a transition event, not silence*
|
|
73
|
+
full at *A probe that cannot read is a transition event, not silence* under **Own the CI waits**,
|
|
74
74
|
and it binds every watcher in this file rather than that one block: the third
|
|
75
75
|
value beside pass and fail is what turns a broken loop into a loud failure
|
|
76
76
|
instead of a quiet one. A guard that drops an unreadable probe — `[ -n "$json" ]
|
|
@@ -43,9 +43,10 @@ commands run from the repository root by `sh -c`:
|
|
|
43
43
|
- **Install step** — the form that installs exactly what the repository pins
|
|
44
44
|
and rewrites nothing: the frozen or locked mode where the tool has one.
|
|
45
45
|
`true` when nothing needs installing. It must leave every file exactly as
|
|
46
|
-
checked out; build output the repository ignores is fine. The fleet
|
|
47
|
-
Install step with `CI` unset, so spell
|
|
48
|
-
command; never rely on the environment to
|
|
46
|
+
checked out; build output the repository ignores is fine. The fleet and a
|
|
47
|
+
standalone next-ticket session run the Install step with `CI` unset, so spell
|
|
48
|
+
the frozen or locked mode in the command; never rely on the environment to
|
|
49
|
+
imply it.
|
|
49
50
|
- **Test entrypoint** — every test step in the merge-gating CI jobs that can
|
|
50
51
|
run in a fresh worktree on this host. Which steps qualify is yours to
|
|
51
52
|
decide, by reading CI and the repository. Members run it with their own
|
package/package.json
CHANGED
|
@@ -80,6 +80,8 @@ gh issue edit <N> --add-label in-progress
|
|
|
80
80
|
|
|
81
81
|
Infer branch/worktree convention from `git worktree list` / `git branch -r` — commonly `feat|fix|refactor/<N>-slug` and `.worktrees/<N>-slug`. Branch off fresh `origin/main`, run the Install step, run the Check step, run the Test entrypoint as the baseline — the repo's **Recipe**, read from its Recipe cache: `~/.fleet/bin/fleet-run derive-testcmd.sh . install`, `… . check` and `… . test --at origin/main` print them. **No usable cache (any of the three exits 1) → run the Recipe derivation step first:** dispatch a `task` member, agent `fleet-recipe-deriver`, its prompt naming the main checkout's absolute path as `<repo>` and `<scratch>/derive-recipe/` as its scratch directory, `<scratch>` the output of `~/.fleet/bin/fleet-run scratch-root.mjs`; it reads the repo, proves all three commands in a throwaway worktree and writes the cache only on proof. `RECIPE NOT PROVEN` → stop and give the maintainer its reason; never pick a command yourself. Exit 3 is no verdict on the cache — the reader could not run a tool it needs — so fix that environment fault and re-run instead of deriving.
|
|
82
82
|
|
|
83
|
+
**Run the Install step with `CI` removed**, from the new worktree's root: `env -u CI sh -c "<install>"`, `<install>` the output of `derive-testcmd.sh . install`. A setup script that skips under `CI` installs no git hooks there, and you would then commit with the repository's commit-time checks silently absent. Only the Install step loses `CI`; the Check step and the Test entrypoint baseline run in your shell's own environment.
|
|
84
|
+
|
|
83
85
|
Abandoned before PR opens → remove `in-progress`.
|
|
84
86
|
|
|
85
87
|
## 6. Size the ticket, then pick a path
|