docs: update final portability review

This commit is contained in:
Chris
2026-04-11 13:57:36 +08:00
parent e894446416
commit e642bdc02d

View File

@@ -3,7 +3,8 @@
> 日期2026-04-11
> 審查對象:`origin/dev`
> 初次審查 commit`ced587c`
> 追蹤審查 commit`ee06e6d`
> 第二輪追蹤 commit`ee06e6d`
> 第三輪追蹤 commit`e894446`
> 用途:檢查 Agent 配置、Skills 完整度、Paperclip 匯入相容性與 runtime 落地程度
---
@@ -25,7 +26,7 @@
5. 文檔已改口徑為摘要版 skills
6. skills 統計數量已更新
目前仍有 2 個「完整度」層級的缺口,但已不是前一輪那種會直接造成 import warning 的 blocker。
目前只剩 1 個實質問題,且已不是前一輪那種會直接造成 import warning 的 blocker。
我實際用:
@@ -46,13 +47,26 @@ paperclipai company import <repo> --dry-run --json
paperclipai company import <repo> --dry-run --json
```
結果已變成:
第二輪追蹤後,結果已變成:
1. `warnings: []`
2. `errors: []`
3. 指定 skills 的 slug 都能正確進 manifest
4. Edge skills 已各自保有獨立 slug
第三輪追蹤後,我再次驗證:
```bash
paperclipai company import <repo> --dry-run --json
```
結果依然是:
1. `warnings: []`
2. `errors: []`
`envInputs` / `manifest.envInputs` 仍然都是空陣列,表示環境輸入需求尚未真正進到 portability manifest。
---
## 2. 目前剩餘問題
@@ -61,12 +75,20 @@ paperclipai company import <repo> --dry-run --json
**現況**
`.paperclip.yaml` 現在新增了:
第二輪追蹤後,`.paperclip.yaml` 已把 env input 從頂層移到 project extension 下,但目前寫法仍然沒有被 importer 吃到。
目前結構是:
```yaml
envInputs:
- name: FRED_API_KEY
- name: FUGLE_API_KEY
projects:
daily-quant-pipeline:
inputs:
env:
- name: FRED_API_KEY
- name: FUGLE_API_KEY
- name: ALPACA_API_KEY
- name: ALPACA_API_SECRET
- name: FMP_API_KEY
```
參考:
@@ -77,7 +99,7 @@ envInputs:
**影響**
這代表 package 雖然開始描述 runtime input但在目前 Paperclip portability 規則下,這兩筆需求還沒有真的進到 import manifest。
這代表 package 雖然開始描述 runtime input但在目前 Paperclip portability 規則下,這些需求仍然沒有真的進到 import manifest。
也就是說:
@@ -88,66 +110,36 @@ envInputs:
**推測原因**
我對照 Paperclip portability 實作後,目前 importer 會從 agent / project extension 的 `inputs.env` 讀 env inputs而不是讀 `.paperclip.yaml` 頂層的 `envInputs`
我對照 Paperclip portability 實作後,目前 importer 會從 agent / project extension 的 `inputs.env` 讀 env inputs但它預期的是「以 env var 名稱為 key 的 object」不是目前這種 list 寫法
**建議修法**
1. 依 Paperclip 目前支援的結構,把 env input 移到 agent / project extension 的 `inputs.env`
2. 或保留現在的寫法,但補一份文件明確說明「目前僅作 repo 端提示,尚未進 manifest」
1. 依 Paperclip 目前支援的結構,把 `inputs.env` 改成 object 形式
2. 若暫時不改,也要在文檔明確標示「目前僅作 repo 端提示,尚未進 manifest」
**建議採用:**
優先採第 1 種,讓 import manifest 真的能帶出 env inputs。
建議格式:
```yaml
projects:
daily-quant-pipeline:
inputs:
env:
FRED_API_KEY:
description: FRED API key
kind: secret
requirement: optional
FUGLE_API_KEY:
description: Fugle MarketData API key
kind: secret
requirement: optional
```
---
### P8. Runtime 配置已有進展,但還沒有完整覆蓋 active skills 的所有依賴
**現況**
現在 repo 已新增:
- `.mcp.json`
- `.paperclip.yaml` 內的基本 env input 提示
參考:
- [.mcp.json](/Users/chirs/workspace/KingClawArmy_dev_review/.mcp.json:1)
- [.paperclip.yaml](/Users/chirs/workspace/KingClawArmy_dev_review/.paperclip.yaml:83)
這代表 runtime 不再是純規劃,這點是好的。
但目前仍有幾類依賴沒有完整落地:
1. `portfolio-manager` 需要的 `Alpaca MCP`
2. `earnings-calendar` / `economic-calendar-fetcher` 這類技能實際依賴的 FMP 路徑
3. `pair-trade-screener` 需要的本地 Python/scipy/statsmodels
4. `trader-memory-core` 需要的持久化檔案系統策略
參考:
- [earnings-calendar/SKILL.md](/Users/chirs/workspace/KingClawArmy_dev_review/skills/earnings-calendar/SKILL.md:26)
- [portfolio-manager/SKILL.md](/Users/chirs/workspace/KingClawArmy_dev_review/skills/portfolio-manager/SKILL.md:45)
- [pair-trade-screener/SKILL.md](/Users/chirs/workspace/KingClawArmy_dev_review/skills/pair-trade-screener/SKILL.md:47)
- [trader-memory-core/SKILL.md](/Users/chirs/workspace/KingClawArmy_dev_review/skills/trader-memory-core/SKILL.md:51)
**影響**
目前 package 已可被正確匯入,但若標準是:
`skills 不只存在,而且 active agents 可在既定 runtime 下直接使用`
那這一層還差最後一段 ops / runtime 補完。
**建議修法**
至少補這些資訊中的一種:
1. `.mcp.json` 補齊缺少的 server
2. README / docs 補明哪些 skill 是 optional / unavailable / future
3. 對需要本地依賴的 skill 補 runtime prerequisites
4. 對暫時無法啟用的 skill在 mapping 文件裡加狀態標記
---
## 3. 已修正問題(追蹤確認)
@@ -256,7 +248,7 @@ envInputs:
---
### 已部分修正 P3. Skills 依賴的 runtime / MCP / env 還沒跟 package 一起落地
### 已修正 P3. Skills 依賴的 runtime / MCP / env 還沒跟 package 一起落地
**現況**
@@ -291,14 +283,16 @@ envInputs:
**追蹤結果:**
部分修正。
已修正。
目前已新增:
1. `.mcp.json`
2. `.paperclip.yaml` 中的 env input 提示
2. runtime 狀態文件
3. `Alpaca` / `FMP` 等 MCP 依賴聲明
4. `optional / needs-key / local-runtime` 的狀態說明
env input 尚未真正進 manifest,而且 runtime 仍未完整覆蓋所有 active skills剩餘缺口已移到 P7 / P8
目前剩下的唯一缺口已收斂為 P7`envInputs` 寫法尚未真正進 manifest。
**影響**
@@ -414,9 +408,9 @@ envInputs:
請另一個 agent 依序補:
1. 讓 env inputs 依 Paperclip 目前支援的結構真正進 manifest
2. 補齊 active skills 的 runtime 覆蓋缺口
3. 為尚未可直接啟用的 skill 補 `optional / unavailable / future` 狀態說明
1. `.paperclip.yaml``inputs.env` 改成 Paperclip importer 會讀到的 object 結構
2. 重新跑 `paperclipai company import --dry-run --json`
3. 確認 `envInputs` / `manifest.envInputs` 不再為空
4. 若後續要提升為完整 vendored skills再補 `references/` / `scripts/`
---
@@ -427,11 +421,10 @@ envInputs:
1. `paperclipai company import --dry-run --json` 仍保持 `warnings: []``errors: []`
2. `manifest.envInputs` 不再為空,且能反映 package 真正需要的環境輸入
3. active skills 的 runtime 依賴都有對應配置或明確狀態標記
4. `mcp-plan.md``.mcp.json``.paperclip.yaml` 三者口徑一致
3. `mcp-plan.md``.mcp.json``.paperclip.yaml` 三者口徑一致
---
## 6. 一句話結論
這版 `dev` 的 agent / skills 已經把最重要的 Paperclip skill 綁定問題修乾淨了;目前剩下的是 `envInputs` 尚未真正進 manifest以及 runtime 覆蓋還沒百分之百收尾,屬於完整度問題,不是基本相容性問題。
這版 `dev` 的 agent / skills 已經把最重要的 Paperclip 綁定與 runtime 規劃問題修乾淨了;目前`envInputs` 的 YAML 結構尚未符合 importer 預期,屬於最後一個 portability 細節問題。