Skip to content
/

claude-code-settings-for-unity

nowsprinting-cc-unity · nowsprinting/claude-code-settings-for-unity · ★ 37 · last commit 2026-05-26

Enforces test-first Unity C# development via a two-agent (Plan + test-designer) pipeline with a TESTABILITY gate before any code is written.

Best whenTest design and implementation design are separate agent responsibilities — the Plan agent is explicitly forbidden from producing tests, and a TESTABILITY: F…
Skip ifRunning fix-bug in plan mode, Plan agent producing test cases
vs seeds
superpowers' Iron Law prompt enforcement, this repo makes TDD structurally mandat…
Primitive shape 9 total
Skills 8 Subagents 1
00

Summary

nowsprinting-cc-unity — Summary

claude-code-settings-for-unity is a Unity-specific Claude Code plugin that ships 8 skills and 1 subagent purpose-built for C#/Unity Test Framework workflows. Its distinctive architectural choice is a two-agent pipeline: the plan-feature skill orchestrates a Plan agent (class/method design) and then dispatches the test-designer subagent — which runs on opus — to produce test cases before any code is written. The test-designer returns a formal TESTABILITY: PASS/WARN/FAIL signal; a FAIL loops back to re-invoke the Plan agent, creating a closed feedback loop entirely within plan mode. Skills are organized as folder-and-SKILL.md packages with companion resources/ reference files covering Unity YAML editing, the Unity Test Framework, and JetBrains MCP integration. The repo also ships a production-hardened settings.json with an elaborate deny-list covering destructive git operations, network tools, secret paths, Unity Library caches, and JetBrains MCP build/execute tools. Now archived, with its agent skills migrated to the separate unity-coding-skills repository.

Differs from seeds: Closest to superpowers (skills-only, no commands) but adds a domain-specific test-design feedback loop that no seed implements — the test-designer agent's TESTABILITY gate makes test-first mandatory rather than optional, unlike superpowers' "Iron Law" prompt instruction.

01

Overview

nowsprinting-cc-unity — Overview

Origin

Created by Koji Hasegawa (nowsprinting), a Unity/C# developer. The repository was designed as a personal settings and skills package for Claude Code in Unity projects. It has since been archived; live agent skill development moved to https://github.com/nowsprinting/unity-coding-skills.

Philosophy

The project's driving idea is that Unity C# development has domain-specific failure modes — especially around testability of MonoBehaviour-based code, Unity's YAML asset format, and JetBrains Rider's MCP integration — that generic Claude Code defaults do not address. The solution is tight, opinionated skills that enforce test-first design as a structural constraint (TESTABILITY gate) rather than a prompt suggestion.

Key philosophies visible in the skill prompts:

  • Plan mode is reserved for feature design; bugs are handled by fix-bug only outside plan mode.
  • The test-designer agent owns test cases exclusively — the Plan agent is explicitly forbidden from producing tests.
  • TBD items in requirements are silently skipped unless they block the overall design.
  • Unity-specific restrictions: no rm, no git checkout, no curl, no direct MCP build/execute, restricted Library cache access.

Author Note (from README)

"When creating an implementation plan in plan mode, the plan-feature skill produces a lean, maintainable test design and a test-first workflow, enabling Claude Code to implement and verify autonomously."

Archived Note

"The Agent skills previously published in this repository will now be managed at https://github.com/nowsprinting/unity-coding-skills."

02

Architecture

nowsprinting-cc-unity — Architecture

Distribution

Claude Code plugin (folder layout with skills/ and agents/ directories + settings.json). No npm package, no CLI binary.

Install

Clone or copy the repository contents into your project's Claude Code settings directory. The README instructs adding JetBrains MCP server to .mcp.json:

{
  "mcpServers": {
    "jetbrains": { "type": "http", "url": "http://localhost:64342/stream" }
  }
}

Directory Tree

.
├── README.md
├── LICENSE.txt
├── settings.json                          # Permissions allow/deny list
├── agents/
│   └── test-designer.md                  # Subagent: opus model, test design specialist
├── skills/
│   ├── code-writing-guide/
│   │   ├── SKILL.md
│   │   └── resources/                    # Unity-specific reference docs
│   ├── edit-scene/
│   │   ├── SKILL.md
│   │   └── resources/
│   ├── fix-bug/
│   │   └── SKILL.md
│   ├── plan-feature/
│   │   └── SKILL.md
│   ├── run-tests/
│   │   ├── SKILL.md
│   │   └── resources/
│   ├── test-designing-guide/
│   │   └── SKILL.md
│   ├── test-writing-guide/
│   │   ├── SKILL.md
│   │   └── resources/
│   └── unity-yaml-editing-guide/
│       ├── SKILL.md
│       └── resources/
└── hookify.confirm-install-packages.local.md  # hookify plugin config

