feature-marker

Installation
SKILL.md

feature-marker

Automates feature development with a 5-phase workflow:

  1. Inputs Gate - Validates prd.md, techspec.md, tasks.md exist; generates them via ~/.claude/commands/ if missing.
  2. Analysis & Planning - Auto-installs product-manager skill if missing; reads docs, creates implementation plan.
  3. Implementation - Executes tasks with progress tracking.
  4. Tests & Validation - Runs platform-appropriate test suites and build validation. Auto-detects: Swift/Xcode (+ XcodeBuildMCP simulator), Node.js, Rust, Python, Go.
  5. Commit & PR - Auto-installs enhanced commit command if missing; commits changes using professional workflow and creates PR (auto-detects git platform).

Platform Support

feature-marker works with any tech stack:

  • 🍎 iOS/Swift β€” swift test + SwiftLint + XcodeBuildMCP simulator validation
  • 🟨 Node.js/TypeScript β€” auto-detects npm/yarn/pnpm/bun + Jest/Vitest
  • πŸ¦€ Rust β€” cargo test + cargo clippy
  • 🐍 Python β€” pytest + ruff/flake8
  • 🐹 Go β€” go test + go vet

iOS/Xcode projects get additional simulator validation via XcodeBuildMCP (optional, non-blocking). The platform is auto-detected once at workflow start and cached β€” no configuration required.

Usage

/feature-marker <feature-slug>

Example:

/feature-marker prd-user-authentication

Interactive Mode

/feature-marker --interactive <feature-slug>

Opens a menu to select execution mode:

  • Full Workflow - Default, generates missing files and executes all phases
  • Tasks Only - Uses existing files, skips generation phase
  • Ralph Loop - Autonomous continuous execution with ralph-wiggum
  • Spec-Driven - Multi-agent review + worktree isolation via spec-workflow
  • Test Only - Runs tests phase exclusively using platform-appropriate test guidance (Swift Testing for iOS, Jest/Vitest for Node.js, etc.)

Works both in terminal (TTY menu) and Claude CLI (AskUserQuestion prompt).

Direct mode selection (skip menu):

/feature-marker --mode full <feature-slug>
/feature-marker --mode tasks-only <feature-slug>
/feature-marker --mode ralph-loop <feature-slug>
/feature-marker --mode spec-driven <feature-slug>
/feature-marker --mode test-only <feature-slug>

Prerequisites

Commands

The following commands must be available in ~/.claude/commands/:

  • create-prd.md - Creates a new PRD from requirements discussion
  • generate-spec.md - Generates technical specification from PRD
  • generate-tasks.md - Breaks down feature spec into implementable tasks

Templates

The commands above read templates from ~/.claude/docs/specs/ to generate structured documents.

Required templates:

  • ~/.claude/docs/specs/prd-template.md - Product Requirements Document template
  • ~/.claude/docs/specs/techspec-template.md - Technical Specification template
  • ~/.claude/docs/specs/tasks-template.md - Tasks breakdown template

Template Format: Templates should be markdown files with placeholders and structure that commands will use to generate feature-specific documents.

Setup: Ensure these templates exist before running feature-marker:

ls ~/.claude/docs/specs/
# Should show: prd-template.md, techspec-template.md, tasks-template.md

Note: If templates are missing, commands in ~/.claude/commands/ will fail to generate files.

Project Structure

Feature Documents (generated in project):

./tasks/
└── prd-{feature-name}/
    β”œβ”€β”€ prd.md            ← Generated from ~/.claude/docs/specs/prd-template.md
    β”œβ”€β”€ techspec.md       ← Generated from ~/.claude/docs/specs/techspec-template.md
    β”œβ”€β”€ tasks.md          ← Generated from ~/.claude/docs/specs/tasks-template.md
    └── {num}_task.md     ← Individual task files (optional)

State Directory (checkpoint & progress):

.claude/feature-state/{feature-name}/
β”œβ”€β”€ checkpoint.json
β”œβ”€β”€ analysis.md
β”œβ”€β”€ plan.md
β”œβ”€β”€ progress.md
β”œβ”€β”€ test-results.md
└── pr-url.txt

User Configuration (required setup):

~/.claude/
β”œβ”€β”€ commands/           ← Commands that generate files
β”‚   β”œβ”€β”€ create-prd.md
β”‚   β”œβ”€β”€ generate-spec.md
β”‚   └── generate-tasks.md
└── docs/
    └── specs/          ← Templates used by commands
        β”œβ”€β”€ prd-template.md
        β”œβ”€β”€ techspec-template.md
        └── tasks-template.md

