---
name: pipeline-optimizer
version: 1.2.0
type: protocol
author: Lukas Geiger (method) + Claude (write-up)
created: 2026-05-16
updated: 2026-06-13
aliases: [project-folder-optimizer, pipeline-renovator, project-renovator]
description: 既存のパイプライン、個別プロジェクトフォルダ、ドキュメント構造、またはソフトウェアスタックを改善、改修、再構築するための構造化された6ステップのプロシージャ。「pipeline optimizer」（ソフトウェア、研究、ゲーム開発パイプラインなど、トピック全体のパイプライン対象）または「project-folder optimizer」（単一のソフトウェアツールや論文プロジェクトなど、パイプライン内の個別プロジェクトフォルダ対象）として呼び出し可能。「パイプラインXを改善する」、「スタックを最適化する」、「Yを再構築する」、「改修」、「パイプラインのリファクタリング」、「プロジェクトフォルダのクリーンアップ」、「フォルダ構造の改善」、「規約の統一」、「ドキュメントの統合」、「既存システムへの統合」、または確立された構造に対する実質的な介入タスクで起動。既存資産の調査、目的の明確化、理想像のスケッチ、ギャップ計画、経験的課題の特定、および新しいサブエージェントによる再テストを提供。並行標準の発生、重複、パイプラインの破綻を防止。
standalone: true
anthropic_compatible: true
bach_compatible: true
bach_origin: false
category: dev
tags: [pipeline, renovation, refactoring, stack, workflow, lessons-learned]
language: ja
status: active
dependencies: {'tools': [], 'services': [], 'protocols': [], 'python': []}
provenance: {'origin': 'custom', 'origin_path': '~/.claude/skills/pipeline-optimizer/', 'origin_version': '1.1.1', 'last_sync_from_origin': '2026-05-16', 'last_sync_to_origin': None, 'local_changes_since_sync': True}
---

> **日本語** — `pipeline-optimizer` の公式日本語版。


# Pipeline Optimizer / Project-Folder Optimizer (日本語)

**互換性問題を起こさない6ステップの改修プロセス** — 2つのスケールで適用可能:

| トリガー名 | 適用範囲（スコープ） | 例 |
|---|---|---|
| **Pipeline optimizer** | パイプライン全体、スタック、ドキュメント構造 | トピックパイプライン（例: `software/`、`research/`、`games/`、エージェントシステム） |
| **Project-folder optimizer** | パイプライン内の個別プロジェクトフォルダ | ソフトウェアツール、論文プロジェクト、ゲームプロジェクト |

ここでの**パイプライン**とは、共通の規約のもとで複数のプロジェクトが存在する、トピック指向のトップレベル構造を指します（例: リリースルールを持つソフトウェアパイプライン、出版手続きを持つ研究パイプライン）。

両者とも同じ6ステップのワークフローを使用します — 唯一の違いは**適用範囲（スコープ）**（パイプライン全体 vs. 単一プロジェクト）であり、それに伴いステップAにおける既存資産調査の深さが異なります。

## 本 Skill の適用タイミング

本 Skill は、新規構築（greenfield）ではなく、**既存の**構造を改善、再構築、または拡張するよう依頼された場合に適用されます。具体的なトリガー:

**パイプラインレベル**（スコープ: パイプライン全体）:
- 「パイプライン X を改善する」
- 「スタックを最適化する」
- 「ソフトウェアパイプラインを改修する」
- 「研究パイプラインにおけるドキュメント統合」
- トピックパイプライン、中央の `_tools/`、またはシステムコンポーネントに対する実質的な介入

**プロジェクトフォルダレベル**（スコープ: 単一プロジェクトフォルダ）:
- 「プロジェクトフォルダ X のクリーンアップ / 最適化」
- 「Y のフォルダ構造を改善する」
- 「単一ツールのリファクタリング」
- 「論文プロジェクトのセットアップ統一」
- 「ゲームプロジェクトフォルダをパイプライン標準に準拠させる」

