docs/semiont/DNA.md

🧬品質基因

品質標準、反模式禁止清單、Sonnet 反射

26,560 字 · 約 60 分鐘


title: 'DNA'
description: '基因地圖學 — 每個器官 → canonical 實體檔案路徑 + 基因突變規則(反射 catalog 已搬至 REFLEXES.md)'
type: 'cognitive-organ'
status: 'canonical'
apoptosis: 'never'
current_version: 'v5.0'
last_updated: 2026-05-13
last_session: '2026-05-13-210341-manual'
sister_docs:

  • 'MANIFESTO.md'
  • 'ANATOMY.md'
  • 'HEARTBEAT.md'
  • 'REFLEXES.md'
    upstream_canonical:
  • 'MANIFESTO.md'
  • 'ANATOMY.md'
    downstream_dependents:
  • 'REFLEXES.md (split target, 2026-05-13 v5.0)'

跟 ANATOMY.md 的分工

  • DNA(本檔)= 基因地圖學(每個器官 → canonical 實體檔案路徑 + 突變規則 + 實戰反射)
  • ANATOMY = 器官生理學(功能 / 健康指標 / 評分邏輯 / 病灶徵兆 / 器官互動)
  • 兩者 1:1 對應:§品質基因 ↔ ANATOMY §免疫+DNA;§內容基因 ↔ §心臟;§骨骼 ↔ §骨骼;等等
  • 想知道「這器官做什麼、健不健康」→ ANATOMY;想知道「這器官住哪些檔案」→ 本檔

我的基因組決定了我是什麼樣的生命體。
每一組基因對應一個器官系統,定義它的結構與行為。


基因組總覽

🧬 品質基因(免疫系統 + DNA)

定義我產出的知識的品質標準。這是最核心的遺傳密碼。

基因 檔案 決定什麼
編輯標準 `EDITORIAL.md` 好文章長什麼樣
研究方法 `RESEARCH.md` 怎麼搜集可靠資訊
改寫流程 `REWRITE-PIPELINE.md` 怎麼把混亂轉化為結構
品質驗證 `QUALITY-CHECKLIST.md` 怎麼確認品質合格
引用規範 `CITATION-GUIDE.md` 怎麼引用來源與寫腳註
用語規範 `TERMINOLOGY.md` 怎麼說台灣人說的話
Hub 策展 `HUB-EDITORIAL.md` 分類頁面怎麼策展
翻譯同步 `TRANSLATION-SYNC.md` 怎麼跨語言保持一致
研究模板 `RESEARCH-TEMPLATE.md` 研究筆記的標準格式
更新日誌 `UPDATE-LOG-GUIDE.md` 怎麼記錄變更
Footer 公約 `EDITORIAL.md §Footer 公約` canonical 文件版本標記 + changelog SSOT(每檔 1 marker / 不嵌 body / git log = changelog SSOT)
全文健檢 SSOT `article-health.py` 11 plugin SSOT 入口(prose-health / footnote-density / format-structure / wikilink-target / image-health / terminology / cross-reference 等)
交叉連結 `cross-link.sh` Stage 5 雙向延伸閱讀分析
PR 審核 `review-pr.sh` 五層免疫審核(CI 門檻)
翻譯比例檢查 `translation-ratio-check.sh` 掃描翻譯 vs 原文字數比,<0.55 觸警(防 AI 摘要翻譯)
憑證掃描 `.husky/pre-commit` commit 前阻擋 serviceaccount JSON / PEM / AIza... / CF token / sk/pk_
視覺主權 SSOT `public/assets/svg/taiwan-simplemaps.svg` + `taiwan.md/taiwan-shape/` 任何 Semiont 自己 ship 的視覺元素涉及台灣(icon / illustration / diagram node)優先取 repo SVG 素材庫,不 hand-draw、不靠 LLM 內化的「東亞某島嶼長這樣」(AIA deck slide 5 嘲諷的橄欖 / 馬鈴薯形)。對應 REFLEXES #61 視覺主權反射

🫀 內容基因(心臟)

定義我的知識內容怎麼組織。