Behavior

When invoked, the skill:

  1. Validates inputs - Checks if ./tasks/prd-{feature-slug}/ contains required files
    • If all files exist β†’ Skips to step 3
    • If any file is missing β†’ Proceeds to step 2
  2. Generates ONLY missing files - Existing files are never overwritten:
    • Missing PRD β†’ /create-prd
    • Missing Tech Spec β†’ /generate-spec {feature-slug}
    • Missing Tasks β†’ /generate-tasks {feature-slug}
  3. Auto-installs missing dependencies:
    • Phase 1: Checks for product-manager skill
      • If missing: Installs via npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill product-manager
      • If user already has it: Uses user's version
      • If installation fails: Continues without it (non-blocking)
    • Phase 4: Checks for /commit command
      • If missing: Copies from bundled resources/commit.md to ~/.claude/commands/commit.md
      • If user already has it: Uses user's version
      • If installation fails: Falls back to standard commit workflow
  4. Executes 5-phase workflow via the feature-marker agent
  5. Persists state - Saves checkpoints after each phase/task for resume capability

Important: The workflow is smart about file detection and dependencies:

  • βœ… Files/skills/commands exist β†’ Uses them directly, no regeneration or reinstallation
  • ⚠️ Missing β†’ Installs/generates only what's needed
  • πŸ”’ Never overwrites existing content
  • πŸ‘€ User's versions always have priority over bundled/auto-installed versions

Auto-Installed Dependencies

Feature-marker automatically installs missing dependencies to enhance the workflow:

Product Manager Skill (Phase 1)

What it does: Provides advanced PRD analysis, requirements validation, and product management capabilities.

Installation:

  • Check: Phase 1 checks for ~/.claude/skills/product-manager/SKILL.md
  • Install: If missing and npx available, runs:
    npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill product-manager
    
  • Priority: Uses user's existing skill if already installed
  • Fallback: Continues without it if installation fails (non-blocking)

Benefits:

  • Enhanced requirement analysis
  • Better PRD validation
  • Improved feature planning

Enhanced Commit Command (Phase 4)

What it does: Professional commit workflow with validation, splitting, and conventional commit format.

Installation:

  • Check: Phase 4 checks for ~/.claude/commands/commit.md
  • Install: If missing, copies from bundled resources/commit.md to ~/.claude/commands/commit.md
  • Priority: Uses user's existing command if already installed
  • Fallback: Uses standard commit workflow if installation fails

Features:

  • Pre-commit validation (lint, build, docs)
  • Intelligent commit splitting
  • Conventional commit format with emojis
  • Smart file staging
  • No Co-Authored-By footer (as per command design)

Example Output:

✨ feat: add user authentication system
πŸ› fix: resolve memory leak in rendering process
πŸ“ docs: update API documentation
♻️ refactor: simplify error handling logic

Manual Installation

If auto-installation fails, you can install manually:

Product Manager Skill:

npx skills add https://github.com/aj-geddes/claude-code-bmad-skills --skill product-manager

Commit Command:

cp ~/.claude/skills/feature-marker/resources/commit.md ~/.claude/commands/commit.md

Template Setup Guide

Template Directory Structure

Commands in ~/.claude/commands/ read templates from a centralized location:

~/.claude/docs/specs/
β”œβ”€β”€ prd-template.md          # Product Requirements Document template
β”œβ”€β”€ techspec-template.md     # Technical Specification template
└── tasks-template.md        # Task breakdown template

Why Templates in ~/.claude/docs/specs?

  • Centralized: All projects share the same templates
  • User-controlled: Users can customize their own templates
  • Portable: Commands reference templates via standard path
  • Separation: Templates are not in project repositories

Template Content

Each template should be a markdown file with:

  • Clear section structure
  • Placeholder text or variables
  • Examples and formatting guidelines

Commands read these templates and populate them with feature-specific content.

Setup Verification

To verify your setup is complete:

# Check templates exist
ls -l ~/.claude/docs/specs/

# Check commands exist
ls -l ~/.claude/commands/

# Test feature-marker
/feature-marker --interactive prd-test-feature

If templates are missing, create them in ~/.claude/docs/specs/ before running feature-marker.

Plan Mode Integration

When the user has used Claude's built-in plan mode before invoking feature-marker, the agent automatically:

  1. Detects the most recent plan from ~/.claude/plans/ (sorted by modification time)
  2. Reads project conventions from ./CLAUDE.md at the project root (if present)
  3. Uses both as rich context to enhance PRD generation and reduce redundant clarification questions

