acceptance-verification
Use when delivered functionality needs acceptance-criteria verification before a phase advances
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Use when delivered functionality needs acceptance-criteria verification before a phase advances
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Use when Codex is asked to colonize, plan, build, continue, swarm, or seal an Aether colony and must mirror wrapper orchestration safely
Use when Codex is asked to initialize or set up an Aether colony and should refine intent before running init
Use when Codex is asked to run Aether Oracle or discuss flows and should refine scope before research or clarification
Use when acceptance criteria need unit, integration, or end-to-end tests generated from implementation context
Use when a phase involves LLMs, AI agents, RAG, ML inference, or prompt/tool integration design
Use when stale or completed colony artifacts need safe archival, cleanup, or retrieval without losing evidence
| source | shipped |
| name | acceptance-verification |
| description | Use when delivered functionality needs acceptance-criteria verification before a phase advances |
| type | colony |
| domains | ["verification","acceptance-testing","quality-assurance"] |
| agent_roles | ["watcher","auditor"] |
| workflow_triggers | ["continue"] |
| task_keywords | ["acceptance","uat","criterion","criteria","verification","sign-off"] |
| priority | normal |
| version | 1.0 |
Conversational User Acceptance Testing that walks through each acceptance criterion interactively, confirms pass/fail status, and auto-diagnoses issues when verification fails. Produces a VERIFICATION.md artifact documenting the full UAT session with evidence for each criterion.
Identify and load the acceptance criteria for the target phase:
If no formal criteria exist, infer them from:
Before testing, ensure the system is in a verifiable state:
If the environment cannot be prepared, report this as a blocker with specific details on what failed and how to resolve it.
For each acceptance criterion, perform this verification loop:
A. Present the criterion State the criterion clearly, including any preconditions and expected outcomes.
B. Attempt verification Execute the verification using the most appropriate method:
C. Record the result Classify as one of:
| Status | Meaning |
|---|---|
| PASS | Criterion fully satisfied with evidence |
| FAIL | Criterion not met -- specific failure described |
| PARTIAL | Some aspects met, others not -- details provided |
| BLOCKED | Cannot verify due to environment or dependency issues |
| SKIPPED | Not applicable in current context (with justification) |
D. If FAIL or PARTIAL -- auto-diagnose When a criterion fails, immediately diagnose the root cause:
When running in interactive mode, present each criterion to the user for hands-on verification:
--- AC-03: User receives email confirmation after registration ---
Precondition: A valid email server is configured
Steps:
1. Register a new account with email "test@example.com"
2. Check the email inbox for the test account
3. Confirm the email contains a verification link
Expected: Verification email arrives within 60 seconds
Did this pass? (pass/fail/partial/blocked/skip) [describe what you observed]
Collect the user's response and record it. If they report a failure, probe for details:
After all criteria are verified, produce the verification artifact:
# UAT Verification -- Phase {N}: {Phase Name}
**Date:** {ISO date}
**Verifier:** {agent name or human name}
**Result:** {PASS_COUNT}/{TOTAL_COUNT} criteria passed
## Summary
{2-3 sentence overall assessment of phase readiness}
## Criteria Results
| ID | Criterion | Status | Evidence |
|----|-----------|--------|----------|
| AC-01 | ... | PASS | ... |
| AC-02 | ... | FAIL | ... |
## Detailed Results
### AC-01: {criterion text}
**Status:** PASS
**Evidence:** Confirmed by running `pytest tests/test_registration.py::test_new_user` -- test passes. Inspected `src/auth/register.ts:42-58` confirms email dispatch logic.
### AC-02: {criterion text}
**Status:** FAIL
**Evidence:** Registration returns 500 when email service is unreachable. No fallback or retry logic exists.
**Diagnosis:** Missing error handling in `src/auth/register.ts:47` -- the `sendEmail` call is not wrapped in try/catch.
**Suggested fix:** Add retry with exponential backoff and graceful degradation (queue email for later delivery).
**Impact:** Blocks AC-03 (email confirmation cannot be verified until this is fixed).
## Outstanding Issues
{List of unresolved FAIL/PARTIAL items with priority ordering}
## Recommendation
{READY / READY WITH CAVEATS / NOT READY -- with justification}
If issues were found and fixed, re-run verification only for the failed criteria. Update VERIFICATION.md with the re-verification results, keeping the original findings for audit trail.
| Criterion Type | Verification Method |
|---|---|
| "User can X" | Walk through the user flow, confirm each step succeeds |
| "System responds with Y" | Trigger the condition, inspect the response |
| "Error Z is handled gracefully" | Force the error condition, confirm graceful handling |
| "Performance: X under Y seconds" | Time the operation, compare against threshold |
| "No regression in X" | Run existing test suite for X, confirm all pass |
| "Data is persisted correctly" | Create data, restart system, confirm data survives |
When a failure is detected, diagnose at increasing depth:
| Level | Meaning | When to Use |
|---|---|---|
| Confirmed | Directly observed working | Live test passed, user confirmed |
| Inspected | Code logic verified correct | Read the code, no live test possible |
| Tested | Automated test covers it | Existing test suite passes for this criterion |
| Assumed | Likely works but not verified | Low-risk criterion, similar to verified ones |
Produces VERIFICATION.md in the phase directory or specified output path.
Verify phase 2 -- user management
Loads acceptance criteria from the phase 2 plan, walks through each criterion, runs existing tests where available, inspects code for the rest, produces VERIFICATION.md with full results.
Re-verify AC-03 and AC-05 from phase 2 after bug fixes
Only re-checks the two previously failed criteria, appends re-verification results to the existing VERIFICATION.md.
## Detailed Results
### AC-01: Users can register with email and password
**Status:** PASS (Confirmed)
**Evidence:** Created test account via POST /api/register with valid payload.
Received 201 response with user object. Confirmed user record exists in database.
### AC-02: Duplicate email registration returns 409 Conflict
**Status:** PASS (Tested)
**Evidence:** Existing test `tests/api/auth.test.ts:23` -- "rejects duplicate email".
Ran `npm test -- --grep "duplicate"` -- 1 test passed.
### AC-03: Password must be at least 8 characters
**Status:** FAIL
**Evidence:** POST /api/register with password "abc" returns 201 instead of 400.
**Diagnosis:** Validation middleware in `src/middleware/validate.ts:15` checks `password`
field existence but not length. Missing `minLength` validator.
**Suggested fix:** Add `.isLength({ min: 8 })` to password validation chain.
**Impact:** Low -- does not block other criteria.