MUST invoke before any creative work - creating features, building components, or adding functionality.
Transforms vague ideas into concrete designs through research-driven dialogue. Invoked when you request features, components, or creative work—before any code is written.
/plugin marketplace add astrosteveo/harness/plugin install astrosteveo-harness@astrosteveo/harnessThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Turn ideas into fully formed designs through collaborative dialogue.
The flow:
When this skill is invoked, immediately assess:
Does the user's request already explain what they want?
harness:researching immediatelyMost feature requests ARE clear enough. When in doubt, research first - you can always ask later if research reveals genuine ambiguity.
NO DESIGNING UNTIL RESEARCH IS COMPLETE
You cannot propose approaches, architectures, or solutions until you have:
SKIP THIS STEP if the user has already explained what they want clearly. Go directly to Step 2 (Research).
Signs you can skip Step 1:
If you need more clarity:
CRITICAL: Step 1 questions are about USER INTENT only.
| Bad Question (asks about code) | Good Question (asks about intent) |
|---|---|
| "What's the current state of movement?" | "Should this replace or augment existing controls?" |
| "Do you have an input handler?" | "What input devices should this support?" |
| "How is the ship controlled now?" | "Any accessibility requirements?" |
This is NOT design. You're gathering enough info to know what to research.
REQUIRED SUB-SKILL: Use harness:researching
This happens BEFORE proposing ANY approaches.
Research includes:
You cannot skip this. See the researching skill for the full process.
| Rationalization | Reality |
|---|---|
| "I know this codebase" | Knowing isn't current. Explore to verify. |
| "Simple feature, no research needed" | Simple features still follow patterns. Find them. |
| "Let me propose something first" | NO. Research THEN propose. |
| "I'll research after I have a design" | Research after design = rework. Research first. |
| "Quick proposal, then research" | NO. There is no "quick proposal" before research. |
Only AFTER research is complete.
You MUST present exactly 3 architecture options with explicit trade-offs. This prevents Claude's anti-pattern of committing to the first reasonable idea without considering alternatives.
The Three Options:
| Option | Focus | When to Recommend |
|---|---|---|
| Minimal | Smallest diff, maximum reuse | Tight deadline, low risk tolerance |
| Clean | Best architecture, maintainability | Long-term project, refactoring opportunity |
| Pragmatic | Balanced speed + quality | Most cases |
Option Format:
## Architecture Options
### Option A: Minimal (Smallest Change)
**Approach:** [How it works]
**Files changed:** [List]
**Pros:** Fast, low risk, minimal testing
**Cons:** May accumulate tech debt, less elegant
**Effort:** Low
### Option B: Clean (Best Architecture)
**Approach:** [How it works]
**Files changed:** [List]
**Pros:** Maintainable, extensible, follows patterns
**Cons:** More effort, larger diff, more testing
**Effort:** High
### Option C: Pragmatic (Balanced)
**Approach:** [How it works]
**Files changed:** [List]
**Pros:** Good architecture without over-engineering
**Cons:** Some compromises
**Effort:** Medium
---
**Recommendation:** Option [X] because [specific reasons based on research]
Which approach would you like to proceed with?
Requirements:
Anti-pattern: Single-path design
| Rationalization | Reality |
|---|---|
| "The approach is obvious" | Present options anyway. User may see trade-offs differently. |
| "Only one way to do this" | There's always a minimal vs clean spectrum. |
| "Options will confuse them" | Options give agency. Single path removes choice. |
| "I'll mention alternatives briefly" | NO. Full analysis for each option. |
Once approach is chosen:
Before starting, assess task size:
| Size | Criteria | Workflow |
|---|---|---|
| Micro | < 5 min, single file, obvious fix | Verify location in codebase → TDD |
| Small | < 30 min, 1-3 files, clear requirements | Quick questions → research → plan |
| Medium | 30 min - 2 hrs, multiple components | Standard workflow |
| Large | > 2 hrs, architectural changes | Full workflow with thorough research |
For Micro tasks: You still verify WHERE in the codebase the change goes. "Micro" means abbreviated workflow, NOT skipping research entirely.
| Rationalization | Reality |
|---|---|
| "It's just a button" | Where does it go? What patterns exist? Verify first. |
| "Too simple to research" | Simple changes in wrong places cause bugs. Check first. |
| "Process theater" | 30 seconds to verify location prevents 30 minutes debugging. |
Once design is approved, write the implementation plan.
Save to: .harness/NNN-feature-slug/plan.md
A single plan file MUST NOT exceed 1,000 lines (~250 tasks).
| Plan Size | Action |
|---|---|
| ≤ 800 lines | ✅ Proceed |
| 800-1,000 lines | ⚠️ At limit - consider deferring scope |
| > 1,000 lines | ❌ MUST reduce scope - defer to backlog |
If too large: add deferred features to .harness/BACKLOG.md using harness:backlog-tracking.
Plans MUST be organized into Phases (2-6 tasks each):
# [Feature Name] Implementation Plan
> **For Claude:** Execute using subagent per Phase.
**Goal:** [One sentence]
**Tech Stack:** [Key technologies with VERIFIED versions]
**Research Summary:** [Key findings]
**Phases:**
1. Phase 1: [Name] (N tasks)
2. Phase 2: [Name] (N tasks)
...
---
## Phase 1: [Name]
### Task 1.1: [Component Name]
**Files:**
- Create: `exact/path/to/file.py`
- Modify: `exact/path/to/existing.py`
- Test: `tests/path/to/test.py`
**Step 1: Write the failing test**
\`\`\`python
def test_specific_behavior():
result = function(input)
assert result == expected
\`\`\`
**Step 2: Run test to verify it fails**
Run: `pytest tests/path/test.py::test_name -v`
Expected: FAIL
**Step 3: Write minimal implementation**
\`\`\`python
def function(input):
return expected
\`\`\`
**Step 4: Run test to verify it passes**
Run: `pytest tests/path/test.py::test_name -v`
Expected: PASS
**Step 5: Commit**
\`\`\`bash
git commit -m "feat: add specific feature"
\`\`\`
Each step is one action (2-5 minutes):
Requirements:
After saving the plan:
✅ **Plan complete and saved**
- Plan: `.harness/NNN-feature-slug/plan.md`
**[N] Phases identified:**
1. Phase 1: [Name] (N tasks)
2. Phase 2: [Name] (N tasks)
...
**How would you like to proceed?**
| Option | Description |
|--------|-------------|
| **Continue** | Execute now (uses subagent per Phase) |
| **New Session** | Start fresh session to execute |
| Mode | Description |
|------|-------------|
| **Autonomous** | Runs all Phases without stopping |
| **Checkpoint** | Pauses after each Phase for approval |
If "Continue": Use harness:subagent-driven-development
If "New Session": Git tracks progress via phase completion commits
All project documents are saved to .harness/NNN-feature-slug/ where:
NNN is a zero-padded sequence number (001, 002, etc.)feature-slug is a kebab-case name for the featureSave documents:
.harness/NNN-feature-slug/research.md.harness/NNN-feature-slug/requirements.md.harness/NNN-feature-slug/design.md.harness/NNN-feature-slug/plan.mdCommit documents to git after saving.
Deferred Items: If any features, bugs, or tasks are identified but deferred:
.harness/BACKLOG.mdharness:backlog-trackingThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.