添加 claude code game studios 到项目
This commit is contained in:
87
CCGS Skill Testing Framework/agents/qa/qa-tester.md
Normal file
87
CCGS Skill Testing Framework/agents/qa/qa-tester.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# Agent Test Spec: qa-tester
|
||||
|
||||
## Agent Summary
|
||||
- **Domain**: Detailed test case authoring, bug reports (structured format), test execution documentation, regression checklists, smoke check execution docs, test evidence recording per the project's coding standards
|
||||
- **Does NOT own**: Test strategy and test plan design (qa-lead), implementation fixes for found bugs (appropriate programmer), QA process architecture (qa-lead)
|
||||
- **Category**: qa
|
||||
- **Model tier**: Sonnet
|
||||
- **Gate IDs**: None; flags ambiguous acceptance criteria to qa-lead rather than resolving independently
|
||||
|
||||
---
|
||||
|
||||
## Static Assertions (Structural)
|
||||
|
||||
- [ ] `description:` field is present and domain-specific (references test cases, bug reports, test execution, regression testing)
|
||||
- [ ] `allowed-tools:` list matches the agent's role (Read/Write for tests/ and production/qa/evidence/; no source code editing tools)
|
||||
- [ ] Model tier is Sonnet (default for QA specialists)
|
||||
- [ ] Agent definition does not claim authority over test strategy, fix implementation, or acceptance criterion definition
|
||||
|
||||
---
|
||||
|
||||
## Test Cases
|
||||
|
||||
### Case 1: In-domain request — test cases for a save system
|
||||
**Input**: "Write test cases for our save system. It must save and load player position, inventory, and quest state."
|
||||
**Expected behavior**:
|
||||
- Produces a test case list with at minimum the following test cases, each containing all four required fields:
|
||||
- **TC-SAVE-001**: Save and load player position
|
||||
- **TC-SAVE-002**: Save and load full inventory (multiple item types, quantities, equipped state)
|
||||
- **TC-SAVE-003**: Save and load quest state (in-progress, completed, and locked quest states)
|
||||
- **TC-SAVE-004**: Overwrite an existing save file
|
||||
- **TC-SAVE-005**: Load a save file from a previous version (backward compatibility)
|
||||
- **TC-SAVE-006**: Corrupt save file handling (file exists but is invalid)
|
||||
- Each test case includes: **Precondition** (required game state before test), **Steps** (numbered, unambiguous), **Expected Result** (specific, observable outcome), **Pass Criteria** (binary pass/fail condition)
|
||||
- Does NOT write "verify the save works" as a pass criterion — criteria must be observable and unambiguous
|
||||
|
||||
### Case 2: Out-of-domain request — implement a bug fix
|
||||
**Input**: "You found a bug where the save system loses inventory data on version mismatch. Please fix it."
|
||||
**Expected behavior**:
|
||||
- Does not produce any implementation code or attempt to fix the save system
|
||||
- States clearly: "Bug fixes are implemented by the appropriate programmer (gameplay-programmer for save system logic); I document the bug and write regression test cases to verify the fix"
|
||||
- Offers to produce: (a) a structured bug report for the programmer, (b) regression test cases for TC-SAVE-005 (version mismatch) that can be run after the fix
|
||||
|
||||
### Case 3: Ambiguous acceptance criterion — flag to qa-lead
|
||||
**Input**: "Write test cases for the tutorial. The acceptance criterion in the story says 'tutorial should feel intuitive.'"
|
||||
**Expected behavior**:
|
||||
- Identifies "should feel intuitive" as an unmeasurable acceptance criterion — it is a subjective quality statement, not a testable condition
|
||||
- Does NOT write test cases against an ambiguous criterion by inventing a definition of "intuitive"
|
||||
- Flags to qa-lead: "The acceptance criterion 'tutorial should feel intuitive' is not testable as written; needs clarification — e.g., 'X% of first-time players complete the tutorial without using the hint button' or 'no tester requires external help to complete the tutorial in session'"
|
||||
- Provides two or three concrete, measurable alternative criteria for qa-lead to choose between
|
||||
|
||||
### Case 4: Regression test after a hotfix
|
||||
**Input**: "A hotfix was applied that changed how the inventory serialization handles nullable item slots. Write a targeted regression checklist for the affected systems."
|
||||
**Expected behavior**:
|
||||
- Identifies the affected systems: inventory save/load, any UI that reads inventory state, any quest system that checks inventory contents, any crafting system that reads inventory slots
|
||||
- Produces a regression checklist focused on those systems only — not a full game regression
|
||||
- Checklist items target the specific change: null item slot handling (empty slots, mixed full/empty slot arrays, slot count boundary conditions)
|
||||
- Each checklist item specifies: what to test, how to verify pass, and what a failure looks like
|
||||
- Does NOT produce a generic "test everything" checklist — the value of a targeted regression is specificity
|
||||
|
||||
### Case 5: Context pass — test evidence format from coding-standards.md
|
||||
**Input context**: coding-standards.md specifies: Logic stories require automated unit tests in `tests/unit/[system]/`. Visual/Feel stories require screenshot + lead sign-off in `production/qa/evidence/`. UI stories require manual walkthrough doc in `production/qa/evidence/`.
|
||||
**Input**: "Write test cases for the inventory UI (a UI story): grid layout, item tooltip display, and drag-and-drop reordering."
|
||||
**Expected behavior**:
|
||||
- Classifies this correctly as a UI story per the provided standards
|
||||
- Produces a manual walkthrough test document (not automated unit tests) — because the coding standard specifies manual walkthrough for UI stories
|
||||
- Specifies the output location: `production/qa/evidence/` (not `tests/unit/`)
|
||||
- Test cases include: grid layout verification (all items appear, no overflow), tooltip display (correct item name, stats, description appear on hover/focus), and drag-and-drop (item moves to target slot, original slot becomes empty, slot limits respected)
|
||||
- Notes that this is ADVISORY evidence level per the coding standards, not BLOCKING — explicitly states this so the team knows the gate level
|
||||
|
||||
---
|
||||
|
||||
## Protocol Compliance
|
||||
|
||||
- [ ] Stays within declared domain (test case authoring, bug reports, test execution documentation, regression checklists)
|
||||
- [ ] Redirects bug fix requests to appropriate programmers and offers to document the bug and write regression tests
|
||||
- [ ] Flags ambiguous acceptance criteria to qa-lead rather than inventing a testable interpretation
|
||||
- [ ] Produces targeted regression checklists (system-specific) not full-game regression passes
|
||||
- [ ] Uses the correct test evidence format and output location per coding-standards.md
|
||||
|
||||
---
|
||||
|
||||
## Coverage Notes
|
||||
- Case 1 (test case completeness) is the foundational quality test — missing fields (precondition, steps, expected result, pass criteria) are a failure
|
||||
- Case 3 (ambiguous criterion) is a coordination test — qa-tester must not silently accept untestable criteria
|
||||
- Case 5 requires coding-standards.md to be in context with the test evidence table; the agent must correctly apply evidence type and location
|
||||
- The ADVISORY vs. BLOCKING gate level (Case 5) is a detail that affects story completion — verify the agent reports it
|
||||
- No automated runner; review manually or via `/skill-test`
|
||||
Reference in New Issue
Block a user