Required Runtime

  • Claude Code with JetBrains Rider (for run-tests and edit-scene skills)
  • JetBrains MCP Server Extension for Unity plugin
  • No Node or Python required for the skills themselves

Enabled Plugins (settings.json)

"enabledPlugins": {
  "csharp-lsp@claude-plugins-official": true,
  "hookify@claude-plugins-official": true
}

Target AI Tools

  • Claude Code (primary)
  • Skill format is Claude Code native (skills/*/SKILL.md)
03

Components

nowsprinting-cc-unity — Components

Skills (8)

Skill Purpose
code-writing-guide Coding conventions and Unity C# guidelines; includes resources for Unity event functions, modern Unity guidelines, and Roslyn diagnostics
edit-scene Creates and modifies .unity and .prefab YAML files; requires JetBrains MCP server
fix-bug Test-first bug diagnosis: reproduce → diagnose → fix; enforces use outside plan mode
plan-feature Orchestrates the full test-first planning pipeline in plan mode; dispatches Plan agent and test-designer subagent
run-tests Runs Unity tests via JetBrains run_unity_tests MCP tool; includes troubleshooting resources
test-designing-guide Methodology for deriving test cases from requirements; defines output format used by test-designer
test-writing-guide Conventions for Unity Test Framework test code; includes resources for test-helper and test-helper.ui packages
unity-yaml-editing-guide Guidelines for hand-editing Unity YAML asset files; includes asset-yaml-format.md resource

Agents (1)

Agent Model Purpose
test-designer opus Test design specialist dispatched by plan-feature; produces test cases across all layers and issues TESTABILITY: PASS/WARN/FAIL assessment

Hooks (0)

No hooks registered. Permissions are managed via settings.json allow/deny lists rather than lifecycle hooks.

MCP Servers Referenced (not bundled)

Server Purpose
JetBrains built-in MCP server Run Unity tests, search files, get symbol info
MCP Server Extension for Unity Unity-specific tools: edit scene, search Unity assets

Scripts (0)

No shell or Python scripts. All automation is within skill prompts.

Templates (0)

No standalone template files; reference docs live under skills/*/resources/.

Settings

settings.json — comprehensive allow/deny list covering:

  • Allowed: git read-only operations, gh CLI, rg, find, Unity/JetBrains domain web fetches
  • Denied: rm variants, curl, wget, destructive git ops, database CLIs, secret file paths, Unity Library cache writes, JetBrains build/execute MCP tools
05

Prompts

nowsprinting-cc-unity — Prompt Excerpts

Excerpt 1: plan-feature SKILL.md — Phase 3 dispatcher

Technique: Subagent dispatch with strict role separation — the caller (plan-feature) explicitly bans passing test case content to the Plan agent, and bans passing output format specs to the test-designer agent.

### Phase 3: Test Case Design (test-designer Agent)

After Phase 2, launch the `test-designer` agent using the following prompt structure:

## Requirements
[feature requirements]

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

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

**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.

The `test-designer` agent returns:
- **Test Cases** across all layers (Editor tests, Unit tests, Integration tests, Visual verification tests, Manual tests)
- **Testability Assessment** (`TESTABILITY: PASS`, `WARN`, or `FAIL`)

Excerpt 2: test-designer.md — Agent self-description

Technique: Strict output format contract with feedback-loop trigger; tool restriction list is explicit (read-only Bash only).

## Rules

- Use `Bash` only for read-only operations (grep, find, cat, ls). Do NOT modify any files.
- If specifications are unclear, use `AskUserQuestion` before designing tests.
- Your output **MUST** already conform to the format and content restrictions specified by the `test-designing-guide` skill. The caller (`plan-feature`) will paste your Test Cases output verbatim into the plan file — no rewriting, cleanup, or translation will be performed on it. Ensure prohibited content (framework attributes, async/coroutine patterns, rationale text, etc.) is never present in your output.

Excerpt 3: fix-bug SKILL.md — Phase 2 reproduction test

Technique: Domain-aware placement strategy — distinguishes integration/UI tests from unit tests based on bug type.

**When the bug condition involves on-screen display or a user-facing UI operation**, search for **integration tests with UI operations or visual verification tests** — the reproduction test must be at that layer, so the placement anchor and style reference must be too.

Excerpt 4: plan-feature — Plan agent testability instruction

Technique: Injected design constraint requiring testability as a first-class property of class design.

> Design the class/method seams with **testability** in mind:
> - Prefer small, focused public interfaces
> - 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
09

Uniqueness

nowsprinting-cc-unity — Uniqueness

Differs from Seeds

Closest to superpowers (skills-only behavioral framework, no commands). However, superpowers enforces TDD via Iron Law prompt instructions, while nowsprinting-cc-unity makes it structurally impossible to skip — the plan-feature skill dispatches a separate test-designer opus agent whose TESTABILITY verdict gates plan finalization. Unlike any seed, this repo ties a specific external IDE (JetBrains Rider) to Claude Code skills via MCP, creating a Unity-specific toolchain where test execution (run-tests) requires the JetBrains MCP server to be running. The settings.json deny-list is the most comprehensive in the corpus — denying git checkout, curl, wget, database CLIs, JetBrains build tools, and Unity Library cache writes — treating security surface reduction as part of the plugin's value, not an afterthought.

Positioning

A Unity C# developer who wants Claude Code to enforce test-first design structurally, not just suggestively. The two-agent pipeline (Plan → test-designer) is the key differentiator: the Plan agent designs classes, the test-designer agent designs tests, and they are explicitly forbidden from crossing roles. This separation of concerns mirrors the Single Responsibility Principle at the agent-orchestration layer.

Observable Failure Modes

  1. JetBrains MCP unavailable: run-tests and edit-scene skills silently fail without the JetBrains MCP server running on localhost:64342.
  2. Plan mode detection brittleness: The plan mode check (ExitPlanMode in deferred tools) relies on Claude Code internals — any version change that renames this tool would break both plan-feature and fix-bug.
  3. Opus cost: Dispatching the test-designer agent on opus for every planning session is expensive; no fallback or token-budget control is documented.
  4. Archived state: The repo is archived; skills may drift from the live unity-coding-skills repo without updates here.

Explicit Antipatterns

  • Modifying files inside Bash during test design (read-only constraint)
  • Plan agent producing test cases (role boundary violation)
  • Running fix-bug in plan mode (mode mismatch)
  • Including format specifications in test-designer prompts (overrides self-contained format contract)
04

Workflow

nowsprinting-cc-unity — Workflow

Feature Implementation Workflow (plan-feature skill)

This workflow runs exclusively in plan mode.

Phases

Phase Name Agent Artifact
0 Mode check main Abort if not in plan mode
0b Task type check main Redirect to fix-bug if bug report
1 Initial Understanding Explore agents (parallel) Codebase context
2 Implementation Design Plan agent Class names, method signatures, dependency interfaces, design rationale
3 Test Case Design test-designer subagent Test cases (all layers) + TESTABILITY assessment
4 TESTABILITY gate main PASS/WARN → proceed; FAIL → loop back to Phase 2
5 Plan finalization main Plan file with implementation design + test cases pasted verbatim

Approval Gates

  1. TESTABILITY gate: If test-designer returns TESTABILITY: FAIL, the Plan agent is re-invoked before proceeding. This is the only automated gate.
  2. TBD items: Any TBD in requirements is treated as non-existent (silent skip unless structurally blocking).
  3. Ambiguous naming: Plan agent uses AskUserQuestion before finalizing class/method names that are a poor fit.

Bug Fix Workflow (fix-bug skill)

Runs outside plan mode.

Phase Name Activity
1 Clarify Extract Condition / Expected / Actual; classify as existing test failure or behavioral bug
2 Write reproduction test Skip for existing test failures; search for placement anchor in test code
3 Diagnose Read implementation code; identify root cause
4 Fix Apply minimal fix
5 Verify Confirm reproduction test passes

Approval Gates

  • AskUserQuestion if Condition/Expected/Actual cannot be determined from the prompt.
  • AskUserQuestion if documentation contradicts the bug report.

Spec Storage

No spec files are persisted to disk. The plan file is produced by the planning workflow and lives as a regular project file.

06

Memory Context

nowsprinting-cc-unity — Memory & Context

State Storage

No persistent state files. No CLAUDE.md is provided by the plugin itself (projects are expected to maintain their own).

Context Injection

Skills are loaded on-demand when Claude Code recognizes the skill trigger. The plan-feature skill instructs Claude to check whether ExitPlanMode is in the deferred tools list to detect plan mode — this is a runtime introspection pattern, not a stored state.

Cross-Session Handoff

None. Each session starts fresh. The plan file produced by plan-feature is the handoff artifact — it exists as a regular project file that the user retains.

Compaction Handling

No explicit compaction handling documented.

Resource Files as Extended Context

Each skill's resources/ folder provides domain knowledge that is injected into the agent's context when the skill runs:

  • skills/code-writing-guide/resources/ — Unity coding guidelines, modern Unity patterns, event functions reference, Roslyn diagnostics
  • skills/edit-scene/resources/ — uGUI reference, troubleshooting for Unity methods
  • skills/run-tests/resources/ — Troubleshooting for test-helper, test-helper.ui, and Unity test runner
  • skills/test-writing-guide/resources/ — Unity Test Framework conventions
  • skills/unity-yaml-editing-guide/resources/ — Unity YAML asset format specification

This pattern (skill + resources folder) provides deep, project-independent domain context without polluting the user's CLAUDE.md.

07

Orchestration

nowsprinting-cc-unity — Orchestration

Multi-Agent Pattern

Hierarchicalplan-feature skill acts as orchestrator, dispatching:

  1. Multiple Explore agents (parallel) in Phase 1
  2. One Plan agent in Phase 2
  3. One test-designer agent (persona-md, opus model) in Phase 3

The test-designer agent returns a TESTABILITY verdict that can loop back to Phase 2 — making this a closed-loop hierarchical pattern with structured feedback.

Execution Mode

Interactive-loop in plan mode. The user initiates the workflow, plan-feature executes autonomously through the agent pipeline, and the TESTABILITY gate is the only mid-flow decision point (automated — no user approval needed unless FAIL triggers a loop back).

Isolation Mechanism

None. All agents operate in the same working directory. No worktrees or containers.

Multi-Model

Yes — the test-designer agent specifies model: opus in its frontmatter, while the main orchestrator runs on whatever model the user has active (typically Sonnet). The Plan and Explore agents inherit the session model.

Role Model
Main orchestrator / plan-feature Session default (Sonnet)
test-designer subagent Opus

Consensus Mechanism

None. Feedback loop is deterministic (TESTABILITY verdict).

Prompt Chaining

Yes — Phase 2 Plan agent output (class design) becomes the Implementation Design section of Phase 3 test-designer input. Phase 3 test cases are pasted verbatim into the final plan file.

Auto-Validators

  • TESTABILITY gate: test-designer returns PASS/WARN/FAIL — automated structural check before finalization
  • No post-edit hook test runners
08

Ui Cli Surface

nowsprinting-cc-unity — UI / CLI Surface

CLI Binary

None. This is a Claude Code plugin — no standalone CLI.

Local UI

None. No web dashboard or desktop UI.

IDE Integration

JetBrains Rider (indirect, via MCP):

  • run-tests skill requires JetBrains built-in MCP server (mcp__jetbrains__* tools)
  • edit-scene skill requires JetBrains MCP Server Extension for Unity plugin
  • test-designer agent's allowed tools list includes JetBrains-specific tools: mcp__jetbrains__get_file_text_by_path, mcp__jetbrains__search_in_files_by_text, mcp__jetbrains__search_in_files_by_regex, mcp__jetbrains__search_symbol, mcp__jetbrains__get_symbol_info

The settings.json denies JetBrains build and execute tools:

"mcp__jetbrains__build_project",
"mcp__jetbrains__execute_terminal_command"

This is a deliberate safety constraint preventing accidental builds or terminal execution.

Observability

None — no audit log, no session recording.

Hookify Integration

The hookify.confirm-install-packages.local.md file configures the hookify@claude-plugins-official plugin, which intercepts package installation commands for user confirmation. This is the only hook-like mechanism in the plugin.

Related frameworks

same archetype · same primary tool · same memory type

OpenHarness ★ 13k

Open-source Python agent runtime providing complete harness infrastructure: tools, memory, governance, swarm coordination, and…

Trae Agent ★ 12k

Research-friendly open-source CLI coding agent by ByteDance, designed for academic ablation studies and modular LLM provider…

Sweep AI ★ 7.7k

Autonomous GitHub bot that converts issues to pull requests using a sequential multi-agent pipeline.

Agent Governance Toolkit (microsoft) ★ 2.3k

Enterprise-grade AI agent governance: YAML policy enforcement, 12-vector prompt injection defense, zero-trust identity,…

TDD Guard ★ 2.1k

Mechanically enforces the Red-Green-Refactor TDD cycle by blocking file writes that violate TDD principles via a PreToolUse hook…

Agentic Coding Flywheel Setup (ACFS) ★ 1.5k

Take a complete beginner from laptop to three AI coding agents running on a VPS in 30 minutes via an idempotent manifest-driven…