update-stmo-skill
Keeps .claude/skills/stmo/SKILL.md (the vendored copy, source of truth for
the firefox-facing skill) in sync with stmo-cli, then hands off delivery to a
firefox checkout.
Background
The command/flag catalog is deliberately not restated in SKILL.md — it
defers to stmo-cli --help (see the "Command reference" section at the top of
the skill), which is guarded by src/main.rs's llm_help_guard tests against
the real clap definitions. Most stmo-cli changes (new flag, new subcommand,
tweaked default) therefore need no SKILL.md edit at all: fixing
LLM_HELP in src/main.rs is enough, and the guard enforces that it stays
complete.
SKILL.md only needs a manual edit when the change affects workflow
narrative that --help output can't convey — e.g. a new multi-step
procedure, a changed recommendation (working directory, cleanup rules,
export/analyze guidance), or a new gotcha worth calling out explicitly (like
the schedule and dynamic-date-token sections added when those features
shipped).
Steps
Identify what changed. Read the relevant diff or changelog entry (
git log -p -- src/main.rs src/commands/,git diff <last-release>..HEAD, orCHANGELOG.md) to understand the stmo-cli change.Decide if
SKILL.mdneeds an edit.- Flag/command surface change only → run
cargo test llm_help_guard(or the fullcargo test) to confirmLLM_HELPinsrc/main.rsalready covers it. If the guard fails, fixLLM_HELP, notSKILL.md. - Workflow/behavior change → edit
.claude/skills/stmo/SKILL.mddirectly. Keep edits narrative (what to do and why), not a restatement of flags — let--helpstay the source of truth for those.
- Flag/command surface change only → run
Run the full pre-commit gate before committing any
SKILL.mdorsrc/main.rsedit:cargo test,cargo clippy --all-targets --all-features -- -W clippy::pedantic -D warnings,cargo fmt -- --check.Commit the stmo-cli-side change (if any) following this repo's normal commit discipline — one commit per logical change.
Deliver to firefox: run
scripts/sync-firefox-skill.sh <path-to-local-firefox-checkout> [bug-number]This copies the vendored
SKILL.mdto both.claude/skills/stmo/SKILL.mdand.agents/skills/stmo/SKILL.mdin the firefox checkout (firefox'sagent-skills-synclinter requires the two to stay byte-identical), stages both, and creates one commit. It does not runmoz-phab— it prints the exact command to run next.Stop and hand off to the human for the Phabricator submission — do not run
moz-phab submitautomatically. Report the printedmoz-phab submitcommand and the reminder to set thetesting-exception-unchangedTesting Policy project tag (this is a docs-only change).