This is automatic and requires no additional flags or options. If no plan or CLAUDE.md exists, the workflow proceeds normally.

Recommended flow:

1. Use Claude plan mode to explore the codebase and think through the feature
2. Exit plan mode
3. Run /feature-marker --interactive <feature-slug>
4. Select "Full Workflow"
5. The plan content automatically enriches PRD generation

Checkpoint & Resume

If interrupted (Ctrl+C, session crash, etc.), re-invoke with the same feature slug to resume:

/feature-marker prd-user-authentication

The skill will:

  • Detect existing checkpoint
  • Show current progress (phase, task index)
  • Ask if you want to resume or start fresh

Platform Detection

In Phase 4, the skill auto-detects your git platform and selects the appropriate PR skill:

Platform Detection PR Skill
GitHub github.com in remote URL checking-pr
Azure DevOps dev.azure.com in remote URL azure-pr
GitLab gitlab.com in remote URL checking-pr
Bitbucket bitbucket.org in remote URL checking-pr
Other (fallback) checking-pr

Configuration

Override default behavior with .feature-marker.json in your repository root:

{
  "pr_skill": "custom-pr-skill",
  "skip_pr": false,
  "test_command": "npm run test:ci",
  "docs_path": "./tasks",
  "state_path": ".claude/feature-state"
}

Error Handling

Scenario Behavior
Missing files Auto-generate via commands
No git repo Fail early with helpful message
No tests Skip Phase 3 with warning
Test failures Report issues, allow fix, offer retry
Unknown platform Fallback to checking-pr
PR skill unavailable Commit only, log manual instructions

Example Sessions

Example 1: All Files Exist (No Generation Needed)

> /feature-marker prd-user-authentication

Checking for existing checkpoint...
No checkpoint found. Starting new workflow.

Phase 0: Inputs Gate
βœ“ prd.md exists
βœ“ techspec.md exists
βœ“ tasks.md exists
βœ… All files present. Skipping generation.

Phase 1: Analysis & Planning
Reading existing documents...
Creating implementation plan...
Checkpoint saved.

Phase 2: Implementation
[1/6] Create User entity... βœ“
[2/6] Add authentication service... βœ“
...

Example 2: Partial Files (Generates Only Missing)

> /feature-marker prd-payment-integration

Checking for existing checkpoint...
No checkpoint found. Starting new workflow.

Phase 0: Inputs Gate
βœ“ prd.md exists
βœ— techspec.md missing β†’ Generating via /generate-spec...
βœ“ tasks.md exists

βœ… Generated missing file. All inputs ready.

Phase 1: Analysis & Planning
Reading documents...
Creating implementation plan...
Checkpoint saved.
...

Example 3: Complete Workflow with Auto-Install

> /feature-marker prd-new-feature

Phase 0: Inputs Gate
βœ— prd.md missing β†’ Generating via /create-prd...
βœ— techspec.md missing β†’ Generating via /generate-spec...
βœ— tasks.md missing β†’ Generating via /generate-tasks...

Phase 1: Analysis & Planning
βš™οΈ  Installing product-manager skill...
βœ“ product-manager skill installed successfully
Reading PRD, Tech Spec, and Tasks...
Creating implementation plan...
Checkpoint saved.

Phase 2: Implementation
[1/6] Create User entity... βœ“
[2/6] Add authentication service... βœ“
[3/6] Implement login endpoint... βœ“
[4/6] Add JWT token handling... βœ“
[5/6] Create logout endpoint... βœ“
[6/6] Add session management... βœ“
Checkpoint saved.

Phase 3: Tests & Validation
βœ… Platform detected: Node.js / Next.js (pnpm)
Running: jest --findRelatedTests src/api/users.ts
βœ… 14 passed, 0 failed
Lint: pnpm run lint βœ…
Checkpoint saved.

Phase 4: Commit & PR
βš™οΈ  Installing commit command...
βœ“ commit command installed successfully
Using enhanced commit workflow (/commit)...
✨ feat: implement user authentication system
Detected platform: GitHub
Creating PR via /checking-pr...

βœ“ Feature complete!
PR URL: https://github.com/user/repo/pull/42

Example 4: Using Existing User Tools

> /feature-marker prd-payment-feature

Phase 0: Inputs Gate
βœ“ All inputs validated.

Phase 1: Analysis & Planning
βœ“ product-manager skill already installed (using user's version)
...

Phase 4: Commit & PR
βœ“ commit command already exists (using user's version)
...
Weekly Installs
3
GitHub Stars
9
First Seen
Mar 31, 2026