start-side-quest
Start a side-quest branch for orthogonal improvements discovered while working on an issue
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Start a side-quest branch for orthogonal improvements discovered while working on an issue
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Add a dependency relationship between GitHub issues using the native addBlockedBy mutation
Reusable file sequence numbering with prefix (NNNN-name) and suffix (name-NNNN) modes. Returns the next available zero-padded sequence number for a given directory.
Drop a timestamped note for the current issue - collected by /finish-issue for PR descriptions
Create or update CHANGELOG entries with tone guardrails, thematic grouping, and implementation-detail leak detection.
Delete an issue's working directory (.claude-work/issues/<ID>/) after confirming with the user via interactive prompt
Create a commit message file in .claude-work/commit-msgs/ with auto-numbered filenames. Focuses on WHY not WHAT. The diff already shows what changed. User reviews and commits manually.
| name | start-side-quest |
| version | 2026.07.27@6dc7d1d |
| description | Start a side-quest branch for orthogonal improvements discovered while working on an issue |
| argument-hint | <description | path/to/file.ts#L10-L20> [--scratchpad] |
| allowed-tools | Read, Write, Glob, Grep, Bash(git fetch *), Bash(git checkout *), Bash(git branch --show-current), Bash(git status *), Bash(git stash *), Bash(mkdir -p *), Bash(*/skills/auto-number/auto-number.sh *), Bash(*/skills/ensure-gitignore/ensure-gitignore.sh *), Bash(*/skills/issue-context/target-path.sh *), Bash(*/skills/issue-context/claude-work-root.sh *) |
Start a "side-quest": a focused branch for orthogonal improvements discovered while working on another issue. Side-quests keep the main issue branch clean and focused.
Input: $ARGUMENTS
This can be:
First, determine the current branch and its state:
git branch --show-current
git status --porcelain
If on an issues/* or side-quest/* branch with uncommitted changes:
git stash push -m "WIP: <parent-branch> - paused for side-quest"
Derive a slug from the description (lowercase, hyphens, no special chars).
The base branch for the side-quest is the branch that was active when /start-side-quest was invoked (captured in Step 1). This is typically origin/main but may be any branch, for example, when working in a stack of PRs.
git fetch origin
git checkout -b side-quest/<slug> <base-branch>
Branch naming pattern: side-quest/<descriptive-slug>
Examples:
side-quest/bookmarks-store-api-improvementsside-quest/fix-result-type-usageside-quest/cleanup-test-mocksCheck for project-local hooks: if the project has a /start-side-quest-hook skill (foundation skill at .claude/skills/start-side-quest-hook/SKILL.md), it is loaded as additional context automatically. Read it and incorporate whatever it specifies into the plan generated in Step 3. If no such skill exists, continue with the vanilla plan. See /skill-hooks for the full extension mechanism.
Choose the working-document type based on whether formal step tracking is requested:
/note): use this unless the user explicitly opted in. Produces a lightweight, freeform plan. Relies on you (the LLM) to self-organize execution in-session./scratchpad): triggered when $ARGUMENTS contains --scratchpad, or when the user's invoking message contains a natural-language opt-in phrase ("use a scratchpad", "with step tracking", "formal plan", "track steps"). Produces a scratchpad with a JSON step block so /tackle-scratchpad-block can drive execution.Side-quest branches don't match issues/*, so the working document lands in the flat <base>/notes/ (default) or <base>/scratchpads/ (opt-in) directory, where <base> is the output of ~/.claude/skills/issue-context/claude-work-root.sh.
/noteUse /note with description side-quest-<slug>. The note MUST contain (all prose, no JSON step block):
# Side-Quest: <Title>
Base branch: <branch this was cut from (origin/main, issues/XXX, or another branch)>
## Goal
1-2 sentences explaining what improvement this side-quest delivers.
## Plan
Numbered prose steps (no fenced JSON). Each step commit-sized and specific.
/scratchpadUse /scratchpad with description side-quest-<slug>. Same sections as 3a, except ## Plan is replaced with ## Implementation Plan containing a fenced JSON step block per the /scratchpad Step Tracking schema. Set finish_issue_on_complete: true at the top level.
After the working document is created (via either path), write the pointer file so /finish-issue and /tackle-scratchpad-block can resolve the primary plan:
Path: <base>/active-plan-<slug> (where <base> is from claude-work-root.sh)
Contents: the project-root-relative path to the working document, for example:
.claude-work/notes/20260424-143022-side-quest-cleanup-test-mocks.txt
Overwrite any existing pointer with the same slug.
Formatting: see /prose-style for hard-wrap, code-reference, and GitHub-reference rules.
Only create questions for decisions that would fundamentally change the approach.
If questions are needed, use /question to create a questions file and gather user input.
Print a summary:
=== Side-Quest Started ===
Branch: side-quest/<slug>
Parent: <original branch> (stashed if had changes)
Files created:
- <base>/notes/<file>.txt (implementation plan, absolute path, default)
OR <base>/scratchpads/<file>.txt (if --scratchpad, absolute path)
- <base>/active-plan-<slug> (absolute path, pointer to the working document)
- <base>/questions/<file>.txt (if questions needed, absolute path)
Stash: <stash message if applicable>
---
Ready to implement. When done:
1. Commit your changes
2. Run `/finish-issue` to verify, generate PR description, and wrap up
3. Return to parent: git checkout <parent-branch>
(run `git stash pop` only if changes were stashed)
IMPORTANT: Do NOT proceed with implementation.
This skill sets up the side-quest context. Wait for user to:
Before finishing, verify:
<base-branch>/note (default) or /scratchpad (opt-in). Not both<base>/active-plan-<slug> pointer written with the project-root-relative path to the working document/noteUser: /start-side-quest src/types/Result.ts#L45-L60
User: /start-side-quest cleanup ExtensionResult usage in test mocks --scratchpad
side-quest/cleanup-extensionresult-usage-in-test-mocks/scratchpad with JSON step tracking so /tackle-scratchpad-block can drive execution