MINARA
貢獻指南

新增方法論

編寫可獨立運行的投資規則,並保留證據、適用範圍和審計歷史

方法論是一條能夠脫離原始對話或 Playbook 獨立評估的投資規則。它可以描述信號、閾值、預期方向、時間週期,以及規則不適用的條件。

Minara 的方法論來自兩類來源:

  • apps/agent/src/learning/methodology-seeds.ts 中的人工種子構成經過審查的初始語料庫。
  • 從已評估決策和交易案例中產生的學習候選項先進入隔離區,積累足夠證據後才能被使用。

進行獨立性檢驗

把規則單獨放進“分析 NVDA 趨勢”這樣的提示詞中。如果它仍然具有明確含義、所需證據和失效條件,就適合作為方法論。如果它引用“上一步”、某個角色、Roundtable 階段或另一條當前規則,應繼續留在分析 Playbook 中。

合格示例:

當自由現金流轉化率連續兩個報告期低於 70%,同時應收賬款增速高於收入增速時,應將盈利質量視為惡化。

依賴上下文的示例:

分析師完成第三步後,根據上面的結果降低評級。

新增人工種子

METHODOLOGY_SEEDS 中加入一條聚焦規則:

{
  stableId: "stock.earnings_quality.cash_conversion.v1",
  version: "v1",
  source: "authored",
  asset_class: "stock",
  methodology:
    "When free-cash-flow conversion stays below 70% for two reporting periods " +
    "while receivables grow faster than revenue, treat earnings quality as deteriorating.",
  thresholds: { fcf_conversion_floor_pct: 70 },
  anti_patterns: [
    "Do not apply to pre-revenue companies.",
    "Skip periods distorted by a disclosed acquisition close.",
  ],
  applies_only_to: ["stock"],
  benchmark_profile: "asset_benchmark",
},
字段貢獻要求
stableId使用持久且唯一的 ID,不得將它複用於不同觀點。
version規則含義或閾值發生變化時提升版本。
source使用 authoredderived_from_papercommunity。適用時在 PR 中保留來源。
asset_classasset-taxonomy.ts 選擇,人工種子不得使用 unknown
methodology只寫一條獨立、可檢驗的規則,不要包含場景名和工具名。
thresholds使用穩定的 snake_case 鍵,讓 Playbook 可以引用可調整數值。
anti_patterns高影響規則應包含一至三條簡短的排除條件。
applies_only_to當相同詞彙可能誤匹配其他資產類別時,收窄適用範圍。
benchmark_profile聲明結果比較方式:absoluteasset_benchmarkbeta_adjustedmarket_neutralpair_trade

不要因為一條規則聽起來合理就直接加入種子。請在 Pull Request 中說明依據和預期證據。來自論文或公共數據集的規則必須保留引用與許可證背景。

理解生命週期

人工種子通過受信任的內置種子源進入系統。未經信任的學習或導入條目以 0.1 置信度進入隔離區。候選項至少需要 10 次觀察、5 次正確觀察,並達到 0.55 的 Wilson 下界才能晉級。已晉級規則在使用至少 20 次後,若 Wilson 分數低於 0.40,會重新進入隔離區。

只有已晉級方法論可以通過 methodology_lookup{{methodology:...}} 佔位符到達 Agent。佔位符始終攜帶安全默認值。操作者可以分別關閉讀取、案例記錄或全部變更。

任何置信度、計數器或隔離狀態變化都必須使用方法論倉儲的生命週期契約。直接執行 SQL 會丟失原子化審計事件,不可接受。

驗證貢獻

pnpm --filter @minara/agent lint:methodology
pnpm --filter @minara/agent exec vitest run tests/unit/learning/methodology-seeds-lint.test.ts
pnpm --filter @minara/agent exec vitest run tests/unit/learning/methodology-store.test.ts
pnpm --filter @minara/agent typecheck

如果在機構 Playbook 中加入佔位符,請同時測試默認值和方法論存儲覆蓋。規則改變公共行為時,需要更新四種語言的相關分析文檔。

操作者無需編輯 SQLite 即可檢查實時狀態:

minara learning methodology explain <id>
minara learning methodology lifecycle --id <id>
minara learning methodology cases --id <id>

本頁目錄