From nextc-core
Full feature pipeline — idea to committed code. Use when building a new feature, adding functionality, or implementing from specs. Auto-detects UI vs backend. Orchestrates plan, implement, review, cleanup, docs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/nextc-core:feature-devThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Full-lifecycle feature development pipeline. Takes a feature idea from concept
Full-lifecycle feature development pipeline. Takes a feature idea from concept to committed code through structured phases with quality gates.
Auto-detects whether the feature touches UI (routes through design agents) or is backend-only (skips straight to implementation). Composes existing skills and agents rather than reimplementing them.
/bugfix/cleanupBefore anything else, assess if the request has enough concrete anchors to proceed.
Passes (has at least one concrete signal):
lib/providers/quest_provider.dart"docs/spec/guild-invites.md"Fails (too vague for direct execution):
On failure: Redirect to /clarify:
Your request is open-ended. Let me run a quick interview to nail down
what exactly we're building before I start coding.
Invoke Skill("clarify") with the user's original prompt. When clarify completes
and produces a spec in docs/spec/, resume this pipeline at Phase 1 using that spec.
Bypass: If the user prefixes with ! or says "just do it", skip the gate.
Read the project context in parallel:
CLAUDE.md — project summary, tech stack, current phasedocs/tasks.md — existing task tracker (avoid duplicate work)docs/spec/ — check if a spec already exists for this featuredocs/design.md — check if design system exists (needed for UI classification)pubspec.yaml or package.json — tech stack confirmationgit log --oneline -10 — recent changes for contextIf a matching spec already exists in docs/spec/ (from a prior /clarify run or manual writing):
docs/spec/{name}.md. Using it as the basis for planning."If no spec exists, proceed normally through Phase 2.
Classify the feature as UI-touching or backend-only:
| Signal | Classification |
|---|---|
| Mentions screen, page, view, widget, button, form, dialog, modal, layout | UI |
| Mentions design, visual, style, theme, animation, navigation, UX | UI |
| New screen or modification of existing screen | UI |
| Changes to data model, provider, repository, service, API, migration | Backend |
| Business logic, validation, calculation, algorithm | Backend |
| Both UI and data layer changes | UI (superset — includes backend work) |
Present the classification:
Feature: {one-line summary}
Type: {UI / Backend}
Scope: {estimated files/areas affected}
Existing spec: {docs/spec/X.md or "none"}
Design system: {docs/design.md exists: yes/no}
Ask the user to confirm or override:
Generate a plan and validate it through adversarial review.
Spawn a planner agent (use everything-claude-code:planner or the general-purpose agent in plan mode):
Spawn an architect agent (use everything-claude-code:architect):
If the architect raised concerns:
If no concerns: proceed with the plan as-is.
Write the approved plan to docs/spec/{feature-slug}.md BEFORE implementation begins.
If a spec already exists from /clarify, update it with the implementation plan and
architecture decision. If no spec exists, create one.
The spec file is the source of truth for the rest of the pipeline. If context compacts mid-implementation, the plan survives in the file. All subsequent phases read acceptance criteria and step lists from this file, not from conversation memory.
Show the user the final plan:
## Implementation Plan: {feature name}
### Approach
{1-2 sentence summary of the approach}
### Steps
1. {step} — {files affected}
2. {step} — {files affected}
...
### Data Model Changes
{table of model/field changes, or "None"}
### Architecture Decision
- Chosen: {approach}
- Rejected: {alternative} — because {reason}
### Acceptance Criteria
- [ ] {criterion 1}
- [ ] {criterion 2}
...
### Risk
- {risk and mitigation}
Ask:
On approval, persist the plan per Step 2d before proceeding.
Skip this phase entirely for backend-only features.
For UI-touching features, check what design artifacts exist:
design.md already covers this featuredesign.md screen inventory as non-coredesign.md with the new core screen specsExecute the plan step by step. Parallelize independent steps.
Before starting implementation, create a task for each step in the plan using
TaskCreate. This gives visible progress tracking through the pipeline:
Task #1: "Create GuildInvite model and migration" — pending
Task #2: "Create guild_invite_repository" — pending
Task #3: "Create guild_invite_provider" — pending
Task #4: "Add invite screen and navigation" — pending
As you work, mark each task in_progress when starting and completed when done.
If a step reveals new sub-tasks, create them with TaskCreate and note the discovery.
Read acceptance criteria from the persisted spec file (docs/spec/{feature}.md),
not from conversation memory.
For each step in the plan:
flutter analyze, tsc, etc.)Delegate sub-tasks to agents at appropriate model tiers (see model-selection rule):
Follow this order:
ui-ux-developer agent for screen implementation
design.md reference, screen purpose, data sources (providers)lib/l10n/ or l10n.yaml exists)/flutter-l10n-extract to extract any new hardcoded user-facing
strings into ARB locale files. This prevents hardcoded strings from shipping./flutter-l10n-translate
should be run separately to translate the new keys (do not auto-run — the user
decides when to translate)When the plan has independent steps, fire them simultaneously:
# Good: independent steps in parallel with correct model tiers
Agent 1 (sonnet): "Create the GuildInvite model and repository"
Agent 2 (sonnet): "Create the guild_invite_provider with state management"
Agent 3 (haiku): "Add the new route to router.dart" # simple config change
# Bad: sequential when unnecessary
Step 1 → wait → Step 2 → wait → Step 3
# Bad: opus for simple tasks
Agent 1 (opus): "Add an import to router.dart" # haiku is sufficient
After each step:
After all implementation steps complete:
flutter analyze or project equivalent. Must be zero errors.Spawn a code-reviewer agent (use everything-claude-code:code-reviewer):
Handle review results:
For features touching auth, payments, or user data, also spawn everything-claude-code:security-reviewer in parallel with the code reviewer.
Invoke /cleanup on the files changed during this feature:
/cleanup {list of files changed}
This runs the slop cleaner: dead code removal, duplicate consolidation, abstraction flattening. Only on the files we touched — no scope creep.
Mandatory re-verification after cleanup:
If cleanup made any changes:
flutter analyze, tsc, etc.) — must be zero errorsDo NOT proceed to Phase 8 until post-cleanup verification is green. Cleanup that breaks the build is worse than no cleanup at all.
Spawn doc-keeper agent in the background to update:
docs/tasks.md — mark the feature as donedocs/spec/{feature}.md — update or create the feature specdocs/changelog.md — add user-facing changelog entrydocs/product-guide.md — update if user-facing behavior changeddocs/glossary.md — add any new domain termsdocs/qc/{feature}.md — add/update QC test casesCLAUDE.md — update if architecture or project status changed┌─────────────────────────────────────────────────────────┐
│ Gate 0: Vagueness Check │
│ Too vague? → /clarify → spec → resume │
└──────────────────────┬──────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────┐
│ Phase 1: Scope & Classify │
│ Read context, detect UI/Backend, find existing spec │
│ Existing spec? → skip 2a, use spec as plan input │
└──────────────────────┬──────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────┐
│ Phase 2: Plan with Consensus │
│ Planner → Architect review → Reconcile → User approve │
│ Persist plan to docs/spec/{feature}.md │
└──────────────────────┬──────────────────────────────────┘
│
┌────────┴────────┐
│ UI feature? │
└───┬─────────┬───┘
yes no
│ │
┌─────────────────▼──┐ │
│ Phase 3: Design │ │
│ Check design.md │ │
│ + design assets │ │
└─────────────────┬──┘ │
│ │
┌───▼───────────▼───┐
│ Phase 4: Implement │
│ TaskCreate per │
│ step, parallel │
│ agents, l10n │
│ extract (Flutter│
│ UI only) │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Phase 5: Verify │
│ Analyze + build │
│ Acceptance check│
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Phase 6: Review │
│ Code reviewer │
│ Security (opt) │
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Phase 7: Cleanup │
│ /cleanup on │
│ changed files │
│ Re-verify after │◄── fail? revert cleanup change
└─────────┬─────────┘
│
┌─────────▼─────────┐
│ Phase 8: Docs │
│ doc-keeper (bg) │
└───────────────────┘
no-auto-testing rule — verify via analyzer and manual acceptance criteria, not by writing testsThis skill composes other skills and agents. Here's what it invokes:
| Phase | Skill / Agent | Model | When |
|---|---|---|---|
| Gate 0 | /clarify skill | — | Request too vague |
| Phase 1 | Existing docs/spec/ | — | Spec exists from prior /clarify — skip Phase 2a |
| Phase 2a | everything-claude-code:planner agent | sonnet | No existing spec |
| Phase 2b | everything-claude-code:architect agent | opus | Always |
| Phase 3 | User provides design assets | — | UI feature, core screen needed |
| Phase 4 | ui-ux-developer agent | sonnet | UI feature, screen implementation |
| Phase 4 | /flutter-l10n-extract skill | — | Flutter UI feature, l10n enabled |
| Phase 6 | everything-claude-code:code-reviewer agent | sonnet | Always |
| Phase 6 | everything-claude-code:security-reviewer agent | sonnet | Auth/payments/user data |
| Phase 7 | /cleanup skill | — | Always (re-verify after) |
| Phase 8 | doc-keeper agent | haiku | Always (background) |
If invoked with --quick:
Good for small features where the full pipeline is overkill but you still want
structure. The user can always run /cleanup and code review separately later.
Task: {{ARGUMENTS}}
npx claudepluginhub nextc/nextc-claude --plugin nextc-coreGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.