Skip to content
Back to skills

Taskforge Validate

ASecurity

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.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
code-qualitytypescriptgoapi

Works with

  • api

Security analysis

A100/100

Scanned September 7, 2026

npx -y skills add chodolmu/taskforge-pro --skill taskforge-validate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Taskforge Validate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Taskforge Validate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chodolmu-taskforge-validate/badge)](https://www.skillsdirectory.com/skills/chodolmu-taskforge-validate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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**:
```json
{"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"`.

1. Re-run all automated validation items

2. **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})
   ```

3. **Silent Error Scan** (sprint-wide): scan all files changed during sprint

4. **Guardrail Event Rollup**: include any guardrail events from this sprint's tasks

5. Code review with Sonnet: read all changed files, evaluate quality/consistency/potential bugs

6. Save `validations/sprint-{id}.json`:
```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**:
```json
{"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**:

1. Collect all mustHaves from milestone tasks
2. Artifact validation: VERIFIED / STUB / MISSING / ORPHANED
3. Wiring validation: WIRED / PARTIAL / NOT_WIRED
4. Truth validation: synthesize artifact + wiring for each truth
5. **Silent error scan** across entire milestone codebase
6. **Handoff cross-check**: verify all `openItems` from handoffs are resolved
7. **Guardrail event summary**: total guardrail events for the milestone
8. **Sprint advisory rollup**: include all accumulated sprint warnings

Save `validations/audit-milestone-{id}.md`.

**Telemetry**:
```json
{"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 — 다음 마일스톤 상세 정의
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…