Communitygithub.com

maskshell/solidforge-pi

AIコーディングエージェントのためのループエンジニアリングシステム(Piパッケージ)。収束→仕様化→実装:デュアルリング収束ゲート、敵対的クロスソースレビュー、ソースに基づく引用検証、および先行技術衝突検索を備えた並行TDD開発。すべてのゲートで正直なカバレッジを提供し、黙ってグリーンになることはありません。

solidforge-pi とは?

このスキルは、文書(設計論文、研究文書、仕様書など)内の新規性主張に対する先行技術衝突検出器です。プロセス軸に焦点を当てたクロスソースレビュー(csr)や引用元検証(psv)とは異なり、OUTCOME軸の新規性表面を開放します。新規性主張を抽出し、検索可能な先行技術コーパス(arXiv、ウェブ、公開リポジトリ)に対して衝突チェックを行い、各主張に対して「衝突」、「未引用関連」、「検索範囲内でクリア」、「保留」のいずれかの判定を下します。このスキルは「新規性確認済み」という判定を絶対に出力せず、常にカバレッジ開示(`collisions_under_known_coverage`)を提供します。これは、証拠がないことを証拠がないと扱うためであり、証拠がないことをもって新規性と主張する誤り(absence-of-evidenceをevidence-of-absenceと誤認するカテゴリーエラー)を回避する、重要な誠実性の原則です。検出された衝突は、必ず発見された先行技術からの引用を根拠とし、引用なしの主張は「保留」に格下げされます。このスキルはcsrやpsvに追加可能であり、それらと統合されることはありません。また、人間による判断を必要とするケース(M=0またはI>0)を適切にエスカレーションします。

対応✓Claude Code~Codex CLI~Cursor
npx skills add maskshell/solidforge-pi

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

新規性カバレッジ

文書形式のアーティファクト(設計論文、研究文書、仕様書)に対する、読み取り専用で検索に基づいた、新規性主張ごとの衝突検出器。これは、cross-source-review(csr)、primary-source-verification(psv)、またはブループリント作成のresearcherが到達しないOUTCOME軸の新規性表面を開放します。csrは文書のプロセス軸を収束させますが、先行技術の検索は行いません。psvは引用された各ソースをFETCH(後方、引用済み)しますが、引用されていない先行技術を探索しません。researcherは作成のためにソースを前方にGATHER(逆方向)します。先行技術検索は、欠落している後方の、引用されていない先行技術との衝突チェックです。つまり、各新規性主張に対して先行技術コーパスをSEARCHし、衝突を正直に報告します。

コアポジショニング

検索に基づき、想起ベースではない

collision / uncited-relevant の判定は、モデルの想起ではなく、発見された先行技術からFETCHされたQUOTEを引用しなければなりません。発見された先行技術のテキストから取得した引用に基づかない判定は、inconclusiveに格下げされ、決して主張されません。これが重要な不変条件(ワークスペースルール3 + L1)であり、セルフゲート(NC-I5)によって強制されます。発見されたテキスト自体は、検索結果からモデルによって抽出されたものであり、psvの取得された権威あるソースよりも弱いオラクルです(以下の2層の注意点を参照)。

主張ごとの衝突カバレッジ、新規性の評決ではない

prior-art-searchは決してnovel_confirmedや「文書は新規である」を出力しません。その唯一のトップラインシグナルはcollisions_under_known_coverageです。M個の抽出された新規性主張のうち、C個が検索範囲内でクリア、N個が衝突、U個が未引用関連、I個が保留。I個の主張(およびM=0の場合、つまり新規性表面がない場合)は人間にエスカレーションされます。これは正直なカバレッジ開示であり、新規性の評決ではありません。証拠がないことの限界(「先行技術は存在しない」ことを証明できない)は不可避であり、衝突がゼロの文書は「検索されたコーパスでは衝突が見つからなかった」のであって、「新規」ではありません。novel_confirmedブーリアンにループする対称的な「新規性収束」スキルはカテゴリーエラーです。それはカバレッジ開示(「検索されたコーパスでは衝突が見つからなかった」)を評決(「新規」)に平坦化します。つまり、証拠がないことを証拠がないかのように扱うものであり、prior-art-searchは明示的にそうではありません。(より広い2軸フレームワーク(プロセス×成果)はスペックゲーミング論文§4.2にあり、prior-art-searchは完全に成果軸上に存在するため、そのエラーは成果内部のものであり、プロセス/成果の混同ではありません。)

