# Market Intel Deploy Handoff

- Generated: `2026-06-26T21:36:37+00:00`
- Transfer ready: `False`
- Production complete: `False`
- Remote evidence complete: `False`
- Deploy mode: `docker`
- Package: `-`
- SHA256: `b32e3e95beb3b1510238b1838b6c56b924b7f4e2d7acc79a7a810bbedc33bfa3`
- Target app dir: `/app`
- Release upload bundle ready: `True`
- Release upload bundle dir: `deploy_uploads/market-intel-engine-20260611T064355Z-upload`
- Operator env template: `/app/reports/operator_inputs.env.example`
- Operator env file: `.env` exists `False` mode `-`
- Operator env template exists: `True`
- Failed gates: `requirements_complete, readiness_clear, deploy_mode_selected, deployment_clear, env_clear, dashboard_content_clear, telegram_content_clear, source_candidates_resolved, telegram_test_sent, health_clear`
- Next operator action: `init_operator_env` 本番入力ファイルを作成する
- Next operator command: `scripts/operator_go_live.sh --init-env --env-file .env`

## Artifacts

- `deploy_zip` exists=False path=`-` sha256=`-`
- `checksum` exists=False path=`-` sha256=`-`
- `manifest` exists=False path=`-` sha256=`-`
- `backup` exists=True path=`/app/backups/20260626T213436Z` sha256=`-`

## Required Env

- `VPS_HOST`: 配備先VPS/クラウドホスト名またはIP。<VPS_HOST>、localhost、テスト用IPは不可。
- `VPS_USER`: SSH接続ユーザー。例: ubuntu、deploy。
- `PUBLIC_DASHBOARD_URL`: 公開ダッシュボードURL。HTTPSで /dashboard.html を指す。
- `TELEGRAM_BOT_TOKEN`: Telegram Bot API token。ログやMarkdownへ直接貼らない。
- `TELEGRAM_CHAT_ID`: 通知先チャットIDまたはチャンネルユーザー名。
- `DEPLOY_MODE`: 本番運用方式。autoではなく systemd または docker を明示する。
- `SSH_PORT` optional: 標準22以外のSSHポートを使う場合のみ設定。
- `SSH_IDENTITY_FILE` optional: SSH鍵を明示する場合のみ設定。
- `SSH_OPTION` optional: 踏み台やKnownHostsなど追加SSHオプションが必要な場合のみ設定。

## Input Status

- `VPS_HOST` configured=`False` source=`-` host=`-` quality_ok=`False`
- `VPS_USER` configured=`False` source=`-` format_ok=`False`
- `PUBLIC_DASHBOARD_URL` configured=`True` source=`environment` host=`35-221-72-238.sslip.io` quality_ok=`True`
- `TELEGRAM_BOT_TOKEN` configured=`True` source=`environment` format_ok=`True`
- `TELEGRAM_CHAT_ID` configured=`True` source=`environment` format_ok=`True`
- `DEPLOY_MODE` configured=`True` source=`environment` format_ok=`True`
- `SSH_PORT` configured=`False` source=`-` format_ok=`True`
- `SSH_IDENTITY_FILE` configured=`False` source=`-` format_ok=`True`
- `SSH_OPTION` configured=`False` source=`-` format_ok=`True`

## Operator Input Issues

- `VPS_HOST` missing: VPS_HOST が未入力です next=`reports/operator_inputs.env に VPS_HOST の実値を設定してください`
- `VPS_USER` missing: VPS_USER が未入力です next=`reports/operator_inputs.env に VPS_USER の実値を設定してください`

## Operator Input Template

```bash
export VPS_HOST="market-vps.example.jp"
export VPS_USER="ubuntu"
export PUBLIC_DASHBOARD_URL="https://market-intel.yourdomain.jp/dashboard.html"
export TELEGRAM_BOT_TOKEN="<telegram-bot-token>"
export TELEGRAM_CHAT_ID="<telegram-chat-id>"
export DEPLOY_MODE="docker"
export SOURCE_PROMOTION_APPLY="1"
export SOURCE_PROMOTION_VERIFY_RUN="1"
```

