Skip to main content
skill CX Codex

setup · kirkchen — Claude Code skill: what it does, how to install

Runs an interactive setup for Beat: detects your stack, picks matching test frameworks, and writes beat/config.yaml.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add kirkchen/beat --skill setup -a claude-code
Open on GitHub

What setup does

The skill walks you through setting up Beat before generating any specs or tasks. It checks whether beat/config.yaml already exists and asks whether to keep or edit it. During initialization, it also checks for the superpowers plugin and lets you install it or continue in standalone fallback mode.

For stack detection, the assistant scans manifests such as package.json, Cargo.toml, or go.mod. Based on the language and architecture (web application, API server, CLI, or library), it suggests a pairing for unit and end-to-end tests. If tests are not needed for a docs or config repo, you can disable them via testing.required: false.

Once finished, the tool creates beat/changes and beat/features directories. Living documentation surfaces like beat/CONTEXT.md and docs/adr/ are lazy: they remain uncreated until a specific Beat command requests them.

What it helps with

  • Initialize Beat in a project from scratch
  • Detect the codebase stack and test runner setup
  • Configure matching unit and BDD e2e test frameworks
  • Set output language and conventions for project artifacts

Example prompts for the agent

  • Set up Beat for this project
  • Initialize Beat configuration and detect my tech stack
  • Update Beat config testing rules

How to install setup

1Skills CLI (Vercel)

npx skills add kirkchen/beat --skill setup -a claude-code

2Manually: put the files in place

~/.claude/skills/setup/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/setup/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about setup

How do I install setup in Claude Code?

Run npx skills add kirkchen/beat --skill setup -a claude-code. The skill definition will be placed in ~/.claude/skills/setup/SKILL.md.

What does setup do?

It guides you through configuring Beat by detecting project manifests, choosing test tools, and generating beat/config.yaml.

Is the superpowers plugin mandatory?

No. Beat functions standalone, though the setup prompt will offer to install superpowers for structured TDD discipline and worktree workflows.

Source text

SKILL.md · MIT
---
name: setup
description: Use when initializing Beat or updating its config — not for editing config.yaml directly or non-Beat tools
---

Initialize Beat configuration in the current project.

<decision_boundary>

**Use for:**
- Setting up Beat for the first time in a project
- Updating existing Beat configuration (language, testing frameworks, rules)
- Detecting project tech stack and recommending test frameworks

**NOT for:**
- Editing `beat/config.yaml` directly (just edit the file)
- Configuring non-Beat tools or project settings
- Creating changes or writing feature files (use `/beat:design`)

**Trigger examples:**
- "Set up Beat" / "Initialize Beat" / "Configure Beat for this project" / "Update Beat config"
- Should NOT trigger: "edit config.yaml" / "design a feature" / "create a change"

</decision_boundary>

**Input**: None required. The skill gathers information interactively.

**Steps**

1. **Check if config already exists**

   Check if `beat/config.yaml` exists.
   - If yes: read it, show current config, ask if user wants to update or keep it
   - If no: proceed to creation

2. **Check superpowers dependency**

   Check if the superpowers plugin is available by looking for any `superpowers:*` skill in the skill list.

   **If not available:**
   > "Beat works standalone, but is better with [superpowers](https://github.com/obra/superpowers) — it provides structured brainstorming, TDD discipline, task decomposition, and git worktree isolation.
   >
   > Install with: `/plugin marketplace add obra/superpowers`
   >
   > Without it, Beat falls back to simpler built-in flows."

   Use **AskUserQuestion tool**:
   1. "Install now" -- run the install command
   2. "Continue without it"

   **If available:** proceed silently.

3. **Ask artifact language**

   Use **AskUserQuestion tool**:
   > "What language should Beat use for artifacts (proposals, features, designs, tasks)?"

   Provide options:
   1. "English (en)" -- default
   2. "繁體中文 (zh-TW)"
   3. "简体中文 (zh-CN)"
   4. Other -- let user specify a BCP 47 tag

   This sets the `language` field in config.

4. **Gather project context and detect tech stack**

   Use **AskUserQuestion tool** to ask:
   > "Describe your project so Beat can tailor its artifacts. Include: tech stack, test framework, and any key conventions."

   Provide example options:
   1. "Let me describe it" -- open-ended input
   2. "Detect from codebase" -- agent scans package.json, Cargo.toml, go.mod, etc.

   **If user chooses detection:**
   - Scan common manifest files for tech stack and primary language
   - Look for test configuration (vitest.config, jest.config, pytest.ini, etc.)
   - Look for BDD runner configuration (cucumber.js, behave.ini, etc.)
   - Look for e2e configuration (playwright.config, cypress.config, etc.)
   - Check for linter/formatter configs
   - Summarize findings and confirm with user

   **Record the detected/described tech stack** — this informs Step 5 framework recommendations.

