Communitygithub.com

maskshell/solidforge-pi

一個專為 AI 編碼代理設計的循環工程系統,以 Pi 套件形式交付。收斂 → 規格化 → 實作:具雙環收斂閘的平行 TDD 開發、對抗性跨來源審查、源文本引用驗證,以及先前技術碰撞搜尋——每個關卡都誠實覆蓋,絕不無聲亮綠燈。

solidforge-pi 是什麼?

這是一個基於搜尋的「先前技術碰撞偵測」技能,專為以文件形式呈現的產出物(例如設計論文、研究文件或規格書)而設計。它專門檢查文件中的新穎性主張是否與未引用的先前技術發生碰撞,補足了「跨來源審查」(收斂過程軸但未搜尋先前技術)和「主要來源驗證」(僅檢查已引用來源)的缺口。此技能從文件中擷取原子級的新穎性主張,針對每個主張搜尋先前技術語料庫(如 arXiv、網頁、公開儲存庫),並給出每項主張的碰撞判決:碰撞、未引用但相關、搜尋範圍內無碰撞,或無法判定。它明確「不」發佈「新穎性確認」這類最終裁決,而是誠實揭露經搜尋後的碰撞覆蓋率,將真正的裁決權保留給人類。此技能支援 Claude Code、Coder 等開發工具,並透過 `subagent` 工具調用專門的代理(`solidforge:novelty-claim-extractor`)來執行其單一流水線架構。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add maskshell/solidforge-pi

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

新穎性覆蓋

這是一個唯讀、以搜尋為基礎、針對每項新穎性主張進行碰撞偵測的工具,適用於文件形式產出物(如設計論文、研究文件或規格書)。它開啟了成果軸上的新穎性維度,這是「跨來源審查」(csr)」、「主要來源驗證」(psv)及「藍圖製作」之「研究者」所未觸及的領域:csr 收斂文件的過程軸,但未搜尋先前技術;psv 擷取每個已引用來源(向後、已引用),但未搜尋未引用的先前技術;「研究者」則為撰寫而向前收集來源(方向相反)。先前技術搜尋正是所缺失的向後、未引用先前技術碰撞檢查——它針對每個新穎性主張搜尋先前技術語料庫,並誠實回報碰撞結果。

核心定位

以搜尋為基礎,非基於回憶

一個 collision / uncited-relevant 的發現必須引用從找到的先前技術中擷取的引用文字,而非模型回憶。無法引用所找到之先前技術文字的發現,將被降級為 inconclusive,絕不予以斷言。這是承載負載的不變條件(工作區規則 3 + L1),由一個自我關卡(NC-I5)強制執行。找到的文字本身是模型從搜尋結果中提取的——這比 psv 所擷取的權威來源(請參閱下方兩層權衡說明)更弱的預言者。

每項主張的碰撞覆蓋,非新穎性裁決

先前技術搜尋「絕不」發出 novel_confirmed 或聲稱「該文件是新穎的」。其唯一的頂層訊號是 collisions_under_known_coverage:在 M 個提取的新穎性主張中,C 個為 clear-under-search,N 個為 collisions,U 個為 uncited-relevant,I 個為 inconclusive。I 的主張(以及 M=0 的情況——沒有新穎性表面)會「升級」給人類。這是一個誠實的覆蓋率揭露,而非新穎性裁決。由於無法證明否定命題(「不存在先前技術」)的證據缺位本質,一份未發現碰撞的文件意謂「在所搜尋的語料庫中未發現碰撞」,而非「新穎」。一個對稱的「新穎性收斂」技能若循環至 novel_confirmed 布林值,便是範疇謬誤——它將覆蓋率揭露(「在所搜尋的語料庫中未發現碰撞」)扁平化為裁決(「新穎」),亦即將證據缺位視為缺位證據;先前技術搜尋「明確不是如此」。(更廣泛的兩軸框架——過程 × 成果——請參閱規格博弈論文 §4.2;先前技術搜尋完全位於成果軸,因此其錯誤是成果內部問題,而非過程/成果混淆。)

附加於 csr 和 psv;單一流水線

先前技術搜尋「附加於」csr(過程軸)和 psv(已引用來源驗證);它「不」與任何一方合併。與 csr 的同家族 + 異家族多輪辯論不同,先前技術搜尋是「單一」流水線——提取新穎性主張 → 搜尋先前技術 → 對每項主張做出碰撞判決 → 揭露覆蓋率。其預言者是可供搜尋的先前技術語料庫,而非異家族模型,因此它不複製 csr 的異質基質。psv 和先前技術搜尋可組合使用:高風險文件可以同時執行 psv(已引用來源是否準確?)和先前技術搜尋(新穎性主張是否與可找到的先前技術無碰撞?)。它們不會合併。

