plugins/plugin-creator/skills/feature-discovery/SKILL.md
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.
npx skillsauth add jamie-bitflight/claude_skills feature-discoveryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
<what_you_do>
<what_you_do_not_do>
You will receive ONE of these input types:
"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.
"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.
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
For either input type, identify:
| Element | Question to Answer | | -------- | ----------------------------- | | WHO | Who will use this feature? | | WHAT | What outcome do they want? | | WHEN | What triggers them to use it? | | WHY | What problem does this solve? |
Do NOT answer HOW - that's implementation.
<problem_statement_requirements>
Capture a 2-3 sentence problem statement with evidence grounding:
Required Elements:
Evidence Sources (at least one required):
Example:
Users manually run 3 separate commands to update packages, then must remember to schedule a reboot. This occurs weekly for each managed host. Evidence: 15 support tickets in the last month about "forgot to reboot after update."
</problem_statement_requirements>
<non_goals_requirements>
Document 2-4 items explicitly OUT of scope:
Purpose: Prevent scope creep and align expectations early.
Format:
| Non-Goal | Rationale | | ------------------------------ | ------------------------------------ | | {Adjacent capability excluded} | {Why: complexity, timing, or impact} |
Example:
| Non-Goal | Rationale | | ----------------------------------- | ------------------------------------------------- | | Automatic rollback on failed update | Adds complexity; can be v2 enhancement | | Multi-host orchestration | Requires infrastructure changes; separate feature | | Email notifications | Integration dependency; out of current scope |
Rule: If a capability is "obviously" part of the feature but NOT being built, it MUST be listed as a non-goal.
</non_goals_requirements>
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
- Auto-updating docs pattern (see below)
/plugin-creator:add-doc-updater candidates
For each similar pattern found, record:
Identify what's MISSING or UNCLEAR:
<gap_categories>
Scope Gaps - What's in/out of scope?
Behavior Gaps - What should happen?
User Gaps - Who and how?
Integration Gaps - Where does it fit?
</gap_categories>
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>
</question_rules>
<question_ownership>
Assign each question an OWNER who can resolve it:
| Owner | Question Types | | -------------------- | ----------------------------------------------- | | User/Stakeholder | Scope decisions, priority, business rules | | Engineering | Technical feasibility, performance constraints | | Design | UX patterns, interaction flows, accessibility | | Data | Metrics definitions, data availability, privacy | | Legal/Compliance | Regulatory requirements, data handling |
Blocking Status:
</question_ownership>
<question_anti_patterns>
Avoid These Question Mistakes:
| Anti-Pattern | Problem | Better Alternative | | ---------------------- | ------------------------------- | --------------------------------------------------------------------------- | | Too vague | "What should this do?" | "Should failed updates retry automatically or require manual intervention?" | | Implementation-focused | "Should we use async or sync?" | "Is immediate feedback required, or can processing happen in background?" | | Compound questions | "Should X and also Y?" | Split into separate questions | | Leading questions | "Don't you think we should...?" | "What are the options for...?" | | Assumptive | "When we add feature X..." | "If feature X is in scope..." |
</question_anti_patterns>
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"
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)
<scope_creep_indicators>
Flag these patterns during discovery - they indicate scope may expand:
Red Flags:
Prevention Strategy:
Parking Lot Format:
## Parking Lot (Deferred Ideas)
| Idea | Source | Priority for Future |
|------|--------|---------------------|
| {idea} | {who suggested} | {High/Medium/Low} |
</scope_creep_indicators>
# 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}
---
## Problem Statement
{2-3 sentences describing the user problem with evidence}
**Evidence**: {Source of evidence - user feedback, metrics, observations}
**Frequency**: {How often this problem occurs}
**Impact**: {Business cost or user pain if unaddressed}
---
## 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}
---
## Non-Goals (Explicit Exclusions)
| Non-Goal | Rationale |
|----------|-----------|
| {Excluded capability 1} | {Why excluded} |
| {Excluded capability 2} | {Why excluded} |
---
## 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}
- **Owner**: {User|Engineering|Design|Data|Legal}
- **Blocking**: {Yes|No}
- **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}
...
---
## Parking Lot (Deferred Ideas)
| Idea | Source | Priority for Future |
|------|--------|---------------------|
| {Deferred idea 1} | {Discovery/User} | {High/Medium/Low} |
---
## 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
When analyzing an existing architecture document:
Document Completeness Assessment
Structural Compliance
Gap Identification
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}
Your output is successful if:
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}
development
When an application needs to store config, data, cache, or state files. When designing where user-specific files should live. When code writes to ~/.appname or hardcoded home paths. When implementing cross-platform file storage with platformdirs.
testing
Enforce mandatory pre-action verification checkpoints to prevent pattern-matching from overriding explicit reasoning. Use this skill when about to execute implementation actions (Bash, Write, Edit) to verify hypothesis-action alignment. Blocks execution when hypothesis unverified or action targets different system than hypothesis identified. Critical for preventing cognitive dissonance where correct diagnosis leads to wrong implementation.
tools
Reference guide for the Twelve-Factor App methodology — 15 principles (12 original + 3 modern extensions) for building portable, resilient, cloud-native applications. Use when evaluating application architecture, designing cloud-native services, reviewing codebases for methodology compliance, advising on configuration, scaling, observability, security, and deployment patterns. Incorporates the 2025 open-source community evolution and cloud-native reinterpretations of each factor.
tools
Converts user-facing documentation (how-to guides, tutorials, API references, examples) in any format — Markdown, PDF, DOCX, PPTX, XLSX, AsciiDoc, RST, HTML, Jupyter notebooks, man pages, TOML/YAML/JSON configs, and plain text — into Claude Code skill directories with SKILL.md plus thematically grouped references/*.md files. Use when given a docs directory or mixed-format documentation to transform into an AI skill. Uses MCP file-reader server for binary formats.