skills/large-change/SKILL.md
Structured workflow for implementing a large or complex change. Use when: planning a significant feature, decomposing a multi-day refactor, introducing a breaking change, coordinating cross-cutting implementation work, or shipping a new subsystem with phased delivery and clear release criteria.
npx skillsauth add michaelsvanbeek/personal-agent-skills large-changeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When not to use: small, self-contained changes that can be completed and tested in one short session.
Before implementation, write a design doc.
Purpose:
Create in docs/changes/<feature-name>.md or docs/adr/<nnnn>-<title>.md:
# Design: <Feature or Change Name>
**Date**: YYYY-MM-DD
**Status**: Draft | Proposed | Accepted
**Author(s)**: <name>
## Problem
What problem does this change solve?
## Goals
- [ ] Goal 1
- [ ] Goal 2
## Non-Goals
- Not changing X
- Not supporting Y in this version
## Proposed Approach
Describe the selected solution, affected components, data flow, API/interface
changes, and dependencies.
## Alternatives Considered
Use a structured alternatives comparison:
| Option | Pros | Cons | Why not chosen |
|--------|------|------|----------------|
| Option A (chosen) | ... | ... | - |
| Option B | ... | ... | ... |
| Option C | ... | ... | ... |
## Risks and Open Questions
- [ ] Risk: <risk and mitigation>
- [ ] Open question: <question>
## Implementation Plan
High-level phases or milestones.
## Testing Strategy
What tests are required?
## Release Plan
- Version bump: PATCH / MINOR / MAJOR
- Breaking migration required: Yes / No
- Feature flag needed: Yes / No
- Rollback strategy: <describe>
Before implementation begins, confirm the design answers:
Break work into small, independently shippable tasks.
A task is well-sized when:
## Tasks
### Phase 1: Foundation
- [ ] Add data model changes
- [ ] Implement base service/repository
- [ ] Add unit tests for new core logic
### Phase 2: Integration
- [ ] Add endpoint/adapter layer integration
- [ ] Add input validation and error handling
- [ ] Add integration tests
### Phase 3: UX/Consumer
- [ ] Add UI/client integration
- [ ] Add behavior/state tests
- [ ] Add end-to-end flow test
### Phase 4: Cleanup and Release
- [ ] Remove deprecated paths
- [ ] Update migration docs
- [ ] Update changelog and version
Execute tasks one at a time.
Each completed task should:
Use feature flags for long-running features that cannot ship all at once.
When all planned tasks are complete, run a release checklist.
| Change type | Bump | |-------------|------| | Backward-incompatible behavior/API change | MAJOR | | Backward-compatible feature | MINOR | | Bug fix or internal improvements only | PATCH |
After release:
| Phase | Output | |-------|--------| | 1. Design | Design doc or ADR | | 2. Decompose | Task list with clear increments | | 3. Implement | Stable incremental commits | | 4. Release | Versioned release with notes | | 5. Cleanup | Updated docs and follow-up plan |
| Anti-pattern | Why it hurts | Better approach | |--------------|--------------|-----------------| | Design-as-you-go on major changes | High risk of late rework | Write and review design first | | One giant implementation commit | Hard to review and rollback | One logical change per commit | | Pure horizontal decomposition | No shippable value until late | Use vertical slices | | Skipping tests between tasks | Broken state accumulates | Validate after every task | | Deferring docs until the end | Docs drift from implementation | Update docs within each phase | | Treating version bump as clerical | Mis-signaled impact to users | Define release plan in design |
development
TypeScript coding standards and type safety conventions. Use when: creating TypeScript files, defining interfaces and types, writing type-safe code, reviewing TypeScript for type correctness, auditing a codebase for type safety gaps, eliminating any or ts-ignore usage, or improving strict-mode compliance. Covers strict typing, avoiding any and ts-ignore, discriminated unions, Zod runtime validation, immutability patterns, and proper type definitions.
testing
Writing clear, actionable tickets in any issue tracker (Jira, Linear, GitHub Issues, ServiceNow, etc.). Use when: creating epics, stories, tasks, bugs, or spikes; writing acceptance criteria; decomposing work for a sprint; linking dependencies between tickets; auditing backlog items for clarity; or coaching a team on ticket quality. Covers title conventions, description templates, acceptance criteria, decomposition rules, dependency linking, and org-specific pluggable configuration.
development
Testing strategy, patterns, and evaluation for software and LLM/AI systems. Use when: writing tests, choosing test boundaries, designing test data, structuring test suites, evaluating LLM outputs, building evaluation pipelines, setting coverage thresholds, auditing test coverage gaps in existing projects, or improving test quality and structure.
development
Writing effective status updates for different audiences and cadences. Use when: writing a weekly status update, preparing a monthly summary, drafting a quarterly review, sending updates to leadership, sharing progress with stakeholders, or improving the clarity and impact of team communications. Covers weekly, monthly, and quarterly formats tailored for upward, lateral, and downward communication.