원클릭으로
cross-layer-consistency
Deploy parallel subagents to verify consistency across all Clean Architecture layers
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Deploy parallel subagents to verify consistency across all Clean Architecture layers
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Show CI/CD pipeline status for current branch with job details and failure diagnostics
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 ShipIT autonomous SDLC platform — https://github.com/jrmatherly/shipit
React Flow (@xyflow/react) for workflow visualization with custom nodes and edges. Use when building graph visualizations, creating custom workflow nodes, implementing edge labels, or controlling viewport. Triggers on ReactFlow, @xyflow/react, Handle, NodeProps, EdgeProps, useReactFlow, fitView.
Diagnose semantic-release and npm publish failures from the latest CI release job
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.
Use when ready to commit, push, and create a PR with CI verification. Triggers include "commit and pr", "push pr", "create pr", "ship it", or when implementation is complete and needs CI validation. Watches CI and auto-fixes failures. Part of the ShipIT autonomous SDLC platform — https://github.com/jrmatherly/shipit
| name | cross-layer-consistency |
| description | Deploy parallel subagents to verify consistency across all Clean Architecture layers |
| user_invocable | true |
Deploy 5 parallel verification subagents to audit consistency across every layer of the Clean Architecture stack.
┌─────────────────────────────────────────────┐
│ Presentation (CLI / TUI / Web) │ src/presentation/
├─────────────────────────────────────────────┤
│ Application (Use Cases + Port Interfaces) │ packages/core/src/application/
├─────────────────────────────────────────────┤
│ Infrastructure (Repos + DI + Services) │ packages/core/src/infrastructure/
├─────────────────────────────────────────────┤
│ Domain (Generated Models + Value Objects) │ packages/core/src/domain/
├─────────────────────────────────────────────┤
│ TypeSpec Source │ tsp/
└─────────────────────────────────────────────┘
Deploy all 5 in a single message for maximum parallelism. Each subagent produces a findings table.
Agent(
description: "Verify TypeSpec-domain consistency",
name: "consistency-typespec",
prompt: "Verify TypeSpec and domain layer consistency in the shipit project.
Checks to perform:
1. Run: pnpm tsp:codegen
2. Check if any files changed: git diff --name-only packages/core/src/domain/generated/
- If changes exist, report them as STALE GENERATED OUTPUT
3. Search for hand-written types in packages/core/src/domain/ that duplicate generated types:
grep -rn 'interface\|type\|enum' packages/core/src/domain/ --include='*.ts' | grep -v generated/ | grep -v node_modules
4. Cross-reference with generated output to find conflicts
5. Check that no file outside domain/generated/ imports from generated with a relative path (should use @domain/generated/*)
Report format:
| Check | Status | Details |
|-------|--------|---------|
| Generated output fresh | OK/STALE | list changed files |
| No hand-written duplicates | OK/WARN | list conflicts |
| Import paths correct | OK/WARN | list violations |"
)
Agent(
description: "Verify port-infrastructure consistency",
name: "consistency-ports",
prompt: "Verify every port interface has an infrastructure implementation and DI binding.
Steps:
1. List all port interfaces:
find packages/core/src/application/ports/output -name '*.interface.ts' | sort
2. For each interface, extract the interface name (grep 'export interface')
3. For each interface name, search for implementations:
grep -rn 'implements InterfaceName' packages/core/src/infrastructure/
4. For each interface name, search for DI registration:
grep -rn 'InterfaceName' packages/core/src/infrastructure/di/
5. Flag any interface with:
- No implementation found
- No DI container binding
- Multiple implementations without clear selection
Report format:
| Interface | Implementation | DI Binding | Status |
|-----------|---------------|------------|--------|
| IFeatureRepository | SqliteFeatureRepository | OK | OK |
| ISomeService | (none) | (none) | MISSING |"
)
Agent(
description: "Verify use case DI consistency",
name: "consistency-usecases",
prompt: "Verify all use case @inject() tokens have matching port interfaces and DI bindings.
Steps:
1. List all use cases:
find packages/core/src/application/use-cases -name '*.ts' | grep -v '.test.' | sort
2. For each use case, extract @inject('TokenName') tokens:
grep -oP \"@inject\('([^']+)'\)\" each-file
3. For each token, verify:
a. A matching interface exists in ports/output/
b. The token is registered in the DI container
c. The injected type matches the interface
4. Check that no use case imports directly from infrastructure:
grep -rn 'from.*infrastructure/' packages/core/src/application/use-cases/
Report format:
| Use Case | Token | Interface Exists | DI Bound | Direct Infra Import |
|----------|-------|-----------------|----------|-------------------|
| CreateFeatureUseCase | IFeatureRepository | OK | OK | None |"
)
Agent(
description: "Verify presentation layer consistency",
name: "consistency-presentation",
prompt: "Verify presentation layers only use use cases and domain types (no infrastructure leaks).
Steps:
1. Check for infrastructure imports in presentation:
grep -rn 'from.*infrastructure/' src/presentation/ | grep -v 'import type' | grep -v 'di/container' | grep -v 'server-container'
2. Check that presentation files import use cases, not raw repositories:
grep -rn 'Repository' src/presentation/ | grep -v 'import type' | grep -v node_modules | grep -v '.next'
3. Verify each CLI command maps to a use case (not direct service calls):
grep -rn 'new.*UseCase\|inject.*UseCase\|UseCase' src/presentation/cli/
4. Verify web API routes use use cases:
grep -rn 'UseCase' src/presentation/web/app/api/
Report format:
| Check | Status | Violations |
|-------|--------|-----------|
| No infra imports | OK/WARN | list files |
| CLI uses use cases | OK/WARN | list direct calls |
| Web uses use cases | OK/WARN | list direct calls |"
)
Agent(
description: "Verify test coverage consistency",
name: "consistency-tests",
prompt: "Verify test files exist for use cases and mock shapes match current interfaces.
Steps:
1. List all use cases and check for corresponding test files:
For each file in packages/core/src/application/use-cases/*.ts:
Check if tests/unit/application/use-cases/<name>.test.ts exists
2. For test files that import port interfaces, count mock methods vs interface methods:
For each test importing from ports/output/:
- Count methods in the interface file (grep -cP '^\s+\w+\s*\(' interface-file)
- Count vi.fn() calls in the mock (grep -cP 'vi\.fn\(\)' test-file)
- Flag if mock count < interface count
3. Check for test files with no assertions:
grep -rL 'expect(' tests/unit/ | head -20
Report format:
| Use Case | Test File | Exists | Mock Shape | Status |
|----------|-----------|--------|-----------|--------|
| CreateFeatureUseCase | create-feature.test.ts | OK | 7/7 methods | OK |
| ListFeaturesUseCase | (none) | MISSING | N/A | MISSING |"
)
After all 5 subagents complete, produce a unified report:
# Cross-Layer Consistency Report
**Date:** YYYY-MM-DD
**Commit:** <short-hash>
## Summary
| Dimension | Status | Issues |
|-----------|--------|--------|
| TypeSpec ↔ Domain | OK/WARN/FAIL | count |
| Ports ↔ Infrastructure | OK/WARN/FAIL | count |
| Use Cases ↔ Ports | OK/WARN/FAIL | count |
| Presentation ↔ Use Cases | OK/WARN/FAIL | count |
| Tests ↔ Implementation | OK/WARN/FAIL | count |
## Critical Issues (FAIL)
- (list any blocking issues)
## Warnings (WARN)
- (list non-blocking inconsistencies)
## Recommended Actions
1. (prioritized fix list)
| Level | Meaning | Action |
|---|---|---|
| FAIL | Broken dependency chain — code won't compile or runtime error | Fix immediately |
| WARN | Inconsistency that works now but creates risk | Fix in current sprint |
| OK | Consistent across layers | No action needed |