feat(skills): add interactive captain aside sessions - #16
Merged
Conversation
/aside opens a dedicated scout-shaped window the captain converses with directly to gather ad-hoc context, deliberately bending hard rule 4 for the opt-in, then concludes back to the main firstmate via report and status.
Between captain turns the aside session appends 'paused: awaiting captain' so firstmate reconciles its idle as a healthy human-wait, not a wedge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Author a terse, captain-invocable /aside skill at .agents/skills/aside/SKILL.md in the firstmate repo. /aside opens a dedicated interactive window (an interactive scout / human-in-the-loop session) that the captain talks to DIRECTLY for ad-hoc, multi-turn context-gathering, instead of loading everything into the main firstmate chat; on conclusion it hands its outcome back to the main firstmate session.
Deliberate design decisions: (1) The skill builds on fm-spawn.sh's --scout shape, chosen as the lightest viable spawn that fm-spawn cleanly supports for a non-ship, non-secondmate window - scout already yields a scratch worktree plus the report.md + status-line conclusion contract with no PR and no delivery-mode machinery. (2) The aside session is deliberately INTERACTIVE WITH THE CAPTAIN: it explicitly bends hard rule 4 (a crewmate never addresses the captain) for this one opt-in session only, while every other supervision and safety rule still holds - this bend is intentional, not a mistake. (3) The session concludes only when the captain says so, writing its outcome to data//report.md and appending a done: status line so the main firstmate reconciles it and tears the window down. (4) Required frontmatter: name: aside, a description covering what it does and when the captain invokes it, user-invocable: true, metadata.internal: true.
Accepted follow-up requirement folded in during review: the /aside session MUST append 'paused: awaiting captain' to its status file between the captain's turns, so firstmate treats its idle as a bounded human-wait rather than a possible wedge/hang; the skill documents that firstmate reconciles an aside's idle as healthy (a captain conversation in progress) and rechecks on the long paused cadence until done.
Scope is intentionally minimal/terse v1 - capture the essence only (spawn the window, interactive-with-captain, conclude back to main firstmate, teardown), not an over-built control plane; the captain will iterate. This touches firstmate's shared tracked material (.agents/skills/), authored per firstmate-coding-guidelines: one sentence per line in Markdown, plain dashes not em dashes, size discipline, trigger declared via user-invocable frontmatter, no agent commit co-author.
What Changed
/asideskill for direct, multi-turn conversations in an isolated scout window.paused: awaiting captainhandling and captain-triggered handback through the scout report, status, and teardown contracts.Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ **Rebase** - passed
✅ **Review** - completed
✅ **Test** - passed
✅ **Document** - passed
✅ **Lint** - passed
✅ **Push** - passed