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,82 @@
|
|
|
1
|
+
# Planner Memory - Task Decomposition Notes
|
|
2
|
+
|
|
3
|
+
This file stores task decomposition and workflow orchestration knowledge.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Task Decomposition Patterns
|
|
8
|
+
|
|
9
|
+
### Feature Tasks
|
|
10
|
+
|
|
11
|
+
| Complexity | Typical Phases | Typical Duration |
|
|
12
|
+
|------------|----------------|------------------|
|
|
13
|
+
| Simple | Design → Implement → Test | 1-2 days |
|
|
14
|
+
| Moderate | Design → Implement → Test → Review | 3-5 days |
|
|
15
|
+
| Complex | Analysis → Design → Implement → Test → Review → Release | 1-2 weeks |
|
|
16
|
+
|
|
17
|
+
### Bug Tasks
|
|
18
|
+
|
|
19
|
+
| Severity | Typical Flow | Priority |
|
|
20
|
+
|----------|--------------|----------|
|
|
21
|
+
| Critical | Triage → Fix → Test → Deploy | Immediate |
|
|
22
|
+
| High | Triage → Fix → Test → Review | Within sprint |
|
|
23
|
+
| Medium | Triage → Fix → Test | Next sprint |
|
|
24
|
+
| Low | Triage → Fix | Backlog |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Workflow Rules
|
|
29
|
+
|
|
30
|
+
### Handoff Rules
|
|
31
|
+
|
|
32
|
+
| From | To | Criteria |
|
|
33
|
+
|------|-----|----------|
|
|
34
|
+
| Architect | Developer | Design approved |
|
|
35
|
+
| Developer | QA | Implementation complete |
|
|
36
|
+
| QA | Reviewer | Tests passing |
|
|
37
|
+
| Reviewer | Release | Review approved |
|
|
38
|
+
|
|
39
|
+
### Blocking Conditions
|
|
40
|
+
|
|
41
|
+
- Design not approved → Block implementation
|
|
42
|
+
- Tests failing → Block review
|
|
43
|
+
- Review not approved → Block merge
|
|
44
|
+
- Dependencies incomplete → Block start
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Dispatch Log
|
|
49
|
+
|
|
50
|
+
### [Date] - [Task ID]
|
|
51
|
+
|
|
52
|
+
**Task**: [Description]
|
|
53
|
+
|
|
54
|
+
**Decomposition**: [How it was broken down]
|
|
55
|
+
|
|
56
|
+
**Dispatch**: [Which roles were involved]
|
|
57
|
+
|
|
58
|
+
**Outcome**: [Result]
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Dependency Tracking
|
|
63
|
+
|
|
64
|
+
### Active Dependencies
|
|
65
|
+
|
|
66
|
+
| Task | Depends On | Status |
|
|
67
|
+
|------|------------|--------|
|
|
68
|
+
| | | |
|
|
69
|
+
|
|
70
|
+
### Dependency Resolution Strategies
|
|
71
|
+
|
|
72
|
+
- Parallelize when possible
|
|
73
|
+
- Break dependencies with interfaces
|
|
74
|
+
- Document assumptions when blocking
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Notes
|
|
79
|
+
|
|
80
|
+
- Update after each task decomposition
|
|
81
|
+
- Track patterns that work well
|
|
82
|
+
- Note recurring dependency issues
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Planner Memory - Flow Rules
|
|
2
|
+
|
|
3
|
+
This file stores workflow progression rules and state machine logic.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Task State Machine
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
backlog → ready → in_analysis → in_design → in_implementation → in_validation → in_review → release_candidate → done
|
|
11
|
+
↓ ↓
|
|
12
|
+
blocked ←───────────────────────────────────────── ←
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Valid State Transitions
|
|
16
|
+
|
|
17
|
+
| Current State | Valid Next States |
|
|
18
|
+
|---------------|-------------------|
|
|
19
|
+
| backlog | ready |
|
|
20
|
+
| ready | in_analysis, blocked |
|
|
21
|
+
| in_analysis | in_design, blocked, ready |
|
|
22
|
+
| in_design | in_implementation, blocked, in_analysis |
|
|
23
|
+
| in_implementation | in_validation, blocked, in_design |
|
|
24
|
+
| in_validation | in_review, in_implementation, blocked |
|
|
25
|
+
| in_review | release_candidate, in_implementation, blocked |
|
|
26
|
+
| release_candidate | done, in_review, blocked |
|
|
27
|
+
| blocked | (previous state before blocking) |
|
|
28
|
+
| done | (terminal) |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## State Entry Criteria
|
|
33
|
+
|
|
34
|
+
### ready
|
|
35
|
+
|
|
36
|
+
- Task has clear description
|
|
37
|
+
- Acceptance criteria defined
|
|
38
|
+
- Priority assigned
|
|
39
|
+
|
|
40
|
+
### in_analysis
|
|
41
|
+
|
|
42
|
+
- Architect assigned
|
|
43
|
+
- Analysis document created
|
|
44
|
+
|
|
45
|
+
### in_design
|
|
46
|
+
|
|
47
|
+
- Analysis complete
|
|
48
|
+
- Design document created
|
|
49
|
+
|
|
50
|
+
### in_implementation
|
|
51
|
+
|
|
52
|
+
- Design approved
|
|
53
|
+
- Developer assigned
|
|
54
|
+
|
|
55
|
+
### in_validation
|
|
56
|
+
|
|
57
|
+
- Implementation complete
|
|
58
|
+
- Tests written
|
|
59
|
+
|
|
60
|
+
### in_review
|
|
61
|
+
|
|
62
|
+
- Tests passing
|
|
63
|
+
- PR created
|
|
64
|
+
|
|
65
|
+
### release_candidate
|
|
66
|
+
|
|
67
|
+
- Review approved
|
|
68
|
+
- All checks passing
|
|
69
|
+
|
|
70
|
+
### blocked
|
|
71
|
+
|
|
72
|
+
- Blocking issue documented
|
|
73
|
+
- Escalation path defined
|
|
74
|
+
|
|
75
|
+
### done
|
|
76
|
+
|
|
77
|
+
- All acceptance criteria met
|
|
78
|
+
- PR merged
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Notes
|
|
83
|
+
|
|
84
|
+
- Follow state transitions strictly
|
|
85
|
+
- Document blocking reasons
|
|
86
|
+
- Escalate long-blocked tasks
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# Planner Memory - GitHub Issue Orchestration Patterns
|
|
2
|
+
|
|
3
|
+
This file stores patterns and rules for GitHub issue-based subtask orchestration.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## GitHub Issue Mapping
|
|
8
|
+
|
|
9
|
+
### Parent Issue Structure
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
Title: [Descriptive title]
|
|
13
|
+
|
|
14
|
+
Background:
|
|
15
|
+
[Context and problem statement]
|
|
16
|
+
|
|
17
|
+
Overall Acceptance Criteria:
|
|
18
|
+
- [ ] Criterion 1
|
|
19
|
+
- [ ] Criterion 2
|
|
20
|
+
- [ ] Criterion 3
|
|
21
|
+
|
|
22
|
+
Decomposition Status:
|
|
23
|
+
- required: true/false
|
|
24
|
+
- child_issues_created: true/false
|
|
25
|
+
|
|
26
|
+
Child Issues:
|
|
27
|
+
- #XXX: [Subtask] Title 1
|
|
28
|
+
- #YYY: [Subtask] Title 2
|
|
29
|
+
- #ZZZ: [Subtask] Title 3
|
|
30
|
+
|
|
31
|
+
Completion Rule:
|
|
32
|
+
This issue closes only when all child issues are completed.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Subtask Issue Structure
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
Title: [Subtask] Brief title
|
|
39
|
+
|
|
40
|
+
Parent Issue:
|
|
41
|
+
- #{parent-number}
|
|
42
|
+
|
|
43
|
+
Dependencies:
|
|
44
|
+
- #{dependency-issue-number} (if any)
|
|
45
|
+
|
|
46
|
+
Owner Role:
|
|
47
|
+
- architect | developer | qa | reviewer | triage | ci-analyst
|
|
48
|
+
|
|
49
|
+
Scope:
|
|
50
|
+
- [what this subtask covers]
|
|
51
|
+
|
|
52
|
+
Acceptance Criteria:
|
|
53
|
+
- [ ] Criterion 1
|
|
54
|
+
- [ ] Criterion 2
|
|
55
|
+
|
|
56
|
+
Out of Scope:
|
|
57
|
+
- [what is not covered]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Issue Labels
|
|
63
|
+
|
|
64
|
+
### Type Labels
|
|
65
|
+
- `type:feature` - New functionality
|
|
66
|
+
- `type:bug` - Bug fix
|
|
67
|
+
- `type:tech-task` - Technical debt, refactoring
|
|
68
|
+
- `type:subtask` - Child issue of a larger task
|
|
69
|
+
|
|
70
|
+
### Role Labels
|
|
71
|
+
- `role:architect` - Needs architecture work
|
|
72
|
+
- `role:developer` - Needs implementation
|
|
73
|
+
- `role:qa` - Needs validation
|
|
74
|
+
- `role:reviewer` - Needs review
|
|
75
|
+
- `role:triage` - Needs classification
|
|
76
|
+
- `role:ci-analyst` - Needs CI investigation
|
|
77
|
+
|
|
78
|
+
### State Labels
|
|
79
|
+
- `state:ready` - Ready to work
|
|
80
|
+
- `state:in-progress` - Currently being worked on
|
|
81
|
+
- `state:blocked` - Blocked by something
|
|
82
|
+
- `state:in-review` - Under review
|
|
83
|
+
- `state:validated` - Tests passing
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Dependency Patterns
|
|
88
|
+
|
|
89
|
+
### Sequential Chain
|
|
90
|
+
```
|
|
91
|
+
#201 (design) → #202 (implement) → #203 (test) → #204 (review)
|
|
92
|
+
```
|
|
93
|
+
Most common pattern. One subtask leads to the next.
|
|
94
|
+
|
|
95
|
+
### Fan-Out
|
|
96
|
+
```
|
|
97
|
+
→ #202 (implement A)
|
|
98
|
+
#201 (design) ────→ → #203 (implement B)
|
|
99
|
+
→ #204 (implement C)
|
|
100
|
+
```
|
|
101
|
+
One design enables multiple parallel implementations.
|
|
102
|
+
|
|
103
|
+
### Merge
|
|
104
|
+
```
|
|
105
|
+
#201 (implement A) ─┐
|
|
106
|
+
#202 (implement B) ─┼→ #203 (integration test)
|
|
107
|
+
#204 (implement C) ─┘
|
|
108
|
+
```
|
|
109
|
+
Multiple implementations merge into a validation step.
|
|
110
|
+
|
|
111
|
+
### External Dependency
|
|
112
|
+
```
|
|
113
|
+
#201 → [external artifact] → #202
|
|
114
|
+
```
|
|
115
|
+
Blocked by something outside the issue graph.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## State Mapping
|
|
120
|
+
|
|
121
|
+
| Local State | GitHub State | Label |
|
|
122
|
+
|-------------|--------------|-------|
|
|
123
|
+
| backlog | open | - |
|
|
124
|
+
| ready | open | state:ready |
|
|
125
|
+
| in_analysis | open | state:in-progress, role:architect |
|
|
126
|
+
| in_design | open | state:in-progress, role:architect |
|
|
127
|
+
| in_implementation | open | state:in-progress, role:developer |
|
|
128
|
+
| in_validation | open | state:in-progress, role:qa |
|
|
129
|
+
| in_review | open | state:in-review |
|
|
130
|
+
| release_candidate | open | state:validated |
|
|
131
|
+
| blocked | open | state:blocked |
|
|
132
|
+
| done | closed | - |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Dispatch Patterns
|
|
137
|
+
|
|
138
|
+
### Design-First Flow
|
|
139
|
+
```
|
|
140
|
+
Parent Issue
|
|
141
|
+
│
|
|
142
|
+
├── #201: [Subtask] Design (architect)
|
|
143
|
+
│ ↓
|
|
144
|
+
├── #202: [Subtask] Implement (developer)
|
|
145
|
+
│ ↓
|
|
146
|
+
├── #203: [Subtask] Test (qa)
|
|
147
|
+
│ ↓
|
|
148
|
+
└── #204: [Subtask] Review (reviewer)
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Parallel Implementation Flow
|
|
152
|
+
```
|
|
153
|
+
Parent Issue
|
|
154
|
+
│
|
|
155
|
+
├── #201: [Subtask] Design API (architect)
|
|
156
|
+
│ ↓
|
|
157
|
+
│ ├→ #202: [Subtask] Implement Client (developer)
|
|
158
|
+
│ └→ #203: [Subtask] Implement Server (developer)
|
|
159
|
+
│ ↓
|
|
160
|
+
└── #204: [Subtask] Integration Test (qa)
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Bug Fix Flow
|
|
164
|
+
```
|
|
165
|
+
Parent Issue (Bug)
|
|
166
|
+
│
|
|
167
|
+
├── #201: [Subtask] Investigate (triage)
|
|
168
|
+
│ ↓
|
|
169
|
+
├── #202: [Subtask] Fix (developer)
|
|
170
|
+
│ ↓
|
|
171
|
+
├── #203: [Subtask] Regression Test (qa)
|
|
172
|
+
│ ↓
|
|
173
|
+
└── #204: [Subtask] Review (reviewer)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## GitHub CLI Commands
|
|
179
|
+
|
|
180
|
+
### Create Subtask
|
|
181
|
+
```bash
|
|
182
|
+
gh issue create \
|
|
183
|
+
--title "[Subtask] Title" \
|
|
184
|
+
--body "Parent: #XXX
|
|
185
|
+
Dependencies: #YYY
|
|
186
|
+
Role: developer
|
|
187
|
+
..." \
|
|
188
|
+
--label "type:subtask,role:developer,state:ready"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Check Issue Status
|
|
192
|
+
```bash
|
|
193
|
+
gh issue view {number} --json number,title,state,labels
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Link PR to Issue
|
|
197
|
+
```bash
|
|
198
|
+
gh pr create --title "Title" --body "Fixes #XXX"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Close Issue
|
|
202
|
+
```bash
|
|
203
|
+
gh issue close {number} --comment "Completed via PR #YYY"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Completion Verification
|
|
209
|
+
|
|
210
|
+
### Subtask Completion Checklist
|
|
211
|
+
- [ ] Acceptance criteria met
|
|
212
|
+
- [ ] Linked PR merged (or not required)
|
|
213
|
+
- [ ] Tests passing
|
|
214
|
+
- [ ] GitHub issue closed
|
|
215
|
+
|
|
216
|
+
### Parent Completion Checklist
|
|
217
|
+
- [ ] All child issues closed
|
|
218
|
+
- [ ] Overall acceptance criteria met
|
|
219
|
+
- [ ] No unresolved blockers
|
|
220
|
+
- [ ] Documentation updated (if required)
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Notes
|
|
225
|
+
|
|
226
|
+
- Always maintain both GitHub and local task records
|
|
227
|
+
- Use labels consistently for project board integration
|
|
228
|
+
- One PR per subtask is preferred
|
|
229
|
+
- Never close parent before all children are complete
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# QA Memory - Regression Cases
|
|
2
|
+
|
|
3
|
+
This file tracks regression test cases and patterns for the QA agent.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Regression Test Categories
|
|
8
|
+
|
|
9
|
+
### Critical Path Tests
|
|
10
|
+
|
|
11
|
+
These tests must always pass. They cover core functionality.
|
|
12
|
+
|
|
13
|
+
| Test ID | Feature | Description | Priority |
|
|
14
|
+
|---------|---------|-------------|----------|
|
|
15
|
+
| REG-001 | AI Agents | Agent configuration loads correctly | P0 |
|
|
16
|
+
| REG-002 | Memory | Memory directories are accessible | P0 |
|
|
17
|
+
| REG-003 | Commands | Commands execute correctly | P0 |
|
|
18
|
+
|
|
19
|
+
### Security Tests
|
|
20
|
+
|
|
21
|
+
| Test ID | Feature | Description | Priority |
|
|
22
|
+
|---------|---------|-------------|----------|
|
|
23
|
+
| SEC-001 | Auth | Authentication validates tokens | P0 |
|
|
24
|
+
| SEC-002 | Input | Input sanitization works | P0 |
|
|
25
|
+
| SEC-003 | Access | Access control enforced | P1 |
|
|
26
|
+
|
|
27
|
+
### Performance Tests
|
|
28
|
+
|
|
29
|
+
| Test ID | Feature | Description | Priority |
|
|
30
|
+
|---------|---------|-------------|----------|
|
|
31
|
+
| PER-001 | Build | Build completes in reasonable time | P1 |
|
|
32
|
+
| PER-002 | Tests | Test suite runs in reasonable time | P1 |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Regression Checklist Template
|
|
37
|
+
|
|
38
|
+
### Before Each Release
|
|
39
|
+
|
|
40
|
+
- [ ] All P0 tests pass
|
|
41
|
+
- [ ] All P1 tests pass
|
|
42
|
+
- [ ] Coverage meets threshold
|
|
43
|
+
- [ ] No new lint errors
|
|
44
|
+
- [ ] Build succeeds
|
|
45
|
+
- [ ] Documentation updated
|
|
46
|
+
|
|
47
|
+
### After Bug Fixes
|
|
48
|
+
|
|
49
|
+
- [ ] Bug reproduction test added
|
|
50
|
+
- [ ] Related tests still pass
|
|
51
|
+
- [ ] No regression in similar features
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Regression Patterns
|
|
56
|
+
|
|
57
|
+
### Pattern: State Pollution
|
|
58
|
+
|
|
59
|
+
**Symptoms**: Tests pass individually but fail when run together
|
|
60
|
+
|
|
61
|
+
**Cause**: Shared state between tests
|
|
62
|
+
|
|
63
|
+
**Prevention**: Reset state in beforeEach/afterEach
|
|
64
|
+
|
|
65
|
+
### Pattern: Timing Issues
|
|
66
|
+
|
|
67
|
+
**Symptoms**: Tests fail intermittently
|
|
68
|
+
|
|
69
|
+
**Cause**: Race conditions or async timing
|
|
70
|
+
|
|
71
|
+
**Prevention**: Use proper async handling, avoid arbitrary waits
|
|
72
|
+
|
|
73
|
+
### Pattern: Environment Differences
|
|
74
|
+
|
|
75
|
+
**Symptoms**: Tests pass locally but fail in CI
|
|
76
|
+
|
|
77
|
+
**Cause**: Different environment configuration
|
|
78
|
+
|
|
79
|
+
**Prevention**: Use consistent environment setup
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Regression Log
|
|
84
|
+
|
|
85
|
+
### [Date] - [Regression Description]
|
|
86
|
+
|
|
87
|
+
**Issue**: [What regressed]
|
|
88
|
+
|
|
89
|
+
**Root Cause**: [Why it happened]
|
|
90
|
+
|
|
91
|
+
**Fix**: [How it was resolved]
|
|
92
|
+
|
|
93
|
+
**Test Added**: [What test prevents recurrence]
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Notes
|
|
98
|
+
|
|
99
|
+
- Update regression cases when new features are added
|
|
100
|
+
- Document any regression patterns discovered
|
|
101
|
+
- Keep priority classifications current
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# QA Memory - Test Strategy
|
|
2
|
+
|
|
3
|
+
This file defines the testing strategy and approach for the QA agent.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Testing Philosophy
|
|
8
|
+
|
|
9
|
+
### Core Principles
|
|
10
|
+
|
|
11
|
+
1. **Test behavior, not implementation**
|
|
12
|
+
2. **Tests should be deterministic**
|
|
13
|
+
3. **Each test should verify one thing**
|
|
14
|
+
4. **Tests should be independent**
|
|
15
|
+
5. **Tests should be fast**
|
|
16
|
+
|
|
17
|
+
### Test Pyramid
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/\
|
|
21
|
+
/ \
|
|
22
|
+
/ E2E\ Few, slow, high confidence
|
|
23
|
+
/------\
|
|
24
|
+
/ \
|
|
25
|
+
/Integration\ Some, moderate speed
|
|
26
|
+
/-----------\
|
|
27
|
+
/ \
|
|
28
|
+
/ Unit \ Many, fast, focused
|
|
29
|
+
-----------------
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Test Categories
|
|
35
|
+
|
|
36
|
+
### Unit Tests
|
|
37
|
+
|
|
38
|
+
| Aspect | Guidelines |
|
|
39
|
+
|--------|------------|
|
|
40
|
+
| Scope | Single function or class |
|
|
41
|
+
| Speed | < 100ms per test |
|
|
42
|
+
| Dependencies | Mocked |
|
|
43
|
+
| Coverage | > 80% for business logic |
|
|
44
|
+
|
|
45
|
+
### Integration Tests
|
|
46
|
+
|
|
47
|
+
| Aspect | Guidelines |
|
|
48
|
+
|--------|------------|
|
|
49
|
+
| Scope | Multiple components |
|
|
50
|
+
| Speed | < 1s per test |
|
|
51
|
+
| Dependencies | Real or test doubles |
|
|
52
|
+
| Coverage | Critical paths |
|
|
53
|
+
|
|
54
|
+
### End-to-End Tests
|
|
55
|
+
|
|
56
|
+
| Aspect | Guidelines |
|
|
57
|
+
|--------|------------|
|
|
58
|
+
| Scope | Full system |
|
|
59
|
+
| Speed | Seconds to minutes |
|
|
60
|
+
| Dependencies | All real |
|
|
61
|
+
| Coverage | User journeys |
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Test Structure (AAA Pattern)
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
describe('ComponentName', () => {
|
|
69
|
+
describe('methodName', () => {
|
|
70
|
+
it('should do something when condition', () => {
|
|
71
|
+
// Arrange
|
|
72
|
+
const input = createTestInput();
|
|
73
|
+
const expected = createExpectedOutput();
|
|
74
|
+
|
|
75
|
+
// Act
|
|
76
|
+
const result = component.method(input);
|
|
77
|
+
|
|
78
|
+
// Assert
|
|
79
|
+
expect(result).toEqual(expected);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Test Naming Convention
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
should_[expectedBehavior]_when_[condition]
|
|
91
|
+
|
|
92
|
+
Examples:
|
|
93
|
+
- should_returnUser_when_validId
|
|
94
|
+
- should_throwError_when_invalidInput
|
|
95
|
+
- should_sendEmail_when_userSubscribes
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Test Data Management
|
|
101
|
+
|
|
102
|
+
### Factories
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
function createTestUser(overrides = {}) {
|
|
106
|
+
return {
|
|
107
|
+
id: 'test-user-id',
|
|
108
|
+
name: 'Test User',
|
|
109
|
+
email: 'test@example.com',
|
|
110
|
+
...overrides
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Fixtures
|
|
116
|
+
|
|
117
|
+
- Store complex test data in `__fixtures__/` directories
|
|
118
|
+
- Keep fixtures close to tests that use them
|
|
119
|
+
- Use JSON for complex objects
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Coverage Targets
|
|
124
|
+
|
|
125
|
+
| Type | Target | Rationale |
|
|
126
|
+
|------|--------|-----------|
|
|
127
|
+
| Branches | 80% | Catch edge cases |
|
|
128
|
+
| Functions | 80% | All code paths tested |
|
|
129
|
+
| Lines | 80% | Sufficient coverage |
|
|
130
|
+
| Statements | 80% | Granular coverage |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Notes
|
|
135
|
+
|
|
136
|
+
- Update this file when testing approach changes
|
|
137
|
+
- Document new testing patterns
|
|
138
|
+
- Track coverage trends
|