## Handoff Checks

- `handoff_artifacts_present` ERROR: missing=deploy_zip, checksum, manifest
- `handoff_package_sha_matches_summary` ERROR: summary_sha=b32e3e95beb3b1510238b1838b6c56b924b7f4e2d7acc79a7a810bbedc33bfa3 artifact_sha=-
- `handoff_checksum_matches_summary` ERROR: summary_sha=b32e3e95beb3b1510238b1838b6c56b924b7f4e2d7acc79a7a810bbedc33bfa3 checksum_sha=-
- `handoff_operator_inputs_configured` WARNING: missing=VPS_HOST, VPS_USER invalid=-
- `handoff_commands_present` OK: bad_commands=-
- `handoff_expected_remote_evidence_complete` OK: missing=-
- `handoff_secret_values_not_embedded` OK: commands use environment placeholders/redaction markers for Telegram credentials
- `handoff_vps_plan_uses_operator_env_vars` OK: env_args=True placeholder_literals=False
- `handoff_remote_transfer_ready` ERROR: transfer_ready=False
- `handoff_release_upload_bundle_verified` OK: bundle_ready=True bundle_sha_matches=True bundle=deploy_uploads/market-intel-engine-20260611T064355Z-upload

## Production Completion Criteria

- `operator_inputs_ready` OPEN: 本番URL・Telegram・deploy modeが入力済み (vps_host_configured=False vps_host_quality=False public_url_configured=True public_url_quality=True public_host=35-221-72-238.sslip.io) evidence=`deploy_handoff.json input_status, vps_go_live_plan.json checks`
- `public_dashboard_verified` OPEN: 公開ダッシュボードとJSONが本番URLで取得できる (required_report_coverage=0.9155) evidence=`public_dashboard_check.json, dashboard.html, dashboard.json, deploy_release.json`
- `telegram_send_verified` OPEN: Telegramへ実送信できている (telegram_test.json send.ok=true が必要) evidence=`telegram_test.json, telegram_notify.json, telegram_content_check.json`
- `daily_recurring_verified` OK: 少なくとも2日分の日次安定稼働が証跡化されている (success_days=5/2 consecutive=5/2 latest_age_h=10.01) evidence=`ops_monitor.json, remote_evidence_check.json, remote_recurring_wait.json`
- `strategy_surface_verified` OK: 分析・戦略・ダッシュボード表示がVPS上で揃っている (mutable_reports=51/51) evidence=`dashboard_content_check.json, strategy_reuse_audit.json, strategy_export.json, strategy_theme_company_matrix.csv`
- `source_strategy_context_reuse_verified` OPEN: 発信元スコア文脈がVPS上の分析に再利用されている (reused_after=None eligible=None) evidence=`source_strategy_context_backfill.json, strategy_reuse_audit.json`
- `source_opportunity_radar_verified` OPEN: 有望発信元レーダーがVPS上の日次証跡に含まれている (みずほ系など候補発信元のフォローアップを日次で残す) evidence=`source_opportunity_radar.json, source_opportunity_radar.md`
- `release_upload_bundle_remote_verified` OPEN: アップロードバンドル検証がVPS証跡でdeploy releaseと一致している (bundle_verified=False sha_matches=False bundle_sha=a5b3b8435dc628c178e898fcf9342a638cfc2992673dd36d31914fa982270fae release_sha=b32e3e95beb3b1510238b1838b6c56b924b7f4e2d7acc79a7a810bbedc33bfa3) evidence=`release_upload_bundle_check.json, deploy_release.json, remote_evidence_check.json`
- `runtime_and_archive_verified` OK: VPS上の展開manifest・ランタイム・証跡アーカイブが照合済み (manifest_present=True manifest_ok=True archive_ok=True) evidence=`remote_runtime_evidence.json, remote_evidence_manifest.json, remote evidence archive`

## Remote Evidence Status