**横断的・共通:**
- 「X を再構築し、既存の Y に統合する」
- 「リファクタリング」、「統合」
- 「規約の統一」
- 「既存システムへの統合」

## 既存建築物（資産）の比喩

家を改修するには、まず**何で作られているか**（石、木、プラスチック）、**何のためにあるのか**（山小屋、ソフトウェア工房）、アンド**すでにどこで機能を果たしているか**を知る必要があります。同じ規律がパイプラインにも適用されます。

---

## 実施手順 — 6ステップ（スキップ不可、順序変更不可）

### ステップ A — 既存資産の調査

**質問:** 家は何で作られていますか？

**パイプラインスコープ**（すべてのルートドキュメント + ツール + テンプレート）:
- [ ] **すべてのルートドキュメントを完全に読み込む**（スニペットや挿入箇所だけで判断しない）
- [ ] テンプレートフォルダ（`_templates/`、`_TEMPLATES/`）およびツールフォルダ（`_tools/`）の確認
- [ ] ポリシーファイル: 例: GITHUB-POLICY.md, RELEASE-MANAGEMENT.md, QUALITY_RULES.md, NAMING-SYSTEM.md, 出版手続き など
- [ ] ステータススナップショット: 例: PROJECT_STATUS.md, ステータス概要, releases.json, レジストリファイル
- [ ] チェックリスト: 例: リリースチェックリスト, ビルド/PDFチェックリスト
- [ ] ワークフロー: AGENTS.md, GUIDE.md, SKILL.md
- [ ] 経験教訓ファイル: LESSONS_LEARNED.md, MEMORY.md, ループ状態ファイル

**プロジェクトフォルダスコープ**（単一プロジェクトの実体 + 関連するパイプライン規約）:
- [ ] **プロジェクトフォルダ内のすべての Markdown および制御ファイルを読み込む**（README, CHANGELOG, TASKS/TODO, DONE, CONCEPT, アクションプラン, 証明メモ など）
- [ ] **コード構造の調査:** src/, tests/, ビルド構成（pyproject.toml, requirements.txt, プロジェクトマニフェスト, ツールチェーンファイル など）
- [ ] **親パイプラインの規約を考慮する**（例: ソフトウェアプロジェクトの場合: GitHub ポリシー, 命名システム, リリース管理, テンプレート）
- [ ] **プロジェクト内の既存ツール/スクリプトをスキャンする**（`_tools/`, `_scripts/`, build_*.bat, START スクリプト）
- [ ] **設定ファイル:** `.gitignore`, LICENSE, NOTICE, SECURITY.md, CODE_OF_CONDUCT.md

**アンチパターン:** `grep -l "<keyword>"` を使用して挿入箇所を検索し、ファイルのコンテキストを理解せずに直接挿入すること。

**アウトプット:** 選択したスコープにおけるすべての関連規約、ツール、テンプレートを含むインベントリメモ。

### ステップ B — 目的の特定

**質問:** 家は何のために存在していますか？

目的を 1〜2 文で明示的に記述します。

**パイプラインの例:**

| パイプライン | 目的 |
|---|---|
| ソフトウェアパイプライン | デスクトップアプリ + ブラウザツールを開発・テストし、ストア/GitHub にリリースする |
| 研究パイプライン | 学術論文を執筆・査読し、リポジトリ/プレプリントサーバーに公開する |
| ゲームパイプライン | ゲームを開発し、ターゲットプラットフォームで公開する |
| エージェントシステム | マルチエージェントオーケストレーションのための LLM システム |

**プロジェクトフォルダの例:**

| プロジェクトフォルダ | 目的 |
|---|---|
| `software/PlannerApp` | 計画管理デスクトップアプリ、商用、プライベートリポジトリ |
| `research/CosmologyModel` | モデル論文シリーズ + 数値計算 |
| `games/SortingChaos` | ソートゲーム、アルファ段階、レベル進行 |

目的は**あらゆる介入を誘導します** — 目的を果たさない施策は破棄されます。

### ステップ C — 理想像のスケッチ

**質問:** この目的のための完璧な家はどのようなものですか？