csrとpsvに追加可能;単一パイプライン

prior-art-searchはcsr(プロセス軸)およびpsv(引用ソース検証)にADDITIVE(追加可能)であり、いずれともマージしません。csrの同種族+異種族マルチラウンドディベートとは異なり、prior-art-searchは単一パイプライン(新規性主張の抽出→先行技術の検索→主張ごとの衝突評決→カバレッジ開示)です。オラクルは検索可能な先行技術コーパスであり、異種族モデルではないため、csrの異種基盤を移植しません。psvとprior-art-searchは合成可能です。重要度の高い文書では、psv(引用されたソースは正確か?)とprior-art-search(新規性主張は、見つけられる先行技術に対して衝突がないか?)の両方を実行することがあります。これらはマージしません。

2層のオラクル弱点、正直に述べる(ワークスペースルール3)

prior-art-searchのオラクルは検索可能な先行技術コーパスであり、psvの取得された一次ソースよりも2つの層で弱いものです(負荷のかかる誠実性の注意事項、提案§3 / ADR §8 Q4):

  1. 比較側の弱点(psvと共通)。 主張と先行技術の比較はモデルによって判断されます。clear-under-searchはモデルが衝突を見つけなかったことを意味し、衝突が存在しないことを意味するものではありません。これはpsvのティア2部分比較の弱点です。
  2. 選択側の弱点(prior-art-search独自)。 検索結果は、比較の弱点に加えて選択の弱点を追加します。ランキングバイアス、リコールの限界(コーパス全体を検索することはできない)、そして発見された先行技術テキストは、取得された信頼できるバイトレンジではなく、検索結果からモデルによって抽出されます。

したがって、prior-art-searchは2つの層で弱く、「弱いオラクル対強いオラクル」ではありません。これこそが、決してnovel_confirmedを出力せず、トップラインが評決ではなくカバレッジステートメントである理由です。clear-under-searchは「検索された範囲内では衝突なし」を意味し、「新規」ではありません。弱いオラクルは、人間による確認なしでは新規性チェックが持つ不可避の限界です。

2つのブラインドスポット、正直に述べる(ワークスペースルール3)

prior-art-search自身のモデル実行ステップには、隠されるのではなく開示されるブラインドスポットがあります。(1) 新規性主張の抽出は抽出器のブラインドスポットを継承します。著者も抽出器も「新規性」と特定しない主張はMから欠落します。(2) 主張と先行技術の比較はモデルによって判断されます。clear-under-searchはモデルが衝突を見つけなかったことを意味し、衝突が存在しないことを意味するものではありません。C/N/U/I/Mのカウントは、抽出、検索、比較されたものに条件付けられており、完全性の保証ではありません。異種族の抽出レッグは、先送りされた緩和策(部分的)です。

スコープ

  • 対象内: 文書から原子的な新規性主張を抽出する(各主張:場所 + 検索ターゲット)。主張ごとに先行技術コーパスを検索する。主張ごとに、発見された先行技術からの引用に基づいた衝突評決(collision/uncited-relevant/clear-under-search/inconclusive)を出力する。衝突レコード(collisions_under_known_coverage)+ 衝突発見パケットを出力する。
  • 対象外: コードレビュー(parallel-development)。仕様/アーキテクチャ設計の作成(blueprint-crafting)。文書プロセス収束(cross-source-review)。CITEDソースの検証(primary-source-verification)。研究収集(blueprint-crafting researcher)。新規性の評決(文書の新規性が本物か、または有意義か)は人間が行う。

スコープガード(エントリー時検出)

  • 成果物がソース/テストコードの場合→parallel-developmentにルーティング。
  • 成果物が仕様、アーキテクチャ設計、イテレーションプラン、または研究の作成/書き換えの場合→blueprint-craftingにルーティング。
  • リクエストが「この文書に対して敵対的マルチラウンドレビューを収束まで実行する」場合→cross-source-review(プロセス軸)にルーティング。
  • リクエストが「この文書のCITED主張はそのソースに対して有効か?」の場合→primary-source-verification(psv = 後方-CITED;prior-art-search = 後方-UNCITED)にルーティング。
  • リクエストが「この文書は新規性を過大請求しているか(引用しなかった先行技術と衝突するか)」の場合→prior-art-search(このスキル)。
  • リクエストが「これは新規/有意義/正しい貢献か?」の場合→成果軸、人間のみ。

ガードはソフト(リマインドしてルーティング、拒否はしない)。フェーズAは明示的な呼び出し(/skill:prior-art-search)に依存します。

クイックスタート

あなたはオーケストレーターです。レッグは読み取り専用です。ドライバーは単一パイプライン(NOT マルチラウンドディベート)を実行します。順番に実行してください。

  1. フレーミング — アーティファクトとその新規性表面を特定します。コアとなる新規性主張(「Xは新しい/初めて/先行技術がない」という、衝突チェックの負荷がかかるアサーション)を列挙します。スコープを宣言します。

  2. 新規性主張の抽出(NC-I2)— subagentツールをagent="solidforge:novelty-claim-extractor"(新しいコンテキスト)で呼び出します。アーティファクトを読み取り、原子的な新規性主張を列挙します。各主張は場所と検索ターゲットに紐づきます。原子的 = 主張ごとに1つの新規性命題(複合は分割)。新規性主張とは、新しさの主張(「Xは新しいフレーミングである」、「Yは初めてである」、「Zには先行技術がない」)です。事実/引用の主張(psvのドメイン:検証し、衝突チェックはしない)や解釈的主張(「これは重要である」— 検索で判断不可、人間にエスカレーションし、不適格とタグ付け)とは区別します。(抽出器のブラインドスポットの注意事項:どちらの当事者も「新規性」と特定しない主張はMから欠落します。)

  3. マルチソース検索 + 衝突評決(NC-I3)— 各新規性主張に対して、先行技術コーパス(arXiv、ウェブ、公開リポジトリ)で、その主張をALREADY行っている研究を検索し、主張を発見された先行技術と比較して、以下のいずれかを割り当てます。

    • collision — 発見された先行技術がすでにこの主張を行っている(文書の新規性が過大評価されている)。衝突元のソースを引用 + 発見された先行技術のテキストをQUOTE(重大度blocker;evidenceは発見された先行技術を引用しなければならない)。
    • uncited-relevant — 文書が引用していない関連研究を発見(直接の衝突ではないが、カバレッジのギャップ)。発見された先行技術をQUOTE(重大度warning)。
    • clear-under-search — 検索されたコーパス内では衝突が見つからなかった(NOT novel、単に衝突が表面化しなかっただけ)。カウントのみ、所見としては扱わない。
    • inconclusive — 検索で主張をカバーできなかった(ペイウォールのコーパス、あいまいなクエリ、見つからないもの)。人間にエスカレーション(重大度coverage)。 オープンソース(arXiv抄録、公開リポジトリ)は資格情報なしで検索されます。ウェブ検索APIは別途名前付けされたHTTPサーフェスを使用します(csrの_ANTHROPIC_AUTH_TOKEN LLMトークンネームスペースではありません。install.mdを参照)。(比較のブラインドスポット注意事項 + 選択側の弱点。)
  4. カバレッジ開示(NC-I4)— collision-recordを出力します。collisions_under_known_coverage = M = C+N+U+I 個の抽出された新規性主張のうち、C clear-under-search / N collisions / U uncited-relevant / I inconclusive。さらに、衝突発見パケット(collision / uncited-relevant / inconclusive の所見;clear-under-searchの主張はカウントされ、リストされません)。M=0(抽出可能な新規性主張がない — 新規性を主張しない文書、またはすべての新規性主張が解釈的である場合)およびI>0は、いずれも人間にエスカレーションされます。決してnovel_confirmedを出力しません。取得された引用がないcollision/uncited-relevantの所見はinconclusiveに格下げされます。

正直なシグナルはカバレッジ開示、つまり何が検索され、何が衝突し、何をカバーできなかったか、その正確な内容です。文書が本当にNOVEL(新規)かどうかは人間に委ねられます。

権限チェーン

  • docs/proposal.md = 権威ある設計(マスター;CSRプロセス軸 SUBSTANTIVE-CONVERGED + psv N=9/K=0 検証済み、2026-07-31)。
  • docs/iteration-plan.md = 実行ブループリント(フェーズA作業項目 NC-I0–NC-I6;競合時はproposal.mdが優先)。
  • docs/design-decisions.md = ADRログ(明白でない決定:never-novel_confirmed、single-pipeline-not-debate、false-positive構造的プロキシ、2層検索オラクル弱点、psv/researcherとの関係、資格情報サーフェス)。
  • docs/proposal.convergence.md = 提案のクロスレビュートレイル。

cross-source-review / primary-source-verification / blueprint-crafting / parallel-development との協調

  • cross-source-reviewはプロセス軸の収束エンジンであり続けます。prior-art-searchはADDITIVEであり、マージしません。csrのsubstantive_convergedはprior-art-searchのカバレッジを意味せず、その逆もまた然りです。
  • primary-source-verificationは相補的な成果軸のレッグです。psv = 後方-CITED(各引用ソースを取得);prior-art-search = 後方-UNCITED(文書が引用しなかった先行技術を検索)。これらは合成可能(文書は両方を実行可能)であり、マージしません。prior-art-searchはpsvのスキーマフィールドパターン(collision-findingsはpsvのdoc-findingsを拡張 — 厳密なスーパーセット)とinstall.mdの資格情報REASONING(コードではなくコピーパターン、ワークスペースルール7)を再利用します。
  • blueprint-craftingは純粋なまま(プロセス軸)。そのresearcherは前方収集(「Xに関するソースを作成のために見つける」)であり、prior-art-searchの後方衝突とは逆方向です。これらはマージしません。
  • parallel-developmentはコードレビューを所有します。prior-art-searchは文書形式であり、コード形式ではありません。
  • files_touched境界:このスキルはprior-art-search/ + リポジトリルートのagents/novelty-claim-extractor.agent.md(psvのsolidforge:claim-extractorをミラーリング)を所有します。csr、psv、bc、またはpdのコアロジックを変更しません(prior-art-searchは追加的です)。用語(ワークスペースルール10):collisions_under_known_coverageが唯一のトップライン用語です。novel_confirmedは禁止用語であり、出力フィールドとして決して登場しません。

セルフチェック(完了の定義)

成熟度ノート(フェーズAビルド): 以下のすべてのセルフゲートが出荷され、グリーンで合格すること(NC-I0~NC-I6収束済み;docs/iteration-plan.run-record.jsonに評決が記載されていること)。ライブN≥3ドッグフードは2026-08-01に、長いスペックゲーミング論文を含む3つの実際のアーティファクトに対して実行されました。カバレッジプロファイルはdogfood-run-2026-08-01.mdにあります。取得された先行技術を介して2つの未引用関連所見が表面化し(spec-gaming NC34 ↔ SWE-ABS;psv NC2 ↔ AI-Powered Citation Auditing)、既知の自己証明パラドックス衝突はarXivのみのオラクルの下でclear-under-searchとして戻ってきており、2層の弱点を本番環境で実証しています(ゼロ衝突結果は「検索されたものの中に衝突がない」ことであり、「新規」ではありません)。オフラインのdogfood.pyゲートは、標準フィクスチャのみをカバーします(ネットワークがない場合のルール1スキップパス)。残りの先送り事項:異種族抽出レッグ(抽出器のブラインドスポットに対する部分的な緩和策)。名前prior-art-searchはPROPOSED(提案中)であり、人間によるLOCK(ロック)を保留しています(提案§8 Q1)。

いずれかのセルフチェックが失敗している間は、スキルの変更は完了しません(ワークスペースルール1)。コミット前に実行:

python3 skills/prior-art-search/infra/test/disconnect_check.py        # 構造 + ローディングチェーン
python3 skills/prior-art-search/infra/test/plugin_layout.py           # plugin.json + エージェントの整形
python3 skills/prior-art-search/infra/test/findings_shape_check.py    # すべての出力パス → collision-findings + collision-record が有効
python3 skills/prior-art-search/infra/test/coverage_policy_check.py   # カウント合計 M=C+N+U+I;M=0/I>0 エスカレーション;novel_confirmed なし;取得引用不変条件
python3 skills/prior-art-search/infra/test/fetched_quote_gate.py      # すべてのcollision/uncited-relevant所見は取得された先行技術テキストを引用;引用なし → inconclusive(L1/ルール3不変条件)
python3 skills/prior-art-search/infra/test/lint_self.py               # ドッグフード:このスキル自身のインフラをlintする(ruff)
python3 skills/prior-art-search/infra/test/dogfood.py                 # 植えられた衝突を持つフィクスチャ文書でパイプラインを実行(ネットワークがない場合は正常にスキップ;記録されたログで代替)

参考ファイル

  • proposal.md — 権威ある設計(問題、非目標、所有コントラクト、レイヤリング、§8の決定)。
  • iteration-plan.md — フェーズAの実行

…

[翻訳のため省略]

関連スキル