synaptiai/bdsk/specify
Claude Code and agent skill by synaptiai/bdsk
- community
Checking that the SKILL.md file is still in the repository.
Generate a BDSK behavior_spec artifact from a feature description. Produces concrete given/when/then examples and writes to artifacts/behaviors/. Use when starting work on any new feature or behavior change.
Install
npx vskill@latest install synaptiai/bdsk/specifySKILL.md
/specify
Generate a behavior_spec artifact for a feature or behavior.
Input
The user provides a natural language description of the feature: $ARGUMENTS
Process
- Understand the behavior. Read relevant existing code and artifacts to understand context. Ask clarifying questions if the description is ambiguous.
- Generate concrete examples. For each behavior, produce at least 2 given/when/then examples with explicit values, not placeholders. Every example must use real data.
- Identify assumptions. If the behavior depends on decisions or beliefs not established in existing artifacts, note them. Offer to create assumption_records for each via
/assume.
- Integration Depth Protocol. If the behavior involves a third-party SDK, external API, or any dependency outside this repository:
a. Identify integration points. List every external call the behavior requires.
b. Demand specifics via AskUserQuestion:
- "This behavior involves [SDK/API name]. To prevent integration bugs, I need precise details:"
- Exact method signatures (e.g.,
client.messages.create({model, max_tokens, messages})) - Exact state/status enum values (e.g.,
'approval-requested', not'approval-required') - Exact response shapes (field names, types, nesting)
- Error types (exact class names or error codes)
c. If the user cannot provide specifics: Create an assumption_record with impact_level: high, area: architecture, source_type: undocumented. Add to the behavior spec's non_goals: "Exact API contract for [SDK] deferred — see assumption [ID]".
d. If the user CAN provide specifics: Recommend creating a contract_artifact to formalize the API boundary. Link it in the behavior spec's trace.upstream with edge: depends_on.
- Write the artifact. Generate a YAML file following this exact structure:
- Write to disk. Save to
artifacts/behaviors/<id>.yaml
- Present for review. Show the artifact to the user. Explain that running
/approve <id>is how they approve it.
Rules
- Every example MUST use concrete values, not placeholders
- At least 2 examples per behavior spec
- Non-goals are mandatory: explicitly state what this behavior does NOT cover
- If upstream artifacts exist (assumptions, contracts), link them in trace.upstream
- Generate a unique ID using the pattern BS-<feature-slug>-<YYYYMMDD-HHMMSS>
- YAML safety: All string values in
given,when,then, andandarrays MUST be quoted with double quotes. Strings containing colons (:), curly braces ({}), square brackets ([]), or other YAML-special characters will break parsing if left unquoted. Always quote to be safe:
```yaml # WRONG — bare colon breaks YAML:
- The section contains 1 item: Michael Reed
# RIGHT — quoted string is safe:
- "The section contains 1 item: Michael Reed"
# WRONG — curly braces interpreted as YAML mapping:
- The tool returns { success: false }
# RIGHT:
- "The tool returns { success: false }"
```
Schema Compliance
- given/when/then/and items are plain STRINGS, not objects. Do NOT generate
{outcome: "...", assertion: "..."}or{action: "...", context: "..."}. Each item is a single quoted string.
```yaml # WRONG — object instead of string: then:
- outcome: "artifact is created"
assertion: "file exists" # RIGHT — plain string: then:
- "artifact is created and file exists"
```
- Trace refs MUST be
{target_id: <id>, edge: <edge>}objects, not bare string IDs.
```yaml # WRONG: upstream:
- BS-login-001
# RIGHT: upstream:
- target_id: BS-login-001
edge: derived_from ```
- Approvals MUST use
{authority_role: <role>, approver: <user>, approved_at: <ISO-8601>}. Not{date, decision}or{approver, date}. - Valid trace edges (10 total):
depends_on,derived_from,constrains,implements,proves,evaluates,produced_by,supersedes,escalates_to,waives. - Valid authority roles (5 total):
product_authority,technical_authority,security_authority,release_authority,qa_authority. - No additional fields in metadata (only
tagsand optionallydomain) or spec beyond the template. Schema usesadditionalProperties: false.
Edge-kind rules for behavior_spec
- Upstream
derived_from→ behavior_spec, assumption_record - Upstream
depends_on→ assumption_record, contract_artifact - Do NOT use
depends_onupstream to another behavior_spec (usederived_from) - Do NOT add downstream
derived_fromedges (not valid in downstream direction for behavior_spec)
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/specify/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/synaptiai/bdsk/specify)