You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/bootstrap-diagnostics/SKILL.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
name: bootstrap-diagnostics
3
3
description: >-
4
4
Agent-only handling playbook for session-start bootstrap diagnostics.
5
-
Use whenever the session-start digest's bootstrap section prints any diagnostic or capability line - MISSING, MISSING_MANUAL, BACKEND_INVALID, NEEDS_GH_AUTH, TANGLE, CREW_HARNESS_OVERRIDE, CREW_DISPATCH, FLEET_SYNC, SECONDMATE_SYNC, SECONDMATE_LIVENESS, TASKS_AXI, NUDGE_SECONDMATES, or FMX - or when a standalone bin/fm-bootstrap.sh run prints one.
5
+
Use whenever the session-start digest's bootstrap section prints any diagnostic or capability line - MISSING, MISSING_MANUAL, BACKEND_INVALID, ACCOUNT_ROUTING, NEEDS_GH_AUTH, TANGLE, CREW_HARNESS_OVERRIDE, CREW_DISPATCH, FLEET_SYNC, SECONDMATE_SYNC, SECONDMATE_LIVENESS, TASKS_AXI, NUDGE_SECONDMATES, REPORT_RETENTION, or FMX - or when a standalone bin/fm-bootstrap.sh run prints one.
6
6
A silent bootstrap section means all good and needs no skill load.
7
7
user-invocable: false
8
8
metadata:
@@ -22,6 +22,7 @@ The inline rules in `AGENTS.md` section 3 still bind: detect, then consent, then
22
22
For `quota-axi`, bootstrap requires it because crew-dispatch `quota-balanced` may call it; `bin/fm-dispatch-select.sh` still degrades at runtime when quota data is unavailable.
23
23
-`MISSING_MANUAL: <tool> (instructions: <url>)` - tell the captain why the tool is required and give them the printed instructions URL, but do not pass the tool to `bin/fm-bootstrap.sh install`; wait for the captain to complete the manual installation, then rerun session start to confirm the dependency is present.
24
24
-`BACKEND_INVALID: <name> (known: <names>)` - the resolved runtime backend has no verified dependency or lifecycle contract, so do not dispatch work until the invalid `FM_BACKEND` or `config/backend` value is corrected to one of the listed backends.
25
+
-`ACCOUNT_ROUTING: invalid routing policy - <reason>` - the environment or `config/account-routing-mode` cannot resolve to exactly one of `off`, `observe`, or `enforce`; fix the reported source before dispatch because managed spawns will fail closed on the same policy error.
25
26
-`NEEDS_GH_AUTH` - ask the captain to run `! gh auth login` (interactive; you cannot run it for them).
26
27
-`TANGLE: <remediation>` - the primary checkout is stranded on a feature branch instead of its default branch; `AGENTS.md` section 8 explains why this guard exists and what it protects.
27
28
The work is safe on that branch ref; restore the primary to its default branch with the printed `git -C <root> checkout <default>`, then re-validate that branch in a proper worktree.
@@ -45,5 +46,7 @@ The inline rules in `AGENTS.md` section 3 still bind: detect, then consent, then
45
46
-`NUDGE_SECONDMATES: fm-<id>...` - the secondmate sweep fast-forwarded one or more *running* secondmate homes to firstmate's current version and their instruction surface (`AGENTS.md`, `bin/`, or `.agents/skills/`) actually changed; send a one-line re-read nudge with `FM_HOME=<this-firstmate-home> bin/fm-send.sh <id> 'firstmate was updated to the latest - please re-read your AGENTS.md to pick up the new instructions.'` unless `FM_HOME` is already set to the active firstmate home.
46
47
This mirrors `/updatefirstmate`'s `nudge-secondmates:` report: it is a gentle steer, never an interruption, and the fast-forward already landed safely.
47
48
A secondmate that was skipped, already current, or whose advance changed no instructions is not listed and must not be disturbed.
49
+
-`REPORT_RETENTION: unavailable: <reason>` - the machine-global report-retention LaunchAgent is absent, stale, unloaded, or has not reported a recent successful prune, so opportunistic bounded pruning remains available but post-minimum-age cleanup is not guaranteed to run while Firstmate is idle.
50
+
Surface the failure, wait for the captain's consent, then run `bin/fm-bootstrap.sh install report-retention`; never install or activate it without that consent.
48
51
-`FMX: X mode on ...` / `FMX: X mode off ...` - bootstrap confirmed or removed the local X-mode poll artifacts (`docs/configuration.md` "X mode (.env)").
49
52
Only when a running watcher needs the cadence transition applied immediately, restart the home-scoped watcher through the emitted harness supervision protocol; bootstrap deliberately never restarts the watcher itself.
Copy file name to clipboardExpand all lines: .agents/skills/firstmate-orca/SKILL.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
name: firstmate-orca
3
-
description: Agent-only operator checklist for Firstmate's Orca runtime backend. Use when switching to Orca, spawning or supervising Orca-backed work, smoke-testing Orca backend behavior, debugging Orca task state, or reconciling Orca-backed task metadata.
3
+
description: Agent-only operator checklist for Firstmate's Orca runtime backend. Use when recovering or supervising eligible legacy Orca-backed work, testing Orca backend behavior, debugging Orca task state, or reconciling Orca-backed task metadata.
4
4
user-invocable: false
5
5
metadata:
6
6
internal: true
@@ -25,18 +25,19 @@ Use raw `orca` only when the helper surface cannot answer the inspection questio
25
25
Work from the current firstmate home or repo root.
26
26
If `FM_HOME` is set, remember that operational state lives under `$FM_HOME` while the helper scripts still run from this repo's `bin/`.
27
27
28
-
Before switching or spawning against Orca:
28
+
Before recovering a task onto Orca:
29
29
30
-
- Confirm Orca is intentionally selected through `--backend orca`, `FM_BACKEND=orca`, or local `config/backend`.
31
-
- Confirm the Orca app is running and the backend readiness checks pass before expecting spawn to work.
30
+
- Confirm the task meets the eligibility contract in `docs/orca-backend.md`; new work must use tmux, Herdr, zellij, or cmux.
31
+
- Confirm Orca is intentionally selected for this eligible recovery through `--backend orca` or `FM_BACKEND=orca`.
32
+
- Confirm the Orca app is running and the backend readiness checks pass before expecting the respawn to work.
32
33
- Inspect active `state/*.meta` records before changing backend selection.
33
-
-Treat a backend switch as affecting future spawns only; existing tasks keep their recorded backend.
34
+
-Do not set Orca as the durable backend for a home that launches new tasks.
34
35
- Reconcile watcher wakes before unrelated work, especially if Orca tasks are already in flight.
35
36
36
37
## Spawn
37
38
38
-
Use `bin/fm-spawn.sh` so firstmate creates the brief, worktree, terminal, metadata, status file, and watcher surface together.
39
-
Pass `--backendorca`for a one-off Orca task, or rely on the already-selected Orca backend when that selection is intentional.
39
+
Use `bin/fm-spawn.sh`for an eligible pre-cutover respawn so firstmate creates the worktree, terminal, metadata, status file, and watcher surface together.
40
+
New task spawns refuse `backend=orca`before any owned mutation; `docs/orca-backend.md` owns the rationale and exact legacy eligibility rule.
40
41
41
42
After spawn, check the task with firstmate helpers:
42
43
@@ -45,7 +46,7 @@ After spawn, check the task with firstmate helpers:
45
46
-`bin/fm-crew-state.sh <id>` when the current run state matters.
46
47
-`bin/fm-watch.sh` whenever there are tasks in flight and this session owns supervision.
47
48
48
-
Do not manually create the Orca worktree or terminal for a normal firstmate task.
49
+
Do not manually create the Orca worktree or terminal for an eligible firstmate recovery.
49
50
Do not manually patch metadata to make an externally-created Orca terminal look like a firstmate task.
50
51
51
52
## Supervision
@@ -73,19 +74,18 @@ For a messy Orca-backed task:
73
74
5. Avoid raw deletion of Orca worktrees or manual branch cleanup.
74
75
6. Stop and inspect if the recorded worktree path, Orca worktree id, or project checkout no longer matches expectations.
75
76
76
-
Teardown remains governed by the normal firstmate landing rules.
77
-
Scout work can be torn down after the report exists.
78
-
Ship work can be torn down only after the work is landed by its project mode.
77
+
Teardown remains governed by `docs/orca-backend.md`'s eligible legacy task contract; follow its report and landing rules exactly.
79
78
80
-
## Smoke Test
79
+
## Regression Verification
81
80
82
-
Keep Orca smoke tests focused on lifecycle plumbing:
81
+
Do not synthesize legacy metadata or spawn a disposable Orca task merely to smoke-test the backend.
82
+
Run the focused fake-Orca suite in `docs/orca-backend.md` to verify lifecycle plumbing.
83
+
When an actual eligible legacy recovery is already required, verify it through the normal lifecycle:
83
84
84
-
1.Select Orca intentionally for a disposable task or scout.
85
-
2.Spawn through `bin/fm-spawn.sh`.
85
+
1.Confirm the task metadata has no `report_required` marker and select Orca for that recovery.
86
+
2.Respawn through `bin/fm-spawn.sh`.
86
87
3. Confirm metadata records the Orca backend, terminal, Orca worktree id, and isolated worktree path.
87
88
4. Verify `bin/fm-peek.sh`, a short `bin/fm-send.sh` steer, watcher wake behavior, and `bin/fm-crew-state.sh`.
88
89
5. Tear down through `bin/fm-teardown.sh` after the task is safely disposable or landed.
89
-
6. Restore the previous backend selection if Orca was selected only for the smoke test.
90
90
91
-
Do not mix a backend smoke test with unrelated feature work.
91
+
Do not mix adapter verification with unrelated feature work.
Copy file name to clipboardExpand all lines: .agents/skills/fmx-respond/SKILL.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -139,7 +139,7 @@ Treat `state/x-inbox/` as the source of truth and process **every** file you fin
139
139
**Destructive, irreversible, or security-sensitive work is the exception** (X mode is a public, relayed channel and does not carry full in-session trust): do not execute it from the mention. Flag it to the captain through the normal trusted channel first - the same carve-out as `yolo` (AGENTS.md §1, §7) - act only on the captain's word, and in step 2d say only that it has been flagged for the captain.
140
140
**If the request spawned a real, longer-running task** (you ran `bin/fm-spawn.sh`), link that task to this mention so milestone and completion follow-ups can be posted: `bin/fm-x-link.sh <task-id> <request_id>`.
141
141
**Link here, in step 2c, before the step 2f inbox cleanup** - `bin/fm-x-link.sh` can copy both the mention's reply platform and explicit budget from the still-present inbox payload without a relay lookup.
142
-
If that local context is incomplete it uses the durable resolution contract in `docs/configuration.md` and warns loudly, while the follow-up path refuses to post unless both values can be resolved authoritatively.
142
+
If that local context is incomplete it uses the durable resolution contract in `docs/configuration.md` and warns loudly, while the follow-up path proceeds when either the platform or a valid explicit budget of at least 50 characters is resolved authoritatively and refuses only when neither is available.
143
143
Then step 2d's reply is an **acknowledgement** ("on it, captain"), and genuine milestone updates plus the final outcome come later as follow-ups (see "Completion follow-up" below), with the terminal one posted using `--final`.
144
144
If the work completed in this turn (a backlog item filed, a question answered), there is no task to link and step 2d reports the outcome directly.
145
145
d. **Compose the reply.** For a **question**, answer `.text` from the fleet state gathered in step 1. For an **actionable request that completed now**, report the outcome of step 2c (what was done, or - for escalated work - that it has been flagged for the captain). For an **actionable request that spawned a linked task**, acknowledge that you have the order and are on it - milestone updates and the final outcome follow later as completion follow-ups, so do not promise a result you do not yet have. Either way keep it short, in firstmate's voice, and public-safe.
@@ -199,7 +199,8 @@ This skill's own responsibility during the mention-handling turn is linking the
199
199
When the update carries one real visual artifact, add `--image <path>`; the helper forwards it to `bin/fm-x-reply.sh --followup` so the same image contract used for ordinary replies applies here too.
200
200
- On a terminal wake (PR merged / scout report / local merge / failed), firstmate posts the task's **final** outcome ("done, here's the result"; for a failure, an honest "this one didn't pan out") with `bin/fm-x-followup.sh <task-id> --final --text-file <path>`, which always clears the link after that post regardless of how many follow-ups remain under the cap.
201
201
- Every follow-up is held to the exact same public-safety bar as every reply here: outcomes only, no task ids, internals, captain-private material, or secrets. Past the window, past the cap, or on the relay's own rejection of an exhausted binding, a follow-up attempt is skipped silently and the link is cleared - never treated as a failure worth retrying.
202
-
- If either a follow-up's platform or explicit budget cannot be authoritatively resolved from per-request context, inbox payload, or relay answer, `bin/fm-x-followup.sh` does NOT post it: the fail-safe holds it (the link is kept, exit non-zero) rather than use a local default. This is a retryable hold - a later milestone wake retries it once both values are recoverable.
202
+
- If neither a follow-up's platform nor a valid explicit budget of at least 50 characters can be authoritatively resolved from per-request context, inbox payload, or relay answer, `bin/fm-x-followup.sh` does NOT post it: the fail-safe holds it (the link is kept, exit non-zero) rather than use a local default.
203
+
This is a retryable hold - a later milestone wake retries it once either value is recoverable.
description: Browse, search, open, or summarize Firstmate's durable completion report stack. Use when the captain asks what Firstmate or its crews finished, wants a completion report or visual evidence, asks to review recent work, or invokes /reports.
4
+
user-invocable: true
5
+
metadata:
6
+
internal: true
7
+
---
8
+
9
+
# Completion reports
10
+
11
+
Use `bin/fm-report-stack.mjs` from the Firstmate installation that loaded this skill.
12
+
13
+
Run `bin/fm-report-stack.mjs open` to regenerate and open the searchable offline stack.
14
+
Run `bin/fm-report-stack.mjs list` for a concise inventory, or add `--json` when structured filtering or summarization is needed.
15
+
Run `bin/fm-report-stack.mjs path <task-id>` to locate one report without opening it.
16
+
Run `bin/fm-report-stack.mjs open <task-id>` to open one report directly.
17
+
18
+
When the captain asks for a summary in chat, read the selected entry's `manifest.json` and `report.md`, then summarize the outcome, verification, visual evidence, and follow-ups.
19
+
Do not inspect provider account homes or raw session state for report browsing.
20
+
Treat the report stack as the durable completion ledger and the source task state as volatile.
21
+
22
+
Read `docs/report-stack.md` only when diagnosing publication, explaining the storage contract, or intentionally publishing a pre-cutover task.
0 commit comments