2026-05-19 に、PR #814 / #727 で残っていた static export error 文脈を clean worktree で再実装し、digitaldemocracy2030/kouchou-ai へ draft PR #835 を作成した。base は origin/main@55e93e1。dirty な既存 worktree ではなく、新規 worktree work/kouchou-ai-clean-static-build/ で実装と検証を行った。source-codeより
Observations
- 変更対象は
apps/public-viewer/app/[slug]/page.tsx、新規apps/public-viewer/app/utils/static-build.ts、新規 testapps/public-viewer/app/utils/__tests__/static-build.test.ts generateStaticParams()内の static export 判定ロジックを helper に寄せ、process.exit(1)ではなくthrow new Error(...)で build failure を表現しているreadyレポート 0 件のケースでは「静的HTML出力に必要な公開状態のレポートが見つかりませんでした」と fail-fast するBUILD_SLUGS指定時に一致するreadyslug が 0 件のケースは別メッセージに分け、「指定値」と「公開状態の slug 一覧」を出す/reportsfetch 失敗時は、API server 起動やAPI_BASEPATH/NEXT_PUBLIC_API_BASEPATHを確認させる補足付きエラーにしている- clean worktree で
pnpm test -- --runInBand app/utils/__tests__/static-build.test.ts app/utils/__tests__/api.test.tsが通過 - 空の
/reportsを返す簡易 API (127.0.0.1:8999) に向けたpnpm run build:staticは、従来のPage "/[slug]" is missing "generateStaticParams()"ではなく新しい日本語エラーで失敗することを確認 utils/dummy-server(127.0.0.1:8002,PUBLIC_API_KEY=public,E2E_TEST=true) に向けたpnpm run build:staticは成功し、/test-report-1,/test-report-2を static page として生成した- GitHub 上では branch
codex/static-build-fail-fastとして push し、draft PR#835を作成済み
Open Questions
Reporter側のAPI_BASEPATH/NEXT_PUBLIC_API_BASEPATH不整合まで同 PR で扱うべきか、それとも別件に分けるべきか- static build failure の文言を、CLI / static-site-builder 経由のユーザーにも十分分かりやすい表現へさらに調整する必要があるか
Updates
- 2026-05-19: 初版作成
- 2026-05-21: current
main@5d591efで helper / test / route 共有の再確認を行い、Issue#683の旧 build error は current main では非再現、論点は no-report 時の期待挙動へ移ったと補記