| name | taskforge-validate |
| description | Automatically validates code. Use when the user says "/taskforge-validate", "check the build", "validate the code", "run automated validation", or similar. v2 adds silent error detection, stub scanning, and telemetry logging. Use "/taskforge-verify" for user-driven manual UAT, "/taskforge-playtest" for game feel feedback. |
Validate โ Validation Runner (v2)
Validate the work output of the project. Three-level validation + silent error detection + telemetry.
Core principle: Task complete โ Goal achieved. Tasks can be marked "done" with placeholders. Validate backward from the goal.
v2 additions:
- Silent error detection: scan for TODOs, stubs, placeholders, debug code, hardcoded secrets
- Telemetry: append results to
telemetry.jsonl
- Guardrail event rollup: include guardrail events in sprint/milestone reports
Gating Policy
| Level | Gating | Rationale |
|---|
| Task | inline / blocking | Cheap; catches local breakage immediately |
| Sprint | async / non-blocking | Advisory only โ does NOT stall next sprint |
| Milestone | blocking gate | Goal-backward + cross-regression decide whether to ship |
Sprint validation never blocks /taskforge-execute-all. Milestone gate is the enforcement point.
Project Selection
Auto-select if only one project; ask if multiple. All paths relative to _workspace/projects/{projectId}/.
3-Level Validation
Level 1: Task Validation (automatic, inline, blocking)
Run items in task's validation.auto:
| Item | Behavior |
|---|
| build | Run project build |
| typecheck | TypeScript type check |
| lint | Run linter |
| test | Run test suite |
| run | Run and verify no errors |
+ Acceptance Criteria Check:
์์ฑ ๊ธฐ์ค ํ์ธ:
โ
src/index.html ์กด์ฌ
โ
<!DOCTYPE html> ํฌํจ
โ <canvas> ํ๊ทธ ์์ โ ๋๋ฝ
+ Silent Error Scan (v2):
Scan all files changed in this task:
| Pattern | Severity |
|---|
TODO / FIXME / HACK | warn |
Empty bodies {} / pass | warn |
| "placeholder" / "lorem ipsum" / "dummy data" | warn |
console.log / print( / debugger | info |
password= / api_key= / secret= hardcoded | error |
Functions with only throw new Error("not implemented") | error |
If error severity found: task fails. If warn: report but allow pass with user confirmation.
Telemetry:
{"t":"...","event":"task_validate","taskId":"M1-S1-T3","passed":true,"silentErrors":[],"acceptancePassed":3,"acceptanceTotal":3}
If any item fails: treat task as incomplete.
Level 2: Sprint Validation (after sprint โ ASYNC, non-blocking)
Run mode: Launched in background. Does NOT block next sprint. Results โ validations/sprint-{id}.json with status: "advisory".
-
Re-run all automated validation items
-
Goal-Backward Validation:
Collect mustHaves from all sprint tasks:
Step 1 โ Truths:
[SATISFIED] "์นด๋ ๋ชฉ๋ก์ด ๋ฉ์ธ ํ์ด์ง์ ํ์๋จ"
[PARTIAL] "์นด๋ ํด๋ฆญ ์ ์์ธ ํ์ด์ง ์ด๋" โ routes.js์ ๋ผ์ฐํธ ์์
[UNSATISFIED] "๊ฒ์ ๋์" โ SearchBar.jsx๊ฐ ์คํ
Step 2 โ Artifacts (one line per artifact named in mustHaves.artifacts):
[VERIFIED] {file path} โ {evidence: exists, has content, etc.}
[STUB] {file path} โ {what makes it a stub}
[MISSING] {file path} โ ํ์ผ ์์
[ORPHANED] {file path} โ ์ด๋์๋ import ์ ๋จ
Step 3 โ Key Links (one line per link named in mustHaves.keyLinks):
[WIRED] {source} โ {target} ({how it's wired})
[NOT_WIRED] {source} โ {target} ({what's missing})
-
Silent Error Scan (sprint-wide): scan all files changed during sprint
-
Guardrail Event Rollup: include any guardrail events from this sprint's tasks
-
Code review with Sonnet: read all changed files, evaluate quality/consistency/potential bugs
-
Save validations/sprint-{id}.json:
{
"targetType": "sprint",
"targetId": "M1-S1",
"status": "advisory",
"passed": true,
"goalBackward": {
"truths": { "satisfied": 5, "partial": 1, "unsatisfied": 0 },
"artifacts": { "verified": 8, "stub": 1, "missing": 0, "orphaned": 1 },
"wiring": { "wired": 6, "partial": 1, "notWired": 0 }
},
"silentErrors": [
{ "file": "src/utils.js", "line": 42, "type": "TODO", "content": "// TODO: error handling", "severity": "warn" }
],
"guardrailEvents": [],
"validatedBy": "auto+sonnet+goal-backward",
"validatedAt": "..."
}
Telemetry:
{"t":"...","event":"sprint_validate","sprintId":"M1-S1","passed":true,"advisory":true,"stubCount":1,"orphanCount":1}
Level 3: Milestone Validation (cross-regression โ BLOCKING gate)
Run mode: Only blocking validation. Next milestone cannot start until this passes. Pull in all sprint advisories accumulated since last milestone gate.
Cross-reference three sources:
| Source | What to check |
|---|
Plan (project-plan.json) | Each task's mustHaves, acceptanceCriteria |
Handoffs (handoffs/*.json) | Actual work done, changed files, known issues |
| Code (actual filesystem) | File existence, import/export wiring, behavior |
Flow:
- Collect all mustHaves from milestone tasks
- Artifact validation: VERIFIED / STUB / MISSING / ORPHANED
- Wiring validation: WIRED / PARTIAL / NOT_WIRED
- Truth validation: synthesize artifact + wiring for each truth
- Silent error scan across entire milestone codebase
- Handoff cross-check: verify all
openItems from handoffs are resolved
- Guardrail event summary: total guardrail events for the milestone
- Sprint advisory rollup: include all accumulated sprint warnings
Save validations/audit-milestone-{id}.md.
Telemetry:
{"t":"...","event":"milestone_validate","milestoneId":"M1","passed":true,"blocking":true,"stubsFound":0,"openItemsResolved":3,"openItemsPending":0}
On milestone failure:
Opus full review โ suggest fix sprint that addresses both milestone failures and accumulated sprint advisories โ user confirmation required โ then automatically suggest /taskforge-playtest.
On Failure
- Task validation failure: Guide to retry. Task does not count as complete.
- Sprint validation failure: Do NOT halt. Record as advisory. Surface in
/taskforge-status. Carry into next milestone gate.
- Milestone validation failure: Blocking. Opus review โ fix sprint โ user confirmation.
Usage
/taskforge-validate โ Auto-detect most recent completed unit
/taskforge-validate sprint โ Validate current sprint (includes goal-backward)
/taskforge-validate task M1-S1-T3 โ Validate specific task
/taskforge-validate milestone โ Full milestone cross-regression (blocking gate)
After Milestone Validation Passes
Automatically suggest the next steps in order:
โ
๋ง์ผ์คํค M1 ๊ฒ์ฆ ํต๊ณผ!
๋ค์ ๊ถ์ฅ ์์:
1. /taskforge-playtest โ ์ง์ ํ๋ ์ดํด์ ๋๋ ํ์ธ
2. /taskforge-retro โ ์ด๋ฒ ๋ง์ผ์คํค ํ๊ณ + ๋ค์ ๊ณํ ์
๋ฐ์ดํธ
3. /taskforge-discover M2 โ ๋ค์ ๋ง์ผ์คํค ์์ธ ์ ์