Skills
# specs/features/skills.feature
#
# SINGLE SOURCE OF TRUTH for Claude Code skill generation behaviour.
# This file is:
# (1) the specification of which Claude Code skills are generated per project type
# (2) executed by the acceptance test suite (living documentation)
#
# Rules:
# - Step definitions live in: internal/acceptance/
# - Keep scenarios focused: one behaviour per scenario.
# - Use exact terms from specs/glossary.md.
#
# Skill Matrix:
# Skill (.claude/skills/) | CLI Tool | Library | Service
# -------------------------|----------|---------|--------
# adr | * | * | *
# arch-check | * | * | *
# review | * | * | *
# security-review | * | * | *
# test-coverage | * | * | *
#
# Command (.claude/commands/) | CLI Tool | Library | Service
# ----------------------------|----------|---------|--------
# new-domain-object | * | * | *
# new-endpoint | - | - | *
# openapi | - | - | *
# bdd-scenarios | - | - | *
# observability | - | - | *
# new-command | * | - | -
#
# Note: Java has no CLI Tool project type.
Feature: Claude Code Skills
As a software engineer
I want every generated project to include pre-defined Claude Code skills
So that I can immediately use AI-assisted workflows aligned with the project guidelines.
# ---------------------------------------------------------------------------
# Universal skills — present in every project type and language
# ---------------------------------------------------------------------------
Scenario: Universal skills are present in all project types
Given a generated project for:
| Language | Artifact Type |
| cpp | tool |
| cpp | library |
| cpp | service |
| go | tool |
| go | library |
| go | service |
| java | library |
| java | service |
Then .claude/skills/ contains at least these skills:
| Skill |
| adr |
| arch-check |
| review |
| security-review |
| test-coverage |
And .claude/commands/ contains at least these skills:
| Skill |
| new-domain-object |
# ---------------------------------------------------------------------------
# Service skills — present only in service projects
# ---------------------------------------------------------------------------
Scenario: Service skills are present in service projects
Given a generated project for:
| Language | Artifact Type |
| cpp | service |
| go | service |
| java | service |
Then .claude/commands/ contains at least these skills:
| Skill |
| new-endpoint |
| openapi |
| bdd-scenarios |
| observability |
# ---------------------------------------------------------------------------
# CLI Tool skills — present only in CLI tool projects
# ---------------------------------------------------------------------------
Scenario: new-command skill is present in CLI tool projects
Given a generated project for:
| Language | Artifact Type |
| cpp | tool |
| go | tool |
Then .claude/commands/ contains at least these skills:
| Skill |
| new-command |
Scenario: new-command skill is absent in non-CLI-tool projects
Given a generated project for:
| Language | Artifact Type |
| cpp | library |
| cpp | service |
| go | library |
| go | service |
| java | library |
| java | service |
Then .claude/commands/ does not contain these skills:
| Skill |
| new-command |