From bc-harness
Interviews the developer to sharpen a project idea, discover the tech stack, and produce a structured project description at .spec/init/project-description.md.
How this command is triggered — by the user, by Claude, or both
Slash command
/bc-harness:project-description [one-line idea of the project]init/This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
# init:project-description You are helping a developer turn a rough idea into a **clear, structured project description**. This document is the first artifact of the project spec. It is written *before* code and becomes the shared source of truth for what is being built and why. The developer's initial idea (may be empty): ## Your goal Produce a single document at **`.spec/init/project-description.md`** that: 1. Sharpens the idea — turns a vague concept into concrete scope. 2. Surfaces **definition gaps** — the ambiguities and unmade decisions that would block development — and res...
You are helping a developer turn a rough idea into a clear, structured project description. This document is the first artifact of the project spec. It is written before code and becomes the shared source of truth for what is being built and why.
The developer's initial idea (may be empty):
$ARGUMENTS
Produce a single document at .spec/init/project-description.md that:
Before asking anything, inspect the project so you don't ask what you can detect. Look for stack signals:
composer.json, package.json, pyproject.toml, go.mod, Cargo.toml, Gemfile, pom.xml, *.csproj, etc.artisan, manage.py, next.config.*, nuxt.config.*, vite.config.*, docker-compose.yml, Dockerfile..env.example, CI files, test runner config.README*, any files already under .spec/.Read enough to name the stack with real versions. If the directory is empty or pre-code, note that and derive the stack from the developer's stated intent instead (still confirm it).
Re-running this command must update the existing document, never rebuild it from scratch — .spec belongs to the developer, and manual edits there are decisions, not noise.
.spec/init/project-description.md before interviewing. Every decision recorded in it is source of truth.## Core Workflows (### 1., ### 2. …): new workflows take the next number at the end; never renumber existing ones — downstream artifacts reference them by number in their coverage tables.Understand the idea, then find what's undefined. Ask the developer about the gaps that actually matter — do not interrogate on things you can infer or that don't change the shape of the system. Focus on:
Use AskUserQuestion for discrete decisions with clear options. Ask real open questions in plain text when the answer is not a menu. Batch related questions; don't drip one at a time. Keep going until you can write each section without hand-waving. When something stays undecided, mark it explicitly as an open question rather than inventing an answer.
Write to .spec/init/project-description.md (create the .spec/init/ directories if missing). Match the developer's language. Use exactly this structure:
# <Project Name> — Project Description
## Overview
<2–4 paragraphs: what it is, who it's for, the core loop/value, the MVP boundary. Bold the key ideas.>
### Key Concepts
- **<Concept>:** <definition, including rules/limits/numbers where they exist>
- ...
## Tech Stack
<A table (Layer | Technology) or grouped bullets, whichever fits. Use real detected versions. One row/line per meaningful layer: backend, frontend, database, testing, dev env, tooling, integrations.>
## Core Workflows
### 1. <Workflow Name>
<Numbered steps or prose describing the flow. Include request/response examples in fenced code blocks where the workflow is an API. Be concrete about rules, limits, and edge cases.>
### 2. <Workflow Name>
...
Rules for the document:
— Project Description.## Open Questions section at the end listing them. Otherwise omit it.After writing, run these checks. Any failure → fix the document via Edit and re-run until all pass. Never report completion with a failing check.
F=.spec/init/project-description.md
test -f "$F"
head -1 "$F" | grep -qE '^# .+ — Project Description$'
grep -Fq '## Overview' "$F"
grep -Fq '### Key Concepts' "$F"
grep -Fq '## Tech Stack' "$F"
grep -Fq '## Core Workflows' "$F"
[ "$(grep -cE '^### [0-9]+\. ' "$F")" -ge 1 ] # >=1 numbered workflow
[ "$(grep -cE '^- \*\*[^*]+:\*\*' "$F")" -ge 1 ] # >=1 key concept entry
After writing, report:
npx claudepluginhub beerandcodeteam/beer-and-code-harness/specGuides the user through clarifying questions and generates a structured specification document (SPEC.md) covering objective, features, tech stack, boundaries, and more.
/specInterviews the user about their project, then generates requirements, design, and task specs before any code is written. Supports retrofit mode for existing codebases.
/setupInteractive project onboarding that creates project-goals.md (business vision) and project-map.md (technical architecture) by asking questions and scanning the codebase.
/init-projectInteractive project initialization — detects tech stack, generates CLAUDE.md, spec.md, and prompt_plan.md. Accepts optional project name and --type flag.
/brainstormExplores project requirements through Socratic dialogue and captures a structured project definition. Optionally generates a roadmap with an architect agent.
/new-projectInitializes a new project by gathering deep context, setting up git, detecting existing code, and creating .planning/PROJECT.md and config.json.