amazingteam 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ai-team/agents/architect.md +144 -0
- package/.ai-team/agents/ci-analyst.md +188 -0
- package/.ai-team/agents/developer.md +176 -0
- package/.ai-team/agents/planner.md +355 -0
- package/.ai-team/agents/qa.md +189 -0
- package/.ai-team/agents/reviewer.md +211 -0
- package/.ai-team/agents/triage.md +146 -0
- package/.ai-team/commands/ci-analyze.md +116 -0
- package/.ai-team/commands/design.md +100 -0
- package/.ai-team/commands/implement.md +108 -0
- package/.ai-team/commands/release-check.md +142 -0
- package/.ai-team/commands/review.md +142 -0
- package/.ai-team/commands/test.md +115 -0
- package/.ai-team/commands/triage.md +138 -0
- package/.ai-team/memory/architect/architecture_notes.md +67 -0
- package/.ai-team/memory/architect/design_rationale.md +113 -0
- package/.ai-team/memory/architect/module_map.md +84 -0
- package/.ai-team/memory/ci-analyst/failure_patterns.md +102 -0
- package/.ai-team/memory/ci-analyst/runbook_references.md +87 -0
- package/.ai-team/memory/developer/bug_investigation.md +102 -0
- package/.ai-team/memory/developer/build_issues.md +115 -0
- package/.ai-team/memory/developer/implementation_notes.md +83 -0
- package/.ai-team/memory/failures/failure_library.md +103 -0
- package/.ai-team/memory/planner/decomposition_notes.md +82 -0
- package/.ai-team/memory/planner/flow_rules.md +86 -0
- package/.ai-team/memory/planner/github_issue_patterns.md +229 -0
- package/.ai-team/memory/qa/regression_cases.md +101 -0
- package/.ai-team/memory/qa/test_strategy.md +138 -0
- package/.ai-team/memory/qa/validation_notes.md +110 -0
- package/.ai-team/memory/reviewer/quality_rules.md +105 -0
- package/.ai-team/memory/reviewer/recurring_risks.md +109 -0
- package/.ai-team/memory/reviewer/review_notes.md +124 -0
- package/.ai-team/memory/triage/classification_heuristics.md +82 -0
- package/.ai-team/memory/triage/debug_notes.md +87 -0
- package/.ai-team/opencode.template.jsonc +216 -0
- package/.ai-team/skills/bugfix-playbook/skill.md +174 -0
- package/.ai-team/skills/ci-failure-analysis/skill.md +176 -0
- package/.ai-team/skills/issue-triage/skill.md +163 -0
- package/.ai-team/skills/regression-checklist/skill.md +176 -0
- package/.ai-team/skills/release-readiness-check/skill.md +216 -0
- package/.ai-team/skills/repo-architecture-reader/skill.md +139 -0
- package/.ai-team/skills/safe-refactor-checklist/skill.md +215 -0
- package/.ai-team/skills/task-breakdown-and-dispatch/skill.md +151 -0
- package/.ai-team/skills/test-first-feature-dev/skill.md +205 -0
- package/.ai-team/workflows/ci.yml +81 -0
- package/.ai-team/workflows/nightly-ai-maintenance.yml +129 -0
- package/.ai-team/workflows/opencode.yml +33 -0
- package/.ai-team/workflows/pr-check.yml +41 -0
- package/.foundation/foundation.lock +38 -0
- package/.foundation/local-overrides.md +97 -0
- package/.foundation/upgrade-history.md +38 -0
- package/.opencode/agents/architect.md +38 -0
- package/.opencode/agents/ci-analyst.md +38 -0
- package/.opencode/agents/developer.md +43 -0
- package/.opencode/agents/planner.md +47 -0
- package/.opencode/agents/qa.md +34 -0
- package/.opencode/agents/reviewer.md +38 -0
- package/.opencode/agents/triage.md +37 -0
- package/.opencode/commands/auto.md +264 -0
- package/.opencode/commands/breakdown-issue.md +94 -0
- package/.opencode/commands/ci-analyze.md +15 -0
- package/.opencode/commands/close-parent-task.md +122 -0
- package/.opencode/commands/design.md +15 -0
- package/.opencode/commands/dispatch-next.md +102 -0
- package/.opencode/commands/implement.md +16 -0
- package/.opencode/commands/release-check.md +16 -0
- package/.opencode/commands/resume.md +88 -0
- package/.opencode/commands/review.md +15 -0
- package/.opencode/commands/show-blockers.md +97 -0
- package/.opencode/commands/summarize-parent.md +121 -0
- package/.opencode/commands/test.md +15 -0
- package/.opencode/commands/triage.md +109 -0
- package/.opencode/skills/bugfix-playbook/SKILL.md +81 -0
- package/.opencode/skills/ci-failure-analysis/SKILL.md +94 -0
- package/.opencode/skills/issue-triage/SKILL.md +80 -0
- package/.opencode/skills/regression-checklist/SKILL.md +81 -0
- package/.opencode/skills/release-readiness-check/SKILL.md +81 -0
- package/.opencode/skills/repo-architecture-reader/SKILL.md +65 -0
- package/.opencode/skills/safe-refactor-checklist/SKILL.md +76 -0
- package/.opencode/skills/task-breakdown-and-dispatch/SKILL.md +255 -0
- package/.opencode/skills/test-first-feature-dev/SKILL.md +78 -0
- package/AGENTS.md +879 -0
- package/CHANGELOG.md +261 -0
- package/LICENSE +21 -0
- package/README.md +1215 -0
- package/VERSION +1 -0
- package/action/__tests__/downloader.test.js +251 -0
- package/action/__tests__/merger.test.js +156 -0
- package/action/__tests__/path-resolver.test.js +199 -0
- package/action/__tests__/validator.test.js +310 -0
- package/action/action.yml +61 -0
- package/action/index.js +223 -0
- package/action/lib/downloader.js +344 -0
- package/action/lib/merger.js +170 -0
- package/action/lib/path-resolver.js +176 -0
- package/action/lib/setup.js +286 -0
- package/action/lib/validator.js +324 -0
- package/cli/__tests__/cli.test.js +270 -0
- package/cli/amazingteam.cjs +225 -0
- package/cli/commands/check-update.cjs +159 -0
- package/cli/commands/init.cjs +412 -0
- package/cli/commands/local.cjs +264 -0
- package/cli/commands/migrate.cjs +316 -0
- package/cli/commands/status.cjs +241 -0
- package/cli/commands/upgrade.cjs +213 -0
- package/cli/commands/validate.cjs +259 -0
- package/cli/commands/version.cjs +59 -0
- package/cli/sync.cjs +237 -0
- package/dist/index.js +35 -0
- package/docs/architecture/overview.md +138 -0
- package/docs/blocker_resolution_design.md +372 -0
- package/docs/bootstrap-model.md +356 -0
- package/docs/config-reference.md +458 -0
- package/docs/how-to-use.md +178 -0
- package/docs/migration-to-v3.md +355 -0
- package/docs/overlay-guide.md +156 -0
- package/docs/patterns/README.md +67 -0
- package/docs/quick-start-v3.md +330 -0
- package/docs/releases/README.md +64 -0
- package/docs/runbooks/ci/README.md +62 -0
- package/docs/runbooks/ci/build-debug.md +120 -0
- package/docs/runbooks/ci/flaky-tests.md +127 -0
- package/docs/runbooks/getting-started.md +81 -0
- package/docs/upgrade-policy.md +188 -0
- package/docs/versioning.md +199 -0
- package/overlays/README.md +30 -0
- package/overlays/ai-agent-product/.ai-team/skills/llm-integration/skill.md +99 -0
- package/overlays/ai-agent-product/docs/ai-agent-architecture.md +68 -0
- package/overlays/ai-agent-product/overlay.yaml +26 -0
- package/overlays/cpp-qt-desktop/.ai-team/skills/qt-signals-slots/skill.md +60 -0
- package/overlays/cpp-qt-desktop/docs/qt-conventions.md +64 -0
- package/overlays/cpp-qt-desktop/overlay.yaml +22 -0
- package/overlays/python-backend/.ai-team/skills/python-testing/skill.md +90 -0
- package/overlays/python-backend/docs/python-style.md +78 -0
- package/overlays/python-backend/overlay.yaml +22 -0
- package/overlays/web-fullstack/.ai-team/skills/frontend-testing/skill.md +70 -0
- package/overlays/web-fullstack/docs/frontend-conventions.md +68 -0
- package/overlays/web-fullstack/overlay.yaml +26 -0
- package/package.json +84 -0
- package/presets/default.yaml +161 -0
- package/presets/go.yaml +43 -0
- package/presets/python.yaml +43 -0
- package/presets/typescript.yaml +40 -0
- package/schemas/config.schema.json +239 -0
- package/scripts/diff_foundation_vs_project.sh +134 -0
- package/scripts/generate_docs.sh +200 -0
- package/scripts/init_project.sh +455 -0
- package/scripts/plan_upgrade.sh +268 -0
- package/scripts/upgrade_foundation.sh +365 -0
- package/scripts/validate-foundation.cjs +278 -0
- package/scripts/validate_foundation.sh +192 -0
- package/scripts/validate_project_setup.sh +171 -0
- package/tasks/README.md +94 -0
- package/tasks/_template/analysis.md +76 -0
- package/tasks/_template/design.md +121 -0
- package/tasks/_template/implementation.md +121 -0
- package/tasks/_template/release.md +119 -0
- package/tasks/_template/review.md +131 -0
- package/tasks/_template/subtasks/task.yaml +24 -0
- package/tasks/_template/task.yaml +75 -0
- package/tasks/_template/validation.md +128 -0
- package/templates/amazingteam.yml +81 -0
- package/templates/gitignore +14 -0
- package/templates/opencode.jsonc +216 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: regression-checklist
|
|
3
|
+
description: Checklist for detecting regressions after changes
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
# Regression Checklist
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- After implementing changes
|
|
11
|
+
- Before merging PRs
|
|
12
|
+
- After refactoring
|
|
13
|
+
- Before releases
|
|
14
|
+
|
|
15
|
+
## Pre-Change Baseline
|
|
16
|
+
|
|
17
|
+
- [ ] All tests passing
|
|
18
|
+
- [ ] No lint errors
|
|
19
|
+
- [ ] No TypeScript errors
|
|
20
|
+
- [ ] Build succeeds
|
|
21
|
+
- [ ] Documentation current
|
|
22
|
+
|
|
23
|
+
## Regression Tests
|
|
24
|
+
|
|
25
|
+
### Functional Tests
|
|
26
|
+
- [ ] Core features work as expected
|
|
27
|
+
- [ ] User flows complete successfully
|
|
28
|
+
- [ ] API responses correct
|
|
29
|
+
- [ ] Data integrity maintained
|
|
30
|
+
|
|
31
|
+
### Performance Tests
|
|
32
|
+
- [ ] Response times acceptable
|
|
33
|
+
- [ ] No memory leaks
|
|
34
|
+
- [ ] No CPU spikes
|
|
35
|
+
- [ ] Bundle size not increased significantly
|
|
36
|
+
|
|
37
|
+
### Integration Tests
|
|
38
|
+
- [ ] External services work
|
|
39
|
+
- [ ] Database operations correct
|
|
40
|
+
- [ ] Authentication/authorization works
|
|
41
|
+
- [ ] File operations work
|
|
42
|
+
|
|
43
|
+
### UI Tests (if applicable)
|
|
44
|
+
- [ ] Layouts render correctly
|
|
45
|
+
- [ ] Responsive design works
|
|
46
|
+
- [ ] Accessibility maintained
|
|
47
|
+
- [ ] No console errors
|
|
48
|
+
|
|
49
|
+
## Post-Change Verification
|
|
50
|
+
|
|
51
|
+
### Code Quality
|
|
52
|
+
- [ ] No new lint warnings
|
|
53
|
+
- [ ] Test coverage maintained
|
|
54
|
+
- [ ] No deprecated API usage
|
|
55
|
+
- [ ] Security best practices followed
|
|
56
|
+
|
|
57
|
+
### Documentation
|
|
58
|
+
- [ ] README updated if needed
|
|
59
|
+
- [ ] API docs updated if needed
|
|
60
|
+
- [ ] Changelog updated
|
|
61
|
+
- [ ] Comments accurate
|
|
62
|
+
|
|
63
|
+
## Regression Report Template
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Regression Check: [PR/Change]
|
|
67
|
+
|
|
68
|
+
### Tests Run
|
|
69
|
+
- [ ] Unit tests: X passing
|
|
70
|
+
- [ ] Integration tests: X passing
|
|
71
|
+
- [ ] E2E tests: X passing
|
|
72
|
+
|
|
73
|
+
### Issues Found
|
|
74
|
+
| Issue | Severity | Status |
|
|
75
|
+
|-------|----------|--------|
|
|
76
|
+
| [Description] | [High/Med/Low] | [Fixed/Open] |
|
|
77
|
+
|
|
78
|
+
### Sign-off
|
|
79
|
+
- [ ] All regressions addressed
|
|
80
|
+
- [ ] Ready for merge
|
|
81
|
+
```
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-readiness-check
|
|
3
|
+
description: Validate that the project is ready for release
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
# Release Readiness Check
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Before creating a release
|
|
11
|
+
- Before merging to main
|
|
12
|
+
- Before deploying to production
|
|
13
|
+
|
|
14
|
+
## Pre-Release Checklist
|
|
15
|
+
|
|
16
|
+
### Code Quality
|
|
17
|
+
- [ ] All tests pass
|
|
18
|
+
- [ ] Test coverage meets threshold (≥80%)
|
|
19
|
+
- [ ] No lint errors
|
|
20
|
+
- [ ] No TypeScript errors
|
|
21
|
+
- [ ] No security vulnerabilities
|
|
22
|
+
|
|
23
|
+
### Documentation
|
|
24
|
+
- [ ] CHANGELOG.md updated
|
|
25
|
+
- [ ] README.md current
|
|
26
|
+
- [ ] API documentation updated
|
|
27
|
+
- [ ] Migration guide (if breaking changes)
|
|
28
|
+
|
|
29
|
+
### Version
|
|
30
|
+
- [ ] Version bumped appropriately
|
|
31
|
+
- [ ] Version in package.json correct
|
|
32
|
+
- [ ] Git tag prepared
|
|
33
|
+
|
|
34
|
+
### Dependencies
|
|
35
|
+
- [ ] Dependencies up to date
|
|
36
|
+
- [ ] No known vulnerabilities in dependencies
|
|
37
|
+
- [ ] Lock file committed
|
|
38
|
+
|
|
39
|
+
## Breaking Changes Check
|
|
40
|
+
|
|
41
|
+
If this release includes breaking changes:
|
|
42
|
+
|
|
43
|
+
- [ ] Breaking changes documented
|
|
44
|
+
- [ ] Migration guide provided
|
|
45
|
+
- [ ] Deprecation warnings added in previous version
|
|
46
|
+
- [ ] Major version bumped (semver)
|
|
47
|
+
|
|
48
|
+
## Deployment Readiness
|
|
49
|
+
|
|
50
|
+
- [ ] Environment variables documented
|
|
51
|
+
- [ ] Database migrations ready (if needed)
|
|
52
|
+
- [ ] Feature flags configured
|
|
53
|
+
- [ ] Rollback plan documented
|
|
54
|
+
|
|
55
|
+
## Release Notes Template
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
## [Version] - YYYY-MM-DD
|
|
59
|
+
|
|
60
|
+
### Added
|
|
61
|
+
- [New features]
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
- [Changes to existing features]
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
- [Bug fixes]
|
|
68
|
+
|
|
69
|
+
### Breaking Changes
|
|
70
|
+
- [Breaking changes with migration guide]
|
|
71
|
+
|
|
72
|
+
### Dependencies
|
|
73
|
+
- [Updated dependencies]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Sign-off
|
|
77
|
+
|
|
78
|
+
- [ ] All checks passed
|
|
79
|
+
- [ ] Release notes reviewed
|
|
80
|
+
- [ ] Stakeholders notified
|
|
81
|
+
- [ ] Ready to release
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: repo-architecture-reader
|
|
3
|
+
description: Quickly understand and document a repository's architecture, structure, and design patterns
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
# Repository Architecture Reader
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Starting work on a new repository
|
|
11
|
+
- Analyzing codebase for the first time
|
|
12
|
+
- Creating architecture documentation
|
|
13
|
+
- Planning major refactoring
|
|
14
|
+
|
|
15
|
+
## Steps
|
|
16
|
+
|
|
17
|
+
### 1. Initial Exploration
|
|
18
|
+
1. Identify the project type (web app, library, CLI, etc.)
|
|
19
|
+
2. Locate configuration files (package.json, tsconfig.json, etc.)
|
|
20
|
+
3. Identify the main entry point(s)
|
|
21
|
+
4. Map the top-level directory structure
|
|
22
|
+
|
|
23
|
+
### 2. Dependency Analysis
|
|
24
|
+
1. Parse package.json / requirements.txt / Cargo.toml
|
|
25
|
+
2. Categorize dependencies (production, dev, peer)
|
|
26
|
+
3. Identify the tech stack (framework, build tools, testing)
|
|
27
|
+
|
|
28
|
+
### 3. Code Organization
|
|
29
|
+
1. Identify source code directories
|
|
30
|
+
2. Map module structure (core, shared, domain-specific)
|
|
31
|
+
3. Identify architectural patterns (MVC, layered, microservices)
|
|
32
|
+
|
|
33
|
+
### 4. Data Flow Analysis
|
|
34
|
+
1. Trace main data flows
|
|
35
|
+
2. Identify state management
|
|
36
|
+
3. Map API boundaries
|
|
37
|
+
|
|
38
|
+
### 5. Testing Structure
|
|
39
|
+
1. Locate test files
|
|
40
|
+
2. Identify test types (unit, integration, E2E)
|
|
41
|
+
3. Document test utilities
|
|
42
|
+
|
|
43
|
+
## Output Format
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# Repository Architecture: [Project Name]
|
|
47
|
+
|
|
48
|
+
## Overview
|
|
49
|
+
[Brief description]
|
|
50
|
+
|
|
51
|
+
## Tech Stack
|
|
52
|
+
- **Language**: [Primary language]
|
|
53
|
+
- **Framework**: [Main framework]
|
|
54
|
+
- **Build Tool**: [Build tool]
|
|
55
|
+
- **Testing**: [Testing framework]
|
|
56
|
+
|
|
57
|
+
## Directory Structure
|
|
58
|
+
[Directory tree]
|
|
59
|
+
|
|
60
|
+
## Key Modules
|
|
61
|
+
### [Module Name]
|
|
62
|
+
- **Purpose**: [What this module does]
|
|
63
|
+
- **Dependencies**: [What it depends on]
|
|
64
|
+
- **Key Files**: [Important files]
|
|
65
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: safe-refactor-checklist
|
|
3
|
+
description: Checklist for safe code refactoring without breaking changes
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
# Safe Refactor Checklist
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Refactoring existing code
|
|
11
|
+
- Improving code structure
|
|
12
|
+
- Reducing technical debt
|
|
13
|
+
- Optimizing performance
|
|
14
|
+
|
|
15
|
+
## Pre-Refactor Checklist
|
|
16
|
+
|
|
17
|
+
- [ ] All existing tests pass
|
|
18
|
+
- [ ] Test coverage is adequate (>80%)
|
|
19
|
+
- [ ] Understand the code's current behavior
|
|
20
|
+
- [ ] Identify all consumers of the code
|
|
21
|
+
- [ ] Document the refactoring goal
|
|
22
|
+
|
|
23
|
+
## During Refactor
|
|
24
|
+
|
|
25
|
+
### 1. Make Small Changes
|
|
26
|
+
- One refactoring at a time
|
|
27
|
+
- Run tests after each change
|
|
28
|
+
- Commit frequently
|
|
29
|
+
|
|
30
|
+
### 2. Preserve Behavior
|
|
31
|
+
- Don't change public interfaces
|
|
32
|
+
- Keep the same inputs/outputs
|
|
33
|
+
- Maintain backward compatibility
|
|
34
|
+
|
|
35
|
+
### 3. Update Tests
|
|
36
|
+
- Update tests if behavior changes
|
|
37
|
+
- Add tests for new code paths
|
|
38
|
+
- Remove obsolete tests
|
|
39
|
+
|
|
40
|
+
## Post-Refactor Checklist
|
|
41
|
+
|
|
42
|
+
- [ ] All tests pass
|
|
43
|
+
- [ ] No new lint errors
|
|
44
|
+
- [ ] No TypeScript errors
|
|
45
|
+
- [ ] Test coverage maintained or improved
|
|
46
|
+
- [ ] Documentation updated
|
|
47
|
+
- [ ] No breaking changes to public API
|
|
48
|
+
|
|
49
|
+
## Common Refactoring Patterns
|
|
50
|
+
|
|
51
|
+
### Extract Method
|
|
52
|
+
```typescript
|
|
53
|
+
// Before
|
|
54
|
+
function process(data) {
|
|
55
|
+
// validation logic
|
|
56
|
+
// processing logic
|
|
57
|
+
// formatting logic
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// After
|
|
61
|
+
function process(data) {
|
|
62
|
+
validate(data);
|
|
63
|
+
const result = processData(data);
|
|
64
|
+
return formatResult(result);
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Rename Variable
|
|
69
|
+
- Use IDE refactoring tools
|
|
70
|
+
- Update all references
|
|
71
|
+
- Run tests to verify
|
|
72
|
+
|
|
73
|
+
### Move Method
|
|
74
|
+
- Update imports
|
|
75
|
+
- Check for circular dependencies
|
|
76
|
+
- Verify all callers updated
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-breakdown-and-dispatch
|
|
3
|
+
description: Decompose complex tasks into GitHub sub-issues and coordinate workflow
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
# Task Breakdown and Dispatch (GitHub Issue-Based)
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Large feature requests requiring multiple steps
|
|
11
|
+
- Complex bugs affecting multiple modules
|
|
12
|
+
- Tasks that need design before implementation
|
|
13
|
+
- Work items requiring staged validation
|
|
14
|
+
- Issues impacting public interfaces or contracts
|
|
15
|
+
|
|
16
|
+
## Decomposition Decision
|
|
17
|
+
|
|
18
|
+
### No Decomposition Needed
|
|
19
|
+
|
|
20
|
+
A task may remain single-scope if:
|
|
21
|
+
- Touches only one module
|
|
22
|
+
- No architecture decision needed
|
|
23
|
+
- One implementation step is enough
|
|
24
|
+
- One PR is likely enough
|
|
25
|
+
- Validation is simple
|
|
26
|
+
- Rollback is straightforward
|
|
27
|
+
|
|
28
|
+
### Decomposition Required
|
|
29
|
+
|
|
30
|
+
Decompose if ANY of these are true:
|
|
31
|
+
- Touches multiple modules
|
|
32
|
+
- Requires design before implementation
|
|
33
|
+
- Impacts public interfaces
|
|
34
|
+
- Changes data model, API contract, or protocol
|
|
35
|
+
- Likely needs multiple PRs
|
|
36
|
+
- Contains several distinct implementation steps
|
|
37
|
+
- Requires staged validation
|
|
38
|
+
- Has clear dependency order between subproblems
|
|
39
|
+
|
|
40
|
+
## Steps
|
|
41
|
+
|
|
42
|
+
### 1. Analyze the Parent Issue
|
|
43
|
+
|
|
44
|
+
1. Read the issue description carefully
|
|
45
|
+
2. Identify the problem scope
|
|
46
|
+
3. List affected modules and components
|
|
47
|
+
4. Note existing constraints
|
|
48
|
+
5. Check for related issues or PRs
|
|
49
|
+
|
|
50
|
+
### 2. Determine Decomposition Need
|
|
51
|
+
|
|
52
|
+
Answer these questions:
|
|
53
|
+
- Does this touch multiple modules?
|
|
54
|
+
- Is there a clear design phase needed?
|
|
55
|
+
- Will this likely need multiple PRs?
|
|
56
|
+
- Are there logical dependency chains?
|
|
57
|
+
- Is the scope clear and bounded?
|
|
58
|
+
|
|
59
|
+
If 2+ answers are "yes", decomposition is recommended.
|
|
60
|
+
|
|
61
|
+
### 3. Define Subtask Boundaries
|
|
62
|
+
|
|
63
|
+
1. Identify logical phases (analysis, design, implement, validate, review)
|
|
64
|
+
2. Group related work into bounded subtasks
|
|
65
|
+
3. Define clear acceptance criteria for each subtask
|
|
66
|
+
4. Specify module scope for each subtask
|
|
67
|
+
5. Assign recommended owner role
|
|
68
|
+
|
|
69
|
+
### 4. Define Dependencies
|
|
70
|
+
|
|
71
|
+
1. Map which subtasks depend on others
|
|
72
|
+
2. Identify parallelizable work
|
|
73
|
+
3. Document external dependencies
|
|
74
|
+
4. Consider risk ordering (high-risk first)
|
|
75
|
+
|
|
76
|
+
### 5. Create GitHub Sub-Issues
|
|
77
|
+
|
|
78
|
+
Use `gh issue create` for each subtask:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
gh issue create \
|
|
82
|
+
--title "[Subtask] Subtask title" \
|
|
83
|
+
--body "Parent Issue: #XXX
|
|
84
|
+
Dependencies: #YYY, #ZZZ
|
|
85
|
+
Owner Role: developer
|
|
86
|
+
Scope: ...
|
|
87
|
+
Acceptance Criteria: ..." \
|
|
88
|
+
--label "type:subtask,role:developer"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 6. Create Local Task Records
|
|
92
|
+
|
|
93
|
+
For each subtask, create:
|
|
94
|
+
- `tasks/issue-{N}-subtask-{M}/task.yaml`
|
|
95
|
+
- Include GitHub issue number
|
|
96
|
+
- Include parent reference
|
|
97
|
+
- Include dependency references
|
|
98
|
+
|
|
99
|
+
### 7. Update Parent Issue
|
|
100
|
+
|
|
101
|
+
Add to parent issue body:
|
|
102
|
+
- List of child issues
|
|
103
|
+
- Dependency graph
|
|
104
|
+
- Overall completion rule
|
|
105
|
+
|
|
106
|
+
### 8. Dispatch First Subtask
|
|
107
|
+
|
|
108
|
+
Identify the first ready subtask:
|
|
109
|
+
- All dependencies satisfied
|
|
110
|
+
- Clear acceptance criteria
|
|
111
|
+
- Assigned owner role
|
|
112
|
+
- Document dispatch decision
|
|
113
|
+
|
|
114
|
+
## Parent Task Manifest Template
|
|
115
|
+
|
|
116
|
+
```yaml
|
|
117
|
+
id: issue-120
|
|
118
|
+
title: Improve startup reliability
|
|
119
|
+
type: bug
|
|
120
|
+
status: in_analysis
|
|
121
|
+
priority: high
|
|
122
|
+
requires_decomposition: true
|
|
123
|
+
|
|
124
|
+
github_issue: 120
|
|
125
|
+
github_url: https://github.com/org/repo/issues/120
|
|
126
|
+
|
|
127
|
+
subtasks:
|
|
128
|
+
- id: issue-120-subtask-01
|
|
129
|
+
github_issue: 201
|
|
130
|
+
title: "[Subtask] Isolate configuration validation"
|
|
131
|
+
status: ready
|
|
132
|
+
owner_role: architect
|
|
133
|
+
- id: issue-120-subtask-02
|
|
134
|
+
github_issue: 202
|
|
135
|
+
title: "[Subtask] Refactor startup error path"
|
|
136
|
+
status: pending
|
|
137
|
+
depends_on: [201]
|
|
138
|
+
owner_role: developer
|
|
139
|
+
- id: issue-120-subtask-03
|
|
140
|
+
github_issue: 203
|
|
141
|
+
title: "[Subtask] Add regression coverage"
|
|
142
|
+
status: pending
|
|
143
|
+
depends_on: [202]
|
|
144
|
+
owner_role: qa
|
|
145
|
+
|
|
146
|
+
overall_acceptance_criteria:
|
|
147
|
+
- startup crash no longer occurs
|
|
148
|
+
- root cause documented
|
|
149
|
+
- regression coverage added
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Subtask Manifest Template
|
|
153
|
+
|
|
154
|
+
```yaml
|
|
155
|
+
id: issue-120-subtask-01
|
|
156
|
+
github_issue: 201
|
|
157
|
+
github_url: https://github.com/org/repo/issues/201
|
|
158
|
+
parent_task: issue-120
|
|
159
|
+
parent_github_issue: 120
|
|
160
|
+
|
|
161
|
+
title: "[Subtask] Isolate configuration validation"
|
|
162
|
+
type: implementation
|
|
163
|
+
status: ready
|
|
164
|
+
priority: high
|
|
165
|
+
owner_role: architect
|
|
166
|
+
|
|
167
|
+
depends_on: []
|
|
168
|
+
blocked_by: []
|
|
169
|
+
|
|
170
|
+
acceptance_criteria:
|
|
171
|
+
- configuration validation is isolated
|
|
172
|
+
- no startup crash for missing optional fields
|
|
173
|
+
- existing startup path unchanged
|
|
174
|
+
|
|
175
|
+
module_scope:
|
|
176
|
+
- config_loader
|
|
177
|
+
- startup
|
|
178
|
+
|
|
179
|
+
risk_level: medium
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Dispatch Output Format
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
Active sub-issue: #202
|
|
186
|
+
Role: developer
|
|
187
|
+
Reason: #201 is completed and architecture is stable
|
|
188
|
+
Dependencies: satisfied (depends on #201 which is done)
|
|
189
|
+
Next action: Create feature branch and implement
|
|
190
|
+
Blocked: no
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Blocked Task Recording
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
Blocked subtask: issue-120-subtask-02
|
|
197
|
+
Blocker type: missing_design_decision
|
|
198
|
+
Blocker source: issue-120-subtask-01 design pending
|
|
199
|
+
Required action: Complete design phase
|
|
200
|
+
Recommended next: Dispatch to architect
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Workflow State Machine
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
backlog → ready → in_analysis → in_design → in_implementation → in_validation → in_review → release_candidate → done
|
|
207
|
+
↓ ↓
|
|
208
|
+
blocked ←───────────────────────────────────────── ←
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Role Dispatch Guide
|
|
212
|
+
|
|
213
|
+
| Subtask Type | Target Role |
|
|
214
|
+
|--------------|-------------|
|
|
215
|
+
| analysis | architect |
|
|
216
|
+
| design | architect |
|
|
217
|
+
| implementation | developer |
|
|
218
|
+
| validation | qa |
|
|
219
|
+
| review | reviewer |
|
|
220
|
+
| ci-fix | ci-analyst |
|
|
221
|
+
| triage | triage |
|
|
222
|
+
|
|
223
|
+
## Completion Rules
|
|
224
|
+
|
|
225
|
+
### Subtask Completion
|
|
226
|
+
- Acceptance criteria satisfied
|
|
227
|
+
- Required validation complete
|
|
228
|
+
- Linked PR merged (if applicable)
|
|
229
|
+
- No unresolved blockers
|
|
230
|
+
|
|
231
|
+
### Parent Task Completion
|
|
232
|
+
- All required subtasks done
|
|
233
|
+
- Overall acceptance criteria satisfied
|
|
234
|
+
- Validation coverage complete
|
|
235
|
+
- No unresolved critical blockers
|
|
236
|
+
|
|
237
|
+
## Anti-Patterns to Avoid
|
|
238
|
+
|
|
239
|
+
1. **Conversational-Only Breakdown**: No explicit task objects created
|
|
240
|
+
2. **Everything Parallel**: All subtasks dispatched at once
|
|
241
|
+
3. **No Acceptance Criteria**: No clear done condition
|
|
242
|
+
4. **Planner Writes Code**: Planner implements instead of dispatching
|
|
243
|
+
5. **Parent Closed Early**: Parent closed before subtasks complete
|
|
244
|
+
6. **No GitHub Mapping**: Only local files, no GitHub issues
|
|
245
|
+
|
|
246
|
+
## Checklist
|
|
247
|
+
|
|
248
|
+
- [ ] Decomposition need determined
|
|
249
|
+
- [ ] Subtask boundaries defined
|
|
250
|
+
- [ ] Dependencies mapped
|
|
251
|
+
- [ ] GitHub sub-issues created
|
|
252
|
+
- [ ] Local task records created
|
|
253
|
+
- [ ] Parent issue updated
|
|
254
|
+
- [ ] First subtask dispatched
|
|
255
|
+
- [ ] State machine enforced
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-first-feature-dev
|
|
3
|
+
description: Implement features using test-driven development approach
|
|
4
|
+
license: MIT
|
|
5
|
+
---
|
|
6
|
+
# Test-First Feature Development
|
|
7
|
+
|
|
8
|
+
## When to Use
|
|
9
|
+
|
|
10
|
+
- Implementing new features
|
|
11
|
+
- Adding significant functionality
|
|
12
|
+
- When high confidence is needed
|
|
13
|
+
- For complex business logic
|
|
14
|
+
|
|
15
|
+
## Steps
|
|
16
|
+
|
|
17
|
+
### 1. Understand Requirements
|
|
18
|
+
1. Read and analyze the feature requirements
|
|
19
|
+
2. Identify acceptance criteria
|
|
20
|
+
3. Clarify edge cases and error scenarios
|
|
21
|
+
4. Break down into testable units
|
|
22
|
+
|
|
23
|
+
### 2. Write Test Cases
|
|
24
|
+
1. Start with happy path tests
|
|
25
|
+
2. Add edge case tests
|
|
26
|
+
3. Add error scenario tests
|
|
27
|
+
4. Consider boundary conditions
|
|
28
|
+
|
|
29
|
+
### 3. Write Failing Tests
|
|
30
|
+
1. Write the test code first
|
|
31
|
+
2. Run tests to confirm they fail
|
|
32
|
+
3. Verify failure reason is correct
|
|
33
|
+
4. Keep tests simple and focused
|
|
34
|
+
|
|
35
|
+
### 4. Implement Minimum Code
|
|
36
|
+
1. Write just enough code to pass
|
|
37
|
+
2. Don't over-engineer
|
|
38
|
+
3. Focus on the current test
|
|
39
|
+
|
|
40
|
+
### 5. Make Tests Pass
|
|
41
|
+
1. Run tests to verify pass
|
|
42
|
+
2. If failing, debug and fix
|
|
43
|
+
3. Confirm implementation is minimal
|
|
44
|
+
|
|
45
|
+
### 6. Refactor
|
|
46
|
+
1. Review the implementation
|
|
47
|
+
2. Identify code smells
|
|
48
|
+
3. Refactor while keeping tests green
|
|
49
|
+
4. Remove duplication
|
|
50
|
+
|
|
51
|
+
## Test Structure Template
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
describe('FeatureName', () => {
|
|
55
|
+
describe('methodName or scenario', () => {
|
|
56
|
+
it('should do something specific', () => {
|
|
57
|
+
// Arrange
|
|
58
|
+
const input = 'test data';
|
|
59
|
+
const expected = 'expected result';
|
|
60
|
+
|
|
61
|
+
// Act
|
|
62
|
+
const result = functionUnderTest(input);
|
|
63
|
+
|
|
64
|
+
// Assert
|
|
65
|
+
expect(result).toBe(expected);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Checklist
|
|
72
|
+
|
|
73
|
+
- [ ] Requirements understood
|
|
74
|
+
- [ ] Test cases designed
|
|
75
|
+
- [ ] Happy path tests written
|
|
76
|
+
- [ ] Edge case tests written
|
|
77
|
+
- [ ] All tests passing
|
|
78
|
+
- [ ] Code refactored
|