{
  "id": "shipwright-evidence-index",
  "generatedAt": "2026-06-21T22:52:02.096Z",
  "repo": "matthoffner/shipwright",
  "mode": "dry_run",
  "health": "attention",
  "summary": "4 evidence components need attention.",
  "primary": {
    "selectedLane": "observe",
    "selectedTask": "observe:ab_consensus_work_order:pricing-page-watch",
    "deployUrl": "https://shipwright-seven.vercel.app",
    "safetyState": "pass",
    "deployState": "deployed",
    "gitPublishState": "no_changes",
    "doctorState": "needs_attention",
    "adoptionState": "pass",
    "adoptionSmokeState": "passed",
    "projectDependencyState": "installed",
    "browserInstallState": "installed",
    "verificationState": "skipped",
    "codexProviderState": "configured",
    "codexWorkerState": "not_recorded",
    "ciRunState": "passed",
    "ciPreflightState": "passed",
    "ciWorkCycleState": "passed",
    "ciFinalizeState": "passed"
  },
  "counts": {
    "ready": 15,
    "attention": 4,
    "blocked": 0,
    "missing": 0
  },
  "components": [
    {
      "id": "lane_board",
      "label": "Lane Board",
      "health": "ready",
      "state": "selected",
      "sourcePath": "site/lane-board.json",
      "summary": "Observe owns this run; 1 fallback lane remains eligible and 3 lanes are blocked or off.",
      "evidence": [
        "outcome: dry_run",
        "mode: dry_run",
        "selected_lane: observe",
        "selected_task: observe:ab_consensus_work_order:pricing-page-watch"
      ],
      "nextActions": [
        "Execute observe:ab_consensus_work_order:pricing-page-watch in the Observe lane.",
        "Clear blocker for build: No failing check signal is available in the local scaffold",
        "Clear blocker for review: No review comment or maintainer mention signal is available in the local scaffold",
        "Enable lanes.release.enabled in shipwright.yml before routing work here."
      ]
    },
    {
      "id": "current_state",
      "label": "Current State",
      "health": "attention",
      "state": "has_blockers",
      "sourcePath": "site/current-state.json",
      "summary": "Autonomous Dogfood Runtime is the latest product outcome; 0 work orders ready, 2 blocked targets across 2 failing checks.",
      "evidence": [
        "ready_work_orders: 0",
        "blocked: 2",
        "blocking_checks: 2"
      ],
      "nextActions": [
        "Pricing Page Experiment: needs more signal",
        "Product history Focused Section Size: fail - Largest changelog section has 15 entries; DevBox-style sections stay small and outcome-specific."
      ]
    },
    {
      "id": "ab_consensus_queue",
      "label": "A/B Consensus Queue",
      "health": "ready",
      "state": "ship",
      "sourcePath": "site/ab-consensus-queue.json",
      "summary": "Shipwright Site is ready for implementation with Variant A; dogfood, visual, and consensus evidence are aligned.",
      "evidence": [
        "work_orders: 1",
        "ship: 2",
        "watch: 1",
        "blocked: 0"
      ],
      "nextActions": [
        "Complete the primary unblock action for Pricing Page Experiment: Shipwright should run Pricing Page Experiment as an A/B subject with Variant B: Judge-proof pricing.",
        "Regenerate the report and confirm the item leaves blocked status or records a narrower blocker."
      ]
    },
    {
      "id": "doctor",
      "label": "Doctor",
      "health": "attention",
      "state": "needs_attention",
      "sourcePath": "site/doctor-status.json",
      "summary": "Shipwright can start, but 1 readiness warning should be reviewed before schedules cook.",
      "evidence": [
        "mode: dry_run",
        "workspace: /home/runner/work/shipwright/shipwright",
        "workflow: .github/workflows/shipwright-dogfood.yml",
        "config: shipwright.yml",
        "targets: shipwright.targets.json",
        "pass: 4",
        "warn: 1",
        "fail: 0"
      ],
      "nextActions": [
        "Let the dogfood workflow deploy site/ to Vercel and record the result."
      ]
    },
    {
      "id": "adoption",
      "label": "Adoption",
      "health": "ready",
      "state": "pass",
      "sourcePath": "site/adoption-status.json",
      "summary": "Shipwright GitHub adoption wiring is ready.",
      "evidence": [
        "workflow: .github/workflows/shipwright-dogfood.yml",
        "workflow_template: local_dogfood",
        "config: shipwright.yml",
        "targets: shipwright.targets.json",
        "pass: 10",
        "warn: 0",
        "fail: 0"
      ],
      "nextActions": []
    },
    {
      "id": "adoption_smoke",
      "label": "Adoption Smoke",
      "health": "ready",
      "state": "passed",
      "sourcePath": "site/adoption-smoke-status.json",
      "summary": "Fresh reusable GitHub adoption smoke passed.",
      "evidence": [
        "repo: matthoffner/shipwright",
        "workspace: /tmp/shipwright-adoption-smoke-oSzOdh",
        "template: reusable",
        "steps: 4",
        "failed: 0"
      ],
      "nextActions": [
        "Use this same install, github-setup, and manual dry-run path in target GitHub projects."
      ]
    },
    {
      "id": "project_dependencies",
      "label": "Project Dependencies",
      "health": "ready",
      "state": "installed",
      "sourcePath": "site/project-dependency-status.json",
      "summary": "Project dependencies installed with npm ci.",
      "evidence": [
        "workspace: /home/runner/work/shipwright/shipwright",
        "package_manager: npm",
        "package_name: shipwright",
        "lockfile: package-lock.json",
        "install_command: npm ci",
        "steps: 1",
        "failed_steps: 0"
      ],
      "nextActions": []
    },
    {
      "id": "browser_install",
      "label": "Browser Install",
      "health": "ready",
      "state": "installed",
      "sourcePath": "site/browser-install-status.json",
      "summary": "Playwright browser chromium is installed for surface captures.",
      "evidence": [
        "runtime_dir: /home/runner/work/shipwright/shipwright",
        "browser: chromium",
        "with_deps: true",
        "command: npx playwright install --with-deps chromium",
        "exit_code: 0",
        "signal: null"
      ],
      "nextActions": []
    },
    {
      "id": "ci_run",
      "label": "CI Run",
      "health": "ready",
      "state": "passed",
      "sourcePath": "site/ci-run-status.json",
      "summary": "Shipwright CI run completed.",
      "evidence": [
        "mode: dry_run",
        "preflight: passed",
        "work_cycle: passed",
        "finalize: passed",
        "final_site_deploy: configured_unverified",
        "preflight: passed / Shipwright CI preflight completed and wrote setup evidence.",
        "work_cycle: passed / Shipwright CI work cycle completed in dry_run mode.",
        "finalize: passed / CI finalize passed; publish_site true; deploy configured_unverified."
      ],
      "nextActions": [
        "Run shipwright orchestrate with site/ab-consensus-queue.json.",
        "Run Shipwright in autonomous or yolo mode to allow changelog and git publishing.",
        "Run shipwright ci-finalize to refresh report and deploy evidence."
      ]
    },
    {
      "id": "ci_preflight",
      "label": "CI Preflight",
      "health": "ready",
      "state": "passed",
      "sourcePath": "site/ci-preflight-status.json",
      "summary": "Shipwright CI preflight completed and wrote setup evidence.",
      "evidence": [
        "mode: dry_run",
        "targets: 3",
        "steps: 11",
        "project_dependencies: passed / Project dependencies installed with npm ci.",
        "browser_install: passed / Playwright browser chromium is installed for surface captures.",
        "adoption: passed / Shipwright GitHub adoption wiring is ready.",
        "adoption_smoke: passed / Fresh reusable GitHub adoption smoke passed.",
        "doctor: passed / Shipwright can start, but 1 readiness warning should be reviewed before schedules cook."
      ],
      "nextActions": [
        "Run shipwright orchestrate with site/ab-consensus-queue.json."
      ]
    },
    {
      "id": "ci_work_cycle",
      "label": "CI Work Cycle",
      "health": "ready",
      "state": "passed",
      "sourcePath": "site/ci-work-cycle-status.json",
      "summary": "Shipwright CI work cycle completed in dry_run mode.",
      "evidence": [
        "mode: dry_run",
        "steps: 6",
        "write_prerequisites: skipped",
        "publish: skipped",
        "mode: dry_run",
        "write_prerequisites: skipped",
        "orchestrate: passed / A/B consensus work order 1 is ready for dogfood execution: Watch: Pricing Page Experiment",
        "write_prerequisites: skipped / Skipped because Shipwright is running in dry_run mode.",
        "codex_worker: skipped / Skipped because Shipwright is running in dry_run mode.",
        "verification: passed / Verification was skipped because Shipwright is running in dry_run mode.",
        "changelog: skipped / Skipped because Shipwright is running in dry_run mode."
      ],
      "nextActions": [
        "Run Shipwright in autonomous or yolo mode to allow changelog and git publishing.",
        "Run shipwright ci-finalize to refresh report and deploy evidence."
      ]
    },
    {
      "id": "safety",
      "label": "Safety",
      "health": "ready",
      "state": "pass",
      "sourcePath": "site/safety-status.json",
      "summary": "Shipwright dry_run mode has the required safety controls.",
      "evidence": [
        "mode: dry_run",
        "checks: 7",
        "pass: 7",
        "warn: 0",
        "fail: 0"
      ],
      "nextActions": []
    },
    {
      "id": "verification",
      "label": "Verification",
      "health": "ready",
      "state": "skipped",
      "sourcePath": "site/verification-status.json",
      "summary": "Verification was skipped because Shipwright is running in dry_run mode.",
      "evidence": [
        "mode: dry_run",
        "commands: 3",
        "skipped: dry_run"
      ],
      "nextActions": [
        "Run Shipwright in autonomous or yolo mode to verify post-worker changes."
      ]
    },
    {
      "id": "deployment",
      "label": "Deployment",
      "health": "ready",
      "state": "deployed",
      "sourcePath": "site/deploy-status.json",
      "summary": "Vercel accepted the latest site deploy.",
      "evidence": [
        "provider: vercel",
        "state: deployed",
        "VERCEL_TOKEN: configured",
        "VERCEL_ORG_ID: configured",
        "VERCEL_PROJECT_ID: configured",
        "message: Vercel deploy accepted."
      ],
      "nextActions": [
        "Verify the live Vercel site renders the latest site artifacts."
      ]
    },
    {
      "id": "ci_finalize",
      "label": "CI Finalize",
      "health": "ready",
      "state": "passed",
      "sourcePath": "site/ci-finalize-status.json",
      "summary": "CI finalize passed; publish_site true; deploy configured_unverified.",
      "evidence": [
        "publish_site: true",
        "deploy_deferred: true",
        "deploy_state: configured_unverified",
        "doctor_state: needs_attention",
        "deploy_assertion: passed",
        "artifact_manifest: incomplete",
        "artifact_manifest_missing: 1"
      ],
      "nextActions": []
    },
    {
      "id": "git_publish",
      "label": "Git Publish",
      "health": "ready",
      "state": "no_changes",
      "sourcePath": "site/git-publish-status.json",
      "summary": "Git publishing skipped because Shipwright is running in dry_run mode.",
      "evidence": [
        "mode: dry_run",
        "pushed: false"
      ],
      "nextActions": [
        "Run Shipwright in autonomous or yolo mode when changes should be committed and pushed."
      ]
    },
    {
      "id": "codex_provider",
      "label": "Codex Provider",
      "health": "ready",
      "state": "configured",
      "sourcePath": "site/codex-provider-status.json",
      "summary": "Codex is configured for OpenRouter with openai/gpt-5.1-codex-mini.",
      "evidence": [
        "provider: openrouter",
        "model: openai/gpt-5.1-codex-mini",
        "wire_api: responses",
        "OPENROUTER_API_KEY: configured",
        "config_path: /home/runner/.codex/config.toml"
      ],
      "nextActions": [
        "Run Codex with OPENROUTER_API_KEY available in the environment."
      ]
    },
    {
      "id": "codex_worker",
      "label": "Codex Worker",
      "health": "attention",
      "state": "not_recorded",
      "sourcePath": "site/codex-worker-status.json",
      "summary": "No Codex worker run has been recorded for this report.",
      "evidence": [
        "codex-worker-status.json missing"
      ],
      "nextActions": [
        "Run Shipwright Dogfood in non-dry-run mode to capture worker execution evidence."
      ]
    },
    {
      "id": "worker_contract",
      "label": "Worker Contract",
      "health": "attention",
      "state": "unknown",
      "sourcePath": "site/codex-contract-status.json",
      "summary": "No Codex worker contract trace has been recorded for this report.",
      "evidence": [
        "commands: 0",
        "first edit command index: -1"
      ],
      "nextActions": [
        "Run Shipwright Dogfood in non-dry-run mode to capture worker contract evidence."
      ]
    }
  ],
  "nextActions": [
    "Pricing Page Experiment: needs more signal",
    "Product history Focused Section Size: fail - Largest changelog section has 15 entries; DevBox-style sections stay small and outcome-specific.",
    "Let the dogfood workflow deploy site/ to Vercel and record the result.",
    "Run Shipwright Dogfood in non-dry-run mode to capture worker execution evidence.",
    "Run Shipwright Dogfood in non-dry-run mode to capture worker contract evidence."
  ]
}