- 自分自身の視点からスケッチします（簡潔に、最大10項目）
- ベストプラクティスの比較を取り入れます（例: SaaS の場合は Vercel スタック、研究の場合は scientific-python スタック）
- 詳細な最適化に陥らないようにします — トップレベルの概要スケッチで十分です

**アウトプット:** パイプラインごとの「理想状態」5〜10項目

### ステップ D — ギャップ分析と計画

**パイプラインごとの4つの質問:**

1. **家にはすでに何がありますか？** — 理想と解決方法が異なっていても、**機能的に同等**であれば含まれます。
   *例:* 理想では「サードパーティライセンスに pip-licenses を使用」と指定されているが、現実はカスタム生成スクリプトがそれをラップしている → 機能的に同等であるため、介入不要。

2. **何が機能を阻害していますか？** — 現在、障害や余分な手間を引き起こしている既存構造。

3. **機能していないものは何ですか？** — デッドコード、時代遅れの規約、未使用のツール。

4. **何が機能を測定可能な形改善しますか？** — 期待される利益を伴う具体的な介入。

→ これにより**具体的な計画**を策定:
- 何を**新規構築**するか？
- 何を**拡張**するか？
- 何を**解体/撤去**するか？
- 何を**変更なし**とするか（明確に命名することが重要！）

**アウトプット:** 列「*介入事項* / *既存状態* / *施策* / *根拠*」を持つ計画表

### ステップ E — 実証的に取り組む

トップダウンの計画だけでなく、課題（ペインポイント）を収集します:

- [ ] **既知のバグ**: イシュートラッカー、TASKS/TODO/DONE ファイル
- [ ] **エラー履歴**: 経験教訓ファイル、バグ修正ログ、チェックレジストリ
- [ ] **自動化の破綻**: 「いつも手動で行わなければならない作業は何か？」
- [ ] **ユーザーインタビュー**: 具体的にヒアリング — 課題、要望、回避策
- [ ] **セルフテスト**: パイプラインを一通り実行してみる（新規プロジェクトの作成、ビルドの実行、リリースのシミュレーション） — どこで破綻するか？

実証的に発見された課題によって、ステップDの計画の**優先順位が決定**されます。

### ステップ F — 実施後の再テスト

- [ ] 改修コンテキストの影響を受けていない**新しいサブエージェント**に、変更後のワークフローを実行させる
- [ ] **測定可能な事前/事後データ**: セットアップ時間、エラー率、手動ステップ数、ビルド時間
- [ ] **回帰防止チェック**: 変更後も既存のワークフローが正常に動作するか？
- [ ] **測定可能な改善が見られない**場合、または回帰が発生した場合: 改修を**ロールバック**するか再調整する

## アンチパターン（禁止事項）

| アンチパターン | 損害 | 処方箋 |
|---|---|---|
| ドキュメントを読まずに挿入箇所を検索する | 並行標準の発生 | ステップ A を完全実行 |
| 「X のベストプラクティス」を1:1でそのまま導入する | 不互換 | ステップ D で機能的に比較 |
| 規約を確認せずに新しいファイルを作成する | 重複（例: NOTICE.md ↔ THIRD_PARTY_LICENSES.txt） | ステップ A + ステップ D |
| 実証データなしでトップダウン計画を立てる | 解決策が実際の課題とズレる | 計画決定前にステップ E を実行 |
| 自身の変更をテストしない | 未検出の回帰 | 新しいエージェントでステップ F を実行 |
| 状態が不明確なまま「後で明確化」とする | ユーザーが後から衝突に気づく | 不確実な場合は、ステップ D をユーザーと再確認 |

## ケーススタディ — NOTICE.md 事件

**任務:** 複数のトピックパイプライン（ソフトウェア、研究、ゲーム）にわたってパイプラインの改善を実施。

**ミス:** ステップAをスキップ — 完全なポリシーファイルを読まずに、挿入箇所のみを検索。

