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