Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .agents/skills/secondmate-provisioning/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,14 @@ It preserves the line and its section, so the item is neither duplicated nor los
It refuses `## In flight` entries because active task ownership also lives in the crewmate's live pane and `state/`.
It is idempotent; an item already in the secondmate backlog is skipped.
It refuses any destination that is not a genuine seeded firstmate home with safe operational directories and a matching `.fm-secondmate-home` marker, so a move can never land in a project.

The item's reporting channel moves with it.
A brief pins its home into the `bin/fm-status.sh` command, so an item routed with that pin left behind reports into the origin home, where the owning secondmate's watcher never looks.
The helper therefore also carries the item's `data/<key>/` dir into the secondmate home and retargets every reporting command inside its brief at that home.
A scout's channel is its **report**, not its status file: the brief pins that deliverable as an absolute path and `bin/fm-teardown.sh` reads it from its own home, so the report path is retargeted alongside the status path - otherwise the findings land in a home that no longer owns the task and the owning secondmate's teardown refuses.
It retargets for every key you name, including one already present at the destination, so **re-running the handoff is the repair path** for an item routed before that behavior existed - name the item again and it is fully migrated: dir carried over, channel converged, no copy left in the origin.
When both homes hold a `data/<key>/` dir, the destination's is the live copy: it is retargeted but never clobbered, and the origin's stale copy is named in the output rather than removed, for you to delete once you have looked at it.
See `docs/specs/2026-09-01-routed-brief-home.md`.
Do not hand off `local-only` items.

## Recovery
Expand Down
2 changes: 2 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,8 @@ When a secondmate is created for a domain, the existing main-backlog items that
Scope-matching is firstmate's judgment against the secondmate's natural-language scope, not a keyword rule.
Read `data/backlog.md`, pick queued items that fit the scope, and move them with `bin/fm-backlog-handoff.sh <secondmate-id> <item-key>...`.
Do not hand off `local-only` items; that work stays with the main firstmate (section 7).
The item's reporting channel travels with it: the helper carries the item's `data/<id>/` dir into the secondmate home and retargets the brief's pinned channel - the status command, and a scout's absolute report path - at that home, so the owning supervisor sees the reports and its teardown finds the deliverable.
Naming an already-routed item again is the repair path for one routed before that existed, and fully migrates it.
For idempotence, destination validation, and refusal of `## In flight` entries, load `secondmate-provisioning`.

### Project memory ownership
Expand Down
Loading
Loading