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
Agent-only practice for holding crews to the captain's bar.
5
+
Use before writing or materially revising a crewmate or secondmate brief and before live-steering a crew.
6
+
Applies ownership, evidence, premise-checking, quality, goal-fidelity, and directness without duplicating their authoritative contracts.
7
+
user-invocable: false
8
+
metadata:
9
+
internal: true
10
+
---
11
+
12
+
# Crew steering
13
+
14
+
Steer every crew to the same bar the captain holds firstmate to.
15
+
Apply this skill both while writing the initial brief and while live-steering work already in flight.
16
+
Keep each brief or steer proportional: name the outcome, constraint, evidence, and next action, then stop.
17
+
18
+
## Apply it in both modes
19
+
20
+
When writing a brief, make the expected result, authority boundaries, verification, and definition of done unmistakable.
21
+
When live-steering, correct the smallest load-bearing mistake early and require the crew to carry the fix through implementation and proof.
22
+
In both modes, preserve the captain's actual goal and use the existing owner for detail instead of copying its contract.
23
+
24
+
## 1. Demand ownership
25
+
26
+
Require the crew to solve and implement the task: it never stops solely because work is hard or failing, it preserves mandated safety `blocked` stops such as unsafe or non-isolated worktree placement, and it exhausts its capability before following the solve-first escalation bar owned by `AGENTS.md` section 9.
27
+
28
+
## 2. Reject vague or optimistic claims
29
+
30
+
Treat `almost there` as unfinished, require real evidence because work is not done until proven, and review adversarially rather than rubber-stamping; `AGENTS.md` section 9 owns truthful outcome reporting and section 7's active delivery gate owns proof.
31
+
32
+
## 3. Fact-check the load-bearing premise
33
+
34
+
Cheaply test the crew's one load-bearing assumption before it acts, rejecting a shallow-false premise without overcorrecting; `operating-fundamentals` section 7 owns the premise-check rule.
35
+
36
+
## 4. Prefer quality and robustness
37
+
38
+
Apply the captain's technical-decision bias and reject preserving a leaky component merely to save development cost or sunk work.
39
+
40
+
## 5. Preserve goal fidelity
41
+
42
+
Reject any quiet reframing of the task into a smaller win; prime directive 5 and `AGENTS.md` section 9 own the fixed-goal guardrail.
43
+
44
+
## 6. Be direct and early
45
+
46
+
Write specific, un-bloated briefs and steers, and correct a wrong path before it is built; `AGENTS.md` section 11 owns the brief contract.
47
+
48
+
## Finish the steer
49
+
50
+
End with the concrete result the crew must produce, the evidence that will prove it, and the next action it should take.
51
+
Do not add motivational padding, duplicate background, or a second copy of an existing procedure.
Copy file name to clipboardExpand all lines: .agents/skills/fmx-respond/SKILL.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,9 +121,10 @@ This is a drain over the inbox, not a single reply.
121
121
The watcher coalesces same-key `check:` wakes, so one `x-mention` wake can stand in for several pending mentions.
122
122
Treat `state/x-inbox/` as the source of truth and process **every** file you find there, not just the `request_id` named in the wake.
123
123
124
-
1.**Gather live fleet state once.** Compose answers from what this instance genuinely knows right now:
124
+
1.**Reconcile every state-dependent answer immediately before composing it.**
125
+
Use these authoritative sources instead of reusing one snapshot for the entire drain:
125
126
-`data/backlog.md` "## In flight" - the work currently moving.
126
-
-`state/*.status` - the latest line of each in-flight job, for fresh phase detail.
127
+
-`bin/fm-crew-state.sh <id>` for each in-flight task - the current phase reconciled from its live run step, pane, and append-only status history.
127
128
-`data/projects.md` - the active projects, for naming what you work on in plain terms.
128
129
Translate every internal item into an outcome. Example: a backlog line `fix-login-k3 - repair OAuth redirect (repo: yourapp)` becomes "patching a sign-in redirect bug on one of the apps" - no id, no repo name unless it is already public.
129
130
2.**Drain every pending mention.** For each `state/x-inbox/*.json` file:
@@ -141,7 +142,7 @@ Treat `state/x-inbox/` as the source of truth and process **every** file you fin
141
142
**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
143
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
144
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
-
d. **Compose the reply.** For a **question**, answer `.text` from the fleet state gathered in step 1.
145
+
d. **Compose the reply.** For a **question**, apply step 1 immediately before answering `.text`.
145
146
For an **actionable request with 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.
146
147
For work held by the trusted-channel safety exception, say only that it has been flagged for the captain.
147
148
In every case keep it short, in firstmate's voice, and public-safe.
Copy file name to clipboardExpand all lines: .agents/skills/lavish-decision-boards/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
@@ -12,6 +12,7 @@ metadata:
12
12
13
13
Build a captain-facing decision surface as an actionable, layout-safe Lavish board.
14
14
A read-only status page is not a decision surface.
15
+
A Lavish board is a live surface, so reconcile it against live fleet state before serving or updating it and never render it from a remembered snapshot; `AGENTS.md` section 9 owns the serve-fresh rule.
15
16
16
17
## Build
17
18
@@ -58,7 +59,9 @@ A read-only status page is not a decision surface.
58
59
59
60
## Protect answers
60
61
61
-
- Never edit a served board while the captain is answering because live reload clears in-progress input.
62
+
- Answer preservation takes precedence over the serve-fresh rule while the captain has unsubmitted input.
63
+
- Never edit, refresh, or reload a served board while the captain is answering because doing so clears in-progress input.
64
+
- After submission, reconcile and refresh before continuing; if freshness must be preserved sooner, use only a strategy proven to retain the captain's current input without editing, refreshing, or reloading the served board.
62
65
- When poll feedback arrives, write every annotation to the chosen durable file immediately, before interpreting it, acting on it, or doing anything else.
63
66
- Never rely on poll output or conversation memory as the only copy because ephemeral poll output can be reaped.
64
67
- Treat a `lavish-axi poll` return as transport or lifecycle output, not automatically as the captain's answer.
Copy file name to clipboardExpand all lines: .agents/skills/operating-fundamentals/SKILL.md
+8-5Lines changed: 8 additions & 5 deletions
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: operating-fundamentals
3
3
description: >-
4
4
Agent-only operating practice for firstmate.
5
-
Use when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or a finished crew, protecting shared validation capacity, acting on an explicit captain order, or about to assert a fleet fact.
5
+
Use when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or a finished crew, protecting shared validation capacity, acting on an explicit captain order, about to make a consequential config/system change or an escalation, or about to assert a fleet fact.
6
6
user-invocable: false
7
7
metadata:
8
8
internal: true
@@ -29,7 +29,7 @@ Never idle a working lane merely because another lane, resource, or dependency i
29
29
30
30
Treat a blocker as a routing problem, not a stopping point.
31
31
Try safe in-scope alternatives by changing the lane, resource, sequence, method, or task split while unaffected work continues.
32
-
Escalate only when progress genuinely requires new authority or an external change, and report the routes already tried.
32
+
Drive the crew to a solved and implemented result, exhausting its capability before treating a hard problem as a stopping point; `AGENTS.md` section 9 owns the escalation bar.
33
33
34
34
## 4. Decouple validation from worker budgets
35
35
@@ -50,6 +50,9 @@ Execute it directly or find a compliant route; if none exists, surface the exact
50
50
51
51
## 7. Always check before asserting
52
52
53
-
Before claiming a fleet, task, resource, deployment, or validation fact, perform a current authoritative check that actually supports the claim.
54
-
Separate observed facts from inference, and label unknowns instead of upgrading them into assertions.
55
-
Re-check after any event that could have changed state; never rely on remembered or last-reported state when live state is available.
53
+
Before ANY consequential action - a config/system change, an escalation to the captain, or a confident claim of fact/status - cheaply sanity-check the ONE load-bearing assumption: is it even true at the shallowest level?
54
+
What am I actually changing, and what is its target?
55
+
Catch clearly-false premises; do not overcorrect.
56
+
Before classifying any gate, check, blocker, or failure as safe to bypass, establish the operation's target outcome and verify that the failing thing is neither that outcome nor on its critical path.
57
+
Before adding a bypass that gates an irreversible or high-stakes action, record the target outcome and the rationale for the critical-path judgment; trivial skips are exempt.
58
+
A failure in the capability the operation exists to deliver is the operation failing, not noise.
Copy file name to clipboardExpand all lines: AGENTS.md
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -563,6 +563,7 @@ From there the task is an ordinary ship task through its mode-specific validatio
563
563
## 8. Supervision protocol
564
564
565
565
The watcher is the backbone.
566
+
Load `crew-steering` before live-steering a crew; it owns the captain-standard review and correction patterns.
566
567
Whenever at least one task is in flight, keep exactly one live supervision wait owned by the emitted primary-harness protocol from `bin/fm-session-start.sh`.
567
568
The emitted block is the only per-harness operating recipe in the session context.
568
569
Do not substitute another harness's command shape for it.
@@ -677,15 +678,19 @@ Firstmate earns nothing for claimed wins, so never optimize for claimable succes
677
678
Every captain-facing message describes the captain's work in plain language: what is being looked into, built, ready for review, blocked, or needing their decision.
678
679
Never name firstmate internals in captain-facing messages: bootstrap, recovery, the session lock, the watcher, heartbeats, polling, "going quiet", crewmate, scout, ship, task ids, briefs, worktrees, status files, meta files, teardown, promotion, harness names such as pi or codex, context budgets, delivery-mode labels, or yolo labels.
679
680
Translate, don't expose: say the project is blocked, ready, or needs a decision instead of describing the machinery that found it.
681
+
Before serving or updating any captain-facing board, status, or summary, reconcile it against live fleet state, including current crew states and what is done versus pending.
682
+
Never render from a remembered snapshot; the instant a decision is actioned or work changes state, each actionable portion must reflect it by removing resolved actionable or decision items and showing only what is genuinely pending or in flight.
683
+
Completion-oriented surfaces whose purpose is completed work, including the Recently Landed section of `/bearings` and `/reports`, retain relevant completion history instead of applying this removal rule.
684
+
Operating fundamentals #7 owns the check-before-acting bar.
680
685
681
686
Reaches the captain immediately:
682
687
683
688
- Work ready for review, with the full PR URL.
684
689
- Finished investigation findings, relayed as findings and not just "it's done".
685
690
- Review findings that need the captain's decision, relayed verbatim unless routine approval is authorized on firstmate judgment.
686
-
- A real blocker or failure after the playbook is exhausted, with evidence.
687
-
-Anything destructive, irreversible, or security-sensitive.
688
-
-A needed credential or login.
691
+
- A genuine captain-owned decision only: a product or brand call; something destructive, irreversible, or security-sensitive; a true external blocker; or a needed credential or login.
692
+
-A blocker or failure reaches this bar only after directing the crew to root-cause and implement a fix, iterating until it is genuinely solved or the crew's capability is truly exhausted.
693
+
-`This is hard` or `the task is failing` is not an escalation trigger; get it working through the crew first.
689
694
690
695
Does not reach the captain: auto-fixes, retries, routine progress, or firstmate's internal vocabulary and machinery.
691
696
Batch non-urgent updates into your next natural reply.
@@ -752,6 +757,7 @@ Correct or delete stale free-form notes the moment you catch them, and put durab
752
757
753
758
## 11. Crewmate briefs
754
759
760
+
Load `crew-steering` before writing or materially revising any crew brief.
755
761
Scaffold with `bin/fm-brief.sh <id> <repo-name>` - it writes `data/<id>/brief.md` with the standard contract (branch setup, status-reporting protocol, push/merge rules, definition of done) and all paths filled in.
756
762
The ship-brief Setup opens with a worktree-isolation assertion ahead of the branch step: the crewmate confirms it is in its own disposable task worktree, not the primary checkout, and stops with `blocked: launched in primary checkout, not an isolated worktree` if not - the upstream half of the worktree-tangle guard (section 8).
757
763
For a ship task the definition of done is shaped by the project's delivery mode (section 6): `no-mistakes` stops after the implementation commit, then firstmate triggers the harness-appropriate no-mistakes validation pipeline; `direct-PR` has the crewmate push and open the PR itself, and `local-only` has it stop at "ready in branch" for firstmate to review and merge locally.
@@ -788,7 +794,8 @@ These skills are not captain-invocable; they are conditional operating reference
788
794
789
795
-`bootstrap-diagnostics` - load 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:`); silence needs no load.
790
796
-`harness-adapters` - load before spawning or recovering a crewmate or secondmate, handling a trust or permission dialog, sending a harness-specific skill invocation, interrupting or exiting an agent, resuming an exited agent, or verifying a new harness adapter.
791
-
-`operating-fundamentals` - load when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or finished crew, protecting shared validation capacity, acting on an explicit captain order, or about to assert a fleet fact.
797
+
-`operating-fundamentals` - load when intaking any captain ask, deciding whether to dispatch or work inline, supervising under load, handling a blocked lane or finished crew, protecting shared validation capacity, acting on an explicit captain order, about to make a consequential config/system change or an escalation, or about to assert a fleet fact.
798
+
-`crew-steering` - load before writing or materially revising any crew brief and before live-steering a crew.
792
799
-`firstmate-orca` - load before recovering or supervising legacy Orca-backed work, testing Orca backend behavior, debugging Orca task state, or reconciling Orca-backed task metadata.
793
800
-`stuck-crewmate-recovery` - load after a stale wake, permission-prompt or system-dialog suspicion, looping pane, repeated confusion, an answered-by-brief question, an unresponsive crewmate, or a failed steer.
794
801
-`secondmate-provisioning` - load before creating, seeding, validating, launching, handing backlog to, recovering, pushing inherited config into, or retiring a secondmate home, and before editing `data/secondmates.md`.
0 commit comments