Claude-skill-registry create-use-case
Create a new business use case (Request + UseCase + Test) following TDD workflow. Use when user asks to implement new business logic, domain operations, or create commands/queries. Always follow Red-Green-Refactor cycle.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/create-use-case" ~/.claude/skills/majiayu000-claude-skill-registry-create-use-case && rm -rf "$T"
manifest:
skills/data/create-use-case/SKILL.mdsource content
Create Use Case
Generate Request, UseCase, and Test following TDD workflow.
IMPORTANT: Always uses
tdd-workflow skill (MANDATORY)
When to Use
- New business logic
- Domain operations
- Commands (Create, Update, Delete, Rename)
- Queries (Find, List, Search)
Inputs/Outputs
| Input | Example | Output |
|---|---|---|
| bc | Admin | |
| entity | Article | (UseCase) |
| action | Rename | (Request) |
| fields | ['name'] | (Test) |
Process
Follow:
.claude/skills/tdd-workflow/ (MANDATORY)
| Phase | File | Template |
|---|---|---|
| RED | Test.php | |
| GREEN | Request.php + UseCase.php | , |
| REFACTOR | - | |
| VALIDATE | - | |
Structures
Request (interface):
interface ActionEntityRequest { public function uuid(): ResourceId; public function field(): string; }
UseCase (
readonly, single execute()):
final readonly class ActionEntity { public function __construct(private EntityRepository $repo) {} // OR Finder public function execute(ActionEntityRequest $req): ActionEntityResponse { // Business logic return new ActionEntityResponse($entity); } }
See:
docs/QUICK_REF.md#usecase-pattern for complete structure
Note: Project uses Request-Response pattern. Symfony Maker
bin/console make:use-case:create <bc> <name> generates all 3 files (Request, UseCase, Response).
Rules
Repository vs Finder:
- Commands (CUD) → Repository
- Queries (R) → Finder
See:
docs/GLOSSARY.md#repository-vs-finder
Tests:
- Use DataBuilder (NOT Foundry)
- Mock:
expects()->once()
Templates
test-unit.php.tplrequest.php.tpluse-case.php.tpl
Location:
.claude/templates/
References
- TDD workflow:
.claude/skills/tdd-workflow/ - Quick pattern:
docs/QUICK_REF.md#usecase-pattern - Architecture:
docs/architecture.md#usecase