- Complete: `False`
- Required reports: `65/71`
- Missing reports: `6`
- Coverage: `0.9155`
- Failed checks: `5`
- Deployed manifest present: `True`
- Mutable reports: `51/51`
- Recurring daily operation: `True`
- Remote success days: `5/2`
- Remote consecutive success days: `5/2`
- Remote latest age hours: `10.01` max `30.0`
- Evidence manifest ok: `True`
- Evidence archive ok: `True`
- アップロードバンドル検証: `False`
- アップロードバンドルSHA一致: `False`
- アップロードバンドルSHA: `a5b3b8435dc628c178e898fcf9342a638cfc2992673dd36d31914fa982270fae`
- VPS展開済みSHA: `-`
- Deploy release SHA: `b32e3e95beb3b1510238b1838b6c56b924b7f4e2d7acc79a7a810bbedc33bfa3`
- Local wait status: `reports/remote_recurring_wait.json`
- Local wait status exists: `False` readable `False` status `missing`
- Local wait attempts: `-/-`
- Local wait attempts remaining: `-`
- Local wait success days: `-/-`
- Local wait consecutive success days: `-/-`
- Local wait missing success days: `-` consecutive `-`
- Local wait latest age ok: `False` max `-`
- Local wait next action: `-` sleep `-`
- Local wait next command: `-`
- Local wait updated: `-`

### Next Missing Remote Reports

- `weekly_market_strategy_report.json`
- `weekly_market_strategy_report.md`
- `weekly_capital_flow_themes.csv`
- `weekly_attention_companies.csv`
- `weekly_market_strategy_telegram.txt`
- `weekly_market_strategy_telegram.json`

### Remote Evidence Collection Order

1. Initialize reports/operator_inputs.env from reports/operator_inputs.env.example if it does not exist.
2. Configure operator inputs: VPS_HOST, VPS_USER, PUBLIC_DASHBOARD_URL, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, DEPLOY_MODE.
3. Run operator_go_live --send-telegram-test to prove Telegram delivery before VPS work.
4. Run vps_go_live_plan to validate real VPS inputs and save a redacted execution plan.
5. Run preflight_only locally before opening an SSH session.
6. Run operator_go_live --all-strict for the standard full path: push, wait for two successful daily runs, and require final evidence complete.
7. Run push_release to upload, install, finalize, and collect reports from the VPS/cloud host.
8. Run wait_remote_recurring_evidence to collect evidence until recurring daily operation is proven.
9. Run operator_go_live --collect, or collect_remote_evidence manually, after a scheduled daily run if you need a one-shot recheck.
10. Confirm remote_recurring_daily_operation=True with at least two successful daily run dates.
11. Run operator_go_live --check-evidence --strict-evidence to revalidate the latest collected evidence before treating production as complete.

## Commands

### operator_go_live_init_env

```bash
scripts/operator_go_live.sh --init-env
```

### configure_operator_inputs

```bash
scripts/configure_operator_inputs.sh --vps-host "$VPS_HOST" --vps-user "${VPS_USER:-ubuntu}" --public-url "$PUBLIC_DASHBOARD_URL" --telegram-bot-token "$TELEGRAM_BOT_TOKEN" --telegram-chat-id "$TELEGRAM_CHAT_ID" --deploy-mode systemd --preflight-after-configure
```

### operator_go_live_validate_inputs

```bash
scripts/operator_go_live.sh --validate-inputs-only
```

### operator_go_live_send_telegram_test

```bash
scripts/operator_go_live.sh --send-telegram-test
```

### operator_go_live_preflight

```bash
scripts/operator_go_live.sh --preflight-only
```

### operator_go_live_all_strict

```bash
scripts/operator_go_live.sh --all-strict
```

### operator_go_live_push

```bash
scripts/operator_go_live.sh --push
```

### operator_go_live_collect

```bash
scripts/operator_go_live.sh --collect
```

### operator_go_live_wait

```bash
scripts/operator_go_live.sh --wait --check-evidence --strict-evidence
```

### operator_go_live_check_evidence

```bash
scripts/operator_go_live.sh --check-evidence --strict-evidence
```

### vps_go_live_plan

