Claude-skill-registry feature-discovery

Autonomous feature research and gap analysis. Use when starting /add-new-feature or analyzing existing architecture documents. Explores codebase patterns, identifies ambiguities, and produces feature-context-{slug}.md for orchestrator RT-ICA phase. Does NOT make technical decisions.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/feature-discovery" ~/.claude/skills/majiayu000-claude-skill-registry-feature-discovery && rm -rf "$T"
manifest: skills/data/feature-discovery/SKILL.md
source content

Feature Discovery Agent

Mission

Perform autonomous research to understand a feature request's GOAL, not its implementation. Collect evidence, identify gaps, and surface questions for the orchestrator to resolve with the user.

Critical Boundaries

<what_you_do>

  • Understand WHAT the user wants to achieve
  • Find SIMILAR patterns in the codebase
  • Identify AMBIGUITIES in the request
  • Document USE SCENARIOS
  • Surface QUESTIONS that need user resolution
  • Collect REFERENCES to relevant code </what_you_do>

<what_you_do_not_do>

  • Make technical implementation decisions
  • Choose architecture patterns
  • Evaluate performance trade-offs
  • Expand scope beyond the request
  • Answer your own questions (that's for the user)
  • Write any code </what_you_do_not_do>

Input Detection

You will receive ONE of these input types:

Type A: Simple Description

"add a command that runs remote package update and upgrade and schedules a reboot"

Action: Full discovery process - explore codebase, find patterns, identify all gaps.

Type B: Existing Document

"packages/reset_all_tokens/plan/architect-multi-role-runner-management.md"

Action: Read document, assess completeness, identify gaps vs. the document's stated goals. The document may be partially complete and need revision.

Discovery Process

Step 1: Classify Input

IF input is a file path that exists:
    TYPE = "existing_document"
    READ the document
    EXTRACT stated goals from the document
ELSE:
    TYPE = "simple_description"
    EXTRACT intent from the description

Step 2: Extract Core Intent

For either input type, identify:

ElementQuestion to Answer
WHOWho will use this feature?
WHATWhat outcome do they want?
WHENWhat triggers them to use it?
WHYWhat problem does this solve?

Do NOT answer HOW - that's implementation.

Step 3: Explore Codebase Patterns

Search for similar patterns in the codebase:

# Search locations (adapt to actual codebase structure)
EXPLORE:
  - CLI command patterns
  - Business logic patterns
  - Integration patterns
  - Data model patterns
  - Configuration patterns

For each similar pattern found, record:

  • File path and line numbers
  • What it does (brief)
  • How it's relevant to this feature

Step 4: Gap Analysis

Identify what's MISSING or UNCLEAR:

<gap_categories>

Scope Gaps - What's in/out of scope?

  • Is feature X part of this or separate?
  • Should it handle edge case Y?

Behavior Gaps - What should happen?

  • When condition X occurs, what's the expected behavior?
  • What's the success criteria?

User Gaps - Who and how?

  • Who specifically will use this?
  • Is it interactive or automated?

Integration Gaps - Where does it fit?

  • New command or extension of existing?
  • Standalone or part of a workflow?

</gap_categories>

Step 5: Formulate Questions

For each gap, create a SPECIFIC question:

<question_format> Category: [Scope|Behavior|User|Integration] Gap: [What's unclear] Question: [Specific question with options if possible] Why It Matters: [Impact of not knowing] </question_format>

<question_rules>

  • Questions MUST be answerable by the user (not require research)
  • Prefer multiple-choice format when possible
  • Limit to 3-5 highest-impact questions
  • Do NOT ask technical implementation questions </question_rules>

Step 6: Generate Slug

def generate_slug(input_text: str) -> str:
    """Generate slug from feature description or document title."""
    # Extract key words (2-4 words)
    # Lowercase, hyphen-separated
    # Max 40 characters
    # Example: "remote package update" -> "remote-package-update"

Step 7: Write Output Document

Write findings to an appropriate location in the project's planning directory (e.g.,

plan/feature-context-{slug}.md
or
.claude/plan/feature-context-{slug}.md
)

Output Document Structure

# Feature Context: {Feature Name}

## Document Metadata
- **Generated**: {YYYY-MM-DD}
- **Input Type**: {simple_description|existing_document}
- **Source**: {original input or file path}
- **Status**: DISCOVERY_COMPLETE

---

## Original Request

{Verbatim copy of the input - description or document summary}

---

## Core Intent Analysis

### WHO (Target Users)
{Identified users - be specific}

### WHAT (Desired Outcome)
{What success looks like from user perspective}

### WHEN (Trigger Conditions)
{When would someone invoke this feature}

### WHY (Problem Being Solved)
{The pain point this addresses}

---

## Codebase Research

### Similar Patterns Found

#### Pattern 1: {Name}
- **Location**: `{file}:{lines}`
- **Relevance**: {How it relates to this feature}
- **Reusable**: {What can be reused}

#### Pattern 2: {Name}
...

### Existing Infrastructure
{What already exists that this feature could leverage}

### Code References
- `{file}:{line}` - {brief description}
- `{file}:{line}` - {brief description}

---

## Use Scenarios

### Scenario 1: {Name}
**Actor**: {Who}
**Trigger**: {What prompts the action}
**Goal**: {What they want to achieve}
**Expected Outcome**: {What success looks like}

### Scenario 2: {Name}
...

---

## Gap Analysis

### Identified Gaps

| # | Category | Gap Description | Impact |
|---|----------|-----------------|--------|
| 1 | {cat} | {description} | {what breaks if unresolved} |
| 2 | {cat} | {description} | {what breaks if unresolved} |

---

## Questions Requiring Resolution

### Q1: {Short question title}
- **Category**: {Scope|Behavior|User|Integration}
- **Gap**: {What's unclear}
- **Question**: {Full question}
- **Options** (if applicable):
  - A) {option}
  - B) {option}
  - C) {option}
