Agent skill

tsp-model

Use when creating, modifying, or documenting TypeSpec domain models. Triggers include adding new entities, value objects, enums, extending base types, or when asked to create a "tsp model", "domain model", "entity", or work with files in the tsp/ directory. Part of the Shep autonomous SDLC platform — https://shep.bot

Stars 126
Forks 13

Install this agent skill to your Project

npx add-skill https://github.com/shep-ai/shep/tree/main/.claude/skills/tsp-model

Metadata

Additional technical details for this skill

author
Shep AI (https://shep.bot)
version
1.0.0

SKILL.md

TypeSpec Domain Model Generation

Generate TypeSpec domain models following this project's conventions for Clean Architecture entities.

Directory Structure

tsp/
├── common/           # Base types, scalars, enums
│   ├── base.tsp      # BaseEntity, SoftDeletableEntity, AuditableEntity
│   ├── scalars.tsp   # UUID scalar type
│   ├── ask.tsp       # Askable interface pattern
│   └── enums/        # One file per enum
├── domain/           # Domain entities
│   ├── entities/     # One file per entity
│   └── value-objects/# Embedded value objects
├── agents/           # Agent system models
└── deployment/       # Deployment configuration models

File Conventions

One model per file - Each entity/enum/value-object gets its own file.

Naming:

  • Files: kebab-case.tsp (e.g., action-item.tsp)
  • Models: PascalCase (e.g., ActionItem)
  • Enums: PascalCase with values in PascalCase (e.g., TaskStatus.InProgress)

Required Template

Every .tsp file MUST follow this structure:

typespec
/**
 * @module Shep.Domain.Entities.<EntityName>
 *
 * Brief description of the entity's purpose.
 *
 * ## Entity Relationships (if applicable)
 * ASCII diagram showing relationships
 *
 * @see docs/concepts/<relevant-doc>.md
 * @see <related-entity>.tsp
 */
import "../../common/base.tsp";
import "../../common/scalars.tsp";
// other imports...

/**
 * Entity Name
 *
 * Detailed description.
 *
 * ## Properties
 *
 * | Property | Type | Required | Description |
 * |----------|------|----------|-------------|
 * | ...      | ...  | ...      | ...         |
 *
 * @example
 * ```json
 * { ... }
 * ```
 */
@doc("One-line description for OpenAPI")
model EntityName extends BaseEntity {
  /**
   * Property description.
   * @example "example value"
   */
  @doc("One-line property description")
  propertyName: PropertyType;
}

Base Types

Choose the right base:

Base Type Use When
BaseEntity Standard entity with id, createdAt, updatedAt
SoftDeletableEntity Entity that can be soft-deleted (adds deletedAt)
AuditableEntity Entity needing audit trail (adds createdBy, updatedBy)

Enum Definition Pattern

typespec
/**
 * @module Shep.Common.Enums.<EnumName>
 */
/**
 * Enum description
 */
@doc("One-line enum description")
enum EnumName {
  @doc("Description of this value")
  ValueOne,

  @doc("Description of this value")
  ValueTwo,
}

Documentation Requirements

  1. Module JSDoc at file top with @module, relationships, @see links
  2. Model JSDoc with property table and JSON examples
  3. Property JSDoc with @example tags
  4. @doc() decorator on every model and property (for OpenAPI)

Validation Commands

After creating/modifying TypeSpec:

bash
pnpm tsp:compile    # Verify compilation
pnpm tsp:format     # Format TypeSpec files

Quick Reference

Task Location Example
New entity tsp/domain/entities/<name>.tsp feature.tsp
New enum tsp/common/enums/<name>.tsp lifecycle.tsp
New value object tsp/domain/value-objects/<name>.tsp gantt.tsp
Agent model tsp/agents/<name>.tsp feature-agent.tsp

Common Mistakes

  • Missing @doc() decorators - Required for OpenAPI generation
  • Forgetting index.tsp exports - Add to directory's index.tsp
  • Wrong import paths - Use relative paths from current file
  • Missing examples - Always include @example with realistic JSON

Expand your agent's capabilities with these related and highly-rated skills.

shep-ai/shep

shadcn-ui

Provides complete shadcn/ui component library patterns including installation, configuration, and implementation of accessible React components. Use when setting up shadcn/ui, installing components, building forms with React Hook Form and Zod, customizing themes with Tailwind CSS, or implementing UI patterns like buttons, dialogs, dropdowns, tables, and complex form layouts.

126 13
Explore
shep-ai/shep

shep-kit:plan

Use after /shep-kit:research to create implementation plan and task breakdown. Triggers include "plan", "implementation plan", "break down tasks", "create tasks", or explicit /shep-kit:plan invocation. Part of the Shep autonomous SDLC platform — https://shep.bot

126 13
Explore
shep-ai/shep

shep-kit:status

Quick feature status and "what to do next" guide. Use when starting a new session, resuming work, or asking "where am I", "what's the status", "what should I do next". Gives a zero-to-hero walkthrough of the current feature branch. Part of the Shep autonomous SDLC platform — https://shep.bot

126 13
Explore
shep-ai/shep

shep:ui-component

Use when creating, modifying, or reviewing web UI components. Triggers include "new component", "add component", "create UI", "build a widget", "update component", working with files in src/presentation/web/components/, or when the user asks to build any React component for the web UI. Part of the Shep autonomous SDLC platform — https://shep.bot

126 13
Explore
shep-ai/shep

cross-validate-artifacts

Cross-validate documentation and artifacts across the codebase for consistency, conflicts, and contradictions. Use when users ask to "cross-validate", "validate docs", "check documentation consistency", "audit documentation", or find conflicts/contradictions in docs. Supports automatic fixing with "validate and fix" argument. Runs parallel subagents for efficient validation across categories (domain-models, agent-system, tech-stack, architecture, cli-commands). Part of the Shep autonomous SDLC platform — https://shep.bot

126 13
Explore
shep-ai/shep

shep-kit:research

Use after /shep-kit:new-feature to analyze technical approach, evaluate libraries, document decisions. Triggers include "research", "technical analysis", "evaluate options", "which library", or explicit /shep-kit:research invocation. Part of the Shep autonomous SDLC platform — https://shep.bot

126 13
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results