From sdd-mcp
Creates custom steering documents for domain-specific guidance on file types, modules, or workflows like API design standards and test patterns. Supports ALWAYS, CONDITIONAL, and MANUAL inclusion modes. Invoke via /sdd-steering-custom.
npx claudepluginhub yi-john-huang/sdd-mcpThis skill uses the workspace's default tool permissions.
Create specialized steering documents that provide context-specific guidance beyond the standard product/tech/structure documents.
Generates steering documents with project standards, git workflows, and tech guidelines in .kiro/steering/ for frontend, backend, fullstack, or library projects.
Generates project-specific SDD steering documents (product.md, tech.md, structure.md) by analyzing manifests like package.json/Cargo.toml, directories, and code patterns. Use for project context setup and conventions.
Designs, creates, and reviews custom instructions files like .github/copilot-instructions.md (always-on), .instructions.md (file-based with YAML frontmatter/glob patterns), AGENTS.md, and CLAUDE.md for VS Code/GitHub Copilot.
Share bugs, ideas, or general feedback.
Create specialized steering documents that provide context-specific guidance beyond the standard product/tech/structure documents.
Custom steering is useful for:
Custom steering documents can be loaded in three ways:
| Mode | Behavior | Use Case |
|---|---|---|
| ALWAYS | Loaded in every AI interaction | Core conventions, critical rules |
| CONDITIONAL | Loaded when file patterns match | Test-specific, API-specific rules |
| MANUAL | Referenced with @filename.md | Rarely needed, specialized contexts |
Ask yourself:
Is this guidance ALWAYS relevant?
├── YES → Use ALWAYS mode
│
└── NO → Is it relevant for specific file types?
├── YES → Use CONDITIONAL mode with patterns
│ Examples: *.test.ts, src/api/**/*
│
└── NO → Use MANUAL mode
Reference with @filename.md when needed
Save to .spec/steering/{filename}.md:
# {Topic Name}
## Purpose
{Why this steering document exists}
## Scope
{When this guidance applies}
## Guidelines
### Guideline 1: {Name}
{Detailed guidance}
**Do:**
- {Good practice}
**Don't:**
- {Anti-pattern}
### Guideline 2: {Name}
{Detailed guidance}
## Examples
### Good Example
```{language}
{Code showing good practice}
// DON'T: {explanation}
{Code showing anti-pattern}
Inclusion Mode: {ALWAYS | CONDITIONAL | MANUAL} File Patterns: {patterns for CONDITIONAL mode} Created: {date}
## Common Custom Steering Documents
### API Design Standards
```markdown
# API Design Standards
## Inclusion
Mode: CONDITIONAL
Patterns: src/api/**/*.ts, src/routes/**/*.ts
## Guidelines
### RESTful Conventions
- Use plural nouns for resources: `/users`, not `/user`
- Use HTTP methods correctly: GET (read), POST (create), PUT (update), DELETE (remove)
- Return appropriate status codes
### Request/Response Format
- Use JSON for request/response bodies
- Include `Content-Type: application/json` header
- Wrap responses in consistent envelope
# Test Patterns
## Inclusion
Mode: CONDITIONAL
Patterns: **/*.test.ts, **/*.spec.ts
## Guidelines
### Arrange-Act-Assert
Every test should follow:
1. **Arrange**: Set up test data and mocks
2. **Act**: Execute the code under test
3. **Assert**: Verify the results
### Naming Convention
`describe('{Class/Function}', () => {`
` it('should {expected behavior} when {condition}', () => {`
# Component Standards
## Inclusion
Mode: CONDITIONAL
Patterns: src/components/**/*.tsx
## Guidelines
### Component Structure
1. Imports (external, internal, types)
2. Type definitions
3. Component function
4. Helper functions
5. Exports
# Database Conventions
## Inclusion
Mode: CONDITIONAL
Patterns: src/db/**/*.ts, **/migrations/**/*
## Guidelines
### Table Naming
- Use snake_case: `user_accounts`
- Use plural: `orders`, not `order`
- Prefix with domain: `auth_sessions`
### Column Naming
- Use snake_case: `created_at`
- Foreign keys: `{table}_id`
- Booleans: `is_active`, `has_access`
Patterns use glob syntax:
| Pattern | Matches |
|---|---|
*.test.ts | All test files in current dir |
**/*.test.ts | All test files recursively |
src/api/**/* | All files in api directory tree |
*.{ts,tsx} | TypeScript and TSX files |
!node_modules/** | Exclude node_modules |
Custom steering documents are managed manually. After creating:
.spec/steering/{name}.md