skills/comprehensive-feature-builder/SKILL.md
Systematic 5-phase workflow for researching, designing, implementing, and testing ANY feature. Integrates explore/librarian agents, GraphQL inspector, Sequential Thinking, UI/UX Pro Max, OpenSpec proposals, and E2E test generator with Playwright MCP. Saves checkpoints to files to prevent token bloat. Loops on test failures until all pass.
npx skillsauth add nano-step/skill-manager comprehensive-feature-builderInstall 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.
Purpose: A systematic, checkpoint-based workflow for researching, designing, implementing, and testing ANY feature with full traceability.
This skill provides a 5-phase workflow that:
Trigger phrases:
Before starting:
{feature-name}/ai/feature-research/{feature-name}//ai/feature-research/{feature-name}/
├── progress.json # Current phase & status
├── 01-discovery/
│ ├── checklist.md # Phase 1 checklist
│ ├── report.md # Discovery findings
│ ├── codebase-analysis.md # Explore agent results
│ ├── external-research.md # Librarian agent results
│ └── graphql-schema.md # GraphQL inspector results
├── 02-analysis/
│ ├── checklist.md # Phase 2 checklist
│ ├── report.md # Gap analysis
│ ├── architecture-decisions.md # Oracle consultation
│ └── sequential-thinking.md # Structured analysis
├── 03-design/
│ ├── checklist.md # Phase 3 checklist
│ ├── report.md # Design summary
│ ├── ui-concept.md # UI/UX Pro Max output
│ ├── component-specs.md # Component hierarchy
│ └── ui-prompts.md # Implementation prompts
├── 04-implementation/
│ ├── checklist.md # Phase 4 checklist
│ ├── report.md # Implementation summary
│ ├── openspec-proposal/ # OpenSpec change proposal
│ └── code-changes.md # Files modified
├── 05-testing/
│ ├── checklist.md # Phase 5 checklist
│ ├── report.md # Test results
│ ├── e2e-tests/ # Generated test files
│ ├── screenshots/ # Step-by-step screenshots
│ └── bug-fixes.md # Bugs found and fixed
└── final-summary.md # Complete feature summary
Gather all context about the feature from codebase, PRD, GraphQL schema, and external research.
01-discovery/checklist.md)## Phase 1: Discovery Checklist
### 1.1 Codebase Exploration
- [ ] Launch explore agent for existing implementations
- [ ] Search for related pages, components, stores, hooks
- [ ] Identify existing patterns to follow
- [ ] Save results to `codebase-analysis.md`
### 1.2 PRD & Requirements
- [ ] Search PRD for feature requirements
- [ ] Find user stories and acceptance criteria
- [ ] Identify related epics and dependencies
- [ ] Document in `report.md`
### 1.3 GraphQL Schema Inspection
- [ ] Use graphql-tools MCP to inspect types
- [ ] List all related queries and mutations
- [ ] Document input/output types
- [ ] Save to `graphql-schema.md`
### 1.4 External Research (if needed)
- [ ] Launch librarian agent for best practices
- [ ] Research UI/UX patterns
- [ ] Find library documentation
- [ ] Save to `external-research.md`
### 1.5 Phase Completion
- [ ] All sub-checklists complete
- [ ] `report.md` summarizes findings
- [ ] Update `progress.json` to phase 2
// 1. Fire parallel background agents
task(subagent_type="explore", run_in_background=true, load_skills=[],
description="Explore {feature} in codebase",
prompt="Find all code related to {feature}: pages, components, stores, hooks, GraphQL operations...")
task(subagent_type="explore", run_in_background=true, load_skills=[],
description="Explore backend schema for {feature}",
prompt="Find all backend GraphQL types, queries, mutations for {feature}...")
task(subagent_type="librarian", run_in_background=true, load_skills=[],
description="Research {feature} best practices",
prompt="Find UI/UX best practices, patterns, and examples for {feature}...")
// 2. Use GraphQL inspector MCP
graphql-tools_filter_types(search="{feature}", detailed=false)
graphql-tools_filter_queries(search="{feature}", detailed=false)
graphql-tools_filter_mutations(search="{feature}", detailed=false)
// Then get details for specific types found
// 3. Search PRD
grep(pattern="Epic.*{feature}|Story.*{feature}", path="/ai/")
// 4. Collect background results
background_output(task_id="...")
// 5. Save reports to files
write(filePath="/ai/feature-research/{feature}/01-discovery/report.md", content="...")
01-discovery/report.md)# Discovery Report: {Feature Name}
**Date**: {date}
**Phase**: 1 - Discovery
**Status**: Complete
## Executive Summary
{1-2 paragraph summary of findings}
## Existing Implementation
- **Pages**: {list of existing pages}
- **Components**: {list of components}
- **Stores**: {Zustand stores}
- **Hooks**: {custom hooks}
- **GraphQL Operations**: {queries, mutations}
## PRD Requirements
- **Epic**: {epic number and name}
- **Stories**: {list of user stories}
- **Acceptance Criteria**: {key AC}
## GraphQL Schema
### Types
{list of types with key fields}
### Queries
{list of queries with arguments}
### Mutations
{list of mutations with inputs}
## External Research
{key findings from librarian agent}
## Gaps Identified
- {gap 1}
- {gap 2}
## Next Phase
Ready for Phase 2: Analysis
Analyze gaps, make architecture decisions, and plan implementation using Sequential Thinking.
02-analysis/checklist.md)## Phase 2: Analysis Checklist
### 2.1 Gap Analysis
- [ ] Compare PRD requirements vs existing implementation
- [ ] Identify missing features
- [ ] Identify bugs or issues
- [ ] Document in `report.md`
### 2.2 Sequential Thinking
- [ ] Use Sequential-Thinking MCP for structured analysis
- [ ] Break down implementation into steps
- [ ] Identify dependencies and order
- [ ] Save to `sequential-thinking.md`
### 2.3 Architecture Decisions (if complex)
- [ ] Consult Oracle for architecture questions
- [ ] Document decisions and rationale
- [ ] Save to `architecture-decisions.md`
### 2.4 Phase Completion
- [ ] Gap analysis complete
- [ ] Implementation plan created
- [ ] Update `progress.json` to phase 3
// 1. Use Sequential Thinking for structured analysis
Sequential-Thinking_sequentialthinking(
thought="Analyzing {feature} implementation...",
thoughtNumber=1,
totalThoughts=5,
nextThoughtNeeded=true
)
// 2. Consult Oracle if complex architecture decisions needed
task(subagent_type="oracle", run_in_background=false, load_skills=[],
description="Architecture consultation for {feature}",
prompt="Review the discovery report and advise on: {specific questions}...")
// 3. Save analysis report
write(filePath="/ai/feature-research/{feature}/02-analysis/report.md", content="...")
Create UI/UX design using ui-ux-pro-max skill, define component specs.
03-design/checklist.md)## Phase 3: Design Checklist
### 3.1 UI/UX Design
- [ ] Load ui-ux-pro-max skill
- [ ] Create UI concept based on research
- [ ] Define visual style and patterns
- [ ] Save to `ui-concept.md`
### 3.2 Component Specification
- [ ] Define component hierarchy
- [ ] Specify props and state
- [ ] Define data flow
- [ ] Save to `component-specs.md`
### 3.3 UI Prompts
- [ ] Create detailed implementation prompts
- [ ] Include Vietnamese text requirements
- [ ] Include accessibility requirements
- [ ] Save to `ui-prompts.md`
### 3.4 Phase Completion
- [ ] UI concept approved
- [ ] Component specs complete
- [ ] Update `progress.json` to phase 4
// 1. Load UI/UX Pro Max skill
skill("ui-ux-pro-max")
// 2. Create UI concept
task(category="visual-engineering", load_skills=["ui-ux-pro-max", "frontend-ui-ux"],
description="Design UI for {feature}",
prompt="Based on discovery report, create UI concept for {feature}...")
// 3. Save design documents
write(filePath="/ai/feature-research/{feature}/03-design/ui-concept.md", content="...")
write(filePath="/ai/feature-research/{feature}/03-design/component-specs.md", content="...")
Create OpenSpec proposal, implement code changes, verify with LSP diagnostics.
04-implementation/checklist.md)## Phase 4: Implementation Checklist
### 4.1 OpenSpec Proposal
- [ ] Create change directory: `openspec/changes/{change-id}/`
- [ ] Write `proposal.md` with Why/What/Impact
- [ ] Write `tasks.md` with implementation steps
- [ ] Write spec deltas in `specs/{capability}/spec.md`
- [ ] Validate: `openspec validate {change-id} --strict --no-interactive`
- [ ] Copy proposal to `04-implementation/openspec-proposal/`
### 4.2 Code Implementation
- [ ] Implement tasks from `tasks.md` sequentially
- [ ] Mark each task complete as done
- [ ] Run `pnpm codegen` if GraphQL changes
- [ ] Verify with `lsp_diagnostics` on changed files
### 4.3 Build Verification
- [ ] Run `pnpm build` - must pass
- [ ] Fix any TypeScript errors
- [ ] Document changes in `code-changes.md`
### 4.4 Phase Completion
- [ ] All tasks in `tasks.md` marked complete
- [ ] Build passes
- [ ] Update `progress.json` to phase 5
// 1. Create OpenSpec proposal
bash("mkdir -p openspec/changes/{change-id}/specs/{capability}")
write(filePath="openspec/changes/{change-id}/proposal.md", content=`
# Change: {Feature Name}
## Why
{Problem/opportunity from discovery}
## What Changes
- {Change 1}
- {Change 2}
## Impact
- Affected specs: {capabilities}
- Affected code: {files}
`)
write(filePath="openspec/changes/{change-id}/tasks.md", content=`
## 1. Implementation
- [ ] 1.1 {Task 1}
- [ ] 1.2 {Task 2}
...
`)
write(filePath="openspec/changes/{change-id}/specs/{capability}/spec.md", content=`
## ADDED Requirements
### Requirement: {Feature}
{Description}
#### Scenario: {Success case}
- **WHEN** {action}
- **THEN** {result}
`)
// 2. Validate proposal
bash("openspec validate {change-id} --strict --no-interactive")
// 3. Implement code (delegate to coding agent)
task(category="quick", load_skills=["frontend-ui-ux"],
description="Implement {feature}",
prompt="Implement the following from tasks.md: ...")
// 4. Verify
lsp_diagnostics(filePath="{changed-file}", severity="error")
bash("cd sharex-frontend-v0 && pnpm build")
Generate E2E tests, run with Playwright MCP, capture screenshots, fix bugs until all pass.
05-testing/checklist.md)## Phase 5: Testing Checklist
### 5.1 E2E Test Generation
- [ ] Load e2e-test-generator skill
- [ ] Generate test cases from acceptance criteria
- [ ] Create page objects if needed
- [ ] Save tests to `e2e-tests/`
### 5.2 Test Execution with Playwright MCP
- [ ] Navigate to feature page
- [ ] Execute each test step
- [ ] Capture screenshot after each action
- [ ] Log all steps to `report.md`
### 5.3 Bug Fix Loop
- [ ] If test fails, document bug in `bug-fixes.md`
- [ ] Fix the bug
- [ ] Re-run test
- [ ] Repeat until pass
- [ ] Capture final passing screenshot
### 5.4 Phase Completion
- [ ] All E2E tests pass
- [ ] All screenshots captured
- [ ] Bug fixes documented
- [ ] Update `progress.json` to complete
// 1. Load E2E test generator skill
skill("e2e-test-generator")
// 2. Generate tests based on acceptance criteria
task(category="quick", load_skills=["e2e-test-generator", "playwright"],
description="Generate E2E tests for {feature}",
prompt="Generate E2E tests for {feature} based on acceptance criteria: ...")
// 3. Execute tests with Playwright MCP
playwright_browser_navigate(url="http://localhost:5123/{feature-page}")
playwright_browser_snapshot()
playwright_browser_take_screenshot(filename="/ai/feature-research/{feature}/05-testing/screenshots/01-initial.png")
// For each test step:
playwright_browser_click(ref="{element-ref}", element="{description}")
playwright_browser_take_screenshot(filename="/ai/feature-research/{feature}/05-testing/screenshots/02-after-click.png")
// 4. Bug fix loop
// IF test fails:
// - Document bug in bug-fixes.md
// - Fix the code
// - Re-run test
// - Repeat until pass
// 5. Save test report
write(filePath="/ai/feature-research/{feature}/05-testing/report.md", content=`
# E2E Test Report: {Feature}
## Test Results
| Test | Status | Screenshot |
|------|--------|------------|
| {test 1} | ✅ PASS | screenshots/01-xxx.png |
| {test 2} | ✅ PASS | screenshots/02-xxx.png |
## Bugs Found & Fixed
| Bug | Fix | Verified |
|-----|-----|----------|
| {bug 1} | {fix} | ✅ |
## Screenshots
{list of all screenshots with descriptions}
`)
{
"feature": "{feature-name}",
"currentPhase": 1,
"phases": {
"1-discovery": {
"status": "complete",
"completedAt": "2026-02-13T10:00:00Z",
"report": "01-discovery/report.md"
},
"2-analysis": {
"status": "in-progress",
"startedAt": "2026-02-13T10:30:00Z"
},
"3-design": { "status": "pending" },
"4-implementation": { "status": "pending" },
"5-testing": { "status": "pending" }
},
"lastUpdated": "2026-02-13T10:30:00Z"
}
When resuming work:
progress.json to find current phasechecklist.md to find incomplete itemsreport.md for context| Phase | Tools | Purpose | |-------|-------|---------| | 1 | explore agent, librarian agent, graphql-tools MCP, grep | Gather context | | 2 | Sequential-Thinking MCP, oracle agent | Analyze and plan | | 3 | ui-ux-pro-max skill, visual-engineering category | Design UI | | 4 | OpenSpec CLI, coding agents, lsp_diagnostics | Implement | | 5 | e2e-test-generator skill, playwright MCP | Test and verify |
# 1. Create feature directory
FEATURE="meal-planning-enhancement"
mkdir -p /ai/feature-research/$FEATURE/{01-discovery,02-analysis,03-design,04-implementation,05-testing/screenshots}
# 2. Initialize progress.json
echo '{"feature":"'$FEATURE'","currentPhase":1,"phases":{"1-discovery":{"status":"in-progress"},"2-analysis":{"status":"pending"},"3-design":{"status":"pending"},"4-implementation":{"status":"pending"},"5-testing":{"status":"pending"}}}' > /ai/feature-research/$FEATURE/progress.json
# 3. Start Phase 1: Discovery
# (Follow checklist above)
| Don't | Do Instead | |-------|------------| | Skip phases | Complete each phase fully | | Forget screenshots | Capture after EVERY action | | Ignore test failures | Fix and re-test until pass | | Skip OpenSpec | Always create proposal first | | Manual testing only | Use Playwright MCP for E2E | | Lose context | Save reports to files |
Feature is complete when:
final-summary.md writtentools
Humanization layer for LLM conversation — makes the model sound and respond like a real, thoughtful, embodied human rather than an assistant or chatbot. Use whenever the reply will be read by a human and warmth, presence, or texture matter more than machine-readability. Triggers on any of: "human", "humans", "humanize", "humanization", "be human", "more human", "feel human", "people", "person", "real person", "real human", "friend", "friendly", "like a friend", "respond like a friend", "buddy", "talk", "talking", "talk to me", "talk like a person", "chat", "chatting", "conversation", "converse", "discuss", "discussion", "communication", "communicate", "listen", "just listen", "sit with me", "vent", "venting", "I just want to vent", "company", "presence", "stop being an AI", "stop sounding like a bot", "less corporate", "less robotic", "less formal", "warmer", "warm tone", "empathy", "empathetic", "comfort", "support me", "emotional support", "be honest with me", "be real with me", "real talk", "heart-to-heart", "deep conversation", "casual", "casual chat", "small talk", "chitchat", "say something", "tell me something", and on any emotional / relational / personal-decision / interpersonal context — grief, joy, anger, fear, shame, doubt, loneliness, dating, breakup, conflict, family, parents, sibling, friendship, marriage, divorce, in-laws, kids, parenting, work stress, burnout, career decision, quitting, firing, layoff, anxiety, depression, panic, sleep, dreams, identity, faith, doubt, meaning, mortality, celebration, milestone, achievement, gratitude, apology, forgiveness. Also loads when the user writes in non-English (any language) with emotional weight, when the user's message is shorter than 8 words and affect-laden, when the user types in lowercase fragments, when the user types in ALL CAPS with excitement, or when the user explicitly asks for a friend / mentor / older-sibling / wise-listener voice. Do NOT use for code generation, tool calls, structured data output, SQL, API contracts, or any task where machine-readability matters more than human warmth.
tools
Use this skill whenever the user mentions open-design, od_generate_design, OD daemon, BYOK design generation, generating HTML mockups from a PRD, creating or managing Open Design projects, saving design artifacts, linting generated HTML, or any of the 10 `od_*` MCP tools (od_list_projects, od_get_project, od_create_project, od_update_project, od_delete_project, od_save_artifact, od_save_project_file, od_lint_artifact, od_compose_brief, od_generate_design). Also trigger on phrases like "generate a design", "create a mockup", "make a landing page", "list my OD projects", "the design daemon", "the streaming design tool", and on any 401/404/422 error coming from an `od_*` tool call. Covers env-var setup (`OD_DAEMON_URL`, auth modes, BYOK), the full PRD → generate → save → lint workflow, error diagnosis, and the safety rails (lint before save, never commit BYOK keys). Triggers even if the user doesn't explicitly say "open-design-mcp" — keyword matches on `od_*` tool names or "design generation" workflows are enough.
tools
Use this skill whenever a user wants the **full Open Design experience** — discovery questions asked first, brand-spec extraction from URLs/files, TodoWrite planning with live updates, 5-dimensional self-critique, polished artifact at the end. Trigger phrases include "design with questions first", "OD-style workflow", "full interactive design brief", "make me a complete landing page" (when the user wants quality over speed), "design my pitch deck", "brand-aware multi-page site", "follow the Open Design playbook", or any request where the user is starting a new design project rather than tweaking an existing artifact. Also trigger on any request that mentions wanting brand consistency across multiple pages or that provides a brand URL/spec. Pair with the `open-design-mcp` tool-reference skill — both loaded together give an LLM the full picture (this skill = workflow choreography; that skill = tool catalog + errors). This skill explicitly does NOT trigger for one-off tweaks ("make the nav stickier", "swap slide 3 image") — use od_generate_design directly for those.
development
Sync a locally-developed OpenCode skill to the skill-manager npm package and (if private) the private-skills GitHub repo. Handles per-skill version bumps, public/private classification, build verification, and conventional-commit-style git push. Auto-publish to npm is handled downstream by nano-step/shared-workflows@v1 when the push to master lands. Use this skill whenever the user says 'sync skill', 'publish skill', 'push skill to manager', '/sync-skill-to-manager <name>', or asks to release/distribute a skill they just edited.