From beat
Walks through Beat configuration initialization or update, including artifact language, tech stack detection, and framework recommendations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/beat:setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialize Beat configuration in the current project.
Initialize Beat configuration in the current project.
<decision_boundary>
Use for:
NOT for:
beat/config.yaml directly (just edit the file)/beat:design)Trigger examples:
</decision_boundary>
Input: None required. The skill gathers information interactively.
Steps
Check if config already exists
Check if beat/config.yaml exists.
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 — it provides structured brainstorming, TDD discipline, task decomposition, and git worktree isolation.
Install with:
/plugin marketplace add obra/superpowersWithout it, Beat falls back to simpler built-in flows."
Use AskUserQuestion tool:
If available: proceed silently.
Ask artifact language
Use AskUserQuestion tool:
"What language should Beat use for artifacts (proposals, features, designs, tasks)?"
Provide options:
This sets the language field in config.
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:
If user chooses detection:
Record the detected/described tech stack — this informs Step 5 framework recommendations.
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?"
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):
testing.required: falseThis sets the testing field in config:
testing:
behavior: <selected framework> # always set (unless testing.required: false)
e2e: <selected BDD runner + driver> # set unless Library type or testing.required: false
Ask about artifact rules (optional)
Use AskUserQuestion tool:
"Want to set rules for how artifacts are generated?"
Write config
Create beat/config.yaml following the schema in references/config-schema.md.
mkdir -p beat
Write the file with the gathered context and rules.
Create directory structure (if not exists)
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.
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
references/config-schema.md before writingGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub kirkchen/beat --plugin beat