兩層預言者弱點,誠實說明(工作區規則 3)

先前技術搜尋的預言者是可供搜尋的先前技術語料庫,比 psv 所擷取的主要來源在「兩個層次」上都更弱(承載負載的誠實權衡,提案 §3 / ADR §8 Q4):

  1. 比較側弱點(與 psv 共享)。 主張與先前技術的比較是由模型判定——clear-under-search 意謂模型未發現碰撞,而非碰撞不存在。這是 psv 的第 2 層部分比較弱點。
  2. 選取側弱點(先前技術搜尋自身)。 搜尋結果在比較弱點之上又增加了一層選取弱點:排名偏誤、召回限制(無法搜尋整個語料庫),且找到的先前技術文字本身是模型從搜尋結果中提取的,而非擷取的權威位元組範圍。

因此,先前技術搜尋在兩個層次上更弱,而非「弱預言者 vs 強預言者」。這正是它「絕不」發出 novel_confirmed,且其頂層是覆蓋率陳述而非裁決的原因。clear-under-search 意謂「在所搜尋的內容中未發現碰撞」,而非「新穎」。較弱的預言者是在缺乏人類審查的情況下,檢查新穎性的不可化約極限。

兩個盲點,誠實說明(工作區規則 3)

先前技術搜尋自身由模型執行的步驟帶有已揭露而非隱藏的盲點:(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);已引用來源驗證(primary-source-verification);研究收集(blueprint-crafting 研究者);新穎性裁決——文件的新穎性是否「真實」或「重要」——(人類)。

範圍守衛(進入時檢測)

  • 交付物為原始碼/測試碼 → 路由至 parallel-development。
  • 交付物為撰寫/改寫規格書、架構設計、迭代計畫或研究 → 路由至 blueprint-crafting。
  • 請求為「對此文件進行對抗性多輪審查以達收斂」 → 路由至 cross-source-review(過程軸)。
  • 請求為「此文件中已引用的主張是否經得起其來源的檢驗?」 → 路由至 primary-source-verification(psv = 向後-已引用;先前技術搜尋 = 向後-未引用)。
  • 請求為「此文件是否過度宣稱新穎性——與其未引用的先前技術發生碰撞?」 → 先前技術搜尋(此技能)。
  • 請求為「這是否新穎 / 重要 / 正確的貢獻?」 → 成果軸,僅人類。

此守衛是軟性的(提醒並路由,而非拒絕)。第 A 階段依賴「明確調用」(/skill:prior-art-search)。

快速開始

你是協調者。各個腿是唯讀的;驅動者執行單一流水線(而非多輪辯論)。按順序執行。

  1. 框架建立 — 識別產出物及其新穎性表面。列舉核心新穎性主張(需進行碰撞檢查的承載負載斷言,如「X 是新的 / 首次 / 無先前技術」)。宣告範圍。

  2. 新穎性主張提取(NC-I2) — 使用 subagent 工具,並設定 agent="solidforge:novelty-claim-extractor"(全新的上下文);它讀取產出物並列舉原子級新穎性主張,每個主張皆與一個位置和一個搜尋目標綁定。原子級 = 每項主張一個新穎性命題(複合主張需拆分)。新穎性主張是關於新穎性的斷言(「X 是一個新的框架」、「Y 是第一個...」、「Z 無先前技術」)。需區分於事實/引用主張(psv 的領域——驗證,而非碰撞檢查)和解釋性主張(「這很重要」——不可透過搜尋判定;升級給人類,標記為不可受理)。(提取器盲點警告:雙方均未辨識為「新穎性」的主張將從 M 中缺席。)

  3. 多來源搜尋 + 碰撞判決(NC-I3) — 針對每個新穎性主張,搜尋先前技術語料庫(arXiv、網頁、公開儲存庫)中「已經」提出該主張的作品,然後將主張與找到的先前技術進行比較,並指定以下其中之一:

  • collision — 找到的先前技術已經提出此主張(文件的新穎性被誇大);引用碰撞來源 + 引用找到的先前技術文字(嚴重度 blocker;evidence 必須引用找到的先前技術文字)。
  • uncited-relevant — 找到文件未引用的相關作品(非直接碰撞,但為覆蓋缺口);引用找到的先前技術文字(嚴重度 warning)。
  • clear-under-search — 在所搜尋的語料庫中未發現碰撞(非「新穎」;只是未出現碰撞)。僅計數,不作為發現。
  • inconclusive — 搜尋無法涵蓋該主張(付費語料庫、模糊查詢、無物可找);升級給人類(嚴重度 coverage)。 開放來源(arXiv 摘要、公開儲存庫)在無憑證下搜尋;網頁搜尋 API 使用一個獨立命名的 HTTP 表面(非 csr 的 _ANTHROPIC_AUTH_TOKEN LLM 權杖命名空間——請參閱 install.md)。(比較盲點警告 + 選取側弱點。)
  1. 覆蓋率揭露(NC-I4) — 發出一個 collision-record:collisions_under_known_coverage = C 個 clear-under-search / N 個 collisions / U 個 uncited-relevant / I 個 inconclusive,總計 M = C+N+U+I 個提取的新穎性主張;加上一個碰撞發現套件(collision / uncited-relevant / inconclusive 發現;clear-under-search 的主張僅計數,不列出)。M=0(無可提取的新穎性主張——文件未提出新穎性斷言,或所有新穎性主張皆為解釋性)和 I>0 皆「升級」給人類。絕不發出 novel_confirmed。一個 collision/uncited-relevant 的發現若無引用文字,將被降級為 inconclusive。