```bash
python3 scripts/market_intel.py vps-go-live-plan --host "$VPS_HOST" --user "$VPS_USER" --public-url "$PUBLIC_DASHBOARD_URL" --telegram-bot-token "$TELEGRAM_BOT_TOKEN" --telegram-chat-id "$TELEGRAM_CHAT_ID" --deploy-mode docker --output reports/vps_go_live_plan.json --markdown reports/vps_go_live_plan.md
```

### preflight_only

```bash
PUBLIC_DASHBOARD_URL="https://35-221-72-238.sslip.io/dashboard.html" TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" TELEGRAM_CHAT_ID="$TELEGRAM_CHAT_ID" scripts/push_release_to_vps.sh --preflight-only --deploy-mode docker --apply-promotions --min-recurring-success-days 2 --max-recurring-latest-age-hours 30
```

### push_release

```bash
SSH_PORT="${SSH_PORT:-}" SSH_IDENTITY_FILE="${SSH_IDENTITY_FILE:-}" SSH_OPTION="${SSH_OPTION:-}" PUBLIC_DASHBOARD_URL="https://35-221-72-238.sslip.io/dashboard.html" TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" TELEGRAM_CHAT_ID="$TELEGRAM_CHAT_ID" scripts/push_release_to_vps.sh --host "$VPS_HOST" --user "${VPS_USER:-user}" --deploy-mode docker --collect-dir reports/remote --apply-promotions --min-recurring-success-days 2 --max-recurring-latest-age-hours 30
```

### cloud_init

```bash
RELEASE_ZIP_URL="$RELEASE_ZIP_URL" scripts/render_cloud_init.sh --release-url "$RELEASE_ZIP_URL" --deploy-release-report reports/deploy_release.json --operator-env reports/operator_inputs.env --output deploy/cloud-init/market-intel.rendered.yaml
```

### release_upload_bundle

```bash
python3 scripts/market_intel.py release-upload-bundle --report reports/deploy_release.json --report-dir reports --operator-env reports/operator_inputs.env --output-dir deploy_uploads
```

### release_upload_bundle_verify

```bash
python3 scripts/market_intel.py release-upload-bundle-verify --output-dir deploy_uploads --output reports/release_upload_bundle_check.json
```

### collect_remote_evidence

```bash
SSH_PORT="${SSH_PORT:-}" SSH_IDENTITY_FILE="${SSH_IDENTITY_FILE:-}" SSH_OPTION="${SSH_OPTION:-}" scripts/collect_remote_evidence.sh --host "$VPS_HOST" --user "${VPS_USER:-user}" --collect-dir reports/remote --run-finalize --deploy-mode docker --apply-promotions --min-recurring-success-days 2 --max-recurring-latest-age-hours 30
```

### wait_remote_recurring_evidence

```bash
SSH_PORT="${SSH_PORT:-}" SSH_IDENTITY_FILE="${SSH_IDENTITY_FILE:-}" SSH_OPTION="${SSH_OPTION:-}" scripts/wait_remote_recurring_evidence.sh --host "$VPS_HOST" --user "${VPS_USER:-user}" --collect-dir reports/remote --run-finalize --deploy-mode docker --apply-promotions --min-recurring-success-days 2 --max-recurring-latest-age-hours 30 --max-attempts 48 --sleep-seconds 3600 --status-output reports/remote_recurring_wait.json
```

## Expected Remote Evidence

- Copied reports: `69`
- Generated evidence files: `2`

### Copied From VPS Reports

