Claude
Cursor
Skill
feature-radar
Full-cycle feature discovery, evaluation, and prioritization. Builds a persistent knowledge base at .feature-radar/ and runs a 6-phase workflow to recommend what to build next. Modes: full (all phases), quick (scan only), evaluate (prioritize), #N (deep-dive one). MUST use this s
Virus-scanned
Reviewed automatically before listing.
Download
runkids-my-skills-feature-radar_feature-radar-7f33dbc.zip · 10 KB
Install
skills CLI
npx skills add https://github.com/runkids/my-skills/tree/main/feature-radar/feature-radar
Claude Code
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install runkids-my-skills@llmmart
Git
git clone https://github.com/runkids/my-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole runkids/my-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
Feature Discovery & Prioritization
Mode Routing
Files (my-skills)
-
references
-
DEEP-READ.md 1.3 KB
# Deep Read — Preflight Checklist <HARD-GATE> Complete these steps before any other action: 1. `.feature-radar/` directory exists — if not, tell user to run `feature-radar` skill first and STOP 2. **Read base.md thoroughly** — understand Project Context, Feature Inventory, Classification Rules, and current Tracking Summary counts 3. **Scan existing files** — list what's already in archive/, opportunities/, specs/, references/. Read file names and headers to understand current state 4. **Identify context** — extract: - Project Language & Architecture - Key Feature Areas (from Feature Inventory) - Inspiration Sources - Current counts: {archive: n, opportunities: n, specs: n, references: n} 5. **State your understanding** — describe what the project does, what's already tracked, and what gaps you see 6. **Reconcile state** — verify consistency before proceeding: - Count actual files in archive/, opportunities/, specs/, references/ - Compare with Tracking Summary counts in base.md - If mismatch: update base.md counts and state "Reconciled: {category} {old} → {new}" - Check archive/ files for incomplete extraction checklists (missing specs/, no derived opportunities noted) - State reconciliation result: "State consistent" or list corrections made Proceed to the workflow after step 6. </HARD-GATE> -
DIRECTIVES.md 1.7 KB
# Shared Behavioral Directives Follow these directives throughout this skill's execution: 1. **Ground claims in the code** — Base classifications and feature descriptions on what the implementation does, not on file names or README claims. 2. **Artifacts over conversation** — Write findings to files, not just chat messages. Every substantive output must persist in `.feature-radar/`. 3. **Do not stop mid-flow** — Continue through all workflow steps; the only pauses are the explicit checkpoints. If a step yields no results, state "No findings" and continue to the next step. ## Completion Summary Template When all steps are done, present: ``` ── Feature Radar: {Skill Name} Complete ── Files created: + {path} (new) Files updated: ~ {path} (what changed) Files removed: - {path} (why) Counts: archive {n}, opportunities {n}, specs {n}, references {n} Suggested next: - {skill} — {reason based on this session's output} - {skill} — {reason} ``` Pick 2-3 suggestions from this menu based on what happened in this session: | Condition | Suggest | |-----------|---------| | New opportunities were created | `/feature-radar evaluate` — prioritize the new opportunities | | A high-priority opportunity was identified | `/feature-radar #N` — deep-dive on {opportunity name} | | Features were archived | `/feature-radar-learn` — extract learnings from the archived work | | External observations were recorded | `/feature-radar-ref` — expand on the reference with more research | | Opportunities backlog is stale (>2 weeks) | `/feature-radar-scan` — refresh with a new scan | | Top recommendation was proposed | `enter plan mode` — start implementing the top pick | Do not end with "this should work" or "try this". End with the summary above. -
SPEC.md 9.9 KB
# Feature Radar Data Specification **Status**: v1 **Purpose**: Define the `.feature-radar/` data format so any AI tool can produce and consume feature radar data without reading SKILL.md files. ## 1. Overview `.feature-radar/` is a project-local directory that stores structured feature tracking data — what exists, what's planned, what was tried, and what the ecosystem looks like. All files are Markdown with inline key-value metadata. No special tooling is required beyond a filesystem and a Markdown parser. ## 2. Directory Structure ``` .feature-radar/ ├── base.md # REQUIRED — project context + classification rules ├── archive/ # REQUIRED dir — terminal-state features │ └── {nn}-{slug}.md ├── opportunities/ # REQUIRED dir — open features not yet implemented │ └── {nn}-{slug}.md ├── specs/ # REQUIRED dir — cross-cutting knowledge │ └── {topic}.md └── references/ # REQUIRED dir — external observations └── {topic}.md ``` All four subdirectories MUST exist, even if empty. ## 3. File Formats ### 3.1 base.md The root document. Describes the project and defines classification rules. **Required sections** (in order): | Section | Purpose | |---------|---------| | Project Context | Language, Architecture, Key Feature Areas, Core Philosophy, Inspiration Sources | | Feature Inventory | Implemented Features table + Value & Innovation Landscape table | | Tracking Summary | Counts per category (see table format below) | | Directory Layout | Visual tree of `.feature-radar/` | | Classification Rules | Definitions for archive/, opportunities/, specs/, references/ | | Maintenance Workflow | How features flow between directories | | Archive Extraction Checklist | 5-check checklist (see section 4.3) | **Tracking Summary table format:** ```markdown | Category | Count | Description | |----------|-------|-------------| | archive/ | {n} | Completed, covered, rejected, or deferred features | | opportunities/ | {n} | Open features not yet implemented | | specs/ | {n} | Cross-cutting patterns and architectural decisions | | references/ | {n} | External observations, inspiration, and ecosystem analysis | ``` Counts MUST reflect the actual number of files in each directory. **Feature Inventory — Implemented Features table:** ```markdown | Feature | Code Path | Docs Coverage | |---------|-----------|---------------| | {feature} | {path} | {✓ documented / ✗ undocumented} | ``` **Feature Inventory — Value & Innovation Landscape table:** ```markdown | Capability | Current State | Best-in-Class Reference | Opportunity | |------------|---------------|------------------------|-------------| | {capability} | {✓/✗/partial} | {who does it well} | {room for improvement or innovation} | ``` ### 3.2 archive/{nn}-{slug}.md A feature in terminal state. **Filename**: `{nn}-{slug}.md` where `{nn}` is a zero-padded two-digit sequential number and `{slug}` is a lowercase kebab-case identifier. **Template:** ```markdown # {nn}. {Feature Name} **Status**: {status} **Ref**: {upstream issue/PR links, if any} **Implemented**: {code paths / commits, if Done} ## Description {What the feature does and why it was requested} ## Implementation Notes {Key decisions, trade-offs, and anything future maintainers should know} ``` **Fields:** | Field | Required | Values | |-------|----------|--------| | Status | YES | `Done` \| `Covered` \| `Rejected` \| `N/A` \| `Deferred` | | Ref | NO | URL(s) to issues, PRs, or external references | | Implemented | NO | Code paths or commit references (expected when Status is `Done`) | **Status enum definitions:** - **Done** — fully implemented and working - **Covered** — existing functionality already handles the use case - **Rejected** — decided against implementing - **N/A** — not applicable to the project's architecture - **Deferred** — valuable but postponed; MUST include rationale and re-evaluation conditions ### 3.3 opportunities/{nn}-{slug}.md An open feature not yet implemented. **Filename**: Same convention as archive — `{nn}-{slug}.md`. **Template:** ```markdown # {nn}. {Feature Name} **Status**: {status} **Impact**: {impact} **Effort**: {effort} **Ref**: {upstream issue/PR links, if any} ## Description {What the feature does and the problem it solves} ## Design Notes {Implementation considerations, architectural constraints, dependencies} ## Our Position {Honest assessment — do we actually want this? Why or why not?} ``` **Fields:** | Field | Required | Values | |-------|----------|--------| | Status | YES | `Open` \| `Partially Done` \| `Low Priority` | | Impact | YES | `High` \| `Medium` \| `Low` | | Effort | YES | `Low` \| `Medium` \| `High` | | Ref | NO | URL(s) to issues, PRs, or external references | **Effort guidelines:** - **Low** — less than 1 day - **Medium** — 1-3 days - **High** — 1+ week ### 3.4 specs/{topic}.md Cross-cutting knowledge: patterns, decisions, pitfalls, techniques. **Filename**: `{topic}.md` — named by the pattern/concept, NOT by the feature that produced it. Examples: `yaml-config-merge.md`, `symlink-vs-copy-tradeoffs.md`. Counterexamples (bad): `audit-feature-learnings.md`, `v2-refactor-notes.md`. **Template:** ```markdown # {Topic} ## Context {What was being built or solved} ## {Classification} {The reusable knowledge — this section heading matches the classification type} ## Why It Matters {When future work would benefit from this} ``` **Classification** (exactly one per file): | Type | Definition | |------|-----------| | Pattern | Recurring solution worth replicating | | Decision | Architectural choice with rationale | | Pitfall | Mistake or dead end to avoid | | Technique | Implementation approach that worked well | The second section heading MUST be one of: `## Pattern`, `## Decision`, `## Pitfall`, `## Technique`. One topic per file. If a learning spans multiple topics, create multiple files. Append to an existing file when new learning extends a known topic. ### 3.5 references/{topic}.md External observations, inspiration, ecosystem trends, and research findings. **Filename**: `{topic}.md` — named by the subject being tracked, NOT by the event. Examples: `vercel-skills-ecosystem.md`, `agent-path-conventions.md`, `cli-ux-patterns.md`. Counterexamples (bad): `2026-02-18-update.md`, `interesting-finding.md`. **Template:** ```markdown # {Topic} > {One-line summary of what this reference tracks} ## {Date} — {Entry Title} **Source**: {URL} {What happened and why it matters to us} **Implications**: - {What this means for our project} ``` **Structure rules:** - Each file tracks a **subject** (e.g., a project, a pattern, an ecosystem trend) - New observations are appended chronologically as new `## {Date} — {Entry Title}` sections - Do NOT create a new file per observation — append to the existing subject file - Always include source URL and date for traceability - Date format: `YYYY-MM-DD` ## 4. Lifecycle ### 4.1 Status Transitions ``` opportunities/ archive/ ┌─────────────┐ ┌─────────────┐ │ Open │───────────→│ Done │ │ Partially │ │ Covered │ │ Done │ │ Rejected │ │ Low Priority│ │ N/A │ └─────────────┘ │ Deferred │ └─────────────┘ ``` - Features flow from `opportunities/` to `archive/` when they reach a terminal state. - Features may also be created directly in `archive/` if already resolved at discovery time. - `Deferred` items MUST be periodically re-evaluated. "Deferred" is not permanent — include rationale and conditions for re-evaluation. ### 4.2 Numbering - `{nn}` is a sequential number shared across `opportunities/` and `archive/`. - Numbers are zero-padded to two digits (e.g., `01`, `02`, ... `99`). - When archiving from `opportunities/`, **keep the same number**. The file moves; the number does not change. - New items receive the next number after the highest existing number across both directories. ### 4.3 Archive Extraction Contract Every time an opportunity moves to `archive/`, ALL 5 checks MUST be performed: ``` □ archive/{nn}-{slug}.md created with correct status □ Extract learnings → specs/{topic}.md (create or append) □ Derive new opportunities → opportunities/{nn}-{slug}.md (create if found) □ Update references → references/{topic}.md (update if relevant) □ Update ecosystem trends → specs/ecosystem-trends.md (update if relevant) ``` Each check requires an explicit finding. Acceptable responses: - "No learnings to extract" - "New opportunity identified: {description}" (create the file) - "No reference updates needed" - "No ecosystem trend changes" Skipping any check without a stated finding is a spec violation. ## 5. Reconciliation To verify state consistency, perform: **Count verification:** 1. Count actual files in `archive/`, `opportunities/`, `specs/`, `references/` 2. Compare with counts in `base.md` Tracking Summary table 3. If mismatch: update `base.md` counts **Extraction audit:** 1. For each file in `archive/`, verify the extraction checklist was completed 2. Missing extractions (no corresponding specs/, no derived opportunities noted) indicate incomplete archival ## 6. Interoperability - All files are plain Markdown (`.md`) - Metadata uses inline bold key-value pairs (`**Key**: Value`), not YAML frontmatter - No special tooling required — readable and writable with any text editor or Markdown parser - To programmatically parse metadata, match lines of the form `**{Key}**: {Value}` - File discovery: list directory contents; filenames encode the numbering and slug - The format is designed for AI tools that operate on filesystems and produce/consume Markdown -
WORKFLOW-PATTERNS.md 805 B
# Annotation Checkpoint Pattern After writing a file for user review, tell the user: "I've written `{path}`. Please review it. You can: 1. **Approve as-is** — say 'looks good' or 'continue' 2. **Annotate the file** — add `> NOTE: your correction here` anywhere in the file, then say 'address my notes' 3. **Give verbal feedback** — tell me what to change I will not proceed until you confirm." <HARD-GATE> When the user says "address my notes": 1. Read the file and find ALL lines starting with `> NOTE:` 2. Address each note — modify the surrounding content accordingly 3. Remove the `> NOTE:` lines after addressing them 4. Present a summary of changes made 5. Ask again: "All notes addressed. Anything else to adjust?" Do NOT proceed to the next step until the user approves. </HARD-GATE>
-
-
SKILL.md 9 KB
--- name: feature-radar description: | Full-cycle feature discovery, evaluation, and prioritization. Builds a persistent knowledge base at .feature-radar/ and runs a 6-phase workflow to recommend what to build next. Modes: full (all phases), quick (scan only), evaluate (prioritize), #N (deep-dive one). MUST use this skill whenever the user asks about feature priorities, roadmaps, what to build, or wants to evaluate/compare feature ideas — even if they don't say "feature radar" explicitly. Use when the user wants to decide what to build next, rank or compare features and backlog items, plan a roadmap or project direction, reassess deferred or open opportunities, or mentions the .feature-radar/ directory. --- # Feature Discovery & Prioritization ## Mode Routing <HARD-GATE> Parse the user argument BEFORE any other logic. Determine the mode: | Argument | Mode | Phases | |----------|------|--------| | (none) or `full` | full | 1-6 (all) | | `quick` | quick | 1-3 only | | `evaluate` | evaluate | reconciliation → 5-6 (skip 1-3) | | `#N` (e.g. `#2`) | focus | Read opportunity N → Phase 5 (single item) → Phase 6 | Route rules: - **full**: Follow normal workflow (Phase 1-6). - **quick**: Execute Phase 1-3, then skip to Completion Summary. - **evaluate**: Run "Subsequent Runs" reconciliation (steps 1-2), then jump directly to Phase 5-6. - **focus (#N)**: Read `.feature-radar/opportunities/{N}-*.md`. If not found, list available opportunities and ask user to pick. Then run Phase 5 for that single opportunity, followed by Phase 6. State the detected mode before proceeding: "Mode: {mode}" </HARD-GATE> ## Bootstrap (First Run) If `.feature-radar/` does not exist at the project root, create it: ``` .feature-radar/ ├── base.md ├── archive/ ├── opportunities/ ├── specs/ └── references/ ``` Then generate `base.md` by completing the following: <HARD-GATE> Complete ALL steps before presenting base.md to the user: 1. **Detect stack and architecture** — start from `go.mod`, `package.json`, `Cargo.toml`, `pyproject.toml`, then the code they point to. 2. **Map structure** — identify entry points, core logic, tests, docs, and configuration across the top-level directories. 3. **Extract features** — from exports, commands, API routes, or public functions, described by what the implementation does. 4. **Find inspiration sources** — read README, CONTRIBUTING, docs/ for related projects and communities 5. **Verify with user** — present the generated base.md and ask: "Does this accurately describe your project?" </HARD-GATE> After presenting base.md, support iterative refinement per `references/WORKFLOW-PATTERNS.md`. <HARD-GATE> Do NOT proceed to the Workflow until the user approves base.md. </HARD-GATE> ### base.md Template Generate `base.md` following the structure defined in `references/SPEC.md` (sections 2-5). Read `references/SPEC.md` first, then fill `{placeholders}` with project-specific analysis. Key sections to generate: - **Project Context** — detected language, architecture, key feature areas, core philosophy, inspiration sources - **Feature Inventory** — implemented features table + value & innovation landscape table - **Tracking Summary** — counts per category (start at 0) - **Directory Layout** — tree view - **Classification Rules** — per references/SPEC.md §3.2-3.5 - **Maintenance Workflow** — feature flow between directories - **Archive Extraction Checklist** — per references/SPEC.md §4.3 After creating the directory, ask the user: **"Should I add `.feature-radar/` to `.gitignore`?"** (Recommended if the tracking data is internal and shouldn't be committed.) ## Subsequent Runs On subsequent runs (`.feature-radar/` already exists): 1. Read existing `base.md` — do NOT overwrite 2. Run reconciliation per `references/DEEP-READ.md` steps 2-6 3. Proceed to Mode Routing ## Behavioral Directives <HARD-GATE> Read and follow `references/DIRECTIVES.md`. Additional directives for this skill: - **Do not skip phases outside mode rules** — follow the Mode Routing and Phase execution HARD-GATEs. For conditional phases, state the skip condition check result before deciding to skip. - **Reconcile on subsequent runs** — see "Subsequent Runs" section above. </HARD-GATE> ## Workflow Execute phases in order. <HARD-GATE> Phase execution rules (mode-dependent): **full mode** (default): - Phase 1-3: ALWAYS execute. - Phase 4: Skip ONLY if no documentation directory exists. - Phase 5-6: Skip ONLY if no open opportunities exist. **quick mode**: - Phase 1-3: Execute. Stop after Phase 3 → Completion Summary. **evaluate mode**: - Phase 1-4: Skip (reconciliation already done in Subsequent Runs). - Phase 5-6: Execute. Skip ONLY if no open opportunities exist. **focus mode (#N)**: - Phase 1-4: Skip. - Phase 5: Evaluate the single targeted opportunity only. - Phase 6: Propose for that opportunity only. </HARD-GATE> ### Phase 1: Scan & Classify 1. Read source files (feature ideas, user feedback, ecosystem observations, creative proposals, issue trackers) 2. Cross-reference each entry against the codebase 3. Classify: - **Done / Covered / Rejected / N/A** → archive - **Open / Partially Done** → opportunity - **Cross-cutting pattern** → specs - **External observation** → references **Checkpoint**: Present classification results using this format, then ask "Continue to Phase 2?" ``` Phase 1 complete: | Classification | Count | Items | |---------------|-------|-------| | Archive | {n} | {list} | | Opportunity | {n} | {list} | | Spec | {n} | {list} | | Reference | {n} | {list} | ``` ### Phase 2: Archive Completed Features For each archive candidate: 1. Create `archive/{nn}-{slug}.md` 2. Run the **Archive Extraction Checklist** (mandatory): - Extract learnings → `specs/` - Derive new opportunities → `opportunities/` - Update references → `references/` - Update ecosystem trends → `specs/ecosystem-trends.md` 3. Mark the entry as processed in the source (strikethrough + status) ### Phase 3: Organize Open Opportunities 1. Create `opportunities/{nn}-{slug}.md` 2. Assess **Impact** and **Effort** realistically 3. Write an honest "Our Position" — do we actually want this? **Checkpoint**: Present opportunities using this format, then ask "Continue to Phase 4?" ``` Phase 3 complete: {n} opportunities organized | # | Opportunity | Impact | Effort | Our Position | |---|------------|--------|--------|-------------| | {nn} | {title} | High/Med/Low | High/Med/Low | {1-line stance} | ``` ### Phase 4: Gap Analysis Find implemented features that docs don't mention: 1. Scan documentation for coverage of implemented features 2. For each gap: which feature, which page should cover it, standalone guide or section ### Phase 5: Evaluate & Prioritize | Criterion | Question | |-----------|----------| | **Real user demand** | Are users actually asking for this? | | **Value uplift** | Does this meaningfully improve the user experience or unlock new possibilities? | | **Innovation potential** | Does this introduce a creative breakthrough or unique approach? | | **Effort / impact ratio** | Is the cost justified by the benefit? | | **Architectural fit** | Does it align with our core philosophy? | | **Ecosystem timing** | Is the ecosystem ready? | Rank into tiers: - **Build next**: High value + strong demand or innovation potential + reasonable effort - **Build soon**: Good value + moderate demand - **Monitor**: Low demand or premature - **Skip**: Conflicts with philosophy or negligible value **Checkpoint**: Present tier ranking using this format, then ask "Continue to Phase 6 (Propose)?" ``` Phase 5 complete: | Tier | # | Opportunity | Demand | Value | Innovation | Effort/Impact | Fit | Timing | |------|---|------------|--------|-------|------------|--------------|-----|--------| | Build next | {nn} | {title} | {H/M/L} | {H/M/L} | {H/M/L} | {H/M/L} | {H/M/L} | {H/M/L} | | Build soon | ... | | | | | | | | Monitor | ... | | | | | | | | Skip | ... | | | | | | | ``` ### Phase 6: Propose & Decide For each "Build next" feature (top 1-3), present a proposal card: ``` ### {nn}. {Title} **Pitch**: {One paragraph — what value does this create?} **Effort**: {N days} — {brief justification} **Key decisions**: - {decision 1} - {decision 2} ``` After all cards, ask: **"Should we enter plan mode for [feature]?"** ## Completion Summary Follow the template in `references/DIRECTIVES.md`, with skill name "Complete" and an additional line: `Top recommendation: {feature name} — {one-line pitch}` ## Guardrails - **Don't copy blindly.** Evaluate fit with YOUR architecture and users, not someone else's. - **Don't overcount.** 1 issue with no comments = weak signal. - **Don't undercount.** Multiple independent asks = strong signal. - **Chase value, not features.** Ask "what problem does this solve?" before "what does this do?" - **Be honest about effort.** Low < 1 day. Medium 1-3 days. High 1+ week. - **Challenge deferred items.** "Deferred" ≠ "forever" — re-evaluate each session.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.