fix(skill): Replace ':' with ';' in skill description - #45
Conversation
The SKILL.md description is parsed as YAML, and the : character in the plain-text description was being interpreted as YAML syntax. Removing it keeps the metadata parseable.
|
The colon cause this error in codex. ⚠ Skipped loading 1 skill(s) due to invalid SKILL.md files. |
|
ty! |
Bring the upstream secondmate feature (PRs #37/#42/#43/#31/kunchenguid#45) to herdr-backend, rewriting every treehouse/tmux mechanism into the herdr equivalents this branch already uses. A secondmate is a crewmate whose workspace is an isolated firstmate home (its own FM_HOME) and whose brief is a charter; it runs the same spawn/brief/status/watch/teardown/recovery lifecycle and is idle by default. treehouse -> herdr mapping: - Home leasing -> a herdr worktree of the firstmate repo. fm-home-seed.sh `-` runs `herdr worktree create --cwd $FM_ROOT --branch secondmate-<id>` and records the worktree path + open_workspace_id; herdr never recycles a worktree, so persistence is automatic and all lease/return bookkeeping is dropped. The workspace id is stored beside the home marker (.fm-secondmate-home.workspace) so retirement can find it. - Retirement / seed rollback -> `herdr worktree remove --workspace <ws> --force`. An explicit <home> path stays a plain directory home (a git clone, no herdr worktree); spawn opens a workspace for it on the fly via `herdr workspace create` and teardown closes it with `herdr workspace close` then deletes the dir. - firstmate_home_has_treehouse_slot -> "does the home record a workspace marker"; if yes remove via herdr, else plain rm. New: bin/fm-home-seed.sh (charter fill, project cloning, no-mistakes init, registry edits, transactional rollback, validate subcommand all ported as-is), bin/fm-backlog-handoff.sh (no treehouse/tmux; near-verbatim). Edits (re-implemented on the diverged herdr-backend files, not applied as upstream hunks): fm-spawn.sh (--secondmate path, FM_HOME indirection, registry/home resolution, launch in home, meta records home=/home_workspace=/projects=), fm-teardown.sh (kind=secondmate retirement via herdr, child-work refusal + --force discard, plus #31: allow teardown when work is on any remote incl. a fork), fm-brief.sh (--secondmate charter scaffold), fm-watch.sh (skip stale-pane wakes for kind=secondmate), fm-project-mode.sh (honor FM_HOME/FM_DATA_OVERRIDE so a secondmate resolves its own projects.md). kunchenguid#45: dropped the ':' from the afk skill description. Skipped fm-bootstrap.sh / fm-harness.sh (removed on this branch). Docs: AGENTS.md + README.md gain herdr-flavored secondmate sections (concept, secondmates.md routing table, fm-home-seed usage, idle-by-default contract, backlog handoff, kind=secondmate recovery, watch idle) with no treehouse/tmux wording. Tests: new herdr-stubbed tests/fm-secondmate.test.sh drives the real scripts against a stub `herdr` over the full lifecycle (seed `-`, register, validate dup ids/homes/overlap, spawn, backlog handoff, retire); tests/fm-teardown.test.sh ports the #31 any-remote/fork matrix to herdr. shellcheck bin/*.sh tests/*.sh clean; 5/5 test scripts pass.
Port upstream batch 1: teardown fork-remote eligibility (kunchenguid#31) + afk skill desc (kunchenguid#45)
Scout plan (huddle-app second mate, 2026-08-29)Proposed Options / Plan / Blocking / Lead decisions for this ticket, from the Current state
Options
Recommended PlanModules: Extract Seams: Immutable human-authored reply plus Validation criteria: The same message id, exact content, Blocking?
Lead decisions
|
The SKILL.md description is parsed as YAML, and the : character in the plain-text description was being interpreted as YAML syntax. Removing it keeps the metadata parseable.