swingerman/disciplined-agentic-engineering/feature-init
Claude Code and agent skill by swingerman/disciplined-agentic-engineering
- community
Checking that the SKILL.md file is still in the repository.
Use when a new feature folder must be created for the DAE pipeline, or when discuss promotes/parks an idea. Triggers — "/engineer.feature-init", "create a feature", "start a new feature", "init a feature".
Install
npx vskill@latest install swingerman/disciplined-agentic-engineering/feature-initSKILL.md
feature-init
Create a feature folder for the DAE pipeline — feature.md (the Ready contract), the folder, a branch, and a tracker entry. Checkpoint 1.5.
When to use
Five paths:
- From `discuss` — receives a
feature_intakepayload in context (park or promote outcome). No interview. - Standalone — no payload; run the intake interview.
- From a tracker capture — promoting an untriaged row a human added directly to the tracker (no
Slug; see Tracker-as-intake inreferences/tracker.md). Pre-fill intake from the row (its title →title/outcome,Type, any notes); confirm the rest. Reuse the row — don't create a new one (Step 9). - From a roadmap item — promoting a strategic roadmap item (status
planned) into a feature (typically fromnext's ON THE ROADMAP bucket, ordiscuss). Pre-fill intake from the item (title,area,notes). Signalled by aroadmap_ref(the itemid) passed in — carry it ontofeature.mdand mark the item in-progress (Step 9). See the roadmap ↔ feature funnel inreferences/roadmap.md. - Onboarding intake — invoked by
onboard(or directly) to formalize work that already exists in the codebase. The feature folder is reverse-engineered from an existing spec / branch / implementation. Enters atstatus: in-progressordone, notready.
Detect from-discuss vs standalone by whether a feature_intake payload is present; a tracker capture is signalled by a slug-less tracker_ref passed in (typically from next); a roadmap promotion is signalled by a roadmap_ref (item id) passed in; onboarding intake is signalled by onboard (or an explicit "formalize existing feature" request).
Not for: brand-new ideas worth exploring first (discuss), or editing an existing feature (feature-edit).
Workflow
Before the steps below, create one TodoWrite todo per workflow step (the full list up front, as a roadmap). After Step 6 creates the feature folder, show the pipeline breadcrumb: run ${CLAUDE_PLUGIN_ROOT}/scripts/dae_progress.py <feature-dir> and present its output — for a just-initialized feature (no progress.md yet) it renders the pipeline ahead. The breadcrumb is advisory and never blocks. See ${CLAUDE_PLUGIN_ROOT}/references/progress-indicator.md.
- Resolve — resolve the methodology root + manifest via
${CLAUDE_PLUGIN_ROOT}/scripts/dae_resolve.py(seereferences/resolving.md). Exit 2 (no manifest) → point to/engineer.onboard. - Gather intake — from-discuss: read the payload. From an
intent.md(async originator,${CLAUDE_PLUGIN_ROOT}/references/intent.md): read it as the seed, synthesize the required fields from it, and confirm with the human before creating. Standalone: first, project the path (${CLAUDE_PLUGIN_ROOT}/references/choice-points.md) — read the idea, project size + clarity, and present the two funnel decisions as a choice point (recommend one, marked "(Recommended)", alternatives listed,autonomy_level-dialed default), not open questions: (A) front half — unclear/fuzzy/UX-heavy → recommend the prototype-first path (${CLAUDE_PLUGIN_ROOT}/references/two-paths.md): hand to/engineer.prototype "<idea>", which iterates fast and converts to spec on convergence; shape known → spec-first. (B) weight — projected ~1-PR/low-risk → recommend express (XS) (${CLAUDE_PLUGIN_ROOT}/references/express-lane.md), else full DAE; charter-flagged path is never recommended express (safety wins). Afeature_intake/handoff may already carry a projectedsizefromdiscuss— use it, don't re-project. Only when the human takes the spec-first route, interview — required fields one per turn (title,slug,outcome,source_links,status,autonomy_levelifstatusisready/in-progress/done,scope), optional fields (target,owner,area,relevant_adrs,tags,size,validation_method,assignee) bundled at the end. `validation_method` is a one-line description of how this feature will be validated beyond the default (passing acceptance + unit + mutation); examples: "manual smoke in staging", "canary 5% prod for 24h, watch dashboard X", "feature flagnew_checkout, internal users for 1 week". A highautonomy_levelshould be matched by an explicit non-defaultvalidation_method. `assignee` names who executes the next checkpoint —human|local|cloud(defaultlocal); it is orthogonal toowner(who is accountable).cloudrequests cloud delegation, which the dispatch router still gates per-checkpoint viadae_delegable.py(seereferences/handoff-dispatch.md). Onboarding intake: reverse-engineer the fields from the existing spec / branch / commits; setstatustoin-progressordoneper how complete the work is. - Validate — slug format (kebab-case, lowercase, ASCII, ≤50, leading letter);
autonomy_level∈manifest.autonomy.allowed_levelsand within path overrides; anystatusother thanparkedrequiresautonomy_level;relevant_adrsexist;assignee∈ {human,local,cloud} if present. Slug collision: if existing feature isparked→ offer promote-from-parked (flip status, keep handoffs); ifready/in-progress→ redirect tofeature-edit; ifdone→ reject. - Decomposition check — if scope spans multiple competencies or sounds like several PRs, surface it; user proceeds as one feature or re-invokes per sub-feature with
parent_featureset. - Allocate number — run
${CLAUDE_PLUGIN_ROOT}/scripts/dae_feature_number.py <methodology_root>and use the number it prints. Don't scanfeatures/by hand — the script takes the maxNNNacross every git worktree (uncommitted folders included) and every local/remote branch, so numbers claimed on unmerged work don't collide. (Two inits running at the same moment can still race.) Onboarding intake exception: inherit the existing number — a feature migrated from a Speckitspecs/NNN-slug/keeps itsNNN; do not renumber. - Create —
features/NNN-<slug>/withfeature.md(per the Foundation Design feature.md schema), emptyhandoffs/, empty.build/. Add.build/to.gitignore. Includecreated: <YYYY-MM-DD>(today) infeature.mdfrontmatter.dae_handoff.pyuses it to decide whether CP7 needs real-app evidence. Includebranch: <name>infeature.mdfrontmatter — the slug for greenfield; the adopted branch for onboarding intake. This is read by${CLAUDE_PLUGIN_ROOT}/scripts/dae_branch.pyat every later checkpoint's Step 0 to enforce branch hygiene. If avalidation_methodwas provided in the intake, include it in the frontmatter too — downstream skills (plan,consistency-check) consume it. If a `size` was provided, derive `gate_profile: {front, verify}` from the size→profile table in `${CLAUDE_PLUGIN_ROOT}/references/gate-profile.md` and include it in the frontmatter (this is what dials the front/verify human gates); a caller may pass an explicitgate_profileto override the size default. `size: XS` also sets `gate_profile.lane: express` — the one-pass express lane (${CLAUDE_PLUGIN_ROOT}/references/express-lane.md); its downstream is/engineer.express, not the CP2→CP8 chain. If the path is charter-flagged (payments/auth/migration/blast-radius), writecharter_flagged: true;dae_diverse.pyreads it to give the feature a second-model-family review. Do not derivelane: expressfor a charter-flagged path orautonomy_level: low— those fall back to the full pipeline even atsize: XS(safety wins). If nosizewas given, omitgate_profile— its absence keeps today's per-checkpoint gating (notauto). If aroadmap_refwas passed in (roadmap promotion), includeroadmap_ref: <item-id>in the frontmatter — the back-link from the feature to its strategic roadmap item. Do NOT createprogress.md/acs.md/spec.md/plan.md/session-log.md— downstream skills produce those. - Branch — auto-create
git checkout -b <slug>unlessCHARTER.mddeclares a manual git policy. If the branch already exists (common in onboarding intake — the feature's work is already on a branch) → use it, don't recreate. - LSP language note — if the feature touches a language not present in
manifest.validation.lsp.servers, surface a one-line note ("this feature is mostly Rust — no LSP server recorded for Rust; LSP-backed lookup will fall back to grep+AST"). Inform-only; never blocks. Skip ifmanifest.validation.lsp.serversis absent (the project hasn't done the LSP probe yet —onboard's gap-check will catch it). - Tracker (+ roadmap) — upsert a
TrackedFeaturevia the driver perreferences/tracker.md(local= thedae_tracker_local.pyno-op;notion= the connected Notion MCP); write the returned ref tofeature.mdtracker_ref. Promoting a tracker capture: upsert into the existing row (the slug-lesstracker_refpassed in) — write the assignedSlug/Statusback to it rather than creating a duplicate. Promoting a roadmap item: if aroadmap_refwas passed in, mark that item in-progress with the new slug via the roadmap driver (local=${CLAUDE_PLUGIN_ROOT}/scripts/dae_roadmap.py mark <ref> in-progress <slug>; MCP-backed = the connected channel) — the strategic layer now reflects that the feature is underway. Seereferences/roadmap.md. - How to drive it — for a ready feature that is not express, render a choice point (
${CLAUDE_PLUGIN_ROOT}/references/choice-points.md) with two options. Coordinated:/engineer.run <slug>drives CP2→CP8 and stops only at the front and back gates (${CLAUDE_PLUGIN_ROOT}/references/coordinator.md). Step by step:/engineer.prime-context, then/engineer.discover-acs, with each skill dispatching the next. Recommend coordinated atmedium/highautonomy and step by step atlow, where every checkpoint gets reviewed anyway. Default on silence followsautonomy_level. Record the pick as the handoff'srecommended_next. This only names the next command; it never runs it. - Handoff — emit a summary.
Handoff
Emit per ${CLAUDE_PLUGIN_ROOT}/references/handoff-summary.md. checkpoint: 1.5; recommended_next: ready → the step-10 pick ("/engineer.run <slug>" or "/engineer.prime-context then /engineer.discover-acs"), except `gate_profile.lane: express` → "/engineer.express" (the one-pass lane); parked → "resume via /engineer.discuss <slug>"; onboarding intake → "/engineer.discover-acs (reverse-engineer mode)".
If folder + feature.md succeed but branch or tracker fails, emit status: interrupted noting what's incomplete.
References
- Foundation Design — feature.md schema, storage layout, naming
- Discuss & Upstream Funnel — the
feature_intakecontract from discuss references/tracker.md— the tracker drivers (local + Notion)references/roadmap.md— the roadmap ↔ feature funnel (roadmap_refback-link, promote)
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingengineer/skills/feature-init/SKILL.md
Popularity
- Repository stars
- 112
- Repository forks
- 6
- 7-day trend score
- 24
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/swingerman/disciplined-agentic-engineering/feature-init)