誠實的訊號是覆蓋率揭露——搜尋了什麼、發生了什麼碰撞,以及什麼無法被覆蓋。文件是否「真正」新穎,仍由人類決定。

權威鏈

  • docs/proposal.md = 權威設計(主文件;CSR 過程軸實質收斂 + psv N=9/K=0 驗證,2026-07-31)。
  • docs/iteration-plan.md = 執行藍圖(第 A 階段工作項目 NC-I0–NC-I6;衝突時以 proposal.md 為準)。
  • docs/design-decisions.md = ADR 記錄(非顯而易見的決策:絕不 novel_confirmed、單一流水線非辯論、假陽性結構代理、兩層搜尋預言者弱點、與 psv/researcher 的關係、憑證表面)。
  • docs/proposal.convergence.md = 提案的跨審查軌跡。

與 cross-source-review / primary-source-verification / blueprint-crafting / parallel-development 的協調

  • cross-source-review 仍是過程軸的收斂引擎。先前技術搜尋是「附加的」且「不與之合併」:csr 的 substantive_converged 不暗示先前技術搜尋的覆蓋率,反之亦然。
  • primary-source-verification 是互補的成果軸腿。psv = 向後-已引用(擷取每個已引用來源);先前技術搜尋 = 向後-未引用(搜尋文件「未」引用的先前技術)。它們可組合使用(一份文件可同時執行兩者);它們不會合併。先前技術搜尋重複使用 psv 的 schema 欄位模式(collision-findings 擴展 psv 的 doc-findings——嚴格超集)以及 install.md 的憑證推理——複製模式,而非程式碼(工作區規則 7)。
  • blueprint-crafting 保持純粹(過程軸)。其 researcher 是「向前」收集(「尋找關於 X 的來源以供撰寫」)——方向與先前技術搜尋的向後碰撞相反。它們不會合併。
  • parallel-development 擁有程式碼審查。先前技術搜尋是文件導向,而非程式碼導向。
  • files_touched 邊界:此技能擁有 prior-art-search/ + 儲存庫根目錄的 agents/novelty-claim-extractor.agent.md(鏡像 psv 的 solidforge:claim-extractor)。它不會修改 csr、psv、bc 或 pd 的核心邏輯(先前技術搜尋是附加的)。術語(工作區規則 10):collisions_under_known_coverage 是唯一的頂層術語;novel_confirmed 是禁止術語,且絕不作為發出的欄位出現。

自我檢查(完成定義)

成熟度說明(第 A 階段建構): 以下所有自我關卡均已部署並通過綠燈(NC-I0–NC-I6 已收斂;docs/iteration-plan.run-record.json 載有裁決)。線上 N≥3 的 Dogfood 已於 2026-08-01 在 3 個真實產出物上執行,包括長篇規格博弈論文——覆蓋率概況請參閱 dogfood-run-2026-08-01.md:通過找到的先前技術浮現了 2 個未引用但相關的發現(規格博弈 NC34 ↔ SWE-ABS;psv NC2 ↔ AI-Powered Citation Auditing),且已知的自證悖論碰撞在僅 arXiv 的預言者下回傳為 clear-under-search——展示了生產中的兩層弱點(零碰撞結果是「在所搜尋的內容中未發現碰撞」,而非「新穎」)。離線 dogfood.py 關卡僅涵蓋標準測試夾具(當無網路時,根據規則 1 跳過路徑)。剩餘延期事項:異家族提取腿(部分緩解提取器盲點)。名稱 prior-art-search 是「提議中」的,待人類鎖定(提案 §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               # dogfood:對技能自身基礎架構進行 lint(ruff)
python3 skills/prior-art-search/infra/test/dogfood.py                 # 在一個帶有預先植入碰撞的測試文件上執行流水線(無網路時優雅跳過;以記錄的日誌替代)

參考文件

…

[為翻譯而截斷]

相關技能