feat: add /missive skill for GitHub issue context#51
Conversation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ution row Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughDetects GitHub/Jira-style issue references in fellowship spawn requests, invokes a new /missive skill to fetch issue context (title, body, labels, comments), and uses that context to spawn one quest per referenced issue with suggested branch names and optional PR-closing keywords. Adds an issues.autoClose setting. Changes
Sequence DiagramsequenceDiagram
actor User
participant Fellowship
participant Detector as Issue Detector
participant Missive
participant GitHub as GitHub CLI/API
participant QuestSystem as Quest Spawner
participant PRSystem as PR Creator
User->>Fellowship: "implement issues `#42`, `#51` with fellowship"
Fellowship->>Detector: extract issue refs
Detector-->>Fellowship: ["#42","#51"]
loop per issue
Fellowship->>Missive: request context for `#N`
Missive->>GitHub: gh issue view --json `#N`
GitHub-->>Missive: issue metadata (title, body, labels, comments)
Missive-->>Fellowship: {issue_context}, branch suggestion, PR keywords
Fellowship->>QuestSystem: spawn quest with {issue_context} and branch
QuestSystem-->>Fellowship: quest spawned
end
Note right of QuestSystem: on completion
QuestSystem->>PRSystem: open PR with body (includes PR keywords)
PRSystem->>GitHub: merge PR -> auto-closes issues if keywords present
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
plugin/skills/missive/SKILL.md (1)
79-83: Minor clarification on default branch pattern.The default branch format here (
fellowship/<number>-<slugified-title>, e.g.,fellowship/42-fix-auth-bug) differs intentionally from the quest skill's default (fellowship/{slug}) because missive incorporates the issue number for traceability. This is the correct behavior since missive output overrides quest's default branch naming when present, as documented in quest/SKILL.md. The distinction is clear in context but could benefit from a brief note explaining why the issue number is included (traceability back to the GitHub issue).
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6582c78d-13ea-46e6-8fa3-94cfafb707f8
📒 Files selected for processing (7)
plugin/commands/settings.mdplugin/skills/fellowship/SKILL.mdplugin/skills/fellowship/resources/lead-behavior.mdplugin/skills/fellowship/resources/spawn-prompts.mdplugin/skills/missive/SKILL.mdplugin/skills/quest/SKILL.mdsite/src/routes/skills/+page.svelte
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
/missiveskill that fetches GitHub issue context viaghCLI — title, body, labels, comments — and returns structured packages with branch name suggestions and PR closing keywords (Closes #N)#Nreferences in quest descriptions and invokes/missivebefore spawningissues.autoCloseconfig key (defaulttrue) controls whetherCloses #Nis includedCloses #45
Test plan
/missive 45standalone — verify it fetches issue context and displays structured outputquest: implement #45— verify Gandalf detects the reference, invokes/missive, and passes enriched context to the questfellowship/45-create-quests-from-github-issues)Closes #45issues.autoClose: falsein config — verify closing keyword is omitted🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation