factory-learn について
factory-learnはソフトウェアファクトリーの学習・保守ワークフローを統括し、セッションの知見や過去の決定をレビュー済みの指令として公開します。ワークフロー実行の分析やルールの冗長性確認にも対応します。
主な機能
- 01セッション学習の抽出とレビュー
- 02Git履歴からの決定事項の発掘
- 03ドラフトPRによる指令の公開
- 04ルールの整理と検証
- 05ワークフローの振り返りとメモリ管理
活用シーン
- 01チームセッションの知見を再利用可能な形で記録
- 02過去のホットフィックスの判断根拠を記録
- 03古いチーム指令や重複ルールを特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ tikalk/ adlc-team-skills --skill factory-learnインストール後、Claude Code で/factory-learnを入力して読み込まれたか確認します。
詳細
factory-learn
このスキルの機能
factory-learn は、ソフトウェアファクトリーの継続的な改善に向けた学習ループを統括します。個々の学習関連スキル(team-init、team-levelup、change-init、change-clarify、change-publish、team-repair、evals-analyze)を調整し、ドラフトの指令を検証・公開済みの、最小限のチームコンテキストアセットへと移行させます。
factory-mission/references/executor.md にある共有実行エンジンのコントラクトに沿って、Kind-A DAG オーケストレーターとして動作します。
使用するタイミング
- セッションで得られた、苦労して得た学びを抽出し、チームの一元管理された
team-ai-directivesリポジトリにまとめたい場合。 - git のコミット履歴を調査して、過去のリバートやホットフィックスの背景にある理由(ChDR)を記録したい場合。
- 「Build to Delete」(Harness Decay チェック)を実行して、冗長なルールを削除したい場合。
使用しない場合:
- プロダクトレベルの仕様策定や開発を行う場合(代わりに
factory-productまたはfactory-missionを使用してください)。 - チームの指令リポジトリがまったく設定されていない場合(先に
/team-setupを実行してください)。
ライフサイクル DAG とステップの解決
factory-learn は、固定の名前付きスキル DAG(fixed ステップ解決)を実装しています。
セッションの学びを扱うルート(セッション終了時のデフォルト)
specify(generateフェーズ) ->team-levelupを呼び出し、アクティブなセッションから候補となる Context Directive Record(CDR)とコンプライアンスを抽出します。clarify⭐(clarifyフェーズ) ->team-levelupを呼び出し、保留中の CDR をレビューします。evals-regression ゲートを適用します(品質の低下がないことを確認するため、verifyサブフェーズとしてコンプライアンスの goldset を実行します)。publish(buildフェーズ) ->team-levelupを呼び出し、承認済みの CDR をパッケージ化してインデックスを作成し、team-ai-directivesリポジトリを対象とするドラフト PR を作成します。prune(analyzeフェーズ) -> 指令ストアにクリーンアップボットを実行し、置き換えられたルール、矛盾するルール、古くなったルールを検出して、非推奨化を提案します。非推奨化の情報はteam-levelupにフィードバックされます。
履歴の調査ルート(既存のコードベース向け)
init(generateフェーズ) ->change-initを呼び出し、git の履歴と課題トラッカーを調査して Change Decision Record(ChDR)を抽出します。clarify⭐(clarifyフェーズ) ->change-clarifyを呼び出し、抽出した主張の出所を対話形式でレビューします。publish(buildフェーズ) ->change-publishを呼び出し、承認済みの ChDR をdocs/adlc/memory/chdr/に反映して、インデックスを再生成します。
メンテナンスと Build-to-Delete ルート(定期実行)
verify(verifyフェーズ) ->team-repair --build-to-deleteを実行します。ルールを一時的に無効にして goldset 評価を再実行します。各ルールについて、次の 2 つの問いを確認します。- Build-to-delete:ルールがなくてもモデルが合格する場合、そのルールを冗長としてマークします。
- Promote-to-check(決定論的チェックを優先、EVAL-010):決定論的チェック(ユニットテスト/バイナリ判定機/pre-commit フック/lint ルール/CI ジョブ)でルールを機械的に適用できる場合、昇格候補としてマークします。あいまいなルールを毎回のセッションに再注入する代わりに、チェックに一度だけコストをかけます。
clarify⭐ -> 冗長なルールの非推奨化と、機械的なルールの昇格を提案し、team-levelupに渡して人間によるレビューを受けます。昇格はアクション P — Promote to check(team-levelup Phase 2b)に振り分けられます。チェックが作成されて CI で実行されるようになったら、CDR は非推奨化されるか、簡潔なポインターに縮小されます。両方の提案はfindingsとして公開されます。
ワークフローの振り返りルート
定期的またはオンデマンドで実行し、ほかのファクトリースキル(例:factory-mission、factory-product)の過去の実行を分析して、ワークフローのメモリーを生成します。
analyze(analyzeフェーズ)-> 完了/失敗した実行の共有状態(adlc-cli workflow statusを介して.adlc/workflows/runs/<run_id>/state.jsonを参照)と証拠ファイルをスキャンします。パターン、繰り返し発生するエラー、または成功した修正を特定します。.adlc/drafts/{adr,pdr,chdr,cdr,evals}/にある未明確化のエントリー(フロントマター/見出しのステータスがproposed/discovered/draft)も確認し、それぞれを所見(Draft ID + 種類 + 経過期間)として提示します。session_end/file_editedフックが実行されたかどうかは問いません。
clarify⭐ -> 提案されたメモリー(activeとtentative)をユーザーに提示するか(ゲート付き/ハイブリッドモードの場合)、自動承認します(自律モードの場合)。publish(buildフェーズ)-> 承認されたメモリーを.adlc/workflows/memory.jsonl(ワークスペース全体)に書き込みます。メモリーには重みと使用回数が付与され、古くなったメモリーや逆効果のメモリーは自動的にアーカイブされます。
共有エグゼキューターのオーバーライド
factory-learnは、共有エグゼキューターエンジンのプリミティブを次のようにオーバーライドします。
- 公開先:
external-repoに固定されています。設定済みのteam-ai-directivesリポジトリにドラフトプルリクエストを作成または更新します。公開先はディレクティブリポジトリのPRであるため、コメントバスはそのPR上で動作し、ステップの出力(決定事項、所見)はディレクティブPRへのマーカーコメントとして公開されます。 - 出力タイプ:ステップでは、次の
output_type割り当てを使用します。specify/init→draft(CDR/ChDRのドラフトは.adlc/drafts/に残り、コメントバスには公開されません)clarify⭐ →decision(承認/却下されたCDR/ChDRの一覧がディレクティブPR上のコメントバスに公開されます)publish→artifact-ref(PR URL参照が公開され、内容はディスク上に残ります)prune/verify→findings(冗長性/非推奨化のレポートがコメントバスに公開されます)
- フィードバックループの取り込み:
evals-analyzeの出力を自動的に取り込みます(仕様の問題によりアプリケーションテストが失敗した場合、evals-analyzeは自動的にteam-levelupにルーティングし、このオーケストレーターを起動します)。 - 監督のデフォルト:
hybridです。clarify⭐(CDR/ChDRエントリーの承認)と最終PRの作成時には、人間によるゲートが必ず適用されます。 - 事前チェック:
team-levelup、change-*、team-*スキルがインストールされていること、およびディレクティブリポジトリのパスが.adlc/init-options.jsonに設定されていることを確認します。
コメント
Markdown 対応