Create Branch with Spec Directory
Create a new git branch and its corresponding spec directory.
Pre-Flight Checks
Verify clean git state:
- If dirty: STOP and list uncommitted changes
Validate branch name:
- Must be provided as argument
- If empty: STOP with "Branch name required"
Execution
Create and checkout branch:
git checkout -b $ARGUMENTSResolve and create spec directory:
# Source the bundled spec resolver from this pi package source "../../assets/scripts/spec-resolver.sh" # Resolve spec path (handles external vs local) RELATIVE_PATH="$(date +%Y)/$(date +%m)/$ARGUMENTS/000-backlog.md" SPEC_FILE=$(resolve_spec_path "$RELATIVE_PATH") SPEC_DIR="${SPEC_FILE%/*}" # Pure bash dirname equivalent # Create backlog file touch "$SPEC_FILE"- Path: Auto-resolved based on .env configuration
- External:
.specs/specs/<YYYY>/<MM>/<branch-name>/ - Local:
specs/<YYYY>/<MM>/<branch-name>/
- External:
- Creates
000-backlog.md(empty file)
- Path: Auto-resolved based on .env configuration
Commit spec directory:
# Extract NNN and title for commit_spec_changes # For backlog, use "000" and "backlog" commit_spec_changes "$SPEC_FILE" "CREATE" "000" "backlog"- CRITICAL: Must commit BEFORE creating worktree, otherwise spec files are lost
Confirm:
- Branch: $ARGUMENTS - Spec dir: <resolved-path> - Backlog: 000-backlog.md (committed)
Conditional Documentation
When configuring external specs repository or modifying spec path resolution, read:
../../assets/scripts/spec-resolver.sh../../assets/scripts/external-specs.sh../../assets/scripts/lib/config-loader.sh