Add new major version
Creates a new major version with planning documents and initial structure.
/plugin marketplace add cowwoc/claude-code-dog/plugin install dog@claude-code-dogAdd a new major version to the project. Major versions represent new features or significant capabilities. Uses a discussion workflow to gather context and create comprehensive planning documents.
</objective><execution_context>
@${CLAUDE_PLUGIN_ROOT}/.claude/dog/templates/major-state.md @${CLAUDE_PLUGIN_ROOT}/.claude/dog/templates/major-plan.md @${CLAUDE_PLUGIN_ROOT}/.claude/dog/templates/changelog.md @${CLAUDE_PLUGIN_ROOT}/.claude/dog/workflows/questioning.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
[ ! -f .claude/dog/ROADMAP.md ] && echo "ERROR: No ROADMAP.md. Run /dog:new-project first." && exit 1
</step>
<step name="find_next_major">
Determine next major version number:
# Find highest existing major version
mkdir -p .claude/dog/major
NEXT_MAJOR=$(ls -1 .claude/dog/major/ 2>/dev/null | sort -V | tail -1)
if [ -z "$NEXT_MAJOR" ]; then
NEXT_MAJOR=1
else
NEXT_MAJOR=$((NEXT_MAJOR + 1))
fi
echo "Next major version: $NEXT_MAJOR"
</step>
<step name="discuss">
Gather major version context through deep questioning:
1. Vision (FREEFORM):
Ask inline: "What is the vision for Major Version $NEXT_MAJOR? What new capabilities will it bring?"
Wait for response.
2. Core value:
Use AskUserQuestion:
3. Scope:
Use AskUserQuestion:
4. Dependencies:
Use AskUserQuestion:
5. Boundaries:
Use AskUserQuestion:
6. Decision gate:
Use AskUserQuestion:
Loop until "Create it" selected.
</step> <step name="create_structure">Create major version directory structure:
MAJOR_PATH=".claude/dog/major/$NEXT_MAJOR"
mkdir -p "$MAJOR_PATH/minor/0/task"
</step>
<step name="create_major_state">
Create Major STATE.md:
# State
- **Status:** pending
- **Progress:** 0%
- **Dependencies:** [{previous major if applicable}]
- **Last Updated:** {timestamp}
</step>
<step name="create_major_plan">
Create Major PLAN.md (business-level):
# Plan: Major Version {major}
## Vision
{vision from discussion}
## Core Value
{core value from discussion}
## Scope
{scope assessment}
## Goals
- {goal 1}
- {goal 2}
- {goal 3}
## Out of Scope
- {exclusion 1}
- {exclusion 2}
## Minor Versions
- **{major}.0:** Initial implementation
*Use `/dog:add-minor-version {major}` to add more*
## Success Criteria
- [ ] {criterion 1}
- [ ] {criterion 2}
</step>
<step name="create_major_changelog">
Create Major CHANGELOG.md:
# Changelog
## [Major {major}] - Pending
*Changelog will be populated as minor versions are completed.*
</step>
<step name="create_initial_minor">
Create initial minor version (X.0):
Create .claude/dog/major/{major}/minor/0/ with:
STATE.md:
# State
- **Status:** pending
- **Progress:** 0%
- **Dependencies:** []
- **Last Updated:** {timestamp}
PLAN.md:
# Plan: Minor Version {major}.0
## Focus
Initial implementation for Major {major}
## Tasks
*No tasks defined yet. Use `/dog:add-task {major}.0` to add tasks.*
CHANGELOG.md:
# Changelog
## [{major}.0] - Pending
*Changelog will be populated as tasks are completed.*
</step>
<step name="update_roadmap">
Update ROADMAP.md:
Append new major version section:
## Major {major}: {Name from vision}
- **{major}.0:** Initial implementation
---
*Use /dog:add-minor-version to add minor versions*
*Use /dog:add-task to add tasks*
</step>
<step name="commit">
Commit major version creation:
git add ".claude/dog/major/$NEXT_MAJOR/"
git add ".claude/dog/ROADMAP.md"
git commit -m "$(cat <<'EOF'
docs: add major version {major}
{One-line description of major version vision}
Creates Major {major} with initial minor version {major}.0.
EOF
)"
</step>
<step name="done">
Present completion:
Major version created:
- Version: Major {major}
- Vision: {vision summary}
- Initial minor: {major}.0
- Path: .claude/dog/major/{major}/
---
## Next Up
**Add tasks to get started:**
`/dog:add-task {major}.0`
**Or add more minor versions:**
`/dog:add-minor-version {major}`
---
</step>
</process>
<success_criteria>
</success_criteria>