Files

2.2 KiB

Delivery contract (current implementation)

  • task.json atomically stores task revision, original instructions, output kind, template and checked terms. Secrets are not stored here. Server startup restores these sessions; interrupted pending work becomes failed, never silently resumes side effects. Browser refresh requests the prior session ID. This restores requirements, not full model conversation or events.
  • PPT tools default to purpose: debug. Debug files cannot satisfy delivery or use the final download endpoint. purpose: final requires a pending PPT task. Each artifact snapshots its task revision/run ID.
  • Formal PPT generation checks package/render validity, template selection, required term presence and remaining substantive template text. Rejection records acceptance.json and produces no accepted result. Final artifacts are bound to the producing run/revision and SHA-256.
  • Only run.completed with accepted delivery data adds a PPT download link. A model statement saying “complete” is not an acceptance receipt.
  • Approval refusal/expiry prevents further approval requests in the same run. A new user run is required to retry.

Known limits — do not represent these as solved

Formal generation additionally invokes an independent, tool-free model review with the original user requirements, final text and every rendered slide. This checks topic, completeness, stale product imagery/text and readability; unavailable vision, timeout, malformed answers or rejection fail closed. The generating model's self-assessment is not used. This reviewer uses the configured model and may still make mistakes; it does not independently research or certify business facts. Source text checks are conservative and can reject legitimate reuse. Full conversation persistence is not implemented. Existing pre-contract artifacts are not retroactively accepted. Old sessions without a task file need migration.

Verification

pnpm test, pnpm typecheck, pnpm lint, pnpm build; node --test scripts/ppt-acceptance.test.mjs; pnpm exec tsx scripts/verify-ppt.mts; pnpm exec tsx scripts/verify-ppt.mts --template. The real-file template check produces a debug copy, rejects its final-download access, and confirms a one-object replacement fails formal acceptance.