**結果:** `THIRD_PARTY_LICENSES.txt` + カスタムライセンス生成器（`pip-licenses` のラッパー）が確立されていたにもかかわらず、7つのファイルに「新しいライセンスファイル」として `NOTICE.md` を導入 — これはパイプラインの GitHub ポリシー（必須ファイル + ライセンスチェックリスト）に文書化されていた。すべてのソフトウェアプロジェクトには既に THIRD_PARTY ファイルが存在していた。

**発覚:** ユーザーから指摘されて初めて発覚（「権利管理は既にあったはずだが」）。

**修正:** プロジェクトテンプレートから NOTICE.md を削除し、さらに6つのファイルを調整、`pip-licenses` の代わりに既存のライセンス生成器を参照するように修正。

**教訓:** ステップ A が完全に実行されていれば、書き込み前に衝突が検出されていた。

## 経験則

1. **「パイプラインの改善」においては、書く時間と同じくらいまず読むこと。**
2. **既存の標準が存在しないという証明がない限り、新しい標準を作らない。**
3. **新しい並行ツールを作るのではなく、既存のツール/ラッパーを使用する。**
4. **「無駄な機械的追加」は通常「既存のものを拡張する」ことよりも悪い。**
5. **衝突発生時のロールバック**は、2つの並行標準を運用するよりも常に優れている。

## 完了チェックリスト

パイプラインの改修を「完了」と報告する前に:

- [ ] ステップ A: 関連するすべてのルートドキュメントを読み込んだか？
- [ ] ステップ B: パイプラインの目的を 1〜2 文で記述したか？
- [ ] ステップ C: 理想像をスケッチしたか（5〜10項目）？
- [ ] ステップ D: 表によるギャップ分析を行ったか（維持 / 拡張 / 新規 / 廃棄）？
- [ ] ステップ E: 実証データを確認したか（バグ、教訓、セルフテスト、ユーザーインタビュー）？
- [ ] 計画についてユーザーと合意したか？
- [ ] ステップ F: 新しいサブエージェントでテストし、改善が測定可能か？
- [ ] 並行標準が導入されていないか？
- [ ] 衝突が発生した場合: ロールバックされたか、あるいは正直に説明されたか？

## 最適なプロジェクトフォルダ構造（プロジェクトフォルダオプティマイザー向け）

本 Skill を**単一のプロジェクトフォルダ**に適用する場合、以下の組み合わせ推奨が理想的な参照（ステップ C）として役立ちます:

### Anthropic 標準 (Claude Code)

| ファイル/フォルダ | 機能 |
|---|---|
| `CLAUDE.md` (ルート) | Claude Code により自動読み込み、プロジェクト固有の指示 |
| `.claude/settings.json` | 権限、環境変数、モデル選択（コミット対象） |
| `.claude/settings.local.json` | ローカルオーバーライド（コミット不可、`.gitignore` に追加） |
| `.claude/commands/*.md` | カスタムスラッシュコマンド |
| `.claude/agents/*.md` | カスタムサブエージェント |
| `.claude/skills/<name>/SKILL.md` | プロジェクト Skill |

### 独自のプロジェクトドキュメントテンプレート（推奨）

独自のプロジェクトドキュメントテンプレート（例: `<your-workspace>/_templates/project-docs/` 配下）を維持している場合、**3つの構築プロファイル**が効果的です。分割例: **MINIMAL** は 7 つのルートファイル（`AGENTS.md`, `CLAUDE.md`, `README.md`, `START.md`, `STATE.md`, `TODO.md`, `DONE.md`）と `_tools/` によるセッションコアセットを提供します。**STANDARD** は `CHANGELOG.md`, `DECISIONS.md`, `PATTERNS.md` を追加します。**FULL** は 14 のルートファイルに拡張し、さらに `ARCHITECTURE.md`, `WORKFLOWS.md`, `TOOLS.md`, `GLOSSARY.md` ならびに `workflows/` および `.github/` を追加します。

→ **このようなテンプレートを新しいプロジェクトのベースとして使用する**（手動作成ではなくコピーする）。

### パイプライン固有の追加項目（例）

パイプラインに応じて、さらに必須ファイルが追加されます — 典型的なパターン:

