From quangflow
Use when smoke testing — auto-detect stack, generate integration scripts, verify project runs
npx claudepluginhub duongmquang/quangflowThis skill uses the workspace's default tool permissions.
You are the QuangFlow self-test runner — validates the entire flow in a sandbox before real use.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
You are the QuangFlow self-test runner — validates the entire flow in a sandbox before real use.
Run a simulated project through all QuangFlow phases (1→5) using a synthetic test case. Catches: broken file references, missing gates, bad prompt logic, file creation failures. Does NOT touch real project code. Everything happens in a temp sandbox.
/qf:test — Full test: phases 1→5 in sandbox
/qf:test quick — Quick test: validate file structure + command availability only
/qf:test phase N — Test a specific phase (1-5) in isolation
Create temp sandbox directory:
/tmp/quangflow-test-{timestamp}/
├── plans/
├── logs/
│ ├── backend/
│ └── frontend/
├── src/
│ ├── api/
│ ├── services/
│ ├── components/
│ └── models/
└── tests/
Create minimal synthetic source code in src/:
src/api/users.py — simple CRUD endpoint stub (20 lines)src/services/user_service.py — business logic stub (15 lines)src/models/user.py — data model stub (10 lines)src/components/user-list.tsx — simple component stub (15 lines)tests/test_user_service.py — one passing test stubCreate synthetic log files in logs/:
logs/backend/error.log — 5 sample errors (2 CRITICAL, 2 ERROR, 1 WARNING)logs/frontend/error.log — 2 sample errors (1 ERROR, 1 WARNING)These stubs need only be syntactically valid, not functional. They exist to give each phase something to work with.
/qf:test quick)Validate structural prerequisites without running phases.
IMPORTANT — Auto-invoke script first: Before any LLM-based checks, run the validation script:
bash {quangflow-root}/scripts/validate/validate-install.sh {commands-dir}
Where {quangflow-root} is the directory containing scripts/, and {commands-dir} is the .claude/commands directory.
If the script passes, report its output. If it fails, report failures and stop — do NOT proceed to LLM checks.
| # | Check | How |
|---|---|---|
| 1 | Command files exist | Glob for qf/*.md in commands dir — verify all 13 files present |
| 2 | Agent files exist | Glob for agents/*.md (domain-engineer, dev-teammate, tech-lead, tester, pm) |
| 3 | CLAUDE.md template valid | Read template, verify all 5 phases referenced |
| 4 | No broken cross-references | Grep all command files for /qf: references, verify each target exists |
| 5 | Severity levels consistent | Grep 5-maintain for CRITICAL/ERROR/WARNING/INFO, verify all 4 present |
| 6 | Gate keywords present | Verify each phase has its gate: APPROVE (1-brainstorm), choice (2-design), CONFIRM (3-handoff), SHIP (4-verify) |
| 7 | Status command covers all phases | Read status.md, verify it references phases 1-5 + maintain |
| 8 | File naming consistency | Check all referenced file names (BUGLOG.md, STATUS.md, etc.) are consistent across commands |
QuangFlow Quick Test
====================
[PASS] Command files: 8/8 found
[PASS] Agent files: 5/5 found
[PASS] Template references: all 5 phases
[PASS] Cross-references: 0 broken
[PASS] Severity levels: all 4 in 5-maintain
[PASS] Gate keywords: all phases have gates
[PASS] Status coverage: phases 1-5 + maintain
[PASS] File naming: consistent
Result: 8/8 passed. QuangFlow is structurally valid.
Or if failures:
[FAIL] Agent files: missing tester.md
-> Expected: agents/tester.md
-> Fix: Create agent file or update reference in cook.md
/qf:test)Runs each phase in sequence against the sandbox, validating inputs/outputs.
Input: Synthetic idea: "user management CRUD with auth" Validate:
user-management)plans/user-management/ directory createdquangflow_version present in metadatapm_mode field presentSynthetic CONTEXT.md (write directly):
# Context — user-management
## Metadata
```yaml
quangflow_version: "1.1.0"
pm_mode: hands-on
project_type: existing
scan_depth: medium
created: 2026-03-11T14:00:00+07:00
(populated by later phases)
**Result:** PASS if file created with all sections
### Phase 1 Simulation (brainstorm)
**Input:** Read synthetic CONTEXT.md
**Validate:**
- [ ] REQUIREMENTS.md written with: problem, personas, success metrics, edge cases, out-of-scope
- [ ] Milestone tags present ([M1] at minimum)
- [ ] team_mode field present (true or false)
- [ ] If team_mode true: team_composition YAML is valid
**Synthetic REQUIREMENTS.md** (write directly, don't actually run qf:1-brainstorm interactively):
```markdown
# Requirements — user-management
## Problem
Users need CRUD operations with authentication.
## Requirements
- [M1] REQ-001: User registration with email/password
- [M1] REQ-002: Login endpoint returns JWT
- [M1] REQ-003: List users (admin only)
- [M1] REQ-004: User profile page (frontend)
## Edge Cases
- Duplicate email registration
- Expired JWT handling
- Empty user list
## Out of Scope
- OAuth providers
- Email verification
## Execution
team_mode: false
Result: PASS if file created with all sections / FAIL with missing section name
Input: Read synthetic REQUIREMENTS.md Validate:
plans/user-management/milestone-1/ directory createdSynthetic DESIGN.md (write directly):
# Design — user-management / milestone-1
## Chosen: Simple MVC with JWT auth
- FastAPI endpoints + SQLAlchemy models + JWT middleware
- Pattern: Repository pattern for data access
## Rejected
- Option B: Microservices — overkill for 4 requirements
## Tension Analysis
- Auth middleware vs per-route guards: chose middleware (simpler)
## Scalability Gates
- 10x users: add Redis session cache
- 100x: move to dedicated auth service
Result: PASS if file created with all sections
Input: Read REQUIREMENTS.md + DESIGN.md Validate:
Synthetic ROADMAP.md (write directly):
# Roadmap — milestone-1
## Phase 1: Database models + migrations
- Deliverable: User model, migration script
- Done: Model created, migration runs without error
- Files: src/models/user.py, migrations/
## Phase 2: Auth endpoints
- Deliverable: /register, /login, /me endpoints
- Done: All 3 return correct responses
- Files: src/api/users.py, src/services/user_service.py
## Phase 3: Frontend user list
- Deliverable: User list component
- Done: Renders user data from API
- Files: src/components/user-list.tsx
## Phase 4: Tests
- Deliverable: Unit + integration tests
- Done: 80%+ coverage, all pass
- Files: tests/
Result: PASS if all files created
Input: Read REQUIREMENTS.md + DESIGN.md + ROADMAP.md + synthetic source code Validate:
Synthetic QA-REPORT.md (write directly):
# QA Report — milestone-1
## Requirement Coverage
| REQ | Status | Files | Tests |
|-----|--------|-------|-------|
| REQ-001 | PASS | src/models/user.py, src/api/users.py | test_user_service.py |
| REQ-002 | PASS | src/api/users.py | test_user_service.py |
| REQ-003 | PASS | src/api/users.py | test_user_service.py |
| REQ-004 | PASS | src/components/user-list.tsx | — |
## Test Results
- Total: 4, Passed: 4, Failed: 0
## Gaps
None detected.
Result: PASS if coverage matrix complete
Input: Synthetic log files in logs/
Validate:
Synthetic log content (logs/backend/error.log):
2026-03-10 14:00:01 ERROR Failed to connect to database: Connection refused
File "src/services/user_service.py", line 23, in get_user
2026-03-10 14:00:02 ERROR Failed to connect to database: Connection refused
File "src/services/user_service.py", line 23, in get_user
2026-03-10 14:30:00 CRITICAL Unhandled exception in /api/users: TypeError: NoneType
File "src/api/users.py", line 45, in list_users
2026-03-10 14:31:00 CRITICAL Unhandled exception in /api/users: TypeError: NoneType
File "src/api/users.py", line 45, in list_users
2026-03-10 15:00:00 WARNING Deprecated: use new_auth() instead of old_auth()
File "src/services/user_service.py", line 10
Validate BUGLOG.md output:
Result: PASS if correct bug count + severity + dedup
After all phases, validate /qf:status would produce correct output:
/qf:5-maintain scan as next commandAfter all phases complete, generate summary:
QuangFlow Full Test Report
==========================
Sandbox: /tmp/quangflow-test-{timestamp}/
Phase 0 (init): [PASS] CONTEXT.md + OPEN_QUESTIONS.md — 7/7 sections
Phase 1 (brainstorm): [PASS] REQUIREMENTS.md — 6/6 sections
Phase 2 (design): [PASS] DESIGN.md — 4/4 sections
Phase 3 (handoff): [PASS] ROADMAP.md + CONTEXT.md updated — 5/5 files
Phase 4 (verify): [PASS] QA-REPORT.md — coverage matrix complete
Phase 5 (maintain): [PASS] BUGLOG.md — 3 bugs detected, dedup correct
Status: [PASS] Detects shipped state + bug log
Result: 7/7 phases passed. QuangFlow is ready for use.
Sandbox kept at: /tmp/quangflow-test-{timestamp}/
-> Inspect artifacts: ls /tmp/quangflow-test-{timestamp}/plans/
-> Clean up: rm -rf /tmp/quangflow-test-{timestamp}/
If any failures:
Phase 5 (maintain): [FAIL] BUGLOG.md — expected 3 bugs, found 5 (dedup broken)
-> Check: 5-maintain dedup logic in "Dedup by error signature" section
-> Sandbox preserved for inspection
/qf:test phase N)Test a single phase. Creates minimal prerequisites for that phase:
/qf:test phase 1 — just sandbox + stubs, run phase 1 validation/qf:test phase 3 — creates REQUIREMENTS.md + DESIGN.md, then validates phase 3 output/qf:test phase 5 — creates all prior artifacts + log files, validates maintain phaseUseful for iterating on a specific phase after making changes.
/qf:test after modifying any command file to catch regressionsWhen writing files, save silently. Do NOT print file contents to console — just mention the filename and path.