LingTai Developer Guide
The cross-repository developer router for LingTai. The root stays short on
purpose; detailed procedures live under reference/<topic>/.
Repository-local developer guidance takes precedence
Before using this guide, look for developer guidance maintained by the current
repository and read it first. When it exists, follow it for repository-specific
rules; it takes precedence over this global guide. Use this guide afterward — or
when the local guide routes here — to select the deeper cross-repository topic
you need, then read that nested reference before touching code. Do not substitute
generic procedures here for local guidance, or restate local rules from memory.
Non-negotiable rules
- Progressive disclosure: router → nested reference → anatomy skill → code +
tests. Never jump from memory straight to edits.
- Code is truth: reference files route and summarize; cited source files,
tests, and
ANATOMY.md files are authoritative.
- Anatomy travels with code: if you move/rename/split/delete code cited by an
ANATOMY.md, update the anatomy in the same commit, following the ANATOMY
frontmatter contract below.
- Explicit human authorization gates: do not open/merge PRs, push commits,
file issues, close/delete resources, or change config unless the human gave an
imperative authorization for that side effect.
- Human-facing deliverables prefer HTML: substantial plans, audits, release
notes, and PR-readiness reports should be standalone HTML unless waived.
- Release/install docs rule: LingTai runtime is normally managed by the
TUI-created project venv; do not present bare
pip install/upgrade lingtai as
the standard user path. Manual pip/venv commands are for developer,
diagnostic, or verification contexts only.
- Patch-to-self ownership rule: a merged PR or rebuilt checkout is not
automatically live in the agent. The update/build owner must identify the
actual runtime interpreter, imported source/package, HEAD/version, and intended
selectors, then hand off the cutover target evidence. Kernel
system-manual →
reference/refresh-precheck/SKILL.md alone owns the refresh transaction and
targeted receipt. Load reference/runtime-self-check/SKILL.md only for the
relevant provenance assertion or a suspected mismatch; an ordinary
same-runtime reload does not invoke its deep diagnostic library.
- Skill-size/progressive-disclosure rule: when writing or updating skills,
treat read/context limits as a reason to keep the router lean and link onward,
not as a reason to paste large content into
SKILL.md. Put dense material in
related/nested reference files and link to skills-manual for current
authoring mechanics and limit-aware structure.
- Launch-session / PYTHONPATH hygiene rule: never launch the TUI or an agent
from a shell session that exports
PYTHONPATH. A leftover PYTHONPATH pointing
at another project's scratch/worktree/temp repo src shadows the venv's own
lingtai import, and because the refresh watcher copies os.environ verbatim,
the pollution survives refresh — a plain refresh re-inherits it. Debug
sessions that export PYTHONPATH=... for one experiment silently infect every
agent they launch. See reference/gotchas/SKILL.md ("PYTHONPATH pollution")
and reference/runtime-self-check/SKILL.md §1 for the probe and §8 for the
clean-relaunch recipe.
ANATOMY frontmatter contract
New or materially updated ANATOMY.md files should start with YAML frontmatter:
---
related_files:
- path/from/repo/root.ext
- path/to/neighbor/ANATOMY.md
maintenance: |
Keep related_files as repo-relative paths to real files. Include neighboring
ANATOMY.md files so the anatomy graph stays connected rather than isolated;
anatomy links must be bidirectional. If you create a new ANATOMY.md, copy this
maintenance field. If you notice drift between this anatomy and the code,
report it. See lingtai-dev-guide for details.
---
Rules:
related_files uses repo-relative paths only; every entry must be a real file.
- Include the files the anatomy explains plus neighboring/parent/child
ANATOMY.md files. Do not build a complete graph — choose meaningful links —
but an isolated ANATOMY.md is invalid, and anatomy-to-anatomy links must be
bidirectional: if A lists B, B should list A.
maintenance carries the recursive instruction: copy it into new anatomy files
and report drift when anatomy and code no longer match.
Nested reference catalog
lingtai-dev-guide owns these nested references. They are parent-owned
drill-down files, not standalone top-level skills.
- name: dev-guide-architecture
location: reference/architecture/SKILL.md
description: |
Project shape, repos, IPC boundaries, and runtime state layout.
- name: dev-guide-setup
location: reference/setup/SKILL.md
description: |
Local dev environment for the Go TUI/portal repo, Python kernel, and MCP addons.
- name: dev-guide-contributing
location: reference/contributing/SKILL.md
description: |
Contribution workflow, daemon decomposition, build/test commands, skill
changes, anatomy maintenance, and worktree hygiene with exact-object
approval gates.
- name: dev-guide-gotchas
location: reference/gotchas/SKILL.md
description: |
Known footguns: venv assumptions, migrations, packaging, state files, i18n.
- name: dev-guide-debug-troubleshoot
location: reference/debug-troubleshoot/SKILL.md
description: |
Diagnosing stuck, errored, quiet, or misbehaving LingTai networks.
- name: dev-guide-security-audit
location: reference/security-audit/SKILL.md
description: |
Read-only audits of secrets, permissions, MCP config, channels, and data
exposure, with severity classification and safe reporting.
- name: dev-guide-runtime-self-check
location: reference/runtime-self-check/SKILL.md
description: |
Deep, trigger-gated provenance and lifecycle diagnosis for a source/venv/
interpreter or TUI-binary cutover, changed or failing MCP source, or a
suspected mismatch. Ordinary reload sequencing belongs to kernel
`system-manual` → `reference/refresh-precheck/SKILL.md`.
- name: dev-guide-pr-review-deliverables
location: reference/pr-review-deliverables/SKILL.md
description: |
PR readiness gates, independent review passes, the self-contained local HTML
explainer, PR body hygiene, and maintainer authorization boundaries.
- name: dev-guide-skill-stewardship
location: reference/skill-stewardship/SKILL.md
description: |
Turning experience into durable skills: when to write one, router-vs-nested
structure, distillation (归一), de-privatization, a pre-publish benchmark,
shared-library grooming, and PR-ready cleanup. Cross-links skills-manual.
- name: dev-guide-repo-watch
location: reference/repo-watch/SKILL.md
description: |
Read-only sweep of the Lingtai-AI org for open issues/PRs and recent
activity, plus non-self monitoring and stateful alerting.
- name: dev-guide-cache-hit-rate
location: reference/cache-hit-rate/SKILL.md
description: |
Recent prompt-cache hit rate from token ledgers over rolling windows
(1h/5h/1d/3d): ledger fields, the formula, the daemon double-count hazard,
and the bundled read-only stdlib script.
Routing table
| If you need to... |
Read |
| Understand the project shape, repos, IPC, and state layout |
reference/architecture/SKILL.md |
| Set up a local development environment |
reference/setup/SKILL.md |
| Make a contribution in TUI, portal, kernel, addons, or skills |
reference/contributing/SKILL.md |
| Avoid common footguns while coding |
reference/gotchas/SKILL.md |
| Diagnose a stuck, errored, or misbehaving LingTai network |
reference/debug-troubleshoot/SKILL.md |
| Audit secrets, permissions, MCP config, channels, or data exposure |
reference/security-audit/SKILL.md |
| Execute an ordinary agent reload, preset swap, or changed-input refresh transaction |
Kernel system-manual → reference/refresh-precheck/SKILL.md |
| Diagnose source/venv/TUI-binary cutover provenance, changed or failing MCP source, or why on-disk code still serves stale behaviour |
reference/runtime-self-check/SKILL.md |
| Get a PR review-ready: review gates, HTML explainer, PR hygiene |
reference/pr-review-deliverables/SKILL.md |
| Turn experience into a durable, de-privatized, PR-ready skill |
reference/skill-stewardship/SKILL.md |
| Sweep the GitHub org read-only, or install a non-self PR/issue monitor |
reference/repo-watch/SKILL.md |
| Measure the recent prompt-cache hit rate (1h/5h/1d/3d) from token ledgers |
reference/cache-hit-rate/SKILL.md |
Related skills to load instead or next
| Need |
Skill |
| Navigate Go TUI/portal code structurally |
lingtai-tui-anatomy |
| Navigate Python kernel code structurally |
lingtai-kernel-anatomy |
| Develop, register, or troubleshoot MCP servers/addons |
mcp-manual first, then lingtai-kernel-anatomy reference/mcp-protocol.md |
| Author or publish skills, including limit-aware router/reference structure |
skills-manual, then reference/skill-stewardship/SKILL.md |
| Customize, export, or package project methodology as a recipe |
lingtai-recipe |
Work on portal APIs, topology recording, replay, or .portal/ state |
lingtai-portal-guide |
| Produce a standalone HTML deliverable (skeleton, MathJax, validation) |
swiss-knife → reference/html-report/SKILL.md |
| Prepare for a consequential molt during long dev work |
psyche-manual |
| Explain LingTai to an end user lesson-by-lesson |
tutorial-guide |
| Report a LingTai bug or stale documentation |
lingtai-issue-report |
Orientation snapshot
| Repo / package |
Stack |
Main role |
Where to start |
Lingtai-AI/lingtai |
Go + TypeScript |
lingtai-tui, lingtai-portal, bundled utilities |
reference/architecture/SKILL.md, then lingtai-tui-anatomy |
Lingtai-AI/lingtai-kernel |
Python |
agent runtime, tools, mailbox, soul/molt, intrinsic capabilities |
lingtai-kernel-anatomy |
lingtai-imap, lingtai-telegram, lingtai-feishu, lingtai-wechat, lingtai-whatsapp |
Python MCPs |
channel/addon integrations |
mcp-manual plus each addon's README |
Common routing examples
Multi-hop routes the table above doesn't spell out:
- "Change a TUI screen" →
reference/contributing/SKILL.md →
lingtai-tui-anatomy → relevant Go files → focused go test.
- "Update an ANATOMY.md" → repo-specific anatomy skill → apply the ANATOMY
frontmatter contract above, and report stale citations, dead paths, or claims
that no longer match the code.
- "Add a capability or inspect runtime behavior" →
lingtai-kernel-anatomy →
kernel anatomy/code → kernel tests.
- "This broad dev task needs triage" → the read-only portfolio sweep in
reference/contributing/SKILL.md, then ask for authorization before mutating
GitHub state.
- "Local worktrees are piling up" → "Worktree hygiene" in
reference/contributing/SKILL.md: inventory read-only, propose exact objects,
remove only after the human or owning maintainer approves them.
Now read the nested reference that matches the task, then verify against current
repo state before acting.
1---2name: lingtai-dev-guide3description: Router for contributing to LingTai. Use when changing code or docs, setting up a dev environment, navigating the TUI/portal repo or Python kernel, developing MCP addons, troubleshooting a running network, auditing security, running a runtime self-check, prepping a PR review, or stewarding a new skill. For developers and contributors; for end-user lessons, use tutorial-guide.4---56# LingTai Developer Guide78The cross-repository developer router for LingTai. The root stays short on9purpose; detailed procedures live under `reference/<topic>/`.1011## Repository-local developer guidance takes precedence1213Before using this guide, look for developer guidance maintained by the current14repository and read it first. When it exists, follow it for repository-specific15rules; it takes precedence over this global guide. Use this guide afterward — or16when the local guide routes here — to select the deeper cross-repository topic17you need, then read that nested reference before touching code. Do not substitute18generic procedures here for local guidance, or restate local rules from memory.1920## Non-negotiable rules2122- **Progressive disclosure:** router → nested reference → anatomy skill → code +23 tests. Never jump from memory straight to edits.24- **Code is truth:** reference files route and summarize; cited source files,25 tests, and `ANATOMY.md` files are authoritative.26- **Anatomy travels with code:** if you move/rename/split/delete code cited by an27 `ANATOMY.md`, update the anatomy in the same commit, following the ANATOMY28 frontmatter contract below.29- **Explicit human authorization gates:** do not open/merge PRs, push commits,30 file issues, close/delete resources, or change config unless the human gave an31 imperative authorization for that side effect.32- **Human-facing deliverables prefer HTML:** substantial plans, audits, release33 notes, and PR-readiness reports should be standalone HTML unless waived.34- **Release/install docs rule:** LingTai runtime is normally managed by the35 TUI-created project venv; do not present bare `pip install/upgrade lingtai` as36 the standard user path. Manual pip/venv commands are for developer,37 diagnostic, or verification contexts only.38- **Patch-to-self ownership rule:** a merged PR or rebuilt checkout is not39 automatically live in the agent. The update/build owner must identify the40 actual runtime interpreter, imported source/package, HEAD/version, and intended41 selectors, then hand off the cutover target evidence. Kernel `system-manual` →42 `reference/refresh-precheck/SKILL.md` alone owns the refresh transaction and43 targeted receipt. Load `reference/runtime-self-check/SKILL.md` only for the44 relevant provenance assertion or a suspected mismatch; an ordinary45 same-runtime reload does not invoke its deep diagnostic library.46- **Skill-size/progressive-disclosure rule:** when writing or updating skills,47 treat read/context limits as a reason to keep the router lean and link onward,48 not as a reason to paste large content into `SKILL.md`. Put dense material in49 related/nested reference files and link to `skills-manual` for current50 authoring mechanics and limit-aware structure.51- **Launch-session / PYTHONPATH hygiene rule:** never launch the TUI or an agent52 from a shell session that exports `PYTHONPATH`. A leftover `PYTHONPATH` pointing53 at another project's scratch/worktree/temp repo `src` shadows the venv's own54 `lingtai` import, and because the refresh watcher copies `os.environ` verbatim,55 the pollution survives refresh — a plain `refresh` re-inherits it. Debug56 sessions that `export PYTHONPATH=...` for one experiment silently infect every57 agent they launch. See `reference/gotchas/SKILL.md` ("PYTHONPATH pollution")58 and `reference/runtime-self-check/SKILL.md` §1 for the probe and §8 for the59 clean-relaunch recipe.6061## ANATOMY frontmatter contract6263New or materially updated `ANATOMY.md` files should start with YAML frontmatter:6465```yaml66---67related_files:68 - path/from/repo/root.ext69 - path/to/neighbor/ANATOMY.md70maintenance: |71 Keep related_files as repo-relative paths to real files. Include neighboring72 ANATOMY.md files so the anatomy graph stays connected rather than isolated;73 anatomy links must be bidirectional. If you create a new ANATOMY.md, copy this74 maintenance field. If you notice drift between this anatomy and the code,75 report it. See lingtai-dev-guide for details.76---77```7879Rules:8081- `related_files` uses repo-relative paths only; every entry must be a real file.82- Include the files the anatomy explains plus neighboring/parent/child83 `ANATOMY.md` files. Do not build a complete graph — choose meaningful links —84 but an isolated `ANATOMY.md` is invalid, and anatomy-to-anatomy links must be85 bidirectional: if A lists B, B should list A.86- `maintenance` carries the recursive instruction: copy it into new anatomy files87 and report drift when anatomy and code no longer match.8889## Nested reference catalog9091`lingtai-dev-guide` owns these nested references. They are parent-owned92drill-down files, not standalone top-level skills.9394```yaml95- name: dev-guide-architecture96 location: reference/architecture/SKILL.md97 description: |98 Project shape, repos, IPC boundaries, and runtime state layout.99- name: dev-guide-setup100 location: reference/setup/SKILL.md101 description: |102 Local dev environment for the Go TUI/portal repo, Python kernel, and MCP addons.103- name: dev-guide-contributing104 location: reference/contributing/SKILL.md105 description: |106 Contribution workflow, daemon decomposition, build/test commands, skill107 changes, anatomy maintenance, and worktree hygiene with exact-object108 approval gates.109- name: dev-guide-gotchas110 location: reference/gotchas/SKILL.md111 description: |112 Known footguns: venv assumptions, migrations, packaging, state files, i18n.113- name: dev-guide-debug-troubleshoot114 location: reference/debug-troubleshoot/SKILL.md115 description: |116 Diagnosing stuck, errored, quiet, or misbehaving LingTai networks.117- name: dev-guide-security-audit118 location: reference/security-audit/SKILL.md119 description: |120 Read-only audits of secrets, permissions, MCP config, channels, and data121 exposure, with severity classification and safe reporting.122- name: dev-guide-runtime-self-check123 location: reference/runtime-self-check/SKILL.md124 description: |125 Deep, trigger-gated provenance and lifecycle diagnosis for a source/venv/126 interpreter or TUI-binary cutover, changed or failing MCP source, or a127 suspected mismatch. Ordinary reload sequencing belongs to kernel128 `system-manual` → `reference/refresh-precheck/SKILL.md`.129- name: dev-guide-pr-review-deliverables130 location: reference/pr-review-deliverables/SKILL.md131 description: |132 PR readiness gates, independent review passes, the self-contained local HTML133 explainer, PR body hygiene, and maintainer authorization boundaries.134- name: dev-guide-skill-stewardship135 location: reference/skill-stewardship/SKILL.md136 description: |137 Turning experience into durable skills: when to write one, router-vs-nested138 structure, distillation (归一), de-privatization, a pre-publish benchmark,139 shared-library grooming, and PR-ready cleanup. Cross-links skills-manual.140- name: dev-guide-repo-watch141 location: reference/repo-watch/SKILL.md142 description: |143 Read-only sweep of the Lingtai-AI org for open issues/PRs and recent144 activity, plus non-self monitoring and stateful alerting.145- name: dev-guide-cache-hit-rate146 location: reference/cache-hit-rate/SKILL.md147 description: |148 Recent prompt-cache hit rate from token ledgers over rolling windows149 (1h/5h/1d/3d): ledger fields, the formula, the daemon double-count hazard,150 and the bundled read-only stdlib script.151```152153## Routing table154155| If you need to... | Read |156|---|---|157| Understand the project shape, repos, IPC, and state layout | `reference/architecture/SKILL.md` |158| Set up a local development environment | `reference/setup/SKILL.md` |159| Make a contribution in TUI, portal, kernel, addons, or skills | `reference/contributing/SKILL.md` |160| Avoid common footguns while coding | `reference/gotchas/SKILL.md` |161| Diagnose a stuck, errored, or misbehaving LingTai network | `reference/debug-troubleshoot/SKILL.md` |162| Audit secrets, permissions, MCP config, channels, or data exposure | `reference/security-audit/SKILL.md` |163| Execute an ordinary agent reload, preset swap, or changed-input refresh transaction | Kernel `system-manual` → `reference/refresh-precheck/SKILL.md` |164| Diagnose source/venv/TUI-binary cutover provenance, changed or failing MCP source, or why on-disk code still serves stale behaviour | `reference/runtime-self-check/SKILL.md` |165| Get a PR review-ready: review gates, HTML explainer, PR hygiene | `reference/pr-review-deliverables/SKILL.md` |166| Turn experience into a durable, de-privatized, PR-ready skill | `reference/skill-stewardship/SKILL.md` |167| Sweep the GitHub org read-only, or install a non-self PR/issue monitor | `reference/repo-watch/SKILL.md` |168| Measure the recent prompt-cache hit rate (1h/5h/1d/3d) from token ledgers | `reference/cache-hit-rate/SKILL.md` |169170## Related skills to load instead or next171172| Need | Skill |173|---|---|174| Navigate Go TUI/portal code structurally | `lingtai-tui-anatomy` |175| Navigate Python kernel code structurally | `lingtai-kernel-anatomy` |176| Develop, register, or troubleshoot MCP servers/addons | `mcp-manual` first, then `lingtai-kernel-anatomy` `reference/mcp-protocol.md` |177| Author or publish skills, including limit-aware router/reference structure | `skills-manual`, then `reference/skill-stewardship/SKILL.md` |178| Customize, export, or package project methodology as a recipe | `lingtai-recipe` |179| Work on portal APIs, topology recording, replay, or `.portal/` state | `lingtai-portal-guide` |180| Produce a standalone HTML deliverable (skeleton, MathJax, validation) | `swiss-knife` → `reference/html-report/SKILL.md` |181| Prepare for a consequential molt during long dev work | `psyche-manual` |182| Explain LingTai to an end user lesson-by-lesson | `tutorial-guide` |183| Report a LingTai bug or stale documentation | `lingtai-issue-report` |184185## Orientation snapshot186187| Repo / package | Stack | Main role | Where to start |188|---|---|---|---|189| `Lingtai-AI/lingtai` | Go + TypeScript | `lingtai-tui`, `lingtai-portal`, bundled utilities | `reference/architecture/SKILL.md`, then `lingtai-tui-anatomy` |190| `Lingtai-AI/lingtai-kernel` | Python | agent runtime, tools, mailbox, soul/molt, intrinsic capabilities | `lingtai-kernel-anatomy` |191| `lingtai-imap`, `lingtai-telegram`, `lingtai-feishu`, `lingtai-wechat`, `lingtai-whatsapp` | Python MCPs | channel/addon integrations | `mcp-manual` plus each addon's README |192193## Common routing examples194195Multi-hop routes the table above doesn't spell out:196197- **"Change a TUI screen"** → `reference/contributing/SKILL.md` →198 `lingtai-tui-anatomy` → relevant Go files → focused `go test`.199- **"Update an ANATOMY.md"** → repo-specific anatomy skill → apply the ANATOMY200 frontmatter contract above, and report stale citations, dead paths, or claims201 that no longer match the code.202- **"Add a capability or inspect runtime behavior"** → `lingtai-kernel-anatomy` →203 kernel anatomy/code → kernel tests.204- **"This broad dev task needs triage"** → the read-only portfolio sweep in205 `reference/contributing/SKILL.md`, then ask for authorization before mutating206 GitHub state.207- **"Local worktrees are piling up"** → "Worktree hygiene" in208 `reference/contributing/SKILL.md`: inventory read-only, propose exact objects,209 remove only after the human or owning maintainer approves them.210211Now read the nested reference that matches the task, then verify against current212repo state before acting.