domain-identification-grouping
Groups existing components into logical business domains to plan service-based architecture. Use when asking "which components belong together?", "group these into services", "organize by domain", "component-to-domain mapping", or planning service extraction from an existing codebase. Do NOT use for identifying new domains from scratch (use domain-analysis) or analyzing coupling (use coupling-analysis).
What this skill does
# Domain Identification and Grouping This skill groups architectural components into logical domains (business areas) to prepare for creating domain services in a service-based architecture. ## How to Use ### Quick Start Request analysis of your codebase: - **"Group components into logical domains"** - **"Identify component domains for service-based architecture"** - **"Create domain groupings from components"** - **"Analyze which components belong to which domains"** ### Usage Examples **Example 1: Domain Identification** ``` User: "Group components into logical domains" The skill will: 1. Analyze component responsibilities and relationships 2. Identify business domains based on functionality 3. Group components into domains 4. Create domain diagrams 5. Suggest namespace refactoring for domain alignment ``` **Example 2: Domain Analysis** ``` User: "Which domain should the billing components belong to?" The skill will: 1. Analyze billing component functionality 2. Check relationships with other components 3. Identify appropriate domain (e.g., Customer or Financial) 4. Recommend domain assignment ``` **Example 3: Domain Refactoring** ``` User: "What namespace refactoring is needed to align components with domains?" The skill will: 1. Compare current component namespaces to identified domains 2. Identify misaligned components 3. Suggest namespace changes 4. Create refactoring plan ``` ### Step-by-Step Process 1. **Identify Domains**: Analyze business capabilities and component relationships 2. **Group Components**: Assign components to appropriate domains 3. **Validate Groupings**: Ensure components fit well in their domains 4. **Refactor Namespaces**: Align component namespaces with domains 5. **Create Domain Map**: Visualize domain structure and component groupings ## When to Use Apply this skill when: - After identifying, sizing, and analyzing component dependencies - Before creating domain services (Pattern 6) - When planning service-based architecture migration - Analyzing component relationships and business alignment - Preparing for domain-driven design implementation - Grouping components for better organization ## Core Concepts ### Domain Definition A **domain** is a logical grouping of components that: - Represents a distinct business capability or area - Contains related components that work together - Has clear boundaries and responsibilities - Can become a domain service in service-based architecture **Examples**: - **Customer Domain**: Customer profile, billing, support contracts - **Ticketing Domain**: Ticket creation, assignment, routing, completion - **Reporting Domain**: Ticket reports, expert reports, financial reports ### Component Domain Relationship **One-to-Many**: A single domain contains multiple components ``` Domain: Customer ├── Component: Customer Profile ├── Component: Billing Payment ├── Component: Billing History └── Component: Support Contract ``` ### Domain Manifestation Domains are physically manifested through **namespace structure**: **Before Domain Alignment**: ``` services/billing/payment services/billing/history services/customer/profile services/supportcontract ``` **After Domain Alignment**: ``` services/customer/billing/payment services/customer/billing/history services/customer/profile services/customer/supportcontract ``` Notice how all customer-related functionality is grouped under `.customer` domain. ## Analysis Process ### Phase 1: Identify Business Domains Analyze the codebase to identify distinct business domains: 1. **Examine Component Responsibilities** - Read component names and descriptions - Understand what each component does - Identify business capabilities 2. **Look for Business Language** - Group components by business vocabulary - Example: "billing", "payment", "invoice" → Financial domain - Example: "customer", "profile", "contract" → Customer domain 3. **Identify Domain Boundaries** - Where do business concepts change? - What are the distinct business areas? - How do components relate to business capabilities? 4. **Collaborate with Business Stakeholders** - Validate domain identification with product owners - Ensure domains align with business understanding - Get feedback on domain boundaries **Example Domain Identification**: ```markdown ## Identified Domains 1. **Ticketing Domain** (ss.ticket) - Ticket creation, assignment, routing, completion - Customer surveys - Knowledge base 2. **Customer Domain** (ss.customer) - Customer profile - Billing and payment - Support contracts 3. **Reporting Domain** (ss.reporting) - Ticket reports - Expert reports - Financial reports 4. **Admin Domain** (ss.admin) - User maintenance - Expert profile management 5. **Shared Domain** (ss.shared) - Login - Notification ``` ### Phase 2: Group Components into Domains Assign each component to an appropriate domain: 1. **Analyze Component Functionality** - What business capability does it support? - What domain vocabulary does it use? - What other components does it relate to? 2. **Check Component Relationships** - Which components are frequently used together? - What are the dependencies between components? - Do components share data or workflows? 3. **Assign to Domain** - Place component in domain that best fits its functionality - Ensure component aligns with domain's business language - Verify component relationships support domain grouping 4. **Handle Edge Cases** - Components that don't fit clearly: Analyze more deeply - Components that fit multiple domains: Choose primary domain - Shared components: May belong to Shared domain **Example Component Grouping**: ```markdown ## Component Domain Assignment ### Ticketing Domain (ss.ticket) - Ticket Shared (ss.ticket.shared) - Ticket Maintenance (ss.ticket.maintenance) - Ticket Completion (ss.ticket.completion) - Ticket Assign (ss.ticket.assign) - Ticket Route (ss.ticket.route) - KB Maintenance (ss.ticket.kb.maintenance) - KB Search (ss.ticket.kb.search) - Survey (ss.ticket.survey) ### Customer Domain (ss.customer) - Customer Profile (ss.customer.profile) - Billing Payment (ss.customer.billing.payment) - Billing History (ss.customer.billing.history) - Support Contract (ss.customer.supportcontract) ### Reporting Domain (ss.reporting) - Reporting Shared (ss.reporting.shared) - Ticket Reports (ss.reporting.tickets) - Expert Reports (ss.reporting.experts) - Financial Reports (ss.reporting.financial) ``` ### Phase 3: Validate Domain Groupings Ensure components fit well in their assigned domains: 1. **Check Cohesion** - Do components in domain share business language? - Are components frequently used together? - Do components have direct relationships? 2. **Verify Boundaries** - Are domain boundaries clear? - Do components belong to only one domain? - Are there components that don't fit anywhere? 3. **Assess Completeness** - Are all components assigned to a domain? - Are domains cohesive and well-formed? - Do domains represent distinct business capabilities? 4. **Get Stakeholder Validation** - Review domain groupings with product owners - Ensure domains align with business understanding - Get feedback on domain boundaries **Validation Checklist**: - [ ] All components assigned to a domain - [ ] Domains have clear boundaries - [ ] Components fit well in their domains - [ ] Domains represent distinct business capabilities - [ ] Stakeholders validate domain groupings ### Phase 4: Refactor Namespaces for Domain Alignment Align component namespaces with identified domains: 1. **Compare Current vs Target Namespaces** - Current: `services/billing/payment` - Target: `services/customer/billing/payment` - Change: Add `.customer` domain node 2. **Identify Refactoring Needed** - Which components need namespace changes? - What domain nodes need to
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.