triples-agentic 2.4.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/LICENSE +21 -0
- package/README.md +326 -0
- package/docs/workflow.md +163 -0
- package/install.sh +98 -0
- package/package.json +54 -0
- package/src/agents/README.md +85 -0
- package/src/agents/jiwoo-prd.md +84 -0
- package/src/agents/kaede-backend.md +95 -0
- package/src/agents/kotone-flutter.md +100 -0
- package/src/agents/lynn-testcase.md +92 -0
- package/src/agents/nakyoung-tasks.md +89 -0
- package/src/agents/seoyeon.md +76 -0
- package/src/agents/shion-qa.md +89 -0
- package/src/agents/sohyun-ios.md +97 -0
- package/src/agents/yeonji-android.md +98 -0
- package/src/agents/yooyeon-rfc.md +82 -0
- package/src/agents/yubin-frontend.md +88 -0
- package/src/bin/setup.js +640 -0
- package/src/hooks/README.md +102 -0
- package/src/hooks/dangerous-commands.json +33 -0
- package/src/hooks/dangerous-commands.md +18 -0
- package/src/knowledge/README.md +129 -0
- package/src/knowledge/general/boy-scout-rule.md +13 -0
- package/src/knowledge/general/composition-over-inheritance.md +14 -0
- package/src/knowledge/general/dry.md +14 -0
- package/src/knowledge/general/fail-fast.md +13 -0
- package/src/knowledge/general/kiss.md +15 -0
- package/src/knowledge/general/least-surprise.md +13 -0
- package/src/knowledge/general/slap.md +29 -0
- package/src/knowledge/general/solid.md +44 -0
- package/src/knowledge/general/tdd.md +76 -0
- package/src/knowledge/general/yagni.md +12 -0
- package/src/knowledge/mobile/android/android-architecture.md +83 -0
- package/src/knowledge/mobile/android/android-platform.md +60 -0
- package/src/knowledge/mobile/android/kotlin-concurrency.md +75 -0
- package/src/knowledge/mobile/android/kotlin-core.md +88 -0
- package/src/knowledge/mobile/flutter/dart-async.md +93 -0
- package/src/knowledge/mobile/flutter/dart-core.md +97 -0
- package/src/knowledge/mobile/flutter/flutter-architecture.md +88 -0
- package/src/knowledge/mobile/flutter/flutter-platform.md +79 -0
- package/src/knowledge/mobile/ios/ios-architecture.md +88 -0
- package/src/knowledge/mobile/ios/ios-platform.md +66 -0
- package/src/knowledge/mobile/ios/swift-concurrency.md +99 -0
- package/src/knowledge/mobile/ios/swift-core.md +79 -0
- package/src/knowledge/planning/architecture-database.md +47 -0
- package/src/knowledge/planning/architecture-patterns.md +64 -0
- package/src/knowledge/planning/architecture-security.md +61 -0
- package/src/knowledge/planning/estimation.md +82 -0
- package/src/knowledge/planning/orchestration.md +70 -0
- package/src/knowledge/planning/prd-quality-gates.md +38 -0
- package/src/knowledge/planning/prd-writing.md +59 -0
- package/src/knowledge/planning/product-principles.md +48 -0
- package/src/knowledge/planning/product-prioritization.md +45 -0
- package/src/knowledge/planning/rfc-quality-gates.md +38 -0
- package/src/knowledge/planning/rfc-writing.md +81 -0
- package/src/knowledge/planning/task-decomposition.md +61 -0
- package/src/knowledge/planning/task-readiness.md +64 -0
- package/src/knowledge/quality/qa-execution.md +55 -0
- package/src/knowledge/quality/qa-reporting.md +71 -0
- package/src/knowledge/quality/test-case-quality.md +61 -0
- package/src/knowledge/quality/test-case-writing.md +76 -0
- package/src/knowledge/quality/testing-strategy.md +70 -0
- package/src/knowledge/quality/testing-types.md +84 -0
- package/src/knowledge/web/backend/api-design.md +74 -0
- package/src/knowledge/web/backend/api-security.md +54 -0
- package/src/knowledge/web/backend/backend-security.md +84 -0
- package/src/knowledge/web/backend/backend-structure.md +78 -0
- package/src/knowledge/web/frontend/frontend-components.md +49 -0
- package/src/knowledge/web/frontend/frontend-performance.md +41 -0
- package/src/knowledge/web/frontend/frontend-state.md +59 -0
- package/src/knowledge/web/frontend/web-accessibility.md +51 -0
- package/src/knowledge/web/frontend/web-performance.md +51 -0
- package/src/knowledge/web/frontend/web-security.md +59 -0
- package/src/templates/prd.md +109 -0
- package/src/templates/rfc.md +156 -0
- package/src/templates/task-breakdown.md +172 -0
- package/src/templates/test-case.md +157 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-principles
|
|
3
|
+
description: Core product management principles, user research methods, MVP definition, and definition of done
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Product Management Principles
|
|
7
|
+
|
|
8
|
+
## Core PM Principles
|
|
9
|
+
|
|
10
|
+
1. **Fall in love with the problem, not the solution.** The solution will change; the problem should remain stable throughout a product cycle.
|
|
11
|
+
2. **Outcomes over outputs.** Shipping features is not success. User behavior change is success.
|
|
12
|
+
3. **Say no by default.** Every feature added is maintenance burden forever. The default answer to a feature request is "not yet."
|
|
13
|
+
4. **Talk to users.** Assumptions about user behavior are almost always wrong. One user interview beats ten internal debates.
|
|
14
|
+
|
|
15
|
+
## User Research Methods
|
|
16
|
+
|
|
17
|
+
### Discovery Research (before PRD)
|
|
18
|
+
- **User interviews** — open-ended, 30–45 min, listen 80% of the time
|
|
19
|
+
- **Job stories** — "When [situation], I want to [motivation], so I can [outcome]"
|
|
20
|
+
- **Competitive analysis** — how do alternatives solve the same problem?
|
|
21
|
+
- **Analytics review** — where do users drop off in the current product?
|
|
22
|
+
|
|
23
|
+
### Validation Research (during development)
|
|
24
|
+
- **Usability testing** — can users complete core tasks without help?
|
|
25
|
+
- **A/B testing** — which variant achieves better outcomes at scale?
|
|
26
|
+
- **Beta feedback** — structured feedback from early adopters
|
|
27
|
+
|
|
28
|
+
## MVP Definition
|
|
29
|
+
|
|
30
|
+
An MVP is the smallest thing that proves (or disproves) your core hypothesis.
|
|
31
|
+
|
|
32
|
+
An MVP is NOT:
|
|
33
|
+
- A scaled-down version of the full product
|
|
34
|
+
- Something with "all the basics"
|
|
35
|
+
- A prototype with no real users
|
|
36
|
+
|
|
37
|
+
An MVP IS:
|
|
38
|
+
- One user journey, done end-to-end
|
|
39
|
+
- Enough to get real feedback from real users
|
|
40
|
+
- Deployable and measurable
|
|
41
|
+
|
|
42
|
+
## Definition of Done (Product Perspective)
|
|
43
|
+
|
|
44
|
+
A feature is done when:
|
|
45
|
+
- It meets all acceptance criteria in the PRD
|
|
46
|
+
- It has been tested by a real user (or QA standing in)
|
|
47
|
+
- Success metrics are instrumented and tracking
|
|
48
|
+
- Documentation is updated if applicable
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-prioritization
|
|
3
|
+
description: Prioritization frameworks (RICE, MoSCoW), stakeholder communication, and feature request handling
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Product Prioritization & Stakeholder Communication
|
|
7
|
+
|
|
8
|
+
## Prioritization Frameworks
|
|
9
|
+
|
|
10
|
+
### RICE Score
|
|
11
|
+
- **Reach** — how many users affected per time period?
|
|
12
|
+
- **Impact** — how much does it move the metric? (1=minimal, 3=massive)
|
|
13
|
+
- **Confidence** — how sure are we? (expressed as %)
|
|
14
|
+
- **Effort** — person-weeks to build
|
|
15
|
+
- Score = (Reach × Impact × Confidence) / Effort
|
|
16
|
+
|
|
17
|
+
### MoSCoW
|
|
18
|
+
- **Must have** — without this, the product fails
|
|
19
|
+
- **Should have** — important but workarounds exist
|
|
20
|
+
- **Could have** — nice to have, cut if time is tight
|
|
21
|
+
- **Won't have** — explicitly out of scope for this release
|
|
22
|
+
|
|
23
|
+
### Opportunity Scoring
|
|
24
|
+
Rate each opportunity on two axes:
|
|
25
|
+
- How important is this to users? (1–10)
|
|
26
|
+
- How satisfied are users with current solutions? (1–10)
|
|
27
|
+
|
|
28
|
+
High importance + low satisfaction = highest priority opportunity.
|
|
29
|
+
|
|
30
|
+
## Stakeholder Communication
|
|
31
|
+
|
|
32
|
+
- **Weekly status**: what shipped, what's next, what's blocked — 5 bullets max
|
|
33
|
+
- **Scope changes**: always quantify impact on timeline before escalating
|
|
34
|
+
- **Feature requests from stakeholders**: "What outcome are you trying to drive?" before writing a line of spec
|
|
35
|
+
- **Engineering pushback**: legitimate technical concerns modify scope; never override without understanding the constraint
|
|
36
|
+
- **Conflict resolution**: trace every requirement back to a user need; if it can't be traced, cut it
|
|
37
|
+
|
|
38
|
+
## Handling Feature Requests
|
|
39
|
+
|
|
40
|
+
1. "What problem does this solve for the user?"
|
|
41
|
+
2. "What happens if we don't build this?"
|
|
42
|
+
3. "How many users face this problem, and how often?"
|
|
43
|
+
4. "What's the simplest version that proves value?"
|
|
44
|
+
|
|
45
|
+
Never say "yes, we'll build it." Say "yes, we'll consider it in the next planning cycle against other priorities."
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rfc-quality-gates
|
|
3
|
+
description: RFC quality gate checklist, anti-patterns, and evaluation criteria for implementation readiness
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RFC Quality Gates & Anti-Patterns
|
|
7
|
+
|
|
8
|
+
## Quality Gates
|
|
9
|
+
|
|
10
|
+
ALL of the following must pass before an RFC is marked implementation-ready:
|
|
11
|
+
|
|
12
|
+
- [ ] **Architecture decision** — the chosen approach is stated clearly with a rationale
|
|
13
|
+
- [ ] **Alternatives documented** — at least 2 alternatives considered and rejected with reasoning
|
|
14
|
+
- [ ] **Data model** — entities and relationships defined (even if approximate)
|
|
15
|
+
- [ ] **API contracts** — public interfaces defined with request/response shapes
|
|
16
|
+
- [ ] **Risk assessment** — at least one risk identified with a mitigation
|
|
17
|
+
- [ ] **Rollback plan** — how to undo this change if it goes wrong
|
|
18
|
+
- [ ] **No scope creep** — RFC stays within the bounds of the approved PRD
|
|
19
|
+
- [ ] **Open questions closed** — no unresolved technical blockers before handoff
|
|
20
|
+
|
|
21
|
+
## Evaluation Output
|
|
22
|
+
|
|
23
|
+
Run all gates and output exactly one of:
|
|
24
|
+
|
|
25
|
+
- `✅ READY — RFC meets all quality gates.`
|
|
26
|
+
- `❌ GAPS FOUND: [numbered list of failing gates with specific technical questions to resolve]`
|
|
27
|
+
|
|
28
|
+
## Anti-Patterns to Avoid
|
|
29
|
+
|
|
30
|
+
| Anti-Pattern | Problem | Fix |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| "We'll figure out the DB schema later" | Blocks task estimation | Design the schema now, mark as draft |
|
|
33
|
+
| RFC written after code is done | Not a design doc, a post-mortem | Write RFC before implementation |
|
|
34
|
+
| No alternatives section | Appears like the first idea was the only idea | Always document what was rejected |
|
|
35
|
+
| "Industry standard approach" without citation | Vague justification | Name the standard and link to it |
|
|
36
|
+
| Mixing security concerns into every section | Hard to review | Dedicated security section |
|
|
37
|
+
| Rollout plan missing | No way to safely deploy | Always include feature flag + rollback |
|
|
38
|
+
| Vague risk ("could be slow") | Not actionable | Quantify: "p95 > 500ms under 1000 RPS" |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rfc-writing
|
|
3
|
+
description: How to write a Request for Comments — structure, trade-off analysis, alternatives, and rollout planning
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RFC Writing — Structure & Standards
|
|
7
|
+
|
|
8
|
+
## What an RFC Is
|
|
9
|
+
|
|
10
|
+
A Request for Comments is a technical design document that proposes HOW to build something. It is written after the PRD (what/why) is approved. The RFC:
|
|
11
|
+
- Documents the chosen technical approach and its trade-offs
|
|
12
|
+
- Surfaces risks before code is written
|
|
13
|
+
- Creates a record of technical decisions and why they were made
|
|
14
|
+
- Collects feedback from the team before implementation begins
|
|
15
|
+
|
|
16
|
+
## RFC Structure
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
# RFC: [Feature / System Name]
|
|
20
|
+
**Status:** Draft | Under Review | Approved | Superseded
|
|
21
|
+
**Author:** [Name]
|
|
22
|
+
**Date:** YYYY-MM-DD
|
|
23
|
+
**Related PRD:** workspace/PRD.md
|
|
24
|
+
|
|
25
|
+
## Summary
|
|
26
|
+
One paragraph: what is being built, using what approach, and the key trade-off accepted.
|
|
27
|
+
|
|
28
|
+
## Motivation
|
|
29
|
+
Why are we building this now? Reference the PRD problem statement.
|
|
30
|
+
|
|
31
|
+
## Technical Proposal
|
|
32
|
+
### Architecture Overview
|
|
33
|
+
High-level diagram or description of how components interact.
|
|
34
|
+
|
|
35
|
+
### Data Model
|
|
36
|
+
Key entities, relationships, and storage approach.
|
|
37
|
+
|
|
38
|
+
### API Contracts
|
|
39
|
+
Endpoint definitions, request/response shapes, authentication.
|
|
40
|
+
|
|
41
|
+
### Key Algorithms / Business Logic
|
|
42
|
+
Non-trivial logic that needs design attention.
|
|
43
|
+
|
|
44
|
+
### Infrastructure & Deployment
|
|
45
|
+
Where does this run? How does it scale? What observability is needed?
|
|
46
|
+
|
|
47
|
+
## Alternatives Considered
|
|
48
|
+
For each alternative: what is it, why was it rejected?
|
|
49
|
+
|
|
50
|
+
## Trade-offs & Risks
|
|
51
|
+
What are we giving up? What could go wrong? Include mitigation for each risk.
|
|
52
|
+
|
|
53
|
+
## Migration Plan
|
|
54
|
+
If this changes existing behavior: how do we migrate data and users safely?
|
|
55
|
+
|
|
56
|
+
## Rollout Plan
|
|
57
|
+
Feature flag strategy, phased rollout, rollback procedure.
|
|
58
|
+
|
|
59
|
+
## Open Questions
|
|
60
|
+
Technical questions that need resolution before or during implementation.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Writing Principles
|
|
64
|
+
|
|
65
|
+
1. **One decision per RFC.** An RFC that tries to design three systems is too big. Split it.
|
|
66
|
+
2. **State the trade-off explicitly.** "We chose X. This means we accept Y."
|
|
67
|
+
3. **Diagrams beat prose.** ASCII diagrams, sequence diagrams, and ER diagrams communicate faster.
|
|
68
|
+
4. **Separate what from how.** Architecture section = what components exist. Implementation section = how each works.
|
|
69
|
+
5. **Date every decision.** Technology landscapes change. A decision that made sense in 2022 may not in 2025.
|
|
70
|
+
|
|
71
|
+
## Architecture Decision Records (ADR)
|
|
72
|
+
|
|
73
|
+
For decisions that affect the whole system, write a formal ADR:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
# ADR-XXX: [Decision Title]
|
|
77
|
+
**Status:** Proposed | Accepted | Deprecated | Superseded
|
|
78
|
+
**Context:** Why does this decision need to be made?
|
|
79
|
+
**Decision:** What was decided?
|
|
80
|
+
**Consequences:** What does this mean going forward?
|
|
81
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-decomposition
|
|
3
|
+
description: Task hierarchy (epic/story/task), decomposition rules, story mapping, and sprint planning conventions
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Decomposition
|
|
7
|
+
|
|
8
|
+
## Hierarchy
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
Initiative (months)
|
|
12
|
+
└── Epic (weeks)
|
|
13
|
+
└── User Story (days)
|
|
14
|
+
└── Task (hours)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- **Initiative**: a strategic goal ("launch mobile app")
|
|
18
|
+
- **Epic**: a large body of work that delivers meaningful value ("user authentication")
|
|
19
|
+
- **User Story**: a single user-facing unit of value ("user can log in with email/password")
|
|
20
|
+
- **Task**: a technical work item ("implement JWT middleware")
|
|
21
|
+
|
|
22
|
+
## Decomposition Rules
|
|
23
|
+
|
|
24
|
+
1. **One task = one concern.** If a task has an "and" in the title, split it.
|
|
25
|
+
2. **Tasks must be independently completable.** A task blocked by another should list the dependency explicitly.
|
|
26
|
+
3. **No task should be longer than 2 days (16h).** If it is, decompose it further.
|
|
27
|
+
4. **Every task must have testable acceptance criteria.** "Done" is not a criterion.
|
|
28
|
+
5. **Estimate at the task level, not story level.** Roll up estimates bottom-up.
|
|
29
|
+
|
|
30
|
+
## Story Mapping
|
|
31
|
+
|
|
32
|
+
Story mapping organises user stories by user journey (x-axis) and priority/release (y-axis):
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
User Journey → Login → Browse → Purchase → Receipt
|
|
36
|
+
------- ------- ---------- -------
|
|
37
|
+
MVP (Row 1) Email List Cart Email
|
|
38
|
+
login view checkout receipt
|
|
39
|
+
|
|
40
|
+
v1.1 (Row 2) Social Search Saved cards PDF
|
|
41
|
+
login filter (1-click) download
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Walk the journey before breaking into tasks. This prevents building features in the wrong order.
|
|
45
|
+
|
|
46
|
+
## Sprint Planning Conventions
|
|
47
|
+
|
|
48
|
+
- Sprint capacity = (team size × days per sprint × hours per day) × 0.7 (sustainable pace)
|
|
49
|
+
- Use yesterday's weather for velocity: if the team completes 30 points per sprint, plan 30 points
|
|
50
|
+
- Leave 20% capacity for bug fixes, tech debt, and unplanned work
|
|
51
|
+
- Never plan more than 80% of individual capacity
|
|
52
|
+
|
|
53
|
+
## Infrastructure Tasks
|
|
54
|
+
|
|
55
|
+
Technical tasks required by the RFC that don't map to user stories must also be included:
|
|
56
|
+
- Database migrations and schema setup
|
|
57
|
+
- CI/CD pipeline configuration
|
|
58
|
+
- Third-party service integration setup
|
|
59
|
+
- Environment and secrets configuration
|
|
60
|
+
|
|
61
|
+
These should be estimated and sequenced like any other task.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-readiness
|
|
3
|
+
description: Task format template, definition of done, and readiness checklist for tasks before development starts
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Readiness & Format
|
|
7
|
+
|
|
8
|
+
## Task Format
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
## Task: [Short imperative title]
|
|
12
|
+
|
|
13
|
+
**Story Points:** [1 / 2 / 3 / 5 / 8 / 13]
|
|
14
|
+
**Estimated Hours:** [X–Y hours]
|
|
15
|
+
**Assignee:** [Agent name or role]
|
|
16
|
+
**Dependencies:** [Task IDs this depends on]
|
|
17
|
+
**Platform:** [Web / Android / iOS / Flutter / Backend / All]
|
|
18
|
+
|
|
19
|
+
### Description
|
|
20
|
+
One paragraph of what needs to be done and why.
|
|
21
|
+
|
|
22
|
+
### Acceptance Criteria
|
|
23
|
+
- [ ] Criterion 1 (testable, binary pass/fail)
|
|
24
|
+
- [ ] Criterion 2
|
|
25
|
+
- [ ] Criterion 3
|
|
26
|
+
|
|
27
|
+
### Technical Notes
|
|
28
|
+
Any non-obvious implementation notes, constraints, or gotchas.
|
|
29
|
+
|
|
30
|
+
### Definition of Done
|
|
31
|
+
- [ ] Code written and reviewed
|
|
32
|
+
- [ ] Unit tests passing
|
|
33
|
+
- [ ] Integrated and verified in dev environment
|
|
34
|
+
- [ ] QA signed off (for user-facing changes)
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Readiness Checklist (Is a Task Ready to Start?)
|
|
38
|
+
|
|
39
|
+
- [ ] Acceptance criteria are written and agreed upon
|
|
40
|
+
- [ ] Dependencies are identified and unblocked (or sequenced)
|
|
41
|
+
- [ ] Story points are estimated by the person who will do the work
|
|
42
|
+
- [ ] Design assets/mockups are available (for UI tasks)
|
|
43
|
+
- [ ] API contracts are defined (for integration tasks)
|
|
44
|
+
- [ ] The task fits within one sprint (≤ 2 days / 16 hours)
|
|
45
|
+
|
|
46
|
+
## Dependency Mapping
|
|
47
|
+
|
|
48
|
+
Express dependencies explicitly between tasks:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
TASK-I01 (DB setup)
|
|
52
|
+
└── TASK-001 (API endpoint)
|
|
53
|
+
└── TASK-002 (Frontend integration)
|
|
54
|
+
└── TASK-003 (UI polish)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Never start a task with unresolved upstream dependencies. If the dependency can't be resolved, flag it to the orchestrator (SeoYeon) immediately.
|
|
58
|
+
|
|
59
|
+
## Evaluation Output
|
|
60
|
+
|
|
61
|
+
Run all gates and output exactly one of:
|
|
62
|
+
|
|
63
|
+
- `✅ READY — All tasks meet the readiness checklist.`
|
|
64
|
+
- `❌ GAPS FOUND: [numbered list of specific unclear or missing items]`
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-execution
|
|
3
|
+
description: QA execution process — pre-test checklist, smoke testing, exploratory testing, and platform-specific considerations
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QA Execution
|
|
7
|
+
|
|
8
|
+
## QA Role
|
|
9
|
+
|
|
10
|
+
The QA Engineer's job is to find real problems before users do — not to rubber-stamp development output. A QA engineer who never finds bugs is not doing their job; a QA engineer who blocks release without evidence is equally unhelpful.
|
|
11
|
+
|
|
12
|
+
## Execution Process
|
|
13
|
+
|
|
14
|
+
### 1. Pre-Testing Checklist
|
|
15
|
+
- [ ] Build/deployment confirmed stable
|
|
16
|
+
- [ ] Test environment matches target environment (data, config)
|
|
17
|
+
- [ ] Test data and fixtures are in place
|
|
18
|
+
- [ ] Test cases reviewed and understood
|
|
19
|
+
- [ ] Feature scope confirmed with developer
|
|
20
|
+
|
|
21
|
+
### 2. Smoke Testing First
|
|
22
|
+
Run P0 test cases only. If smoke tests fail, **stop and report immediately** — do not continue with full test suite on an unstable build.
|
|
23
|
+
|
|
24
|
+
### 3. Systematic Execution
|
|
25
|
+
Execute in priority order: P0 → P1 → P2 → P3.
|
|
26
|
+
Document actual result for every test case: Pass / Fail / Blocked / Skipped (with reason).
|
|
27
|
+
|
|
28
|
+
### 4. Exploratory Testing
|
|
29
|
+
After structured cases:
|
|
30
|
+
- Try unexpected inputs and sequences
|
|
31
|
+
- Check edge cases not covered in test cases
|
|
32
|
+
- Test integrations between new and existing features
|
|
33
|
+
- Verify consistency with the rest of the product
|
|
34
|
+
|
|
35
|
+
## Platform-Specific Considerations
|
|
36
|
+
|
|
37
|
+
### Web
|
|
38
|
+
- Browsers: Chrome (latest), Firefox (latest), Safari (latest), Edge (latest)
|
|
39
|
+
- Viewports: 375px (mobile), 768px (tablet), 1440px (desktop)
|
|
40
|
+
- Check: keyboard navigation, screen reader (VoiceOver/NVDA), print styles
|
|
41
|
+
|
|
42
|
+
### Android
|
|
43
|
+
- OS versions: latest + one 2-year-old version
|
|
44
|
+
- Devices: low-end (budget RAM) + flagship
|
|
45
|
+
- Check: back button, rotation, dark mode, large font size, split-screen
|
|
46
|
+
|
|
47
|
+
### iOS
|
|
48
|
+
- OS versions: latest + one version back
|
|
49
|
+
- Devices: iPhone SE (small) + iPhone Pro Max (large)
|
|
50
|
+
- Check: safe area insets, Dynamic Type, VoiceOver, landscape mode
|
|
51
|
+
|
|
52
|
+
### Flutter (Cross-Platform)
|
|
53
|
+
- Run on both Android and iOS
|
|
54
|
+
- Verify platform-adaptive widgets render correctly on each
|
|
55
|
+
- Check system font integration and text scale
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-reporting
|
|
3
|
+
description: Bug report format, go/no-go release criteria, automation strategy, and QA metrics
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QA Reporting & Release Criteria
|
|
7
|
+
|
|
8
|
+
## Bug Report Format
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
## BUG-[ID]: [Short descriptive title]
|
|
12
|
+
|
|
13
|
+
**Severity:** Critical | High | Medium | Low
|
|
14
|
+
**Priority:** P0 | P1 | P2 | P3
|
|
15
|
+
**Status:** Open | In Progress | Fixed | Verified | Won't Fix
|
|
16
|
+
**Platform:** Web Chrome 120 / Android 14 / iOS 17.2 / Flutter
|
|
17
|
+
**Build/Version:** [build number or commit SHA]
|
|
18
|
+
|
|
19
|
+
### Steps to Reproduce
|
|
20
|
+
1. [Exact step]
|
|
21
|
+
2. [Exact step]
|
|
22
|
+
|
|
23
|
+
### Expected Result
|
|
24
|
+
[What should have happened]
|
|
25
|
+
|
|
26
|
+
### Actual Result
|
|
27
|
+
[What actually happened — error messages verbatim]
|
|
28
|
+
|
|
29
|
+
### Evidence
|
|
30
|
+
[Screenshot, screen recording, log output]
|
|
31
|
+
|
|
32
|
+
### Notes
|
|
33
|
+
[Frequency: always/intermittent; related issues]
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Go/No-Go Criteria
|
|
37
|
+
|
|
38
|
+
### Ship (Go)
|
|
39
|
+
- All P0 test cases: PASS
|
|
40
|
+
- All P1 test cases: PASS or accepted risk documented
|
|
41
|
+
- No Critical or High severity bugs open without explicit sign-off
|
|
42
|
+
- Regression tests: PASS
|
|
43
|
+
|
|
44
|
+
### Do Not Ship (No-Go)
|
|
45
|
+
- Any P0 test case FAIL without a valid workaround
|
|
46
|
+
- Any Critical severity bug open
|
|
47
|
+
- High severity bug count above team's defined threshold
|
|
48
|
+
- Core user flow (login, purchase, core CRUD) broken
|
|
49
|
+
|
|
50
|
+
Document every No-Go with: failing test cases, severity, estimated fix time, and what would change the recommendation.
|
|
51
|
+
|
|
52
|
+
## Automation Strategy
|
|
53
|
+
|
|
54
|
+
**Automate when**:
|
|
55
|
+
- Test case is P0 or P1
|
|
56
|
+
- Test runs more than once per sprint
|
|
57
|
+
- Test is time-consuming but fully deterministic
|
|
58
|
+
|
|
59
|
+
**Keep manual when**:
|
|
60
|
+
- Exploratory or visual testing
|
|
61
|
+
- Test requires subjective judgment
|
|
62
|
+
- Feature is likely to change soon (automate after stabilization)
|
|
63
|
+
|
|
64
|
+
## QA Metrics
|
|
65
|
+
|
|
66
|
+
| Metric | Target | Notes |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| Defect detection rate | > 90% before production | % found by QA vs users |
|
|
69
|
+
| Test case pass rate | > 95% before release | Track per sprint for trends |
|
|
70
|
+
| Bug re-open rate | < 10% | Indicates fix quality issues |
|
|
71
|
+
| Mean time to verify fix | < 1 day | Blockers should not sit |
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-case-quality
|
|
3
|
+
description: Test case quality gates, priority levels, suite organisation, and traceability matrix
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test Case Quality Gates & Organisation
|
|
7
|
+
|
|
8
|
+
## Priority Levels
|
|
9
|
+
|
|
10
|
+
| Priority | Definition | Examples |
|
|
11
|
+
|---|---|---|
|
|
12
|
+
| **P0 Critical** | App crashes, data loss, security breach, core flow broken | Login broken, payment fails |
|
|
13
|
+
| **P1 High** | Major feature doesn't work; workaround is difficult | Cart can't be updated |
|
|
14
|
+
| **P2 Medium** | Feature works but degrades experience | Wrong error message |
|
|
15
|
+
| **P3 Low** | Minor cosmetic issue | Typo, incorrect tooltip |
|
|
16
|
+
|
|
17
|
+
## Quality Gates
|
|
18
|
+
|
|
19
|
+
ALL of the following must pass before a test case set is marked implementation-ready:
|
|
20
|
+
|
|
21
|
+
- [ ] Every PRD acceptance criterion has at least one test case
|
|
22
|
+
- [ ] Happy path covered for all user stories
|
|
23
|
+
- [ ] At least 2 negative/error path cases per major feature
|
|
24
|
+
- [ ] Edge cases documented for all input fields
|
|
25
|
+
- [ ] P0 test cases identified for smoke test suite
|
|
26
|
+
- [ ] All test cases have specific, binary expected results (no "works correctly")
|
|
27
|
+
- [ ] Preconditions are unambiguous for all test cases
|
|
28
|
+
- [ ] Test data requirements documented
|
|
29
|
+
- [ ] Platform coverage specified for all test cases
|
|
30
|
+
|
|
31
|
+
## Evaluation Output
|
|
32
|
+
|
|
33
|
+
- `✅ READY — Test case suite meets all quality gates.`
|
|
34
|
+
- `❌ GAPS FOUND: [numbered list of specific missing scenarios or vague criteria]`
|
|
35
|
+
|
|
36
|
+
## Test Suite Structure
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Test Suite: [Feature Name]
|
|
40
|
+
├── Smoke Tests (P0 only — run on every deploy, < 5 min)
|
|
41
|
+
├── Regression Tests (P0 + P1 — run before release)
|
|
42
|
+
├── Full Test Suite (all priorities — run nightly)
|
|
43
|
+
└── Exploratory Testing Notes (manual, unscripted sessions)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Traceability Matrix
|
|
47
|
+
|
|
48
|
+
| Test Case | User Story | Acceptance Criterion |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| TC-001 | US-01 | AC-01.1 |
|
|
51
|
+
| TC-002 | US-01 | AC-01.2 (error state) |
|
|
52
|
+
| TC-003 | US-02 | AC-02.1 |
|
|
53
|
+
|
|
54
|
+
## Automation Candidates
|
|
55
|
+
|
|
56
|
+
Flag test cases that should be automated (P0 and P1 that run frequently):
|
|
57
|
+
|
|
58
|
+
| TC ID | Framework |
|
|
59
|
+
|---|---|
|
|
60
|
+
| TC-001 | Playwright / XCUITest / Espresso |
|
|
61
|
+
| TC-002 | Playwright |
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-case-writing
|
|
3
|
+
description: Test case format, types (positive/negative/edge/boundary), and writing principles for reproducible test cases
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test Case Writing
|
|
7
|
+
|
|
8
|
+
## What Is a Test Case
|
|
9
|
+
|
|
10
|
+
A test case is a documented procedure that verifies whether a specific feature or behavior works as expected. It is the contract between QA and development.
|
|
11
|
+
|
|
12
|
+
A well-written test case is:
|
|
13
|
+
- **Specific**: one scenario per test case
|
|
14
|
+
- **Reproducible**: anyone can run it and get the same result
|
|
15
|
+
- **Independent**: does not depend on the result of another test case
|
|
16
|
+
- **Traceable**: linked back to a requirement or user story
|
|
17
|
+
|
|
18
|
+
## Test Case Format
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
## TC-[ID]: [Short descriptive title]
|
|
22
|
+
|
|
23
|
+
**Related Requirement:** [PRD section / User Story ID]
|
|
24
|
+
**Priority:** P0 (Critical) | P1 (High) | P2 (Medium) | P3 (Low)
|
|
25
|
+
**Type:** Functional | UI | Performance | Security | Accessibility
|
|
26
|
+
**Platform:** Web | Android | iOS | Flutter | All
|
|
27
|
+
|
|
28
|
+
### Preconditions
|
|
29
|
+
State the system must be in before the test begins.
|
|
30
|
+
- User is logged in with a standard account
|
|
31
|
+
|
|
32
|
+
### Test Steps
|
|
33
|
+
1. Navigate to [screen/URL]
|
|
34
|
+
2. Perform [action] on [element]
|
|
35
|
+
3. Enter [specific data — not "valid input", use real values like test@example.com]
|
|
36
|
+
|
|
37
|
+
### Expected Result
|
|
38
|
+
What the system SHOULD do after the steps above.
|
|
39
|
+
- Screen displays "Order confirmed" message
|
|
40
|
+
- Email sent within 30 seconds
|
|
41
|
+
- Order appears in history with status "Pending"
|
|
42
|
+
|
|
43
|
+
### Status
|
|
44
|
+
[ ] Pass | [ ] Fail | [ ] Blocked | [ ] Skipped
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Test Types
|
|
48
|
+
|
|
49
|
+
### Positive (Happy Path)
|
|
50
|
+
Tests the intended workflow with valid inputs.
|
|
51
|
+
- User logs in with valid credentials → lands on dashboard
|
|
52
|
+
|
|
53
|
+
### Negative (Error Paths)
|
|
54
|
+
Tests what happens with invalid inputs or unexpected actions.
|
|
55
|
+
- User logs in with wrong password → error message shown
|
|
56
|
+
|
|
57
|
+
### Edge Cases
|
|
58
|
+
Tests boundaries and unusual but valid scenarios.
|
|
59
|
+
- User enters maximum allowed characters (255) in a field
|
|
60
|
+
- User has 0 items in cart and attempts checkout
|
|
61
|
+
|
|
62
|
+
### Boundary Testing
|
|
63
|
+
Tests exact boundary values:
|
|
64
|
+
- Min: field minimum = 1 char → enter 1 (pass), enter 0 (fail)
|
|
65
|
+
- Max: field max = 255 chars → enter 255 (pass), enter 256 (fail)
|
|
66
|
+
|
|
67
|
+
### Regression Tests
|
|
68
|
+
Tests that previously working functionality has not broken after a change.
|
|
69
|
+
|
|
70
|
+
## Writing Principles
|
|
71
|
+
|
|
72
|
+
1. **Write for someone who has never seen the feature.** No assumed context.
|
|
73
|
+
2. **One expected result per test case.** If you have "and then", split the test.
|
|
74
|
+
3. **Be specific about data.** "Enter a valid email" is worse than "Enter `test@example.com`".
|
|
75
|
+
4. **Distinguish UI state from system state.** "Button becomes disabled" (UI) vs "Record is saved to DB" (system).
|
|
76
|
+
5. **Link every test case to a requirement.** Orphaned test cases are usually outdated.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: testing-strategy
|
|
3
|
+
description: Testing pyramid, shift-left testing, test naming conventions, and common testing anti-patterns
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Testing Strategy
|
|
7
|
+
|
|
8
|
+
## Testing Pyramid
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/\
|
|
12
|
+
/ \ E2E Tests (few, slow, expensive)
|
|
13
|
+
/----\ — Critical user flows only
|
|
14
|
+
/ \
|
|
15
|
+
/--------\ Integration Tests (some, medium speed)
|
|
16
|
+
/ \ — Service boundaries, API contracts
|
|
17
|
+
/------------\ Unit Tests (many, fast, cheap)
|
|
18
|
+
/ \— Pure functions, business logic, utilities
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Rule of thumb**: 70% unit, 20% integration, 10% E2E.
|
|
22
|
+
|
|
23
|
+
## Test Naming Convention
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
[unit_of_work]_[state_under_test]_[expected_behavior]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Examples:
|
|
30
|
+
- `login_withValidCredentials_returnsAuthToken()`
|
|
31
|
+
- `cart_whenItemAdded_totalUpdatesCorrectly()`
|
|
32
|
+
- `formatCurrency_withNegativeValue_showsMinusSign()`
|
|
33
|
+
|
|
34
|
+
## Shift-Left Testing
|
|
35
|
+
|
|
36
|
+
Testing starts at requirements, not after development:
|
|
37
|
+
1. Review acceptance criteria during PRD phase
|
|
38
|
+
2. Write test cases before (or alongside) implementation
|
|
39
|
+
3. Run unit tests in pre-commit hooks
|
|
40
|
+
4. Run integration tests in CI on every PR
|
|
41
|
+
5. E2E tests run nightly or before every release
|
|
42
|
+
|
|
43
|
+
## Testing Anti-Patterns
|
|
44
|
+
|
|
45
|
+
| Anti-Pattern | Problem |
|
|
46
|
+
|---|---|
|
|
47
|
+
| Testing implementation, not behavior | Tests break on refactoring, not on bugs |
|
|
48
|
+
| Mocking everything | Tests pass but production still fails |
|
|
49
|
+
| Shared mutable state between tests | Flaky tests, order-dependent failures |
|
|
50
|
+
| Sleep/wait in tests | Slow and flaky — use await/callbacks instead |
|
|
51
|
+
| Huge test setup | Indicates code is not testable — refactor |
|
|
52
|
+
| No assertion in test | Test always passes — caught by linting |
|
|
53
|
+
|
|
54
|
+
## Test Doubles
|
|
55
|
+
|
|
56
|
+
| Type | Description | Use when |
|
|
57
|
+
|---|---|---|
|
|
58
|
+
| **Stub** | Returns fixed value | Predictable output needed |
|
|
59
|
+
| **Mock** | Verifies interactions | Testing that a method was called |
|
|
60
|
+
| **Fake** | Working implementation | Need realistic behavior (in-memory DB) |
|
|
61
|
+
| **Spy** | Wraps real object | Verify calls while keeping real behavior |
|
|
62
|
+
|
|
63
|
+
Prefer **fakes** over **mocks** — they reveal interface misuse; mocks can pass when the contract is wrong.
|
|
64
|
+
|
|
65
|
+
## Coverage
|
|
66
|
+
|
|
67
|
+
- Target: 80%+ line coverage for business logic
|
|
68
|
+
- Track **branch** coverage, not just line coverage
|
|
69
|
+
- 100% coverage does NOT mean no bugs
|
|
70
|
+
- Never write tests just to hit a number — test behavior, not lines
|