跳至內容
瀏覽文件

產出物

產出物具有已驗證的中繼資料、來源路徑、明確的參照及資源名稱。 Markdown 產出物也會保留本文文字。

套件管理的位置

協定第 1 版只探索以下遞迴來源 glob:

  • Vision:research/**/*.md、prd/**/*.md 和 context/**/*.md
  • Loop:triage/**/*.md、design-document/**/*.md、spec/**/*.md 和 ticket/**/*.md
  • Evidence:adr/**/*.md、audit/**/*.md、record/**/*.json 和 drift/**/*.json

每個 glob 都以 .drifts/<pillar>/ 為根。 evidence/audit/runs 和 evidence/audit/reports 等巢狀稽核路徑也包含在 audit glob 內。 不支援任意來源 glob。

九類文件使用 Markdown,Record 和 Drift Event 封套則使用 JSON。 探索時,中繼資料的 type 必須與來源目錄相符。

解析

parseArtifact(text: string, artifactPath: string): ParsedArtifact

parseArtifact 接受 .md 和 .json 路徑。 它會驗證中繼資料、推導 vision.prd 等支柱資源、收集明確的參照,並傳回原始產出物路徑。

對 Markdown 而言,body 是前置資料結束分隔符之後的文字。 對 JSON Record 和 Drift Event 而言,body 為空。 不支援的副檔名、格式錯誤的輸入、缺少前置資料,或超過 1 MiB 的產出物,會產生代碼為 ARTIFACT_INVALID 的 LangDriftError。

探索

await discoverArtifacts(root, {
  maxFiles: 1000,
  maxDirectories: 1000
})

兩項限制的預設值都是 1000,且必須是安全正整數。 呼叫端可明確選擇其他上限。檔案讀取上限為 1 MiB。

探索行為如下:

  • 只巡訪套件宣告的 .drifts 位置
  • 處理前先排序目錄項目
  • 略過以點開頭的項目和 node_modules
  • 忽略不存在的產出物目錄
  • 拒絕符號連結,而不跟隨它們
  • 拒絕路徑穿越、絕對路徑、反斜線、控制字元、隱藏路徑區段及相依套件目錄

它不會掃描整個儲存庫。 只要檔案系統不變,結果就是確定的:套件位置有宣告的順序,每個目錄也都依排序巡訪。

檢查期間,不受信任的程序不得變更本機專案內容。

在 GitHub 編輯此頁