factory-product について
factory-product は、製品決定に関するスキルを統括し、一貫性のある PRD.md の作成、改善、分析を行います。製品要件を定義するチーム向けで、新規プロジェクト、既存コードベース、既存 PRD の更新に応じた手順と、人間による承認ゲートを備えています。
主な機能
- 01製品ライフサイクルスキルの統括
- 02プロジェクトや PRD の状態に応じた手順選択
- 03PRD.md の作成と維持
- 04PRD と PDR の整合性確認
- 05人間による承認ゲート
活用シーン
- 01新製品の要件定義
- 02既存コードベースからの PDR ドラフト作成
- 03既存 PRD のずれの検出
- 04承認済み決定に基づく PRD の更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tikalk/ adlc-team-skills --skill factory-productインストール後、Claude Code で/factory-productを入力して読み込まれたか確認します。
同梱ファイルworkflow.yml
詳細
factory-product
ファクトリーの実行中 — まずお読みください
ADLC_RUN_ID が設定されている場合、ワークフローエンジンはこのステップを無人で実行し、その後にゲートが続きます。次の手順を必ず実行してください。
- 開始:
bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/run-branch.sh— Windows ではpwsh {REPO_ROOT}/.agents/skills/factory-mission/scripts/powershell/run-branch.ps1を使用します(各ヘルパーにはscripts/powershell/に PowerShell 版があります。Windows では bash 版ではなく、そちらを使用してください) - DAG が課題に対して解決したライフサイクルの各ステップを実行します。ファイルを変更したステップの後には必ず、書き込み、移動、削除したすべてのパスを指定して
commit-step.shを実行します。 - 戻る前に、必ず:
open-mr.shを実行してから、ADLC_STEP_OUTPUTに1行のconclusionを書き込みます。何も変更されなかった場合も含め、結果にかかわらず実行してください。 - 承認を求めたり、回答を待ったりしないでください。 このステップの後にあるエンジンのゲートが承認にあたります。ここで質問すると、何も公開されないままステップが終了します。
コミット、プッシュ、MR の作成を行うのはこのオーケストレーターだけであり、これらの操作はヘルパー経由でのみ行います。product-* スキルはこれらの操作を行いません。詳細については、ブランチの実行、ステップコミット、ドラフト MR を参照してください。
このスキルの機能
factory-product は、プロダクトの意思決定に関するライフサイクルをオーケストレーションします。個々のプロダクト関連スキル(product-init、product-specify、product-clarify、product-implement、product-analyze)を連携させ、共有レイアウトの docs/adlc/product/PRD.md を一貫した状態に保ちます。
factory-mission/references/executor.md に定められた共有エンジンの契約に沿って、Kind-A DAG オーケストレーターとして動作します。
使用する場面
- プロダクトの要件と意思決定(PDR)を、エンドツーエンドで初期化、改善、または分析したい場合。
- 再開チェックポイントを備えた、ガイド付きで承認ゲートがあり、検証済みのプロダクト定義プロセスを利用したい場合。
使用しない場面:
- ソフトウェアの実装タスクを実行する場合(代わりに
factory-missionを使用してください)。 - アーキテクチャ決定記録を作成する場合(代わりに
factory-architectを使用してください)。
ライフサイクル DAG とステップの解決
factory-product は、固定された名前付きスキル DAG(ステップ解決方式:fixed)を実装します。
グリーンフィールドルート(空のプロジェクトでのデフォルト)
specify(generateフェーズ)->product-specifyを呼び出し、.adlc/drafts/pdr/に PDR のドラフトを共同で作成します。clarify⭐(clarifyフェーズ)->product-clarifyを呼び出し、対話形式で品質チェックを実施して、PDR を承認済みとしてマークします(人間による承認ゲート)。implement(buildフェーズ)->product-implementを呼び出し、承認済みの PDR をdocs/adlc/product/PRD.mdにまとめ、docs/adlc/memory/pdr/に昇格します。analyze(analyzeフェーズ)->product-analyzeを呼び出し、PRD と PDR の整合性を検証し、重大度順のレポートを出力します。
ブラウンフィールドルート(コードは存在するが、PDR がない場合のデフォルト)
init(generateフェーズ)->product-initを呼び出し、既存のコードベースから PDR のドラフトをリバースエンジニアリングします。clarify⭐ →implement→analyze(グリーンフィールドと同じ)。
リフレッシュルート(PRD.md とメモリの PDR がすでに存在する場合のデフォルト)
analyze(analyzeフェーズ)-> まずproduct-analyzeを実行し、ドリフトを検出します。clarify⭐ →implement→analyze(ドリフトを修正するサイクル)。
共有 Executor のオーバーライド
factory-product は、共有 Executor エンジンのプリミティブを次のようにオーバーライドします。
- 公開先:
localに固定されています。出力はdocs/adlc/memory/pdr/とdocs/adlc/product/PRD.mdに書き込まれます。トラッカーと連携している場合は、trackerの完了サマリーコメントも投稿されます。 - 出力タイプ:各ステップでは、次の
output_typeが割り当てられます。specify/init→draft(PDR のドラフトはコメントバスには公開されず、.adlc/drafts/pdr/に保存されます)clarify⭐ →decision(承認/却下された PDR の一覧がコメントバスに公開されます)implement→artifact-ref(PRD.md のパス参照が公開され、内容はディスク上に保存されます)analyze→findings(重大度順の整合性レポートがコメントバスに公開されます)
- 修正ループ:
analyzeがCRITICALまたはHIGHの整合性エラーを返した場合、Executor はreads_fromに analyze マーカーを指定してclarifyに戻します。clarifyは、PR/MR/issue のコメントバス(またはローカルのフォールバック)から調査結果を読み取ります。このループはmax_corrections(デフォルトは 2)によって制限されます。上限を超えると、オーケストレーターは処理を停止し、人によるレビューに回します。 - 監督のデフォルト:
hybridです。clarify⭐(PDR の承認)と最終的なPRD.mdのレビューでは、人によるゲートが必ず適用されます。 - 事前チェック:Phase 0 の開始前に、
product-*ライフサイクルスキルがワークスペースにインストールされていることを確認します。
実行ブランチ、ステップごとのコミット、ドラフト MR
必要条件: factory-mission スキル(実行ヘルパーを提供):adlc-cli skills add tikalk/adlc-team-skills --skill factory-mission
ファクトリー実行(ワークフローエンジンによって ADLC_RUN_ID が設定されている場合)では、このオーケストレーターだけが(product-* ライフサイクルスキルは決して行いません)、常に次の3つのヘルパーを通じて実行ブランチをコミットおよびプッシュし、ドラフト MR を作成します。
- 最初のステップの前:
bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/run-branch.sh— プロジェクトルートでADLC_ISSUE_REFからfactory/intent/<repo>-<iid>をチェックアウトします。既存のブランチを再利用するか、originから続行します。他の intent レーンや再ディスパッチとの間で共有されます。 - 各ステップの後(
specify/init、clarify、implement、analyzeの修正):bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/commit-step.sh --orchestrator factory-product --step <step> --output-type <draft|decision|artifact-ref|findings> --summary "<one line, no issue text>" --records <IDs> -- <paths the step wrote>ステップが書き込み、移動、または削除したすべてのパスを渡します(昇格したドラフトの古いパスも含めます。ヘルパーは許可リスト内の削除もコミットします)。パスはライフサイクルの書き込み許可リスト内のものに限ります(.adlc/drafts/pdr/、docs/adlc/memory/pdr/、docs/adlc/product/PRD.md、.adlc/product/sections/、.adlc/product/state.json)。ヘルパーはsha: <sha>またはsha: noneを出力します。そのshaをステップのバスマーカーに記載します(バスには内容ではなくポインターを渡します)。.adlc/workflows/**は絶対にステージしないでください。 - 戻る前に、必ず:
bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/open-mr.sh— 実行ブランチだけをプッシュし、ドラフト MR を1件見つけるか作成します(マージコミット方式、スカッシュなし。マイルストーン/担当者は MR の所有権に関する決定に従います)。さらにmr_urlをADLC_STEP_OUTPUTに書き込み、エンジンのゲートがリンクします(context.link)。結果にかかわらず呼び出してください。何もコミットされていない場合(sha: none、analyze のみの実行など)は、実行ブランチにコミットがないため何も作成されず、ゲートにはレビュー対象がないことが表示されます。同じ JSON オブジェクトに1行のconclusionも書き込みます(ゲートの intent-conclusion ルール)。
ファクトリー実行では、このステップの後にあるエンジンのゲートが承認そのものです。自分で承認を求めないでください(「implementを承認しますか?」などの質問はしないでください)。issue に必要なステップを完了し、open-mr.shを実行し、結論を述べて戻ってください。
ファクトリー実行の外では、ユーザーがオプトインした場合(.adlc/init-options.json の adlc.commit_steps: true、またはこのスキルに渡された --commit。この場合は commit-step.sh に渡します)を除き、ヘルパーは何もしません。run-branch.sh と open-mr.sh は ADLC_RUN_ID がない場合は動作しません。ヘルパーがゼロ以外の終了コードを返した場合(パスの拒否、コミッター ID の欠落、トラッカーのスコープなど)は実行を停止し、そのことを報告してください。回避策を講じてはいけません。