Skip to content

Evidence gate: piece completion only on typed promise backed by artifacts, never a bare claim #67

Description

@wesleysimplicio

Parent epic: #64

Goal

Port the simplicio-loop driver rule — stop only on an evidence-gated <promise>, ignore a bare promise — to piece completion. A piece transitions to done/scheduled only when the completion claim is backed by machine-checkable artifacts on disk; a textual "looks good, done" is ignored.

Required evidence per piece (from CLAUDE.md DoD)

  • manifest.json present under outputs/<client>/<date>/<piece-id>/ and schema-valid.
  • Compliance JSON with pass: true (or a logged human override event).
  • qa-tech-specs report pass.
  • 4-platform caption set files present.
  • Playwright evidence artifact recorded (e2e/ run reference or screenshot/video path) — reuse the existing watcher_report_path plumbing from the watcher-gate.
  • Run rows appended to data/llm-usage.jsonl and data/runs.jsonl.

Scope

  • evidence gate <piece-id> worker: verifies every item above against the filesystem, exits non-zero with the missing-item list otherwise.
  • Wire it as the single transition guard used by lib/cli/generate.ts (draft→scheduled) and by the anchor gate (Anchor: freeze campaign/piece acceptance criteria at intake and gate "done" on verified AC #65) — one implementation, no duplicated checks.
  • Missing toolchain (Playwright/FFmpeg not installed) → blocked, never a fake pass — same posture as scripts/video_evidence.py in simplicio-loop.

Acceptance criteria

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions