ワンクリックで
serena-impact-analysis
Analyze the blast radius of port interface changes using Serena and Code Review Graph MCP tools
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Analyze the blast radius of port interface changes using Serena and Code Review Graph MCP tools
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 | serena-impact-analysis |
| description | Analyze the blast radius of port interface changes using Serena and Code Review Graph MCP tools |
| user_invocable | true |
Analyze the full blast radius when modifying a port interface, producing a layer-by-layer change checklist before you touch any code.
packages/core/src/application/ports/output/Use Serena to locate the interface definition:
find_symbol(name: "IFeatureRepository", type: "interface")
Record the relative_path and name_path from the result.
Use Serena to find classes that implement the interface:
find_referencing_symbols(
name: "IFeatureRepository",
relative_path: "packages/core/src/application/ports/output/repositories/feature-repository.interface.ts"
)
Filter results to packages/core/src/infrastructure/ — these are the concrete implementations that must be updated.
Search for use cases and services that inject the interface:
search_for_pattern(
pattern: "@inject.*IFeatureRepository",
relative_path: "packages/core/src/application/"
)
These are the use cases whose behavior may change.
Check if any presentation code references the interface or its consumers:
search_for_pattern(
pattern: "IFeatureRepository|FeatureRepository",
relative_path: "src/presentation/"
)
Use the code-review-graph for a full dependency tree:
get_impact_radius_tool(
symbol: "IFeatureRepository",
file_path: "packages/core/src/application/ports/output/repositories/feature-repository.interface.ts"
)
This reveals transitive dependencies the grep-based search may miss.
search_for_pattern(
pattern: "IFeatureRepository|mockFeatureRepository|createMockFeatureRepository",
relative_path: "tests/"
)
find_file(name: "mock-feature-repository.helper.ts", relative_path: "tests/helpers/")
If a factory exists, updating it propagates to all tests. If not, each test file needs individual updates (consider running /mock-factory first).
Produce a checklist grouped by layer:
## Impact Checklist for IFeatureRepository Changes
### Domain (auto-generated — usually no action)
- [ ] TypeSpec source: `tsp/domain/*.tsp` (if types changed)
- [ ] Regenerate: `pnpm tsp:codegen`
### Application (port definition)
- [ ] Interface: `packages/core/src/application/ports/output/repositories/feature-repository.interface.ts`
- [ ] Use cases consuming this interface:
- [ ] `packages/core/src/application/use-cases/create-feature.ts`
- [ ] `packages/core/src/application/use-cases/list-features.ts`
- [ ] ... (list all from step 3)
### Infrastructure (implementation)
- [ ] Repository: `packages/core/src/infrastructure/repositories/sqlite-feature-repository.ts`
- [ ] DI container: `packages/core/src/infrastructure/di/container.ts` (if new bindings)
### Presentation (thin layer — usually no action)
- [ ] CLI commands referencing affected use cases
- [ ] Web API routes referencing affected use cases
### Tests
- [ ] Mock factory: `tests/helpers/mock-feature-repository.helper.ts`
- [ ] Unit tests: (list all from step 6)
- [ ] Integration tests: (list all from step 6)
pnpm typecheck # All types resolve
pnpm test:unit # All mocks satisfy interfaces
pnpm test:int # Infrastructure implementations work
findByIds() to IFeatureRepositoryBefore: Interface has findById(id) but no batch method.
packages/core/src/application/ports/output/repositories/feature-repository.interface.tsSqliteFeatureRepository (1 implementor), 8 use cases injecting it