From ritual
Use for test-driven development — write failing test, implement until green, repeat per unit of work
npx claudepluginhub yanekyuk/arcana --plugin ritualThis skill is limited to using the following tools:
You are doing test-driven development. Follow this cycle strictly.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
You are doing test-driven development. Follow this cycle strictly.
Determine the test command:
docs/ritual-config.json exists — if so, use stack.test from the config. In pipeline context (dispatched by an orchestrator), the config is guaranteed to exist — the orchestrator aborts if it is missing./run-setup.Directives: If docs/ritual-config.json exists, read directives.implementation from the config. These are soft guidelines that influence your coding style and implementation choices. Apply them throughout the TDD cycle. If the field is missing or empty, proceed without directives.
Context7 eager documentation lookups: If docs/ritual-config.json exists and integrations.context7 is true, you MUST proactively use Context7 MCP tools to fetch authoritative documentation for any language, library, framework, runtime, or CLI tool involved in the work. Do NOT rely on training-data recall for version-specific behavior.
Before writing the first failing test, and again whenever a new dependency enters the diff:
stack.* in docs/ritual-config.json (language, runtime, packageManager, test runner) and the files you are about to modify for imports, require calls, package names, or framework markers.mcp__context7__resolve-library-id to obtain its Context7 ID. Prefer version-matched IDs when a version is pinned in lockfiles, stack.*, or package manifests.mcp__context7__get-library-docs with the resolved ID. Use the topic parameter to narrow the fetch to the specific API, configuration, or feature you are about to use. Pass version information via the topic parameter when relevant (for example, "v15 app router" or "3.12 type hints").These lookups MUST happen proactively, not only when a test fails or you get stuck. When integrations.context7 is false or no config is present, proceed without Context7 lookups.
For each unit of work:
<test-command> <specific-test-file-or-filter>
integrations.context7 is true): Before writing the test, if the unit under test touches an external library, framework, or language feature whose API you have not just fetched, MUST resolve and fetch its docs via Context7 (mcp__context7__resolve-library-id then mcp__context7__get-library-docs) so assertions match real API behavior.integrations.context7 is true): Before calling any library/framework API in the implementation, MUST consult Context7 docs (via mcp__context7__get-library-docs) for the specific API, configuration option, or usage pattern. Do this even for well-known libraries -- version-specific behavior changes frequently.Use Conventional Commits format. Valid types: feat, fix, refactor, docs, test, chore, ci, perf, style, build.
git add <test-file> <implementation-file>
git commit -m "<type>: <what this unit does>"
The <type> must match the work classification from the handoff (e.g., feat for features, fix for bug fixes). Use test only for test-only commits with no implementation changes.
If a test won't pass after 3 attempts for a single unit of work:
chore(wip): <what was attempted>