{ "schema": "proofframe.final_launch_plan.v1", "created_at": "2026-07-03T10:37:59Z", "ok": false, "mode": "ready_for_public_video", "repo_root": "/Users/junhaocheng/working-dir/ai-competitions/backblaze-proofframe", "current_phase": "public_video", "summary": { "total": 6, "done": 3, "ready": 1, "blocked": 2 }, "task_statuses": { "T020": "done", "T021": "done", "T040": "done", "T041": "blocked", "T041A": "blocked", "T042": "blocked" }, "phases": [ { "id": "credential_entry", "title": "Enter final credentials locally", "status": "done", "detail": "Live credential handoff is complete; no missing ids remain.", "command": "python scripts/final_env_wizard.py --output .env.final.local --missing-only --force", "expected_artifacts": [ "docs/assets/b2-key-scope-checklist.md reviewed before key creation", "B2 pre-key confirmation phrase recorded without secrets: I confirm ProofFrame B2 key scope: standard key, bucket proofframe-demo-a6b4e49, prefix campaigns/, no all-bucket access, no delete/admin permissions, and no secrets in chat/docs/git.", ".env.final.local (git-ignored, never committed)" ], "safe_to_commit_after_scan": [], "task_updates_after_success": [] }, { "id": "b2_live_proof", "title": "Capture Backblaze B2 live proof", "status": "done", "detail": "Sanitized B2 evidence is present and T020 is done.", "command": "python scripts/run_b2_live_proof.py --env-file .env.final.local --evidence-out docs/assets/b2-live-proof-evidence.json", "expected_artifacts": [ "docs/assets/b2-live-proof-evidence.json" ], "safe_to_commit_after_scan": [ "docs/assets/b2-live-proof-evidence.json" ], "task_updates_after_success": [ "python3 scripts/task.py done T020 --note \"B2 live proof evidence captured in docs/assets/b2-live-proof-evidence.json.\"" ] }, { "id": "genblaze_live_proof", "title": "Capture final B2 plus Genblaze proof", "status": "done", "detail": "Sanitized final B2 plus Genblaze evidence is present and T021 is done.", "command": "python scripts/run_final_live_proof.py --env-file .env.final.local --genblaze-provider local --genblaze-image-model local-svg-v1 --evidence-out docs/assets/final-live-proof-evidence.json", "expected_artifacts": [ "docs/assets/final-live-proof-evidence.json" ], "safe_to_commit_after_scan": [ "docs/assets/final-live-proof-evidence.json" ], "task_updates_after_success": [ "python3 scripts/task.py done T021 --note \"Final B2 plus Genblaze live proof evidence captured in docs/assets/final-live-proof-evidence.json.\"" ] }, { "id": "public_video", "title": "Record and verify public demo video", "status": "ready", "detail": "Record and upload the public demo after live proof evidence exists.", "command": "python scripts/devpost_packet.py --post-live --video-url \"$PROOFFRAME_PUBLIC_VIDEO_URL\"", "expected_artifacts": [ "public demo video URL", "docs/assets/devpost-submission-packet.json", "docs/assets/devpost-form-kit.json", "docs/assets/demo-storyboard.json", "docs/assets/recording-assets.json" ], "safe_to_commit_after_scan": [ "docs/assets/devpost-submission-packet.json", "docs/assets/devpost-form-kit.json", "docs/assets/demo-storyboard.json", "docs/assets/recording-assets.json" ], "task_updates_after_success": [] }, { "id": "final_safety_audit", "title": "Run final secret scan and submission audit", "status": "blocked", "detail": "Waiting on final public video.", "command": "python scripts/secret_scan.py && python scripts/submission_audit.py --strict-final", "expected_artifacts": [ "docs/assets/secret-scan-report.json", "docs/assets/submission-audit-report.json" ], "safe_to_commit_after_scan": [ "docs/assets/secret-scan-report.json", "docs/assets/submission-audit-report.json" ], "task_updates_after_success": [ "python3 scripts/task.py done T041A --note \"Final secret scan clear after live proof and public video.\"", "python3 scripts/task.py done T041 --note \"Final submission audit passed after live proof and public video.\"" ] }, { "id": "devpost_submit", "title": "Submit Devpost and capture receipt", "status": "blocked", "detail": "Waiting on all pre-submit gates.", "command": "python scripts/devpost_submission_receipt.py --project-url \"$PROOFFRAME_DEVPOST_PROJECT_URL\" --submitted-at \"$PROOFFRAME_DEVPOST_SUBMITTED_AT\" --confirmation-note \"Devpost accepted/submitted the ProofFrame project.\"", "expected_artifacts": [ "docs/assets/devpost-submission-receipt.json" ], "safe_to_commit_after_scan": [ "docs/assets/devpost-submission-receipt.json" ], "task_updates_after_success": [ "python3 scripts/task.py done T042 --note \"Devpost project submitted and public receipt captured.\"" ] } ], "next_command": "python scripts/devpost_packet.py --post-live --video-url \"$PROOFFRAME_PUBLIC_VIDEO_URL\"", "next_detail": "Record and upload the public demo after live proof evidence exists.", "safety_policy": { "no_secret_values_in_report": true, "never_commit": [ ".env.final.local", "Backblaze key IDs or application keys", "Genblaze provider API keys", "Devpost cookies or browser session files", "raw signed URLs or provider temporary URLs" ], "source_env_files": false } }