Skip to content

fix(skill): Replace ':' with ';' in skill description - #45

Merged
kunchenguid merged 1 commit into
kunchenguid:mainfrom
AnonymousMorris:fix-yml-error
Jun 23, 2026
Merged

kunchenguid merged 1 commit into
kunchenguid:mainfrom
AnonymousMorris:fix-yml-error

Conversation

@AnonymousMorris

Copy link
Copy Markdown
Contributor

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 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.
@AnonymousMorris

Copy link
Copy Markdown
Contributor Author

The colon cause this error in codex.

⚠ Skipped loading 1 skill(s) due to invalid SKILL.md files.
⚠ /home/morris/sandbox/ai/firstmate/.agents/skills/afk/SKILL.md: invalid YAML: mapping values are not allowed in this context at line 2 column 356

@kunchenguid
kunchenguid merged commit 2a2fe05 into kunchenguid:main Jun 23, 2026
@kunchenguid

Copy link
Copy Markdown
Owner

ty!

leo1oel added a commit to leo1oel/nemo that referenced this pull request Jun 23, 2026
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.
@AnonymousMorris
AnonymousMorris deleted the fix-yml-error branch June 23, 2026 15:23
augustomklee added a commit to augustomklee/firstmate that referenced this pull request Jun 24, 2026
Port upstream batch 1: teardown fork-remote eligibility (kunchenguid#31) + afk skill desc (kunchenguid#45)
vipentti pushed a commit to vipentti/firstmate that referenced this pull request Aug 5, 2026
This was referenced Aug 7, 2026
@ki-za

ki-za commented Aug 29, 2026

Copy link
Copy Markdown

Scout plan (huddle-app second mate, 2026-08-29)

Proposed Options / Plan / Blocking / Lead decisions for this ticket, from the ha-app-plan scout report.

Current state

Options

  • Local presentation settings — one global Huddle app choice for each setting; simplest authority and no theme precedence.
  • Theme defaults plus local overrides — lets themes set initial presentation, but adds precedence and makes themes influence layout behavior.
  • Fixed presentation — smallest code, but conflicts with feat(spawn): add Treehouse worktree setup hook #47's ruled menu contents.

Recommended Plan

Modules: Extract LeadReply.svelte and reuse ReplyFrame.svelte for the composer and leadReply; replace ReplyLayout in view-state.ts with separate ReplyAlignment and ReplyMarker types and changes; add two controls to AppMenu.svelte; persist two keys through the shared settings model; migrate the old huddle-reply-layout value once; replace physical CSS placement with logical properties and #49 role tokens; extend reducer and component tests.

Seams: Immutable human-authored reply plus reply_to becomes one leadReply. replyAlignment changes placement only. replyMarker changes the indicator only. Neither setting changes message identity, content, attachments, target, or ledger order. The old sides value migrates to the ruled default alignment plus one marker; mirror migrates to in-place alignment plus paired markers. The theme supplies frame and secondary-text roles and may change glyphs without changing either setting. The huddle's human member supplies lead identity.

Validation criteria: The same message id, exact content, reply_to, attachment ids, and order survive every alignment/marker combination; member contributions never receive a replyFrame; the composer and leadReply retain the faint frame while a contribution is active; narrow, 30rem, wide, and right-to-left fixtures remain readable; a held-out theme changes glyphs and swatches without changing setting values; the old localStorage value migrates once. Run bun run check. Capture a setting-combination picture matrix at narrow and 30rem widths plus one right-to-left picture.

Blocking?

blocked by the huddle-mate setting-value ruling, #49, and #52 — the two settings have primary names but no frozen value names; role tokens and lead identity must replace current theme names and captain literals.

Lead decisions

  • Settings authority: local Huddle app settings or theme defaults with local overrides? Recommend local Huddle app settings.
  • Persistence scope: one Huddle app profile or one choice per Huddle? Recommend one Huddle app profile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants