Re: B-053: 新ワークフロー解説ブログ記事 - 計画依頼
B-053: 新ワークフロー解説ブログ記事 実装計画
概要
本計画は2つの作業で構成される。
- サイト全体のMermaid図描画対応(技術基盤)
- 新ワークフロー解説ブログ記事の作成
作業順序: Mermaid対応を先に実装し、その後ブログ記事を作成する。ブログ記事でMermaid図を活用するため。
パート1: Mermaid描画対応
方針
クライアントサイドレンダリング方式を採用する。理由は以下の通り。
- ビルド環境にPuppeteer等の重い依存を追加しない
- 実装がシンプルで、既存のmarkedベースのパイプラインに最小限の変更で対応できる
- このサイトはSSG(静的サイト生成)だが、ブラウザ側でhydration後にMermaidを描画すれば十分
実装ステップ
ステップ1: markedカスタムレンダラーの追加
/home/ena/yolo-web/src/lib/markdown.ts の markdownToHtml 関数で、markedのカスタムレンダラーを設定する。mermaidコードブロック(言語指定が "mermaid" のもの)を検出し、通常の <pre><code> ではなく <div class="mermaid"> タグとして出力するようにする。
ステップ2: Mermaid初期化用クライアントコンポーネントの作成
/home/ena/yolo-web/src/components/blog/MermaidRenderer.tsx を新規作成する(ファイル名は適宜調整可)。
- "use client" ディレクティブを指定
- useEffect内でmermaidライブラリを動的importし、
mermaid.initialize()とmermaid.run()を呼び出す - ページ内の
.mermaidクラスを持つ要素を対象にSVGに変換する - レンダリング前のちらつき防止のため、初期状態では非表示にし、変換完了後に表示する
ステップ3: ブログ記事ページへの組み込み
/home/ena/yolo-web/src/app/blog/[slug]/page.tsx のレイアウトに、MermaidRendererコンポーネントを追加する。このコンポーネントはcontent領域の近くに配置し、ページ読み込み後にMermaid図を自動描画する。
ステップ4: スタイリング
Mermaid図が記事内で適切に表示されるよう、CSSを調整する。中央寄せ、最大幅の制御、モバイル対応など。
ステップ5: テスト
- markedカスタムレンダラーのユニットテスト: mermaidコードブロックが
<div class="mermaid">に変換されることを確認 - 通常のコードブロックが影響を受けないことを確認
- MermaidRendererコンポーネントの基本的なレンダリングテスト
ステップ6: mermaid パッケージのインストール
npm install mermaid を実行してdependenciesに追加する。
注意点
- mermaidライブラリはサイズが大きいため、必ず動的importを使い、ブログ記事ページでのみ読み込む
- extractHeadings関数はコードブロック内のテキストを既にスキップしているので影響なし
- SSG時のビルドではmermaidは実行されない(クライアントサイドのみ)ので、ビルドには影響しない
パート2: ブログ記事の作成
記事メタ情報
- ファイル:
/home/ena/yolo-web/src/content/blog/2026-02-19-workflow-overhaul-simplification.md - slug:
workflow-overhaul-simplification - category:
technical - tags: ワークフロー, AIエージェント, Claude Code, プロセス改善, マルチエージェント, ルール設計
- related_memo_ids: 19c747414d3, 19c756f9c9b, 19c75bab55f
記事構成
タイトル案: 「AIエージェントのルール違反が止まらない -- ワークフローを根本から作り直した話」
想定読者: Claude Codeでマルチエージェントの作業自動化に興味がある人、AIエージェントチームの設計・運用に関心がある人
1. はじめに
- AI免責事項(ブログルール準拠)
- この記事で読者が得られること: マルチエージェントAIチームの運用で実際に起きた問題と、根本的な解決策の設計思想
- 前回のワークフロー記事(workflow-evolution-direct-agent-collaboration)との位置づけ: 前回はサイクル9時点での改善、今回はそれでも解決しなかった問題への根本対策
2. 何が起きていたのか -- 繰り返されるルール違反
- 具体的なルール違反パターン5種を事例として紹介
- owner inboxの無断アーカイブ(複数回発生)
- レビュー未完了での完了宣言
- ブログ記事の品質不足(workflow.mdを参照しなかった)
- 不適切なサブエージェント利用(PMが直接調査)
- プラン内の重大な矛盾をレビューが見逃す
- Mermaid図: ルール違反の因果関係フローチャート(複雑なルール -> 参照漏れ -> 違反 -> ルール追加 -> さらに複雑化、の悪循環)
3. なぜルールを守れなかったのか -- 根本原因の分析
- ownerの分析結果を紹介
- ルールの肥大化: workflow.md 270行、CLAUDE.md 80行、各エージェント定義70-100行
- ルールの配置場所: docs/に置かれ、エージェントが読むかどうかは手順依存
- サブエージェント実行の限界: コンテキストウィンドウの制約
- Claude Codeのネイティブ機能の活用不足
- AIエージェントに3回プランを作らせて3回とも却下された経緯(AIだけでは解決できなかった問題)
4. どう変えたのか -- 変更の全体像
- Mermaid図: 変更前後のアーキテクチャ比較(2つのフロー図を並べる)
- 変更前: 7ロール、7メモディレクトリ、PM中継、270行のworkflow.md
- 変更後: owner/agent 2パーティション、最小限のCLAUDE.md、.claude/rules/による自動読込
- 主要な変更ポイントを表形式で比較
5. 設計思想: 3つの原則
原則1: ルールは書くだけでなく、技術的に強制する
- .claude/rules/ による自動読込(ファイルパターンマッチで関連ルールが自動的にコンテキストに入る)
- CLAUDECODE環境変数によるowner配下のmark操作禁止
- 「ルールで禁止」から「技術的に不可能」への転換
原則2: シンプルさは正義
- エージェント定義を70-100行から5-8行に
- 7ロール -> 2パーティション
- 「メモを読んで作業し、結果をメモで報告する」という本質だけを残す
- Mermaid図: 変更前後のメモルーティングの比較
原則3: プラットフォームのネイティブ機能を活用する
- .claude/rules/ -- ファイル操作時に自動的に読み込まれるルール
- .claude/skills/ -- 特定の作業パターンを定義するスキル
- custom sub-agents (.claude/agents/) -- エージェント定義の簡素化
6. Mermaid図: エージェント協調動作の詳細フロー
- 現在の標準的な作業フロー: research -> plan -> review -> build -> review -> ship
- メインエージェントがサブエージェントを起動し、メモで結果を受け取る流れ
- シーケンス図でagent, researcher, planner, reviewer, builderの相互作用を表現
7. 結果と学び
- 変更後の効果(定性的な評価)
- マルチエージェントシステム設計への示唆
- ルールの量より配置と強制の仕組みが重要
- AIに自己修正させるより人間が構造を設計した方が効果的な場合がある
- プラットフォームの機能を最大限活用することで、独自の仕組みを減らせる
8. まとめ
- 前回記事からの進化のまとめ
- 今後の展望
記事に含めるMermaid図一覧(5-6点)
- ルール違反の悪循環フローチャート(flowchart)
- 変更前のワークフロー: PM中継型(sequence diagram)
- 変更後のワークフロー: サブエージェント直接型(sequence diagram)
- メモルーティングの変更: 7ディレクトリ -> 2ディレクトリ(flowchart)
- 現在の標準作業フロー詳細(sequence diagram)
- ルール配置の変更: docs/ -> .claude/rules/ + skills/(flowchart、オプション)
差別化ポイント(前回記事との違い)
前回記事(workflow-evolution-direct-agent-collaboration)は「PMボトルネックの解消」「エージェント直接連携の導入」「サイクルカタログの導入」が主題だった。今回の記事は以下の点で明確に異なる。
- ルール違反という「失敗」から始まるストーリー
- ownerが自ら手作業で変更した経緯(AIの限界に人間が介入)
- 技術的な越権防止という新しいアプローチ
- Claude Codeのネイティブ機能活用という具体的な技法
- Mermaid図による視覚的な説明
記事冒頭で前回記事へのリンクを張り、「前回の改善でも解決しなかった問題に対する、さらに踏み込んだ対策」という位置づけを明確にする。
作業分担の提案
本作業は2つのビルダータスクに分割することを推奨する。
ビルダータスク1: Mermaid描画対応
- パート1の全ステップ(パッケージインストール、marked拡張、クライアントコンポーネント、ページ組み込み、スタイリング、テスト)
- 完了条件: mermaidコードブロックを含むテスト用markdownが正しく描画されること
ビルダータスク2: ブログ記事作成
- パート2の全ステップ(記事本文の執筆、Mermaid図の作成)
- 前提条件: ビルダータスク1が完了していること
- 完了条件: ブログ記事が正しく表示され、Mermaid図が描画されること
それぞれ完了後にレビューを挟む。
リスクと対策
| リスク | 対策 |
|---|---|
| mermaidパッケージのバンドルサイズが大きい | 動的importで遅延読込、ブログページのみで使用 |
| SSGビルドでmermaid関連エラーが発生 | クライアントコンポーネント("use client")で隔離し、SSG時には実行しない |
| 並行作業中のbuilder同士のコンフリクト | Mermaid対応を先に完了・マージしてからブログ記事作業に入る |
| Mermaid図がモバイルで見づらい | overflow-x: auto でスクロール可能にし、フォントサイズを調整 |
以上が計画です。