Skip to content

[decision] profile.md 是記憶體系第 2 層的化石:退役、復活,還是等 #446 刀 2 搬家? #619

Description

@atomchung

白話版:這是什麼

~/.trade-coach/profile.md 這個檔案,沒有任何東西會產生它,但產品有三個地方講得像它存在:

  • README.md 叫使用者 cat 它,說那是「你的交易目標 + 3 條個人原則(復盤對照基準)」
  • coach.py 把它註冊成一個正式資料檔(所以 data-status 會列它、data-export 會收它、data-reset 會刪它)
  • 兩份維護文件曾宣稱「agent 會照 SKILL.md 直接寫它」

第三項已經在 PR #614 修掉。這張 issue 要決定的是前兩項:留還是清。

不 block 任何東西 — 這是這張 issue 的第一件事

不急,可以放著。查證於 main@94b7e5f:

問題 答案
套件會紅嗎 不會,46/46 綠
產品會拒絕任何操作嗎 不會。沒有任何程式碼讀它grep -rn "profile\.md" skills/fomo-kernel/engine/ skills/fomo-kernel/tools/ 只命中 coach.py:412 的註冊條目本身,沒有 reader
會 block #446(記憶體系第 2 層)嗎 不會。#446 卡在五個未拍板的設計問題,與這張化石無關
會 block dogfood / QA 嗎 不會

現在不解決的實際後果只有三個,都小:

  1. 使用者照 README cat 會拿到 file not found(owner 自己的 ~/.trade-coach/ 也沒有這個檔案 — 已實查)
  2. data-status 永遠列一個 absent 的檔案
  3. 下一個 session 可能誤以為記憶體系第 2 層已有地基

3 之中最危險的一半(維護文件宣稱有 writer)PR #614 已拆除。剩下的是使用者文案層。

為什麼它跟記憶體系有關

profile.md 不是一個隨機的死檔案 — 它是記憶體系第 2 層的第一版猜想

#446 的三層模型:

狀態
1. Ledger 已存在,append-only,永不壓縮
2. Profile / 蒸餾層:「這個人是誰」 — 跨週期行為模式、累積動機、交易人格 不存在,就是 #446
3. Bounded read 已存在

profile.md 的設計目的(「交易目標 + 個人原則」、「復盤對照基準」)正是第 2 層。它是 2026-07-13(ee686b2, PR #183)那個年代對第 2 層的猜想:用一個自由文字檔存。

而第 2 層的正式接班人已經有插座了,插座不叫 profile.md schemas/behavior-verdict.schema.jsonprofile_label_id 欄位:

Back-reference only, load-bearing for nothing (#446 cut 2, not yet built). Points at an immutable profile-label id, never a line id.

verdicts.jsonl(#446 刀 1,已落地)已預留指向 profile label 的反向引用,而那個 label 規定是 immutable、有 id、可被 supersede。profile.md 是會被整份覆寫的自由文字檔 — 連「有 id」都做不到。

#446 為第 2 層定的五個機制中,這條 profile.md 結構上不可能滿足:

Cited synthesis:每個蒸餾單元必須存它是從哪些 ledger event ID 建出來的。沒有引用就不准進 profile 層。

#597 另外已裁定:profile.md 不得成為 provisional principles 的第二個 canonical truth,理由正是它沒有 append-only provenance、confidence、supersession、replay contract。

選項

A. 退役 — 刪 coach.py 的註冊條目 + 三行 README(README.md:111 / README.zh-TW.md:111 / README.zh-CN.md:108)

B. 復活 — 照 #58 原始要求,讓 agent 在第一次復盤結束時真的寫它

C. 搬家 — 內容改存成 append-only 結構化單元

已查證的事實(給接手的 session,不用重推)

關聯

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions