Skip to content

feat(agent): skywatch Claude Code subagent + install command#22

Merged
jayrav13 merged 1 commit into
mainfrom
feat/skywatch-agent
May 2, 2026
Merged

feat(agent): skywatch Claude Code subagent + install command#22
jayrav13 merged 1 commit into
mainfrom
feat/skywatch-agent

Conversation

@jayrav13

@jayrav13 jayrav13 commented May 2, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a Claude Code subagent (`agents/skywatch.md`) that lets users ask for AIM 7-1-5 weather briefs in natural language and get a prose briefing back. The parent agent dispatches to skywatch, which invokes the gem CLI and formats the JSON brief in formal AIM 7-1-5 section order.

Design decisions (locked with the user before building):

  • Tool surface: Bash only — the gem CLI is the single data source. Read/WebFetch deferred to follow-ups.
  • Output: prose, AIM 7-1-5 section order. Parent agent presents to user as natural language.
  • Decision depth: surface formal AIM warnings ("VFR FLIGHT NOT RECOMMENDED") objectively when the slot indicates them, regardless of pilot rating. Never issue commands like "don't fly" — pilots decide.

Install path: `skywatch agent install` copies the bundled agent file to `~/.claude/agents/skywatch.md`. `SKYWATCH_AGENTS_DIR` env var honored for testability. Prompts before overwrite (`--yes` skips).

After install + a Claude Code restart:

```
User: hey Claude, plan a flight from KCDW to KACY tomorrow at 8am, VFR only — give me a weather brief
Claude Code: [dispatches to skywatch subagent → CLI → formatted AIM 7-1-5 brief]
```

Test plan

  • `skywatch agent install --yes` copies the file to the agents dir
  • Creates parent dirs if missing
  • Prompts before overwrite (interactive y/n)
  • Skips overwrite cleanly when answered no
  • Gemspec includes `agents/*.md` so the bundled file ships in the published gem
  • CLAUDE.md updated with new commands
  • `bundle exec rspec` — 524 examples, 0 failures
  • `bundle exec rubocop` — clean

🤖 Generated with Claude Code

Adds a Claude Code subagent that lets users ask for AIM 7-1-5 weather
briefs in natural language ("plan a flight from KCDW to KACY tomorrow at
8am, give me a brief"). The parent agent dispatches to the skywatch
subagent, which invokes the gem CLI and returns a prose briefing in
formal AIM 7-1-5 section order.

- agents/skywatch.md — subagent definition (frontmatter + system prompt)
  - Tool surface: Bash only (gem CLI is the single data source)
  - Output: AIM 7-1-5 prose with formal section headings
  - Surfaces "VFR FLIGHT NOT RECOMMENDED" objectively when the slot
    indicates it; never issues commands ("don't fly") — pilots decide
- lib/skywatch/agent/cli.rb — `skywatch agent install` Thor subcommand
  - Copies the bundled file to ~/.claude/agents/skywatch.md
  - Honors SKYWATCH_AGENTS_DIR env var for testability
  - Prompts before overwrite (--yes to skip prompt)
- gemspec — includes agents/*.md in the published gem

Closes the v1 agent task.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jayrav13 jayrav13 merged commit edc24ee into main May 2, 2026
3 checks passed
@jayrav13 jayrav13 deleted the feat/skywatch-agent branch May 2, 2026 02:12
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.

1 participant