5. **Configure test frameworks**

   Based on the tech stack from Step 4, recommend appropriate frameworks.

   **Step 5a: Ask project type**

   Use **AskUserQuestion tool**:
   > "What type of project is this?"

   1. "Web app (has UI)" -- needs browser automation for e2e
   2. "API server" -- needs HTTP client for e2e
   3. "CLI tool" -- needs process execution for e2e
   4. "Library / SDK" -- e2e usually not needed, behavior tests suffice

   **Step 5b: Recommend frameworks using the table below**

   Cross-reference (language × project type) to recommend a framework pair. Present as defaults the user can accept or customize:

   > "Based on your stack ({language} + {project type}), recommended test frameworks:
   > - **Behavior tests:** {recommendation}
   > - **E2E tests:** {recommendation}
   >
   > Accept defaults or customize?"

   **Framework recommendation table:**

   *Behavior test frameworks (UT / integration):*

   | Language | Primary | Alternative |
   |----------|---------|-------------|
   | TypeScript / JavaScript | vitest | jest |
   | Python | pytest | pytest-bdd |
   | Go | go test | — |
   | Java | JUnit | TestNG |
   | C# | xUnit | NUnit |
   | Ruby | RSpec | — |
   | Rust | cargo test | — |

   *E2E frameworks (BDD runner + driver, by project type):*

   | Language | Web app (UI) | API server | CLI tool |
   |----------|-------------|------------|----------|
   | TS / JS | cucumber-js + playwright | cucumber-js + supertest | cucumber-js + execa |
   | Python | behave + playwright | behave + requests | behave + subprocess |
   | Go | godog + playwright | godog + net/http | godog + os/exec |
   | Java | Cucumber-JVM + Selenium | Cucumber-JVM + RestAssured | Cucumber-JVM + ProcessBuilder |
   | C# | Reqnroll + Playwright | Reqnroll + HttpClient | Reqnroll + Process |
   | Ruby | Cucumber + Capybara | Cucumber + Faraday | Cucumber + Open3 |

   For **Library** projects: omit `testing.e2e` — behavior tests are sufficient. Note this in the summary.

   **Step 5c: Escape hatch**

   If the user explicitly says tests are not needed (e.g., pure docs, config-only, infra project):
   - Set `testing.required: false`
   - Do NOT push back — respect the user's judgment

   This sets the `testing` field in config:
   ```yaml
   testing:
     behavior: <selected framework>     # always set (unless testing.required: false)
     e2e: <selected BDD runner + driver> # set unless Library type or testing.required: false
   ```

6. **Ask about artifact rules** (optional)

   Use **AskUserQuestion tool**:
   > "Want to set rules for how artifacts are generated?"

   1. "Yes, let me specify" -- ask per-artifact rules (`proposal`, `gherkin`, `design`, `tasks`, and `adr` for ADRs written at any trigger point)
   2. "Skip for now" -- create config with context only

   If `docs/adr/TEMPLATE.md` already exists, mention that skills will use it as the ADR skeleton automatically — `rules.adr` is for constraints beyond the template (e.g. an index to update).

7. **Write config**

   Create `beat/config.yaml` following the schema in `references/config-schema.md`.

   ```bash
   mkdir -p beat
   ```

   Write the file with the gathered context and rules.

8. **Create directory structure** (if not exists)

   ```bash
   mkdir -p beat/changes
   mkdir -p beat/features
   ```

   Do **not** create the three living-doc surfaces here. `beat/CONTEXT.md`,
   `docs/adr/`, and `beat/ARCHITECTURE.md` (plus module READMEs) are **lazy** —
   they appear the first time a Beat skill needs them. A small project may
   never need any of them. Mention this in the summary so the user knows
   what to expect.

9. **Show summary**

   ```
   ## Beat Initialized

   **Config:** beat/config.yaml
   **Directories:** beat/changes/, beat/features/
   **Superpowers:** installed / not installed (fallback mode)
   **Testing:** {behavior framework} + {e2e framework} (or "not required")

   Your config will be used when creating artifacts.
   Edit beat/config.yaml anytime to update preferences.

   Beat will also lazy-create three living-doc surfaces when first needed:
   - beat/CONTEXT.md     — domain glossary (see references/context-format.md)
   - docs/adr/           — ADRs, three-condition gate (see references/adr-format.md)
   - beat/ARCHITECTURE.md + module READMEs (see references/architecture-format.md)

   Small projects may never need any of these.

   Ready to start? Run `/beat:design` or `/beat:explore`
   ```

**Guardrails**
- Never overwrite existing config without asking
- Config is always optional -- if user wants minimal setup, just create directories
- Validate config against `references/config-schema.md` before writing
- Context should be concise -- warn if it exceeds 2KB (soft limit, 50KB hard limit)
- Framework recommendations are suggestions -- always let the user override
- Do not insist on e2e for Library projects

© kirkchen · MIT · kirkchen/beat

Similar skills

All skills for Agent setup: memory, context, orchestration →

setup by other authors comes first.

setup Alireza Rezvani Sets up an autoresearch experiment by collecting its target file, evaluation command, metric, and optimization direction. Use it before starting an optimization loop. 1,480installs setup aws This skill kicks off the connection setup for AWS DevOps Agent and AWS Security Agent. Reach for it when MCP tools go missing or you are wiring the toolkit up for the first time. CX Codex +1 1,500installs setup marketcalls Sets up a Python backtesting environment with VectorBT and OpenAlgo. It configures the virtual environment, installs dependencies, and prepares .env. CX Codex +1 2,000installs setup assistant-ui This skill guides assistant-ui project creation, setup in an existing app, and runtime selection. Use it when starting a chat UI or wiring one to a backend. CX Codex +1 6,100installs setup aladicf Scans project files and asks UX questions to capture audience, brand personality, and UI defaults into .better-web-ui.md. CX Codex +1 605installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. 1,052,851installs ask-matt Matt Pocock Routes you to the right Matt Pocock skill or flow for the task at hand. Use it when you need a starting point for a feature, prototype, incoming issue, or hard bug. 766,587installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. 711,230installs writing-plans Jesse Vincent This skill turns requirements for a multi-step task into an implementation plan before code changes begin. It helps when another engineer needs exact files, interfaces, and checks. CX Codex 282,859installs caveman-review JuliusBrussee Turns code review comments into one line per finding: location, problem, fix. Useful when a diff or PR needs a fast pass without the filler. CX Codex +1 411,800installs caveman-compress JuliusBrussee Compresses CLAUDE.md, todo lists, and other prose files into a shorter format while retaining a readable backup. CX Codex +1 411,500installs

From the same set8

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor