---
name: Feature
slug: feature-2
category: Automation
description: Feature adds a new feature to an existing project by running a full sprint workflow from planning through ship. Use it when the user already knows what they want and the codebase already exists.
github: "https://github.com/garagon/nanostack/tree/main/feature"
language: Shell
stars: 204
forks: 15
install: "npx degit https://github.com/garagon/nanostack/tree/main/feature ~/.claude/skills/feature"
installs_to: ~/.claude/skills/feature
source_path: feature/SKILL.md
collection_size: 18
category_size: 1956
collection_url: "https://dirskills.com/collections/garagon/nanostack"
added: 2026-09-05T05:29:35.362Z
last_synced: 2026-09-05T05:29:35.362Z
canonical_url: "https://dirskills.com/skills/feature-2"
---

# Feature

Feature adds a new feature to an existing project by running a full sprint workflow from planning through ship. Use it when the user already knows what they want and the codebase already exists.

**Install:**

```bash
npx degit https://github.com/garagon/nanostack/tree/main/feature ~/.claude/skills/feature
```

## README

# /feature — Add a Feature

Fast path for adding a feature to an existing project. Skips the /think diagnostic and runs the full sprint via skill invocations.

```
/feature Add import from JSON/CSV to restore backups
```

## Telemetry preamble

Defensive telemetry init. No-op if telemetry is disabled via `NANOSTACK_NO_TELEMETRY=1`, `~/.nanostack/.telemetry-disabled`, or if the helpers are removed.

```bash
_P="$HOME/.claude/skills/nanostack/bin/lib/skill-preamble.sh"
[ -f "$_P" ] && . "$_P" feature
unset _P
```

## Setup

Before anything else, ensure the project is configured. Run this once (skips if already done):

```bash
[ -f .claude/settings.json ] || ~/.claude/skills/nanostack/bin/init-project.sh
```

## Session

Initialize the sprint session with autopilot and explicit plan auto-approval. `--autopilot` already implies `--plan-approval auto` per the session contract, but passing it explicitly makes the intent obvious to anyone reading `session.json`.

```bash
~/.claude/skills/nanostack/bin/session.sh init feature --autopilot --plan-approval auto
```

Manual feature work should use `/think` + `/nano` instead. `/feature` itself does not accept a manual mode flag.

Then run `session.sh phase-start plan`. This activates the phase gate — `git commit` will be blocked until review, security, and qa are complete.

## Process

You are an autonomous orchestrator. You run the entire sprint without stopping between phases. Do NOT wait for user input between steps. Do NOT ask "should I continue?" or "ready for review?". Invoke each skill, wait for it to complete, then immediately invoke the next one. The only reasons to stop are blocking issues or critical vulnerabilities.

**Auto-approval contract for sub-skills.** The session records `plan_approval=auto` and `autopilot=true`, so `/nano`, `/review`, `/security`, `/qa`, and `/ship` read those fields and behave accordingly: present briefly, do not pause for approval. If any of them asks "ready to proceed?", treat it as a regression in that skill, not a signal to stop.

### Step 1: Context

Resolve existing artifacts and solutions in one call:

```bash
~/.claude/skills/nanostack/bin/resolve.sh feature
```

The output is JSON with `upstream_artifacts` (think, plan, ship paths if recent) and `solutions` (ranked past learnings). Read the checkpoint summaries. If no artifacts exist, read the codebase directly.

### Step 2: Plan

```
Use Skill tool: skill="nano"
```

Wait for /nano to complete. It saves its own artifact. Then immediately build.

### Step 3: Build

Build the feature. Do not ask for approval. The plan was the contract.

### Step 4: Review + Security + QA (parallel)

These three phases are independent. They all read the build output but don't depend on each other. Launch all three using the Agent tool in a single message with three parallel tool calls:

```
Agent: subagent_type="general-purpose", prompt="Run /review on this project. Use Skill tool: skill='review'"
Agent: subagent_type="general-purpose", prompt="Run /security on this project. Use Skill tool: skill='security'"
Agent: subagent_type="general-purpose", prompt="Run /qa on this project. Use Skill tool: skill='qa'"
```

If parallel agents are not available, fall back to sequential:
```
Use Skill tool: skill="review"
Use Skill tool: skill="security"
Use Skill tool: skill="qa"
```

If any phase finds blocking issues or critical vulnerabilities: fix them, then re-run that phase only.

`Feature: review + security + qa complete. Running /ship...`

### Step 7: Ship

```
Use Skill tool: skill="ship"
```

/ship commits, creates PR if remote exists, generates sprint journal, runs /compound, and shows the result with next feature suggestions.

## Telemetry finalize

Before returning control:

```bash
_F="$HOME/.claude/skills/nanostack/bin/lib/skill-finalize.sh"
[ -f "$_F" ] && . "$_F" feature success
unset _F
```

Pass `abort` or `error` instead of `success` if the feature flow did not complete normally.

## Rules

- **Do not stop between phases.** This is the most important rule. Plan → build → review → security → qa → ship runs as one continuous flow. No pauses, no questions, no confirmations.
- Each skill is invoked via the Skill tool, not implemented inline.
- Each skill saves its own artifact. You do not save artifacts — the skills do.
- Between steps, show one line of status: `Feature: review complete. Running /security...`
- Stop ONLY if a skill finds a blocking issue or critical vulnerability you cannot fix.
- If the feature already exists in the codebase, tell the user and suggest alternatives.
