Skip to content
Open
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
6 changes: 2 additions & 4 deletions .agents/skills/firstmate-coding-guidelines/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,8 @@ When in doubt, write the fact into the skill or doc first by patching that owner
A new skill is dead weight if nothing loads it.
Every new skill needs its load trigger declared inline: section 13 for agent-only reference skills, or the relevant operating section for anything else.
State the trigger as a condition ("load before X", "load on Y wake"), never as a vague pointer.
Briefs for tasks that touch firstmate's own tracked material should tell the crewmate to load this skill.
`bin/fm-brief.sh`'s `REPO` argument is a caller-supplied string with no reliable signal that it names firstmate's own repo, unlike a project registered in `data/projects.md`, so there is no clean point inside the scaffold to detect this case automatically.
Firstmate adds this skill's load instruction to firstmate-repo briefs by hand instead.
`CONTRIBUTING.md`'s "Development" section carries the same instruction as a durable reminder.
Briefs for tasks that touch firstmate's own tracked material should tell the crewmate to load this skill; `bin/fm-brief.sh`'s scaffold already carries that conditional line, so no firstmate-repo brief needs it added by hand.
`CONTRIBUTING.md`'s "Development" section carries the same instruction for human contributors.

## Compatibility and enforcement

Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ Write the task-specific brief under section 11 before spawning.

Spawn only through `bin/fm-spawn.sh` after the profile and backend checks in section 4.
The spawn must resolve a genuine isolated task worktree distinct from the primary checkout; a failed isolation assertion stops the task.
A firstmate-repo crew or scout worktree also receives crewmate project instructions so the harness cannot load this file as that worker's job; `bin/fm-crew-worktree-instructions-lib.sh` owns the overlay.
After spawning, confirm the worker is processing the brief, handle any trust dialog through `harness-adapters`, and record ship or scout work as under way.
A persistent secondmate is recorded in the secondmate registry and runtime state, never as a backlog work item.

Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,8 @@ See the [no-mistakes quick start](https://kunchenguid.github.io/no-mistakes/star
Tracked changes to firstmate itself - `AGENTS.md`, `README.md`, `CONTRIBUTING.md`, `.tasks.toml`, `.github/workflows/`, `bin/`, `.agents/skills/`, and `skills/` - ship through the `no-mistakes` pipeline on a feature branch and require an explicit merge approval.
Before making any such change, load the agent-only `firstmate-coding-guidelines` skill (`.agents/skills/firstmate-coding-guidelines/SKILL.md`).
It has the knowledge-placement rules that keep `AGENTS.md` from regrowing after each diet pass.
There is no reliable way for `bin/fm-brief.sh`'s scaffold to detect that a task's repo is firstmate itself, so firstmate adds this skill's load line to firstmate-repo briefs by hand.
A crewmate picking up such a brief should load the skill even if the brief predates this instruction.
`bin/fm-brief.sh` scaffolds this skill's load line into every crewmate brief, so a firstmate-repo task carries it without hand-editing.
A crewmate picking up an older brief that predates that line should load the skill anyway.
When supervising live crewmates, keep firstmate's own long validation or build commands in the background so watcher wakes can still be handled.
Crewmate validation follows the installed no-mistakes version's SKILL.md and live `axi` help instead of duplicating gate mechanics in firstmate docs.
Firstmate's wrapper still matters: crewmates route every `ask-user` finding to firstmate, which applies `ask-user-authority`, and crewmates avoid `--yes` because it would bypass that check and any required captain escalation.
Expand Down
10 changes: 10 additions & 0 deletions bin/fm-brief.sh
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,11 @@ fi
if [ "$KIND" = scout ]; then
cat > "$BRIEF" <<EOF
You are a crewmate: an autonomous worker agent managed by firstmate. Work on your own; do not wait for a human.
You are not the first mate, even if this worktree's project files say you are.
Do not run \`bin/fm-session-start.sh\`, \`bin/fm-spawn.sh\`, \`bin/fm-brief.sh\`, \`tasks-axi add\`, or any other fleet-management command.
You have no fleet.
Do not open an interactive question dialog; the only channel that reaches anyone is the status file named below.
If this task edits firstmate's shared tracked material, load \`firstmate-coding-guidelines\` from \`.agents/skills/firstmate-coding-guidelines/SKILL.md\` before editing.

# Task
{TASK}
Expand Down Expand Up @@ -412,6 +417,11 @@ DOD=${DOD%$'\n'}

cat > "$BRIEF" <<EOF
You are a crewmate: an autonomous worker agent managed by firstmate. Work on your own; do not wait for a human.
You are not the first mate, even if this worktree's project files say you are.
Do not run \`bin/fm-session-start.sh\`, \`bin/fm-spawn.sh\`, \`bin/fm-brief.sh\`, \`tasks-axi add\`, or any other fleet-management command.
You have no fleet.
Do not open an interactive question dialog; the only channel that reaches anyone is the status file named below.
If this task edits firstmate's shared tracked material, load \`firstmate-coding-guidelines\` from \`.agents/skills/firstmate-coding-guidelines/SKILL.md\` before editing.

# Task
{TASK}
Expand Down
Loading