Skip to content
Back to skills

Ivar Subfeatures

ASecurity

Orchestrate a parent feature and its child features from the parent session with subagents — plan each child, route their questions to the human, execute in goal mode, integrate, review, and preview delivery.

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 16, 2026
developmentgobash

Works with

  • claude code
  • terminal

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add mnzsss/ivar --skill ivar-subfeatures --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ivar Subfeatures?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ivar Subfeatures
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mnzsss-ivar-subfeatures/badge)](https://www.skillsdirectory.com/skills/mnzsss-ivar-subfeatures)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ivar-subfeatures
description: Orchestrate a parent feature and its child features from the parent session with subagents — plan each child, route their questions to the human, execute in goal mode, integrate, review, and preview delivery.
argument-hint: [parent-feature]
---

# ivar-subfeatures

Use this when one feature — in one repo or several — breaks into slices that
can be built in parallel. Each slice becomes a **child** feature with its own
branch, cut from the **parent's** branch and integrated back into it. Only
the parent delivers.

You are the **coordinator**, running in the parent's session. You plan the
parent with the human, then drive every child through planning, execution and
integration with subagents, and stop at the parent's delivery preview. No
other terminal or session is launched by hand.

## Ground rules

- **One level of subagents.** A subagent never spawns subagents. You dispatch
  every planner, implementer and reviewer yourself.
- **Return-only results.** You never message a running subagent. Each prompt
  carries everything the subagent needs; it finishes by returning its result.
  A subagent that needs a decision returns `needs_input` (see
  `references/child-planner.md`) and you dispatch a fresh one with the answer.
- **Absolute paths only.** Every path in a prompt is absolute. Resolve child
  worktrees from `ivar feature status <child> --json` (`repos[].worktree`) and
  feature dirs as `<hall>/.ivar/features/<child>/`.
- **State lives on disk, not in this conversation.** Before every step, read
  `ivar feature status <parent> --recursive --json` and pick each child's next
  action from `references/state.md`. Keep only short summaries of subagent
  results.
- **You never edit code or plans yourself.** Subagents make every edit; you
  run `ivar` commands, validation commands, and ask the human.
- **Questions to the human** follow `ivar-execute`'s interactive choice
  convention: the harness's Ask tool when it has one, lettered options
  otherwise, one question per prompt.
- **No AI attribution** in commits, PR titles or PR bodies; pass the rule to
  every subagent that commits.

### Dispatch per provider

| Provider | Dispatch | Concurrency |
| --- | --- | --- |
| Claude Code | the Task tool with a general-purpose subagent | several Task calls in one message |
| t3 (Claude Code in T3 Code) | the Task tool with a general-purpose subagent | several Task calls in one message |
| OpenCode | the `general` subagent (full tool access); never `explore` for edits | several subagent calls at once |
| omp | the task tool, one task per subagent; do not rely on its nesting or agent messaging | a `tasks` batch |

Run at most three subagents at once unless the human raises the limit.
Plan reviewers run on the smallest model the harness offers, as `ivar-plan`
describes.

## 1. Plan the parent

Run `/ivar-plan <parent>` — full SPDD, with the human at every gate. The
parent plan's **Structure** carries a `### Children` table:

| Child | Repos | Owns (files or dirs) | Depends on | Delivers |
| --- | --- | --- | --- | --- |

Children own disjoint files. The parent plan's waves hold only **Wave 0**:
everything two children would both edit — dependency manifests
(`Cargo.toml`, `package.json`, `pubspec.yaml`), route tables, theme or design
tokens, l10n files, shared registries a child would add one line to. A plan
with no shared edits has no waves.

Promote the parent into every repo a child will touch:

```bash
ivar feature promote <parent> <repo>
```

When the plan has Wave 0, execute it on the parent following `ivar-execute`
with the feature `<parent>` in goal mode, through
`ivar feature execute finish <parent>`, before any child exists.

## 2. Create the children

For each row of the Children table:

```bash
ivar feature create <child> --parent <parent>
ivar plan create <child> plan
```

Promote a child only once every child it depends on is integrated, so its
branch starts from a parent that already holds that work:

```bash
ivar feature promote <child> <repo>
```

Children are one level deep. A slice too big for one child becomes more
siblings in the parent plan, not grandchildren.

## 3. Plan every child

Children take `ivar-plan`'s short path: `plan.md` plus task packets, no
requirements or analysis.

1. Dispatch one planning subagent per child, concurrently, each prompt built
   from `references/child-planner.md`.
2. A result of `status: needs_input` carries questions. Ask the human each
   question, one at a time, then dispatch a fresh planner for that child with
   the answers. It continues from the draft on disk and records the answers
   under `### Decisions`, so no later subagent asks again.
3. A result of `status: done` goes to a plan reviewer subagent with
   `ivar-plan`'s Phase 3 checklist and output format. Issues go back to a fresh
   planner with the review; at most two re-reviews, then the remaining issues
   go to the human with the plan.
4. **Batch approval.** When every child plan is done and reviewed, show the
   human one table — child, repos, waves and points, review status, open
   issues — and ask a single multi-select question: which child plans to
   approve. Run `ivar plan approve <child> plan` for each approved child. A
   child sent back returns to step 1 with the human's note.

Never approve a scaffold, and never execute an unapproved child.

## 4. Execute the children

For each approved child whose repos are promoted, in dependency order —
independent children run concurrently:

```bash
ivar session start <child> --detached --json
```

Keep its `session_id` and `view_dir`. Then coordinate the child exactly as
`ivar-execute` describes, naming the feature `<child>` and goal mode:

```bash
ivar feature execute start <child> --mode goal
```

- Implementer prompts use `ivar-execute/references/subagent.md`, with the
  child's worktree root and the child's `view_dir` as the session.
- Wave validation, `ivar feature execute checkpoint <child> --wave <n>`, the
  Standards and Spec review barrier, and the caps are `ivar-execute`'s.
- Waves of different children may run in the same dispatch batch; waves of
  one child stay in order.
- Finish the child's run with `ivar-execute`'s report:

  ```bash
  ivar feature execute finish <child> --report-json <path> --outcome <succeeded|failed|blocked>
  ```

A `failed` or `blocked` child goes to the human before it is integrated:
**(a) Integrate anyway** with the follow-ups recorded, **(b) Fix and rerun**
(`ivar feature execute start <child> --resume` for a `blocked` run; a
`failed` run is terminal, so `ivar feature execute start <child>` opens a new
one), **(c) Abandon** (`ivar feature close <child> --outcome abandoned`).

## 5. Integrate each child as it finishes

Stop the child's session, then integrate it into the parent:

```bash
ivar session stop <session-id>
ivar feature integrate <child> --name "<type>: <short message>"
```

`--name` is the integration's title: the squash or merge commit on the
parent's branch and, with `--via pr`, the PR title and merge subject. Write
it like an `ivar-deliver` PR title — short, semantic, squash-ready,
`<type>: <short message>` (for example `feat: add checkout tax` or
`fix: handle empty cart`) — describing what the child's work does, from its
`plan.md`. No Linear issue identifiers, no AI attribution. Omitted, it
defaults to `feat: integrate <child>`.

`integrate` refuses while the child has a session or an active run; a refusal
names its fix command — run it, then integrate again. After each integration,
promote any child whose dependencies are now all integrated and continue at
step 4 for it.

Watch the tree at any time:

```bash
ivar feature status <parent> --recursive
```

## 6. Final review of the parent

When every child is integrated or abandoned:

1. Dispatch two reviewers over the parent's worktrees, concurrently:
   - **Standards:** repository standards and architecture across everything
     the children merged — duplicated helpers, conflicting conventions,
     dead code left by merges.
   - **Spec:** the parent branch against the parent's `requirements.md` and
     `plan.md` and every child's `plan.md`, including what falls between
     children.
2. Run the parent plan's Verification commands yourself.
3. Dispatch blocking findings and failing checks to fix subagents that commit
   on the parent's branch; rerun the reviews. At most three rounds; whatever
   remains is listed for the human.

## 7. Preview the parent's delivery and stop

```bash
ivar feature deliver <parent> --preview
```

Print the preview, the fingerprint, the final review summary and the
follow-ups, then stop: "To deliver: /ivar-deliver". Never apply delivery.

## Resuming

After a compaction, a usage limit or a new session, read
`ivar feature status <parent> --recursive --json` and continue every child
from the action `references/state.md` assigns it. Never redo a step the tree
shows as done.

Files in this skill

  • SKILL.md8.7 KB
  • references/child-planner.md2.1 KB
  • references/state.md2.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in development →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.