Agent skill

Feature Init

by swingerman in swingerman/engineer

A skill your agent uses when a new feature folder must be created for the DAE pipeline, or when discuss promotes/parks an idea.

MITAuto-check passed

Install Feature Init

skills CLI
$ npx skills add swingerman/engineer --skill feature-init -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install swingerman/engineer feature-init --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/engineer/skills/feature-init .claude/skills/feature-init && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
feature-init
GitHub stars
154
Token cost
~2.6k tokens
SKILL.md length
1,218 words
Files
1
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a new feature folder must be created for the DAE pipeline, or when discuss promotes/parks an idea.

  • Works in 10 steps: Resolve — resolve the methodology root +… → Gather intake — from-discuss: read the… → Validate — slug format (kebab-case,… → …
  • A new feature folder must be created for the DAE pipeline
  • SKILL.md covers When to use, Workflow, Handoff and References
  • Calls git

What it does

Feature Init is an agent skill from swingerman/engineer. 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".

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Disciplined Agentic Engineering — a methodology kit for Claude Code: acceptance-test-first specs, explicit checkpoints, and autonomy you can actually leave running. The engineer… The licence is MIT.

When your agent uses it

  • A new feature folder must be created for the DAE pipeline
  • Discuss promotes/parks an idea
  • — /engineer.feature-init
  • Create a feature

Example prompts

  • “/engineer.feature-init”
  • “create a feature”
  • “start a new feature”
  • “/feature-init”

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Resolve — resolve the methodology root + manifest via ${CLAUDE_PLUGIN_ROOT}/scripts/dae_resolve.py (see references/resolving.md). Exit 2…
  2. Gather intake — from-discuss: read the payload. From an intent.md (async originator, ${CLAUDE_PLUGIN_ROOT}/references/intent.md): read it…
  3. Validate — slug format (kebab-case, lowercase, ASCII, ≤50, leading letter); autonomy_level ∈ manifest.autonomy.allowed_levels and within…
  4. Decomposition check — if scope spans multiple competencies or sounds like several PRs, surface it; user proceeds as one feature or…
  5. Allocate number — run ${CLAUDE_PLUGIN_ROOT}/scripts/dae_feature_number.py and use the number it prints. Don't scan features/ by hand — the…
  6. Create — features/NNN-/ with feature.md (per the Foundation Design feature.md schema), empty handoffs/, empty .build/. Add .build/ to…
  7. Branch — auto-create git checkout -b unless CHARTER.md declares a manual git policy. If the branch already exists (common in onboarding…
  8. LSP language note — if the feature touches a language not present in manifest.validation.lsp.servers, surface a one-line note ("this…
  9. Tracker (+ roadmap) — upsert a TrackedFeature via the driver per references/tracker.md (local = the dae_tracker_local.py no-op; notion =…
  10. Handoff — emit a summary.

What it can do on your machine

Read from SKILL.md and the folder at commit 32947eb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • notion.so

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Feature Init loads about 2.6k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 1,218 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from swingerman/engineer at commit 32947eb, republished under its MIT licence (© swingerman). 1,218 words, ~2,560 tokens.

Download SKILL.mdSave it as .claude/skills/feature-init/SKILL.md (or your agent's skills folder).
name
feature-init
description
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".

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_intake payload 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 in references/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 from next's ON THE ROADMAP bucket, or discuss). Pre-fill intake from the item (title, area, notes). Signalled by a roadmap_ref (the item id) passed in — carry it onto feature.md and mark the item in-progress (Step 9). See the roadmap ↔ feature funnel in references/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 at status: in-progress or done, not ready.

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.

  1. Resolve — resolve the methodology root + manifest via ${CLAUDE_PLUGIN_ROOT}/scripts/dae_resolve.py (see references/resolving.md). Exit 2 (no manifest) → point to /engineer.onboard.
  2. 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). A feature_intake/handoff may already carry a projected size from discuss — 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_level if status is ready/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 flag new_checkout, internal users for 1 week". A high autonomy_level should be matched by an explicit non-default validation_method. assignee names who executes the next checkpoint — human | local | cloud (default local); it is orthogonal to owner (who is accountable). cloud requests cloud delegation, which the dispatch router still gates per-checkpoint via dae_delegable.py (see references/handoff-dispatch.md). Onboarding intake: reverse-engineer the fields from the existing spec / branch / commits; set status to in-progress or done per how complete the work is.
  3. Validate — slug format (kebab-case, lowercase, ASCII, ≤50, leading letter); autonomy_level ∈ manifest.autonomy.allowed_levels and within path overrides; any status other than parked requires autonomy_level; relevant_adrs exist; assignee ∈ {human, local, cloud} if present. Slug collision: if existing feature is parked → offer promote-from-parked (flip status, keep handoffs); if ready/in-progress → redirect to feature-edit; if done → reject.
  4. 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_feature set.
  5. Allocate number — run ${CLAUDE_PLUGIN_ROOT}/scripts/dae_feature_number.py <methodology_root> and use the number it prints. Don't scan features/ by hand — the script takes the max NNN across 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 Speckit specs/NNN-slug/ keeps its NNN; do not renumber.
  6. Create — features/NNN-<slug>/ with feature.md (per the Foundation Design feature.md schema), empty handoffs/, empty .build/. Add .build/ to .gitignore. Include branch: <name> in feature.md frontmatter — the slug for greenfield; the adopted branch for onboarding intake. This is read by ${CLAUDE_PLUGIN_ROOT}/scripts/dae_branch.py at every later checkpoint's Step 0 to enforce branch hygiene. If a validation_method was 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 explicit gate_profile to 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. Do not derive lane: express for a charter-flagged path or autonomy_level: low — those fall back to the full pipeline even at size: XS (safety wins). If no size was given, omit gate_profile — its absence keeps today's per-checkpoint gating (not auto). If a roadmap_ref was passed in (roadmap promotion), include roadmap_ref: <item-id> in the frontmatter — the back-link from the feature to its strategic roadmap item. Do NOT create progress.md/acs.md/spec.md/plan.md/session-log.md — downstream skills produce those.
  7. Branch — auto-create git checkout -b <slug> unless CHARTER.md declares 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.
  8. 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 if manifest.validation.lsp.servers is absent (the project hasn't done the LSP probe yet — onboard's gap-check will catch it).
  9. Tracker (+ roadmap) — upsert a TrackedFeature via the driver per references/tracker.md (local = the dae_tracker_local.py no-op; notion = the connected Notion MCP); write the returned ref to feature.md tracker_ref. Promoting a tracker capture: upsert into the existing row (the slug-less tracker_ref passed in) — write the assigned Slug/Status back to it rather than creating a duplicate. Promoting a roadmap item: if a roadmap_ref was 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. See references/roadmap.md.
  10. Handoff — emit a summary.
Show full SKILL.md (73 more words)Show less

Handoff

Emit per ${CLAUDE_PLUGIN_ROOT}/references/handoff-summary.md. checkpoint: 1.5; recommended_next: ready → "/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_intake contract from discuss
  • references/tracker.md — the tracker drivers (local + Notion)
  • references/roadmap.md — the roadmap ↔ feature funnel (roadmap_ref back-link, promote)

© swingerman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in engineer/skills/feature-init of swingerman/engineer.

Open the folder on GitHubat commit 32947eb

Compare with similar skills

Feature Init next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Feature Init compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Feature Init this skillswingerman/engineer154—~2.6kAutomated safety check: PassMIT
Initasgeirtj/system_prompts_leaks69k—~5.5kAutomated safety check: PassCC0-1.0
Initasgeirtj/system_prompts_leaks69k—~602Automated safety check: PassCC0-1.0
Migrate Createruvnet/ruflo74k—~583Automated safety check: NotesMIT
Adr Createruvnet/ruflo74k—~680Automated safety check: NotesMIT
Create Videocalesthio/OpenMontage65k—~1.3kAutomated safety check: PassAGPL-3.0

Similar skills

  • Init

    asgeirtj/system_prompts_leaks

    Initialize new CLAUDE.md file(s) and optional skills/hooks with codebase documentation

    69k GitHub stars~5.5k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Init

    asgeirtj/system_prompts_leaks

    Initialize a new CLAUDE.md file with codebase documentation. An agent skill from asgeirtj/system_prompts_leaks.

    69k GitHub stars~602 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Migrate Create

    ruvnet/ruflo

    Create a new sequentially numbered database migration with up/down SQL files

    74k GitHub stars~583 tokensUpdated today
    DatabasesAuto-check: notes
  • Adr Create

    ruvnet/ruflo

    Create a new Architecture Decision Record with sequential numbering and AgentDB registration

    74k GitHub stars~680 tokensUpdated today
    DevelopmentAuto-check: notes
  • Create Video

    calesthio/OpenMontage

    Create videos from a text prompt using HeyGen's Video Agent.

    65k GitHub stars~1.3k tokensUpdated 4 days ago
    Media & CreativeAuto-check passed
  • Create Skill

    asgeirtj/system_prompts_leaks

    Create and validate a new Muse skill — project-local in the current workspace by default, or a personal skill staged for muse skills install into the managed personal root.

    69k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

More from swingerman/engineer

All 27 skills in this repo
  • Crap Analyzer

    swingerman/engineer

    A skill your agent uses to produce a risk-based refactor + test plan for recently-changed code on a diff/branch/PR by computing CRAP (complexity × untested) on changed methods.

    154 GitHub stars~1.2k tokensUpdated 14 days ago
    Auto-check passed
  • Atdd Mutate

    swingerman/engineer

    A skill your agent uses to add a third validation layer to the ATDD workflow — after acceptance tests verify WHAT and unit tests verify HOW, mutation testing verifies the tests actually catch bugs.

    154 GitHub stars~2.7k tokensUpdated 14 days ago
    Auto-check passed
  • Fix

    swingerman/engineer

    A skill your agent uses to drive a bug fix from first report through close, with a "why didn't we catch it?" loop at the end.

    154 GitHub stars~3k tokensUpdated 14 days ago
    Auto-check passed
  • Atdd

    swingerman/engineer

    A skill your agent uses to drive feature work through the Acceptance Test Driven Development workflow — Given/When/Then specs before code, a project-specific test pipeline, and two parallel test…

    154 GitHub stars~2.8k tokensUpdated 14 days ago
    Auto-check passed
  • Harden

    swingerman/engineer

    Use after a feature passes Light Verify (CP7), to prove the tests actually catch bugs and, where the code warrants it, to formally check its invariants — Checkpoint 8.

    154 GitHub stars~1.8k tokensUpdated 14 days ago
    Auto-check passed
  • Next

    swingerman/engineer

    Use at the start of a work session, or any time the question is "what should I pick up now" across the whole project.

    154 GitHub stars~3k tokensUpdated 14 days ago
    Auto-check passed

Questions about Feature Init

What does Feature Init do?

A skill your agent uses when a new feature folder must be created for the DAE pipeline, or when discuss promotes/parks an idea. Feature Init is an agent skill from swingerman/engineer. Use when a new feature folder must be created for the DAE pipeline, or when discuss promotes/parks an idea.

When should I use Feature Init?

Feature Init fits situations like: A new feature folder must be created for the DAE pipeline; discuss promotes/parks an idea; — /engineer.feature-init; create a feature.

How do I install Feature Init in Claude Code?

Run `npx skills add swingerman/engineer --skill feature-init -a claude-code`. Or copy the skill folder (engineer/skills/feature-init in swingerman/engineer) into .claude/skills/feature-init in your project. Claude Code loads it when a task matches its description.

How do I install Feature Init in Codex?

Run `npx skills add swingerman/engineer --skill feature-init -a codex`. Or copy the skill folder (engineer/skills/feature-init in swingerman/engineer) into .agents/skills/feature-init in your project. Codex loads it when a task matches its description.

Can I use Feature Init in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add swingerman/engineer --skill feature-init -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/feature-init, .gemini/skills/feature-init, .github/skills/feature-init and .opencode/skills/feature-init in your project.

What does Feature Init need to run?

Going by SKILL.md and its folder, Feature Init needs the command-line tools its instructions call (git).

Does Feature Init access the network?

SKILL.md names 1 domain. As links in the text: notion.so. This is read from the text; nothing was executed.

Is Feature Init safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Feature Init use?

Feature Init is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Feature Init use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Feature Init?

Skills that share tags, products or a category with Feature Init: Init (asgeirtj/system_prompts_leaks, 69k stars), Init (asgeirtj/system_prompts_leaks, 69k stars), Migrate Create (ruvnet/ruflo, 74k stars) and Adr Create (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Feature Init?

swingerman (a GitHub user) maintains it in swingerman/engineer, which has 154 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on September 23, 2026.

Source: swingerman/engineer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.