Runtime 能力总览
本文解释 Team Skills Platform 里那些“不是你手动输入的命令,但会改变会话行为”的后台能力。当前公开契约已经收口到 JavaScript runtime:以 hooks/hooks.json 为配置入口,以 scripts/hooks/*.js 为执行入口,不再使用已删除的 Python hook 文件名。
1. 这份文档回答什么
- 当前 runtime 的真实入口在哪里
/team-help、artifact:persist和后台 hooks 是什么关系- Claude 安装后哪些 JS hooks 会真正影响会话
- 长会话、memory、audit、budget 和 governance 信号如何落盘
2. 当前运行时分层
2.1 配置入口
hooks/hooks.json:Claude hooks 的唯一声明式配置入口scripts/install-platform.js:legacy Claude 安装时负责复制scripts/hooks/、清理旧.py引用,并把当前 JS hooks 合并到settings.json
2.2 执行入口
scripts/hooks/session-start-bootstrap.js:SessionStart bootstrapscripts/hooks/session-start.js:加载docs/memory/project-context.md、session summary 等上下文scripts/hooks/pre-compact.js:PreCompact 前的高价值状态整理scripts/hooks/suggest-compact.js:在真实上下文使用率超过 65/70/85/95% 时提示人工 compactscripts/hooks/session-end.js:Stop 阶段持久化 session 摘要scripts/hooks/session-end-marker.js:SessionEnd 生命周期标记scripts/hooks/cost-tracker.js:记录 token / cost 指标scripts/hooks/governance-capture.js:采集治理与审批相关信号scripts/hooks/mcp-health-check.js:MCP 健康检查scripts/hooks/quality-gate.js:编辑后质量门禁scripts/lib/loop-state-store.js:Loop Engineering 的 target-neutral goal / triage / heartbeat 状态存储scripts/lib/loop-spec.js:.tsp/loop.yaml解析和最小安全校验scripts/lib/heartbeat-scheduler.js:按 loop spec 或 heartbeat config 执行 discovery scansscripts/lib/context-window.js:CCometixLine-compatible context remaining provider,统一为 statusline 与 compact 建议提供 remaining tokens / percentagescripts/lib/context-window-state.js:记录每个 session / project 的 compact 次数,让动态上下文压缩可以基于压缩轮次决策
2.3 状态与存储
scripts/lib/state-store/:runtime 状态存储入口.tsp/context/compact-state.json:默认项目级 compact 次数状态;可用TSP_CONTEXT_STATE_DIR改写scripts/lib/loop-state-store.js:Loop Engineering 状态入口,优先使用TSP_LOOP_STATE_DIR,其次.tsp/loops/或 target 默认目录.tsp/loop.yaml:Loop Engineering 的 target-neutral spec,schema 位于schemas/loop-spec.schema.jsondocs/memory/project-context.md:主链共享项目上下文docs/memory/decisions.md、docs/memory/lessons-learned.md:轻量项目记忆docs/memory/sessions/:session continuity 落点~/.claude/metrics/costs.jsonl:cost tracker 输出~/.claude/memory/audit/:本地 audit 查询输入
3. 关键能力说明
3.1 Session memory
- 触发点:
session-start-bootstrap.js、session-start.js、session-end.js - 作用:会话开始时恢复项目上下文、最近摘要和待办;Stop 阶段把本轮摘要写回 session continuity 文件
- 用户侧影响:重新进入任务时,更容易保持
/team-plan、/team-execute、/team-review的连续性
3.2 Governance capture
- 触发点:
governance-capture.js - 作用:检测 secrets、approval-required 操作、敏感路径写入等治理信号
- 用户侧影响:在高风险 Bash / Edit / Write 行为上留痕,可为后续 review 或 release 说明补证据
3.3 Cost awareness
- 触发点:
cost-tracker.js - 作用:记录 token、模型与成本估算,辅助长会话预算判断
- 用户侧影响:可以用
node scripts/query-audit-logs.js --summary-only或直接查看~/.claude/metrics/costs.jsonl了解会话成本
3.4 Compact readiness
- 触发点:
suggest-compact.js、pre-compact.js - 作用:在进入 compact 前整理状态,在高上下文压力下基于 CCometixLine-compatible remaining context 给出压缩提示
- 计算顺序:优先消费
TSP_CONTEXT_WINDOW_JSON/CCOMETIXLINE_CONTEXT_JSON、TSP_CONTEXT_WINDOW_FILE/CCOMETIXLINE_CONTEXT_FILE、hook 输入中的ccometixline.context_window/ccometixline_context_window;其次读取 Claudecontext_window;再退回 transcript JSONL usage 与 bridge / size fallback - 计数:
pre-compact.js每次触发都会递增.tsp/context/compact-state.json中的 session 和 total compact count,suggest-compact.js会把compact_count带入输出 - 用户侧影响:长任务中更容易知道什么时候该手动 compact;compact 后还能知道当前是第几轮压缩,动态上下文压缩策略不会丢失轮次状态
3.5 MCP health
- 触发点:
mcp-health-check.js - 作用:在 MCP 调用前后记录健康状态,降低“工具看起来可用但实际已失效”的误判
3.6 Quality after edits
- 触发点:
quality-gate.js以及 Stop 阶段的格式化 / typecheck hook - 作用:在 Edit / Write 后补做最小质量闸口,避免把明显坏状态直接带到
/handoff或/team-review
3.7 Loop engineering
- 触发点:
/loop-start、/goal、/heartbeat、/triage、session-start-goal-resume.js - 作用:把重复、可验证、有预算的任务封装成 automation + skill + state + hard gate 的闭环
- 状态:
TSP_LOOP_STATE_DIR、.tsp/loops/或 target 默认目录;旧~/.claude/goals和.claude/heartbeat.yaml作为迁移输入继续可读 - 用户侧影响:循环可以跨会话恢复,失败会进入 triage,不会因为单次对话结束而丢掉目标和验证历史
4. 一条典型 runtime 流水线
- SessionStart:
session-start-bootstrap.js调度session-start.js - 读取
docs/memory/project-context.md与 session continuity 文件 - 用户通过
/team-help判断当前该进入哪条主链命令 /team-intake、/team-plan、/team-execute等命令通过artifact:persist把正式输出落到docs/artifacts/- PreToolUse / PostToolUse 期间,
governance-capture.js、mcp-health-check.js、质量与观察类 hooks 持续提供后台信号 - 长会话中,
suggest-compact.js根据 CCometixLine-compatible remaining context 给出 compact 提示,pre-compact.js在真正 compact 前整理关键状态并递增 compact count - Stop:
session-end.js、cost-tracker.js等 JS hooks 在响应结束后持久化摘要与指标 - SessionEnd:
session-end-marker.js记录生命周期收尾
5. 和 /team-* 主链是什么关系
/team-help是唯一公开入口:负责根据 artifacts、handoff 和当前阶段决定下一步artifact:persist是主链输出的唯一落盘通道:负责把 PRD、delivery-plan、execute-log、handoff、release/closeout artifact 写入仓库- runtime hooks 不是第二套 workflow:它们只负责补上下文、记忆、治理和质量信号,不替代
/team-* - loop engineering 也不是第二套团队治理:只适合已通过四条件准入的重复、可验证任务;团队交付仍回落到
/team-*artifact 与 handoff
6. 当前推荐查看路径
- 想先看公开命令与能力映射:看 command-and-capability-matrix.md
- 想先看 Loop Engineering:看 loop-engineering-usage.md
- 想先看接入与落盘动作:看 team-skills-usage.md 和 project-onboarding.md
- 想先体验 Claude:看 claude-quick-start.md
- 想先理解 ECC 增强层与主链如何配合:看 ecc-harness-usage.md
7. 常见误解
- 误解一:runtime 还是 Python hooks。当前 active surface 已切到
scripts/hooks/*.js - 误解二:
/team-help只是说明文案。它现在是公开主链唯一入口 - 误解三:memory 只靠 hook 自动生成。正式任务产出仍必须通过
artifact:persist写入docs/artifacts/、docs/adr/和docs/memory/