software-methodology-toolkit
Software Methodology Toolkit
A comprehensive collection of 10 proven software engineering methodologies, each implemented as a specialized agent. This skill provides systematic guidance across the entire software development lifecycle.
โ ๏ธ Priority Notice
This is a FALLBACK skill:
- If you're working in a project with context-specific skills (like
requirement-workflow), those should be triggered first - This toolkit is designed for general use when no project-specific adaptations exist
- Project skills have higher priority because they contain context-specific adaptations (Hook Points, custom outputs, etc.)
- Only use this skill explicitly if you want the vanilla methodology without project context
Available Methodologies
๐ Analyzing Phase
problem-definer
Apply Weinberg's Six Questions Framework to systematically define problems.
Use when:
- Requirements are unclear or contradictory
- Stakeholders disagree on what the problem is
- Solutions keep missing the mark
- Need to identify the REAL problem
Triggers: "define the problem", "what's the real problem", "stakeholder analysis"
spec-by-example
Create living documentation through concrete examples (Gojko Adzic).
Use when:
- Requirements are vague
- Need executable specifications
- Building shared understanding between business and tech
- Want tests that serve as documentation
Triggers: "specification by example", "concrete examples", "acceptance criteria"
๐ Planning Phase
story-mapper
Create user story maps to visualize user journeys and prioritize releases (Jeff Patton).
Use when:
- Planning products or features
- Backlog lacks context
- Deciding MVP scope
- Need to see the big picture
Triggers: "story mapping", "user journey", "release planning", "MVP scope"
๐จ Designing Phase
domain-modeler
Apply Domain-Driven Design to model complex business domains (Eric Evans).
Use when:
- Designing bounded contexts
- Creating aggregates and entities
- Establishing ubiquitous language
- Modeling complex business rules
Triggers: "DDD", "domain model", "bounded context", "aggregate design"
responsibility-modeler
Design objects by their responsibilities and collaborations (Rebecca Wirfs-Brock).
Use when:
- Designing OO systems
- Objects have unclear responsibilities
- Running CRC sessions
- Applying GRASP principles
Triggers: "CRC cards", "object responsibilities", "GRASP", "collaboration design"
architecture-advisor
Analyze software architecture decisions using quality attributes (Bass, Clements, Kazman).
Use when:
- Making architectural decisions
- Evaluating technology choices
- Analyzing trade-offs
- Defining quality attribute scenarios
Triggers: "architecture decision", "quality attributes", "trade-off analysis", "ADR"
๐ป Implementing Phase
tdd-coach
Guide Test-Driven Development practice (Kent Beck).
Use when:
- Implementing features from scratch
- Learning TDD
- Stuck on implementation approach
- Need test-first discipline
Triggers: "TDD", "test-driven", "red-green-refactor", "test first"
refactoring-guide
Identify code smells and apply refactoring techniques (Martin Fowler).
Use when:
- Code quality needs improvement
- Before adding features to messy code
- During code reviews
- Paying down tech debt
Triggers: "refactor", "code smell", "improve code quality", "clean up code"
legacy-surgeon
Safely modify legacy code without tests (Michael Feathers).
Use when:
- Working with untested code
- Adding features to legacy systems
- Breaking dependencies for testability
- Need characterization tests
Triggers: "legacy code", "working effectively", "seam", "characterization test"
๐งช Testing Phase
test-strategist
Plan comprehensive test strategies using Agile Testing Quadrants (Lisa Crispin).
Use when:
- Deciding what types of tests to write
- Reviewing test coverage
- Optimizing test suites
- Planning test distribution
Triggers: "test strategy", "test quadrants", "test pyramid", "test coverage"
How to Use
Simply mention the methodology or trigger phrase, and this skill will invoke the appropriate agent:
Examples
User: "Help me define the problem for this vague requirement"
โ Invokes problem-definer agent
User: "Let's apply DDD to model this e-commerce domain"
โ Invokes domain-modeler agent
User: "I need to refactor this messy class"
โ Invokes refactoring-guide agent
User: "Plan test strategy for authentication feature"
โ Invokes test-strategist agent
Methodology Workflows
These methodologies work together in common workflows:
New Feature Workflow
- problem-definer โ Define the real problem
- story-mapper โ Map user journey
- spec-by-example โ Create concrete examples
- domain-modeler โ Model domain concepts
- tdd-coach โ Implement with TDD
- test-strategist โ Verify test coverage
Legacy Code Workflow
- problem-definer โ Understand why change is needed
- legacy-surgeon โ Break dependencies safely
- refactoring-guide โ Identify and fix smells
- test-strategist โ Add appropriate tests
Architecture Workflow
- problem-definer โ Clarify requirements
- domain-modeler โ Model bounded contexts
- architecture-advisor โ Analyze quality attributes
- responsibility-modeler โ Design object responsibilities
Philosophy
All agents follow these principles:
- โ Do NOT write code - Only provide analysis and guidance
- โ Do NOT make decisions - Present options and trade-offs
- โ Do NOT run commands or modify files - Stay strictly read-only
- โ Only output: Analysis, recommendations, structured reports
References
This toolkit is based on these seminal works:
- Are Your Lights On? โ Weinberg & Gause (1982)
- User Story Mapping โ Jeff Patton (2014)
- Specification by Example โ Gojko Adzic (2011)
- Domain-Driven Design โ Eric Evans (2003)
- Object Design โ Rebecca Wirfs-Brock (2002)
- Software Architecture in Practice โ Bass, Clements, Kazman (2021)
- Test Driven Development โ Kent Beck (2003)
- Refactoring โ Martin Fowler (2018)
- Working Effectively with Legacy Code โ Michael Feathers (2004)
- Agile Testing โ Lisa Crispin & Janet Gregory (2009)