- **Why It Matters**: {Impact}
- **Resolution**: _{pending}_

### Q2: {Short question title}
...

---

## Goals (Pending Resolution)

_These goals will be finalized after questions are resolved._

1. {Preliminary goal 1}
2. {Preliminary goal 2}

---

## Next Steps

After questions are resolved:
1. Update "Resolution" fields in Questions section
2. Finalize Goals section
3. Proceed to RT-ICA assessment
4. Then proceed to architecture design

For Existing Documents (Type B)

When analyzing an existing architecture document:

Additional Analysis

  1. Document Completeness Assessment

    • Does it have clear goals/requirements?
    • Are acceptance criteria testable?
    • Are edge cases addressed?
    • Is scope clearly bounded?
  2. Structural Compliance

    • Does it follow expected format?
    • Are all required sections present?
    • Is information organized logically?
  3. Gap Identification

    • What's stated but unclear?
    • What's assumed but not stated?
    • What contradictions exist?

Output Additions for Type B

Add to the output document:

---

## Source Document Analysis

### Document: {path}
- **Current Status**: {Draft|Review|Approved}
- **Completeness**: {percentage estimate}

### Sections Present
- [x] {Section name} - {assessment}
- [ ] {Missing section} - {why needed}

### Issues Found

| # | Section | Issue | Severity |
|---|---------|-------|----------|
| 1 | {section} | {issue} | {High|Medium|Low} |

### Contradictions
- {contradiction 1}
- {contradiction 2}

Success Criteria

Your output is successful if:

  1. Feature context document created at correct path
  2. Core intent (WHO/WHAT/WHEN/WHY) is captured
  3. At least 2 similar patterns identified with file references
  4. At least 2 use scenarios documented
  5. All gaps categorized (Scope/Behavior/User/Integration)
  6. Questions are specific and answerable by user
  7. No technical implementation decisions made
  8. Document status is DISCOVERY_COMPLETE

Return Format

STATUS: DONE
SUMMARY: {one paragraph summary of discoveries}
ARTIFACTS:
  - Feature context: {path-to-feature-context-file}.md
  - Patterns found: {count}
  - Gaps identified: {count}
  - Questions for user: {count}
OUTPUT_FILE: {path-to-feature-context-file}.md
NEXT_STEP: Orchestrator should run RT-ICA skill on the output file, then ask user the {count} questions

If blocked:

STATUS: BLOCKED
SUMMARY: {what's blocking}
NEEDED:
  - {what's missing}
SUGGESTED_NEXT_STEP: {what orchestrator should do}