Skip to content
Testing
Skill

/plan-feature

Orchestrates the test-first implementation planning workflow for feature implementation and spec changes. Use this skill whenever plan mode is active and the task involves implementing or adding a new feature, or changing an existing specification. Even if the user only says

From plugin
unity-coding-skills
2010 skills3 agents

Claude Code

$ npx -y skills add nowsprinting/unity-coding-skills --skill plan-feature --agent claude-code

SKILL.md

plan-feature.SKILL.md
name: plan-feature
description: >-
  Orchestrates the test-first implementation planning workflow for feature
  implementation and spec changes. Use this skill whenever plan mode is active
  and the task involves implementing or adding a new feature, or changing an
  existing specification. Even if the user only says "plan this" or "how should
  we implement this", load this skill to ensure the full test-first planning
  workflow is followed.
argument-hint: "[spec]"
license: Unlicense
metadata:
  author: Koji Hasegawa

Guide for plan mode. This skill defines the orchestration workflow for test-first implementation planning.

Mode Check

This skill requires **plan mode**. Before doing anything else, check the current mode:

  • `ExitPlanMode` is in the deferred tools list → **not in plan mode** → stop immediately and tell the user:

> "This skill (`/plan-feature`) requires plan mode. Enter plan mode first: use `/plan` or press Shift+Tab to toggle."

  • `ExitPlanMode` is NOT in the deferred tools list (i.e., directly callable) → in plan mode → proceed.

Task Type Check

If the user's request is to investigate or fix a bug rather than implement a new feature, change a specification, or refactor, use `ExitPlanMode` immediately and guide the user to invoke the `/fix-bug` skill instead. The rest of this skill applies to feature implementation, spec changes, and refactoring only.

Plan Mode Workflow

Step 1: Initial Understanding

Launch Explore agents to understand the codebase relevant to the task.

**TBD items:** If the requirements or specifications explicitly contain the text "TBD" for any item, treat that item as non-existent — do not design or implement it. Only ask the user via `AskUserQuestion` if the TBD item is a prerequisite that cannot be deferred without blocking the overall design.

Step 2: Implementation Design (Plan Agent)

Launch a Plan agent to design the class/method structure. Include the following instruction in the Plan agent prompt:

> Design the class/method seams with **testability** in mind: > - Prefer small, focused public interfaces > - **Test through the same seam production code uses.** Tests should exercise the same `public`/`internal` API that production callers go through. Do not promote a `private` method or widen visibility merely to reach it from a test — by default, private stays private. > - **Sanctioned exception (reduce combinatorial coverage):** When a method takes **3 or more parameters** — a heuristic for the real trigger, which is that several *independent* conditions combine so exhaustive coverage cost explodes (this can also happen with fewer parameters that each take many values, and may not apply when the extra parameters don't drive branching) — extract the cohesive sub-logic (a pure computation or decision that depends on only 1–2 of those inputs) into its own unit. Prefer a standalone class or pure function when the logic stands on its own; fall back to an `internal` method on the same class only when it cannot be cleanly separated from instance state. Give the extracted unit `internal` (not `public`) visibility when it need not be reachable outside the assembly — the narrowed visibility is a *consequence* of the extraction, not the goal. > - Inject dependencies via interfaces so they can be replaced with test doubles > - Avoid hidden static/global state and `new` calls inside constructors for external dependencies > > **Naming:** If any class or public method name explicitly specified by the user is a poor fit for what the spec describes, propose a more appropriate alternative using `AskUserQuestion` before finalizing the design. Accept the user's final choice without further challenge. > > **TBD items:** Any item explicitly marked "TBD" in the requirements or spec must be excluded from the design. Skip it silently unless it is structurally required to complete the design (in which case, ask via `AskUserQuestion`).

The Plan agent output should include **only**:

  • Class names and responsibilities
  • Public and internal method signatures
  • Dependency interfaces (if any)
  • File placement: the file path for each new or modified class, and the assembly (`.asmdef`) it belongs to — assembly boundaries drive test references and `InternalsVisibleTo`, so the implementer must not have to re-derive placement
  • Brief rationale for design decisions

**Do NOT include** test cases, manual tests, or any test design and verification instructions — those are the sole responsibility of the `test-designer` agent in Step 3.

Step 3: Test Case Design (test-designer Agent)

After Step 2, launch the `test-designer` agent with an Opus-class or more capable model set in the `model` parameter, so test design stays on a strong model even when the main session runs on a faster one. Use the following prompt structure:

## Requirements
[feature requirements]

## Implementation Design
[class names, public and internal method signatures, dependency interfaces, and design rationale from the Step 2 Plan agent]

## Existing Code Context
[relevant existing code structure from Step 1 Explore]

## Language Convention
[project language for test names and prose, e.g., Japanese]

**Rules for assembling the prompt:**

  • Under `Implementation Design`, include only the design output — **do NOT include any test cases or manual tests** the Plan agent may have produced. Test design is the `test-designer` agent's sole responsibility.
  • **Do NOT add output format specifications.** The `test-designer` agent's output format is self-contained; caller-supplied format overrides produce non-standard output.
  • **Always include `## Language Convention`.** Resolve the project language from `CLAUDE.md` (look for the language specified for test method names / code comments). If `CLAUDE.md` does not specify a language, default to English.

The `test-designer` agent returns:

  • **Test Cases** across all layers (Editor tests, Unit tests, Integration tests, Visual verificatio
Read more
@nowsprinting
Ships withunity-coding-skills

A Claude Code plugin for Unity development that enables coding agents to work autonomously through a test-first workflow — writing reliable, maintainable tests before production code, then iterating to completion without constant oversight.

2010 skills3 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
20
Star history of nowsprinting/unity-coding-skills on GitHub, a chart by star-history.com

Other skills on unity-coding-skills.

More skills from other plugins.

api-review

api-review

Produce the "Playwright 1.xx API Review" artifact for a range of commits - the public API additions and the breaking or behavior…

@microsoft@microsoftInstall Skill
add-e2e-selectors

add-e2e-selectors

Add reliable @grafana/e2e-selectors to interactive elements and key containers in the Grafana frontend. Use when adding e2e…

grafana1d78k
@grafana@grafanaInstall Skill
promptfoo-evals

promptfoo-evals

Write, refine, run, and QA promptfoo evaluation suites: promptfooconfig.yaml, prompts, providers, vars, tests, assertions,…

@promptfoo@promptfooInstall Skill
deepeval

deepeval

DeepEval evaluation workflow for AI agents and LLM applications. TRIGGER when the user wants to evaluate or improve an AI agent,…

@confident-ai@confident-aiInstall Skill

Questions about plan-feature.

Which coding agents can use plan-feature?
plan-feature installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.