Skip to content

開発体制の進化ログ(2026年10月) ​

体制の進化ログの2026年10月の記録。書き方は進化ログの「書き方」が正。新しい項目は、各節の先頭に足す。

候補(評価済み) ​

  • [x] 画面の通しの確かめを E2E(Playwright)にして CI で流す — 移植元は全画面をブラウザで描画する E2E を CI で流し、レポートを Pages に載せている。いまは画面が1つで、Vitest の画面のテストで足りるので入れなかった。止め方の案:機械(CI)(2026-10-14) 2026-10-15 採用。 下記「採用済み」参照

採用済み ​

2026-10-15 API ドキュメントと E2E も基盤に入れた ​

前日の移植では「TODO アプリには早い」として外した2つを、人間の要望で基盤に入れた。機能を足すサイクルを回す前に、API を足すたびに文書とテストがついてくる形と、ビルドした画面を実ブラウザで確かめる形を用意しておくため。

  • API の一覧から API ドキュメントを作る — packages/schemas に API の一覧(メソッド・パス・状態コードごとの応答の zod のスキーマ)を置き、OpenAPI 3.1 の文書と Redoc の HTML をビルド時に作る(redocly lint を通らなければ失敗)。テストでは、MSW のハンドラと一覧の1対1と、返したすべての応答が一覧の形どおりかを確かめる。ドメイン型は zod のスキーマから作るようにした。反映先:packages/schemas/・scripts/build-api-docs.ts・redocly.yaml・apps/web/src/test/responseCheck.ts・apiEndpoints.test.ts・packages/domain/src/todo.ts・docs/architecture/index.md・docs/process/rules/architecture.md・testing.md・AGENTS.md
    • きっかけ:人間の要望 / 止め方:機械(ビルド時の自動生成・テストでの照合)
  • E2E(Playwright)を CI で流し、レポートを Pages に載せる — ビルドした画面を実ブラウザで開き、MSW(Service Worker)ごと動いて、コンソールに誤りが出ないかを見る。重いので pre-push には入れず、CI とデプロイで流す。反映先:apps/web/e2e/・apps/web/playwright.config.ts・.github/workflows/・scripts/copy-test-reports-to-pages.mjs・docs/architecture/test-report.md
    • きっかけ:人間の要望 / 止め方:機械(CI)

採らなかったこと:画面のコードが API の一覧(@evolving-todo/schemas)を import するのを lint で止めること。ルールの文書(アーキテクチャルール「依存の向き」)に書くだけにし、候補に残した。リクエストの本文の検査(移植元の body/parse.ts)も、本文を受け取る API がまだ無いので入れない(最初に本文を受け取る API を足すサイクルで入れる)。

2026-10-14 CarTaGraphFantasy の開発体制を移植して始めた ​

CarTaGraphFantasy で約1か月かけて育てた開発体制のうち、ダッシュボードと体制の進化の仕組みを、TODO アプリの大きさに合わせて縮めて移植した。人間が LT でサンプルとして見せるため、仕組みが本当に回ることを、実際にサイクルを回して示す。

  • ダッシュボードとタイムラインをビルド時に組み立てる — 要望ファイル・ロードマップ・未解決論点・既知の問題・進化ログの候補から、トップページのダッシュボードを作る。進化ログの「採用済み」「却下」から、タイムラインを作る。状況を手で書き写さない。反映先:docs/.vitepress/*.data.ts・docs/.vitepress/components/・scripts/evolution-timeline.mjs
    • きっかけ:計画 / 止め方:機械(ビルド時の自動生成)
  • 進化ログの書き漏らしを止める — 進め方のファイル(docs/process/・AGENTS.md・CLAUDE.md・.claude/)を変えたのに進化ログが変わっていないコミットを止める。反映先:.githooks/commit-msg・scripts/check-evolution-log.mjs
    • きっかけ:計画 / 止め方:機械(git フック)
  • lint・型検査・テスト・docs ビルドを git フックと CI で止める — lint は pre-commit(安全な修正は自動で当てる)、それ以外は pre-push(成功したら1行だけ出す)と CI。反映先:.githooks/・.github/workflows/ci.yml
    • きっかけ:計画 / 止め方:機械(git フック・CI)
  • Claude Code の危ない操作をフックで止める — インタプリタへの heredoc・sed -i・git stash・git checkout でファイルを戻す・--no-verify を止める。移植元で、ルールに書いても再発したものを機械にしたもの。反映先:.claude/hooks/guard-bash.mjs・.claude/settings.json
    • きっかけ:計画 / 止め方:機械(Claude Code のフック)
  • 開発サイクルとその呼び出し口 — 8ステップの開発サイクル・レビュールール・依頼文の雛形を docs/process/ に置き、Claude Code の skills とレビューのサブエージェント3体はそれを呼ぶだけにした。反映先:docs/process/・AGENTS.md・CLAUDE.md・.claude/skills/・.claude/agents/
    • きっかけ:計画 / 止め方:置き場所(入口と本文を分ける)、手順・ルール(開発サイクル)

移植しなかったもの:仮ルールの一覧と検査、用語の旧称の検査、画面一覧とルートの照合、API のスキーマ共用と API ドキュメント、E2E、層ごとの import の禁止。どれも移植元のプロダクトの大きさで必要になったもので、いまの TODO アプリには早い。後で要りそうなものは候補に残した。

却下 ​

まだ無い。