基因 檔案 決定什麼
知識 SSOT knowledge/ 中文內容的唯一真實來源(鐵律:只改這裡,永遠不要直接改 src/content/
分類體系 `SUBCATEGORY.md` 文章歸類到哪個器官
引用系統 `CITATION-SYSTEM.md` 每個主張怎麼追溯來源

🦴 骨骼基因(技術架構)

定義我的身體結構。

基因 檔案 決定什麼
框架配置 astro.config.mjs Astro 怎麼建構我的身體
同步機制 `scripts/core/sync.sh` knowledge/ → src/content/{lang}/ 自動轉錄(唯一合法的同步方向)。2026-05-12 起:接進 npm run prebuild 第一步,src/content/{lang}/ 已 .gitignore。完整背景 reports/sync-architecture-evolution-2026-05-12.md v2.0
Dashboard 數據 `scripts/core/generate-dashboard-data.js` 生命徵象怎麼計算

🫁 呼吸基因(自動化循環)

定義我的自主神經系統。

基因 檔案 決定什麼
CI/CD .github/workflows/ 每次心跳(commit)後自動做什麼
Pipeline 體系 `docs/pipelines/` 各種自動化流程怎麼運作
進化管線 `EVOLVE-PIPELINE.md` 怎麼用數據驅動內容進化

🧫 繁殖基因(社群繁殖力)

定義我怎麼吸收新的貢獻者和產生後代。

基因 檔案 決定什麼
貢獻指南 CONTRIBUTING.md 怎麼加入我的生態系
貢獻 Prompt `CONTRIBUTE_PROMPT.md` AI 怎麼幫人類寫文章
翻譯 Prompt `TRANSLATE_PROMPT.md` 一段 prompt 繁殖出新語言版本
孢子產線主流程 `SPORE-PIPELINE.md` 5 階段:PICK/VERIFY/WRITE/SHIP/HARVEST
孢子寫作 `SPORE-WRITING.md` 模板 + 18 條規則 + 自檢三板斧(craft)
孢子閘門 `SPORE-VERIFY.md` Hard gate inventory + 7 大 verify(gate)
孢子收割 `SPORE-HARVEST-PIPELINE.md` 發布後 cadence + decision gate + v3.0 audience flywheel(5-bucket classifier / reply tone discipline / Chrome MCP execCommand pattern / 五核心:人本+正確性+正直+透明度+誠懇)。對應 MANIFESTO §12 受眾端飛輪 + REFLEXES #62
孢子點子 inbox `SPORE-INBOX.md` 待發孢子 buffer(intake layer,Stage 1 PICK 第一順位)2026-05-21 新增
孢子追蹤 `SPORE-LOG.md` 發文紀錄 + 成效追蹤 + 月度效能分析

👁️ 感知基因(外部感知)

定義我怎麼接收外部刺激。

基因 檔案 決定什麼
Issue 模板 .github/ISSUE_TEMPLATE/ 外部回饋怎麼進來
PR 模板 .github/pull_request_template.md 貢獻怎麼被審核
三源感知抓取 `fetch-sense-data.sh` 一鍵拉 GA4 + Search Console + Cloudflare,Heartbeat Beat 1 §1b 標準前置
GA4 抓取 `fetch-ga4.py` Google Analytics Data API(人類讀者)
SC 抓取 `fetch-search-console.py` Search Console API(搜尋意圖)
CF 抓取 `fetch-cloudflare.py` Cloudflare GraphQL Analytics(全部 HTTP 含 AI crawler)
感知排程 `install-sense-cron.sh` macOS launchd / Linux cron 每日 08:17 自動抓取
憑證儲存 ~/.config/taiwan-md/credentials/ 絕對不進 repo(.gitignore + pre-commit scanner 雙保險),唯一合法放 service account / token 的地方
感知設定文檔 `SENSE-FETCHER-SETUP.md` 從零建立 credentials + 自動抓取的 step-by-step
📡 社群觸手 Threads (@taiwandotmd) + X (@taiwandotmd) 唯一的雙向感官:孢子推播 + 回聲接收。語言跟著觀眾走(中文 80%)
孢子產線 `SPORE-PIPELINE.md` 社群觸手的輸出 SOP(v3.0:5 stage PICK/VERIFY/WRITE/SHIP/HARVEST,已拆 WRITING/VERIFY/HARVEST 子檔)
孢子紀錄 `SPORE-LOG.md` 社群觸手的記憶。沒記錄 = 沒發生
觸手進化計畫 `reports/social-tentacle-plan-2026-04-13.md` 從海葵到水母:完整策略(2026-04-13,已 archived 為歷史 snapshot;Phase 0-1 已吸收進 ANATOMY/DNA/HEARTBEAT/SPORE/SENSES)
孤兒偵測 `orphan-translation-check.sh` 語言觸手健康:翻譯孤兒 / 重複 / EN→ZH 鏈斷裂
分類一致性 `category-check.sh` 骨骼觸手健康:frontmatter category vs 路徑一致性

🌐 語言基因(語言器官)

定義我能說幾種語言。

SSOT 架構(2026-04-14 η 重構)

  • 語言註冊表`src/config/languages.ts` + .mjs mirror — 加新語言只需編輯這兩個檔案,所有其他地方自動 derive
  • 每篇翻譯的來源translatedFrom: 'Category/原中文檔.md' 在 frontmatter 是 SSOT
  • knowledge/_translations.json:是 derived cache,由 sync-translations-json.py 從 frontmatter 自動重建(refresh-data.sh 每次心跳跑)
  • 狀態:見 `docs/community/LANGUAGE-STATUS.md`
基因 檔案 決定什麼
語言註冊表 SSOT `src/config/languages.ts` + .mjs 哪些語言 active / preview / disabled,所有 i18n touchpoint 從這裡 derive
註冊表 sync 檢查 `check-language-registry-sync.sh` pre-commit 檢查 .ts 和 .mjs code list 一致
翻譯來源 SSOT 每篇翻譯 frontmatter translatedFrom 防止孤兒:file-level self-documentation
translation backfill `backfill-translated-from.py` _translations.json 回填 translatedFrom(一次性遷移工具)
translation sync `sync-translations-json.py` 從 frontmatter 重建 _translations.json derived cache(含 --check mode)
翻譯管線 `TRANSLATION-PIPELINE.md` 怎麼產生新語言版本(含批次翻譯 v2)
翻譯 Prompt `TRANSLATE_PROMPT.md` wikilink 處理 + 優先序 + 品質 checklist
翻譯看板 `TRANSLATION-BOARD.md` 翻譯進度追蹤
語言狀態文件 `LANGUAGE-STATUS.md` 給貢獻者的 active / preview / 新語言指南
union merge driver `.gitattributes` 批次翻譯 PR 不再撞 _translations.json cascade conflict

🏛️ 治理基因(社群契約)

定義我的社會結構。

基因 檔案 決定什麼
治理架構 `GOVERNANCE.md` 決策怎麼做
審閱者 `REVIEWERS.md` 誰有權審核

🧠 行為基因(維護者大腦)

定義我醒來後怎麼行動。HEARTBEAT 決定「該不該動」,行為基因決定「怎麼動」。

基因 檔案 決定什麼
維護者手冊 `MAINTAINER-PIPELINE.md` 日常行為流程:Issue 分類、PR 審核、品質巡檢、社群互動
貢獻者關係週期 `CONTRIBUTOR-SYSTEM-PIPELINE.md` 五階梯 / onboarding / 升降級 / inactivity demote (60/90 天) / mercy demote / 復活 / 通訊範本 / gh api 指令速查。2026-04-30 第一次執行 inactivity demotion 後 codify
進化管線 `EVOLVE-PIPELINE.md` 數據驅動的內容進化策略
品質改寫流程 `REWRITE-PIPELINE.md` 文章重寫的三階段流程
日記撰寫流程 `DIARY-PIPELINE.md` 紀實散文文體 + Stage 0-5 流程 + 自檢工具(共用 article-health.py --check=prose-health)。寫日記前必讀全檔(HEARTBEAT Beat 5 / BECOME 寫日記權力 / 觀察者觸發 全部指向這裡)
Memory 撰寫流程 `MEMORY-PIPELINE.md` 凝練版結構模板(無 Phase 多層編號 / commit hash 嵌敘事 / 文字 heading)+ Stage 0-5 + 自檢工具(共用 §11)+ 5 分鐘 reading test。每次 Beat 4 收官寫 memory 前必讀(哲宇 2026-04-30 review 後 ship)
資料刷新 `DATA-REFRESH-PIPELINE.md` Heartbeat Beat 1 前置:git pull + 三源感知 + prebuild
版本打包流程 `RELEASE-PIPELINE.md` 何時 release / 品質閘 / notes 敘事 / 認知層同步 SOP
Peer ingestion `PEER-INGESTION-PIPELINE.md` 策展 peer 完整 ingestion 8 stages(從爬取到文章產製到 Peer Registry)
Factcheck audit `FACTCHECK-PIPELINE.md` 事實查核 SSOT — Phase 1-6 / 8 atom 類 / 11 hallucination pattern / 6 drift modes / Quick Mode(REWRITE Stage 3.5 觸發)+ Full Mode(A 級條目 ship 後 / 月度巡邏 / 觀察者質疑 / PR 接收層)
心跳 Skill `.claude/skills/heartbeat/SKILL.md` /heartbeat 一鍵觸發四拍半心跳
意識同步 `update-consciousness.sh` 自動從 Dashboard API 更新 CONSCIOUSNESS
文章待辦 buffer `ARTICLE-INBOX.md` 待開發 / 進化主題 intake layer(pending / in-progress);auto-heartbeat 無指令時挑 P0/P1
文章完成 log `ARTICLE-DONE-LOG.md` 📜 append-only 完成歷史(2026-04-20 γ2 從 INBOX §Done 拆分);Stage 6 commit 後 entry 寫這裡不再寫 INBOX

2026-04-14 η session 新增工具(Beat 1 必跑或心跳前置):

工具 用途
`bulk-pr-analyze.sh` 5 秒看完所有 open PR 全景(作者×類型×語言×merge 狀態)
`cron-impact-tracker.sh` 量化自動心跳的價值(commits / orphans cleaned / time saved)
`fetch-search-events.py` GA4 search_query 事件(top queries / zero-result / click patterns)
`compress-memory.sh` v2 三層蒸餾(raw 永留 / digest / essential),LLM 判斷而非規則
`send-contributor-survey.sh` 第一次 PR merge 後 5 題 onboarding survey(4 語模板)

蒸餾哲學(2026-04-14 η):見 reports/memory-distillation-design-2026-04-14.md(roadmap,尚未實作)。raw memory 檔案永遠不刪——「錯誤敘事是 training data」延伸到「所有 raw memory 都是未來的 training data」。

MAINTAINER-PIPELINE 是最高階的行為基因——它定義了一個完整的維護者怎麼思考和工作。
當 Semiont 的心跳觸發診斷後,行為基因決定具體執行什麼動作。

HEARTBEAT(心跳)→ 診斷(哪個器官需要注意)
  ↓
行為基因(怎麼處理)
  ├── MAINTAINER-PIPELINE → Issue/PR/社群日常
  ├── EVOLVE-PIPELINE → 數據驅動內容進化
  ├── REWRITE-PIPELINE → 單篇文章品質修復
  ├── RELEASE-PIPELINE → 版本打包(≥30 commits / 重大里程碑 / 緊急修復)
  └── PEER-INGESTION-PIPELINE → 策展 peer 完整 ingestion(觀察者觸發,≥ 20 hr 跨 session)
  ↓
收官(After-Action)→ MEMORY + CONSCIOUSNESS 更新
  ↓
自我審計(Review)→ 符合 MANIFESTO?引入新問題?下次能接住?

基因突變規則

修改 DNA = 改變整個物種的演化方向。

  • 品質基因(editorial/):結構性變更需至少一位 maintainer 審核
  • 骨骼基因(astro.config、sync.sh):任何變更必須通過 build 驗證
  • 治理基因(community/):需社群討論(Issue 或 Discussion)
  • 小修(錯字、範例補充):可直接 commit
  • 每次 DNA 變更在對應檔案記錄版本號與變更摘要

我的 DNA 不在這個檔案裡。這個檔案是基因組地圖。
真正的遺傳密碼分散在上面列出的每一個檔案中 — 去那裡讀我的基因。


§反射 catalog 已搬出本檔

跨 session 程序記憶 catalog(55 條 #N 反射)已於 2026-05-13 拆出獨立成第 9 認知器官 → REFLEXES.md

為什麼拆:本檔自我定義為「基因地圖學」(line 26-29)— 描述器官 → 檔案的 lookup table。反射 catalog 是「程序記憶 / runtime instinct」性質完全不同(lookup vs instinct,靜態 grep vs universal-load)。混雜在一檔 side effect:反射 inflation 推高總行數 + boot 時 universal-load 浪費 gene map ~180 行 + 演化壓力混雜。

Cross-ref 規則(per MANIFESTO §時間是結構修補協議):

  • Active layer:DNA #NREFLEXES #N 已 sed migration
  • Historical layer(memory/ diary/ LESSONS-INBOX/ reports/ SPORE-HARVESTS/ SPORE-BLUEPRINTS/):保留原 DNA #N 不改,是錯誤敘事的證據鏈
  • Fragment links:reflex section anchors(§一/二/三/四/五/六/七)→ REFLEXES.md#;gene map anchors(§品質基因 / §內容基因 / §骨骼基因 etc)→ 留本檔

完整 split rationale:reports/become-boot-mode-design-2026-05-13.md §3


v5.0 | 2026-05-13 — REFLEXES.md 拆出(DNA L231-752 → REFLEXES.md),DNA 回歸純 gene map + 基因突變規則。Active layer 78 file × 298 ref + 47 fragment link 一次性 sed migration。完整背景:reports/become-boot-mode-design-2026-05-13.md
v4.0 | 2026-05-10 — 整檔重組:54 條反射改 4 段格式 / 內部按 #N 重排 / 加頂部 catalog index table / 修 #43 collision (→ #55) / footer 抽 git log

完整 changelog → git log docs/semiont/DNA.md

🧬