feature-marker
End-to-end feature development orchestrator that automates the full lifecycle from requirements to pull request. Generates PRD, Tech Spec, and Task breakdown artifacts, then executes a 4-phase workflow: Analysis โ Implementation โ Tests โ Commit & PR. Supports 5 execution modes:
What it does
feature-marker
Automates feature development with a 5-phase workflow:
- Inputs Gate - Validates
prd.md,techspec.md,tasks.mdexist; generates them via~/.claude/commands/if missing. - Analysis & Planning - Auto-installs product-manager skill if missing; reads docs, creates implementation plan.
- Implementation - Executes tasks with progress tracking.
- Tests & Validation - Runs platform-appropriate test suites and build validation. Auto-detects: Swift/Xcode (+ XcodeBuildMCP simulator), Node.js, Rust, Python, Go.
- 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 discussiongenerate-spec.md- Generates technical specification from PRDgenerate-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:
- 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
- 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}
- Missing PRD โ
- Auto-installs missing dependencies:
- Phase 1: Checks for
product-managerskill- 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)
- If missing: Installs via
- Phase 4: Checks for
/commitcommand- If missing: Copies from bundled
resources/commit.mdto~/.claude/commands/commit.md - If user already has it: Uses user's version
- If installation fails: Falls back to standard commit workflow
- If missing: Copies from bundled
- Phase 1: Checks for
- Executes 5-phase workflow via the
feature-markeragent - 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
npxavailable, 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.mdto~/.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:
- Detects the most recent plan from
~/.claude/plans/(sorted by modification time) - Reads project conventions from
./CLAUDE.mdat the project root (if present) - 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)
...
Capabilities
Install
Quality
deterministic score 0.45 from registry signals: ยท indexed on github topic:agent-skills ยท 9 github stars ยท SKILL.md body (14,089 chars)