Add minor version to major
Creates a new minor version within an existing major version for project planning.
/plugin marketplace add cowwoc/claude-code-dog/plugin install dog@claude-code-dog[major]Add a new minor version to an existing major version. Minor versions represent bugfixes and smaller feature additions within a major version.
</objective><execution_context>
@${CLAUDE_PLUGIN_ROOT}/.claude/dog/templates/minor-state.md @${CLAUDE_PLUGIN_ROOT}/.claude/dog/templates/minor-plan.md @${CLAUDE_PLUGIN_ROOT}/.claude/dog/templates/changelog.md
</execution_context>
<process> <step name="verify">Verify planning structure exists:
[ ! -d .claude/dog ] && echo "ERROR: No planning structure. Run /dog:new-project first." && exit 1
[ ! -d .claude/dog/major ] && echo "ERROR: No major versions exist. Run /dog:add-major-version first." && exit 1
</step>
<step name="select_major">
Determine target major version:
If $ARGUMENTS provided:
If $ARGUMENTS empty:
List available major versions:
# Find all major versions
ls -1 .claude/dog/major/ 2>/dev/null | sort -V
Use AskUserQuestion:
If "Create new major version" -> invoke /dog:add-major-version and return.
Validate selected major exists:
MAJOR="{major}"
MAJOR_PATH=".claude/dog/major/$MAJOR"
[ ! -d "$MAJOR_PATH" ] && echo "ERROR: Major version $MAJOR does not exist" && exit 1
</step>
<step name="find_next_minor">
Determine next minor version number:
# Find highest existing minor version
NEXT_MINOR=$(ls -1 "$MAJOR_PATH/minor/" 2>/dev/null | sort -V | tail -1)
if [ -z "$NEXT_MINOR" ]; then
NEXT_MINOR=0
else
NEXT_MINOR=$((NEXT_MINOR + 1))
fi
echo "Next minor version: $NEXT_MINOR"
</step>
<step name="discuss">
Gather minor version context:
1. Description (FREEFORM):
Ask inline: "What is the focus of minor version $MAJOR.$NEXT_MINOR?"
2. Scope:
Use AskUserQuestion:
Create minor version directory structure:
MINOR_PATH="$MAJOR_PATH/minor/$NEXT_MINOR"
mkdir -p "$MINOR_PATH/task"
</step>
<step name="create_state">
Create STATE.md:
# State
- **Status:** pending
- **Progress:** 0%
- **Dependencies:** []
- **Last Updated:** {timestamp}
</step>
<step name="create_plan">
Create PLAN.md:
# Plan: Minor Version {major}.{minor}
## Focus
{focus from discussion}
## Scope
{scope type from discussion}
## Tasks
*No tasks defined yet. Use `/dog:add-task {major}.{minor}` to add tasks.*
## Goals
- {goal 1}
- {goal 2}
</step>
<step name="create_changelog">
Create CHANGELOG.md:
# Changelog
## [{major}.{minor}] - Pending
*Changelog will be populated as tasks are completed.*
</step>
<step name="update_roadmap">
Update ROADMAP.md:
Read current ROADMAP.md and add the new minor version entry under the appropriate major section:
## Major {major}: [Name]
- **{major}.0:** [existing description]
- **{major}.{minor}:** {new description from discussion}
</step>
<step name="update_parent">
Update parent major STATE.md:
Recalculate progress considering new empty minor version.
</step> <step name="commit">Commit minor version creation:
git add "$MINOR_PATH/"
git add ".claude/dog/ROADMAP.md"
git add "$MAJOR_PATH/STATE.md"
git commit -m "$(cat <<'EOF'
docs: add minor version {major}.{minor}
{One-line description of minor version focus}
EOF
)"
</step>
<step name="done">
Present completion:
Minor version created:
- Version: {major}.{minor}
- Focus: {description}
- Path: .claude/dog/major/{major}/minor/{minor}/
---
## Next Up
**Add tasks to this minor version:**
`/dog:add-task {major}.{minor}`
---
</step>
</process>
<success_criteria>
</success_criteria>