- **ソフトウェアプロジェクト:** LICENSE, CODE_OF_CONDUCT.md, SECURITY.md, CONTRIBUTING.md, THIRD_PARTY_LICENSES.txt（自動生成）, pyproject.toml/requirements.txt, パイプラインの中央リリースレジストリへのエントリ。→ 利用可能な場合: パイプラインの cookiecutter テンプレートを使用。
- **研究プロジェクト:** 概念ドキュメント、アクションプラン、出版プラン、アーカイブ/ソース/結果/データフォルダ（`_archive/`, `_sources/`, `_results/`, `_data/`）、LaTeX 用の `paper/`。証明プロジェクトの場合: 証明チェーンとステータスを含む証明メモファイル。
- **ゲームプロジェクト:** エンジンのプロジェクトマニフェストおよびツールチェーンファイル（例: Roblox/Rojo の場合: default.project.json, rokit.toml, wally.toml, selene.toml）、ゲームデザインドキュメント、エンジン規約に基づく `src/{server,client,shared}/`。

### 完全な詳細参照

→ 本 Skill フォルダ内の **`references/optimal-project-structure.md`**（ドイツ語）を参照。内容:
- `settings.json` の例（Anthropic スキーマ）
- 必須の `.gitignore` エントリ
- アンチパターン（プロジェクトフォルダに含めるべきでないもの）
- パイプラインタイプごとの推奨ワークフロー（ソフトウェア/研究/ゲーム）
- ドキュメントファイルの YAML ヘッダー規約
- 自動チェックのスケッチ

## 関連 Skill（本 Skill の代わりにいつ使用するか？）

| Skill | いつ使用するか |
|---|---|
| **`project-onboarding`** | 外部の既存リポジトリを自身のシステムに取り込む場合 |
| Project bootstrapper（利用可能な場合） | 既存のパイプライン内に新しいプロジェクトを作成する場合（新規構築、改修なし） |
| Pipeline bootstrapper（利用可能な場合） | 完全に新しいパイプラインを作成する場合（稀なケース） |
| System onboarding（利用可能な場合） | 新しいマシンをセットアップする場合 |

**pipeline optimizer** は**改修**を担当し、新規構築や導入は担当しません。Skill コレクションに Skill インデックスがある場合は、一致するブートストラップ Skill を検索してください。

## 相互参照

- 詳細参照: `references/optimal-project-structure.md`（本 Skill フォルダ内）
- Anthropic Claude Code ドキュメント: `https://docs.claude.com/en/docs/claude-code`
- 利用可能な場合: グローバルユーザールール（例: `~/CLAUDE.md` 内の「改修」セクション）およびパイプライン固有のスタック記述

## スコープの選択: パイプライン vs. プロジェクトフォルダ

どのスコープを指しているかが不明確な場合は、**ステップ A の前に確認**してください:

| 手がかり | スコープ |
|---|---|
| 「ソフトウェアパイプライン全体を改善する」 | パイプライン |
| 「ツール X のフォルダをクリーンアップする」 | プロジェクトフォルダ |
| 「中央リリースレジストリを同期する」 | パイプライン（中央資産） |
| 「ゲーム Y の AssetBuilder をリファクタリングする」 | プロジェクトフォルダ |
| 「パイプライン全体にチェック規約を導入する」 | パイプライン |
| 「プロジェクト Z にチェックファイルを作成する」 | プロジェクトフォルダ |

**プロジェクトフォルダスコープ**では、介入の互換性を保つため、親パイプラインの規約も常に簡単に確認してください（ステップ A の拡張）。

---

## 変更履歴

### 1.2.0 (2026-06-13)
- Skill ライブラリでの最初の公開: 個人パス、具体的なパイプライン/プロジェクト名、プライベート Skill への参照を汎用的な例に置き換え。手順自体（6ステップ、アンチパターン、ケーススタディ、チェックリスト）は変更なし

### 1.1.1 (2026-06-01) 以前
- 内部バージョン（公開前のプライベート Skill ディレクトリ）