- `production_audit.json`
- `production_audit.md`
- `go_live.json`
- `go_live.md`
- `deploy_release.json`
- `deploy_release.md`
- `deployed_release.json`
- `release_upload_bundle_check.json`
- `public_dashboard_check.json`
- `dashboard_content_check.json`
- `dashboard.html`
- `dashboard.json`
- `telegram_test.json`
- `telegram_content_check.json`
- `telegram_notify.json`
- `deployment_check.json`
- `readiness.json`
- `requirements_audit.json`
- `requirements_audit.md`
- `operator_input_check.json`
- `strategy_reuse_audit.json`
- `strategy_reuse_audit.md`
- `strategy_export.json`
- `strategy_themes.csv`
- `strategy_companies.csv`
- `strategy_theme_company_matrix.csv`
- `strategy_action_queue.json`
- `strategy_action_queue.md`
- `strategy_action_queue.csv`
- `strategy_decision_digest.json`
- `strategy_decision_digest.md`
- `strategy_decision_digest.csv`
- `weekly_market_strategy_report.json`
- `weekly_market_strategy_report.md`
- `weekly_capital_flow_themes.csv`
- `weekly_attention_companies.csv`
- `weekly_market_strategy_telegram.txt`
- `weekly_market_strategy_telegram.json`
- `source_strategy_score.json`
- `source_strategy_score.md`
- `source_strategy_score.csv`
- `score_explainability.json`
- `score_explainability.md`
- `score_explainability.csv`
- `source_strategy_context_backfill.json`
- `strategy_playbook.json`
- `strategy_lenses.json`
- `source_opportunity_radar.json`
- `source_opportunity_radar.md`
- `source_target_reference.json`
- `source_target_reference.md`
- `source_coverage.json`
- `market_source_coverage.json`
- `env_check.json`
- `health.json`
- `ops_monitor.json`
- `ops_monitor.md`
- `daily_lock.json`
- `daily_lock_audit.json`
- `daily_lock_audit.md`
- `source_freshness.json`
- `source_freshness.md`
- `fetch_error_triage.json`
- `fetch_error_triage.md`
- `ops_snapshot.json`
- `ops_snapshot.md`
- `backup_drill.json`
- `remote_finalize_status.json`
- `finalize_vps.log`

### Generated During Collection

- `remote_runtime_evidence.json`
- `remote_evidence_manifest.json`

### Required For Completion

- `production_audit.json`
- `production_audit.md`
- `go_live.json`
- `go_live.md`
- `deploy_release.json`
- `deploy_release.md`
- `deployed_release.json`
- `release_upload_bundle_check.json`
- `public_dashboard_check.json`
- `dashboard_content_check.json`
- `dashboard.html`
- `dashboard.json`
- `telegram_test.json`
- `telegram_content_check.json`
- `telegram_notify.json`
- `deployment_check.json`
- `readiness.json`
- `requirements_audit.json`
- `requirements_audit.md`
- `operator_input_check.json`
- `strategy_reuse_audit.json`
- `strategy_reuse_audit.md`
- `strategy_export.json`
- `strategy_themes.csv`
- `strategy_companies.csv`
- `strategy_theme_company_matrix.csv`
- `strategy_action_queue.json`
- `strategy_action_queue.md`
- `strategy_action_queue.csv`
- `strategy_decision_digest.json`
- `strategy_decision_digest.md`
- `strategy_decision_digest.csv`
- `weekly_market_strategy_report.json`
- `weekly_market_strategy_report.md`
- `weekly_capital_flow_themes.csv`
- `weekly_attention_companies.csv`
- `weekly_market_strategy_telegram.txt`
- `weekly_market_strategy_telegram.json`
- `source_strategy_score.json`
- `source_strategy_score.md`
- `source_strategy_score.csv`
- `score_explainability.json`
- `score_explainability.md`
- `score_explainability.csv`
- `source_strategy_context_backfill.json`
- `strategy_playbook.json`
- `strategy_lenses.json`
- `source_opportunity_radar.json`
- `source_opportunity_radar.md`
- `source_target_reference.json`
- `source_target_reference.md`
- `source_coverage.json`
- `market_source_coverage.json`
- `env_check.json`
- `health.json`
- `ops_monitor.json`
- `ops_monitor.md`
- `daily_lock.json`
- `daily_lock_audit.json`
- `daily_lock_audit.md`
- `source_freshness.json`
- `source_freshness.md`
- `fetch_error_triage.json`
- `fetch_error_triage.md`
- `ops_snapshot.json`
- `ops_snapshot.md`
- `backup_drill.json`
- `remote_finalize_status.json`
- `finalize_vps.log`
- `remote_runtime_evidence.json`
- `remote_evidence_manifest.json`
