dsh-loopx-plugin
loopx-project/loopxLoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
把 FIST 指挥官任务编排做成 MCP 服务:七态任务生命周期、层级拆解、DAG 排程、自驱闭环与 Omega 强验证,账本落在一个 SQLite 里;自带预构建 CLI,安装无需构建;需 Node 24+。
fist-mbt —— AI 自驱式开发的项目管理者:一等的打磨对象只有两件——自驱与递归拆解,
而它迭代自己所用的,正是这两件能力(实证见下文引言)。
(js ×2 + native)
FIST-Mbt 用纯 MoonBit 重写并 MCP 化的 AI 指挥官任务编排底座——不是又一个 agent 框架,而是"人类指挥、AI/定时器持续自推动"的自治系统。完整闭环:发布→认领→拆分→执行→提交→验收→归档,叠加 自驱审视、DGM 演化采样、Omega 强验证、跨进程看门狗。全部以 170 个 MCP 工具(18 组)暴露给任意 MCP 客户端。
为什么 MoonBit:任务编排天然"正确性敏感"(状态机、权限矩阵、追加式审计、递归拆解),MoonBit 的强类型、无运行时依赖、JS+Native 双端交叉编译让这套逻辑在 Windows 与 Linux 上以 JS 目标 1457 项测试全绿、跨环境可复现。
它用它自己的自驱式 + 递归拆解把自己打磨到了可交付态——完整自我迭代证据见docs/selfdrive-walkthrough.md,CLIpython scripts/fist.py call project_standards可一键拉取本项目遵守的 AI 开发规范。
「它说自己有效」不算证据:本项目的叙事与实证面在伴生仓 fist-evidence ——三组受控实验 + 十份真实项目驱动实例(覆盖八项目),报告/日志/裁判测试一字可回溯(详见「资源」节)。
is 模式匹配表达式(d799f56 起替代已移除的 is_ok / is_err),更早的工具链在 moon check 阶段就会红。新环境先 moon update 刷新 registry(依赖全公开,无私有包)。node:sqlite 的 returnArrays;node < 24 会退化为对象行,列读取为空。sqlite3.h + sqlite3.lib)。一键装载:pwsh ./scripts/native-env.ps1;Windows 需 VS Build Tools,细节见 AGENTS.md「native 目标构建环境要求」。node 是 node.cmd / .bat 垫片,测试参数经 cmd.exe 转发会吞掉引号(BUG-380)⇒ 用 python scripts/moon_test_env.py --target js(自动剔除垫片并注入 MOONC_OVERRIDE,同时绕开 moonc 的 \\? 路径 ICE)。JS 后端:moon test --target js = 1457/1457(2026-10-23 Windows 实测;权威稳定门槛 = JS 后端)。Native 后端:2026-10-01 在 WSL ubuntu-22.04 实测 moon test --target native -j 1 = 572/572(与 JS 同数,工作树含上几轮构建残留时);同一 commit 的 git archive HEAD 干净树上同一条命令必崩(native 测试二进制被信号打死),根因在依赖的 native FFI,见账本 BUG-133 与判据scripts/blackbox/e2e_native_heap_probe.py;上一版这句写的是「native 未复跑」,就此作废。边界条款见AI-DEVELOPMENT-STANDARD.md§7「已知边界」。
CI 的 native 臂已按 2026-10-01 owner 裁决③改造:两条臂都在全量测试前挂 Native heap gate (BUG-133 探针当门),跑的就是上面那支判据;红话逐字点名 BUG-133,crashes=0/12 才放行全量测试(测试步骤没删,依赖修好后这一臂自己恢复覆盖)。FIST-Mbt 的每个功能都有四种调用形态,核心逻辑只写一遍(MoonBit 单真源),CLI/Skill/Plugin 都是薄封装或生成投影:
形态 · 是什么 · 谁用 · 示例 MCP(主形态) · MoonBit server 暴露的 JSON-RPC 工具 · Claude Desktop / Trae / AtomCode / 任何 MCP 客户端 · tools/call output_validate CLI · Python 薄封装脚本(拉起 server → 调工具 → 打印 JSON) · CI 管道、手动验证、无 MCP 客户端场景 · python scripts/output_validate.py . --artifacts '[...]' Skill · Markdown 文档(何时用 / 怎么用 / 怎么闭环) · AI agent 读的使用手册;真源 plugins/source/ · docs/output-validate-skill.md Plugin(宿主插件态) · 四宿主插件目录,由 scripts/gen_plugins.py 从真源生成(禁手改,cl7 守卫拦漂移) · AtomCode / CodeArts Doer / DeepSeek Harness / Claude · plugins/claude/.claude-plugin/plugin.json
四态对齐检查清单(7 项硬门,正文真源 AI-DEVELOPMENT-STANDARD.md,机器投影 project_standards R116):
server.mbt instrumented_tool 块scripts/fist.py call 或独立 scripts/xxx.pydocs/xxx-skill.mdmoon test 全绿? → 1457/1457 零回归(--target js,本轮 CI 实测)output_validate L4 硬门? → verdict=passpython scripts/gen_plugins.py && python scripts/check_plugin_sync.py(cl7)publish · publish_parallel · plan · claim · execute · submit · verify · reject · retry · pause · resume · reopen_task · archive · delete
list · get
task_plan_deep · conflicts_check · heartbeat · heal · watchdog_tick · task_cleanup · phi_accrual · saga_register · saga_rollback · saga_repair · circuit_fail · circuit_succeed · circuit_status · tx_contract
selfdrive_init · selfdrive_append · selfdrive_get · selfdrive_export_tasks · selfdrive_review_tick · selfdrive_review_ready · selfdrive_publish_next · selfdrive_parse_next_tasks · selfdrive_pick_next
call_log · bug_list · bug_fix · bug_mark_status · report_bug · issue_scan · ocr_scan · boundary_probe · eval_feedback · run_check · output_validate · project_standards · text_diff · rank_of · soldier_type_of · soldier_route · staff_label_of · schedule · pipeline_tick · cost_stats · cost_budget_check · cost_budget_split · progress_gate · laya_decide · loop_create · loop_tick · loop_status · mcp_config_scaffold
model_auth_status · model_route · model_router_status · model_router_reset · executor_run
atgc_old_compile · atgc_old_run · atgc_old_talk
dag_critical_path · dag_parallelism · dag_ascii · dag_check · dag_ready · dag_sort · dag_depend · dag_publish · dag_slack · dag_schedule · dag_cost_route · dag_mc · plan_revise · goal_drift_check · board_ascii · state_flow_ascii · status_summary · project_health · health_check · reserve_scope · reserve_check · reserve_release · lock_acquire · lock_renew · lock_release · lock_status · task_triage
memory_consolidate · memory_gc · memory_link · evolve_distill · evolve_lesson · evolve_critic · evolve_sample · evolve_snapshot · evolve_submit · evolve_asset_register · task_challenge
executor_register · executor_route · executor_auction · executor_clear · selfdrive_dispatch
audit_permission · audit_log · store_open · store_list · store_close
github_env_check · github_queue_status · github_flush_plan · github_flush_execute · github_queue_mark_sent · github_issue_close · github_issue_comment · github_issue_webhook_parse · gitcode_env_check · gitcode_queue_status · gitcode_flush_plan · gitcode_queue_mark_sent
mode_list · mode_templates
omega_spec_create · omega_spec_review · omega_result_verify · omega_status · omega_verify · omega_verify_fix
hat_list · debate_convene · debate_register · debate_verdict · hat_run · hat_debate · hat_merge
supervisor_status · supervisor_task_tree · supervisor_kill_plan(只出方案不执行)· supervisor_prompt_inject · supervisor_prompt_list · supervisor_prompt_consume · supervisor_task_upsert · supervisor_reminder_tick
assistant_claim · assistant_status · assistant_sweep · assistant_resign · assistant_heartbeat
mcpcf.ops_init · mcpcf.circuit · mcpcf.report · mcpcf.review · mcpcf.run_batch · mcpcf.verify · mcpcf.watchdog
# 1. 构建 + 测试
moon update # 首次:刷新 registry 索引
moon build --target js cmd/cli
moon test --target js # → Total tests: 1457, passed: 1457, failed: 0
# 2. 启动 MCP Server(STDIO)
python scripts/patch_esm_main.py # ESM shim(moonc ≥0.10.14 输出 ESM,sqlite JS 桩用 CJS)
node _build/js/debug/build/cmd/cli/cli.js serve # 必须带 serve:裸跑只打印 help
# 3. 或用 HTTP/SSE 桥接
FIST_MCP_PORT=3000 python scripts/fist-mbt-http.py
# 4. CLI 通用网关(一源四态·CLI 形态)
python scripts/fist.py list-tools # 全量工具名清单(数量以本命令末行为准,不抄数——抄一次就是下一次漂移)
python scripts/fist.py call project_standards # AI 开发规范
python scripts/fist.py call store_open --namespace scratch --scratch true
python scripts/fist.py call output_validate --project-dir . --artifacts '[{"path":"moon.mod","contains":"vicTop-cw"}]'npm 包自带预构建 CLI(dist/fist-mbt.js),装插件不需要 moon、不需要源码构建:
dsh plugin --profile web add fist-mbt # 命令行宿主;桌面端在「设置 → 插件」里装
fist-mbt-mcp # 可选:只想要终端里的 stdio server(npx fist-mbt-mcp 亦可)装好后 MCP server fist-mbt 随会话启动,工具数以 `tools/list` 为准。账本(SQLite)落在 ~/.fist-mbt/,可用 FIST_MBT_DATA 改位置;运行环境需要 Node ≥ 24(node:sqlite)。 插件层真源是 packaging/dsh/cordis.patch.yml(社区安装)与 .dsh/fist-mbt-plugin/cordis.patch.yml(本机源码安装)。
Release zip 只含 MoonBit 编译产物,零源码依赖:
# Windows PowerShell(首选:2026-09-28 实测唯一匿名能取到脚本正文的 raw 直链)
iex ((irm https://raw.githubusercontent.com/vicTop-cw/FIST-Mbt/master/scripts/blackbox/install_onecmd.ps1).ToString().TrimStart([char]0xFEFF))
> Windows 这条为什么不是 `irm … | iex` 而是先 `.TrimStart([char]0xFEFF)`:
> 安装器 .ps1 含中文,按本仓 `check_ps_encoding`(BUG-88)必须带 UTF-8 BOM;
> `irm` 会把 BOM 留成首字符 U+FEFF,`iex` 于是在 `param()` 里报「赋值表达式的左侧无效」(BUG-113 实测)。
> `powershell -File` 读磁盘没这个问题 ⇒ 三条调用面(-File / -Command / `irm | iex`)不同形,别互相背书。
# Windows 兜底线(BUG-116:系统代理 / TLS 中间盒让上面那条 `irm` 取不到脚本时——本机 2026-09-29 实测 `irm` 6/6 传输层红、同一时刻同一 URL 用 curl.exe 6/6 得 200)
curl.exe --retry 5 --retry-delay 2 --retry-all-errors -fsSL https://raw.githubusercontent.com/vicTop-cw/FIST-Mbt/master/scripts/blackbox/install_onecmd.ps1 -o $env:TEMP\install_onecmd.ps1; powershell -NoProfile -ExecutionPolicy Bypass -File $env:TEMP\install_onecmd.ps1
> 诚实的边界(2026-09-29 更新):这条换掉的是「取脚本」这一步的传输工具,并把 R12 那条「重试只许对准传输层错误」的规矩搬到这一发上(`--retry 5 --retry-delay 2 --retry-all-errors`——本机实测的失效形态是**同一个 URL 有些连接被 RST、有些拿到 200**,单发不成立;`--retry-all-errors` 是必需的,因为 curl 默认只对"响应前"的连接错误重试)。安装器**内部**那两发(取 `moon.mod` 定版本、取资产 zip)以前只有 .NET 单栈,是「脚本取回来了、红在内部那一发」的真来源——现已同样接上 curl 兜底臂(判据 R12 + R14;承重证据 `python scripts/blackbox/e2e_transport_stack_fallback.py`:同一镜像三格,".NET 抛传输层错误 + 有 curl" 装通、同样条件剥掉 curl 必红、干净安装不误伤)。链路**整断**时两条栈一起红,那种情况只剩 `-LocalZip` 离线线。
# 离线 / 内网线(两条公网线都被中间盒挡住时的出路;开关真源 = `install_onecmd.ps1` 的 `param()`)
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\blackbox\install_onecmd.ps1 -LocalZip C:\path\to\fist-mbt-js-v0.3.10.zip
# 或指一个内网镜像(与 GitHub Release 同形状:`<Base>/releases/download/<ver>/<asset>`,且 `<Base>/moon.mod` 必须可读)
powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\blackbox\install_onecmd.ps1 -BaseUrl http://内网镜像:端口
# WSL / Linux
curl -fsSL https://raw.githubusercontent.com/vicTop-cw/FIST-Mbt/master/scripts/blackbox/install.sh | bash分支名是 master 不是 main(该仓默认分支为 master,raw/main 实测取不到东西)。GitCode 上同名仓库只当浏览备用:实测它的三种 raw 形状(/-/raw/、/raw/、raw.子域)
匿名 GET 都返回 HTTP 200 + 一整页 HTML 而不是脚本正文 ⇒ 别把它接进 | iex(「200 不等于拿到文件」;安装器内部那道正文形状检查是给下载资产用的,不是给这条线用的)。
安装后(shim 在 ~/.local/bin,Windows 下 POSIX shell 里同样可见):
fist help # 列出 6 大 topic
fist help tools # 134 MCP tools 分组清单
fist help mcp # .mcp.json 配置模板
fist serve # 启动 MCP server(stdio)
fist demo # 七态闭环 demo
fist doctor # 5 项健康检查脚本 · 对应 MCP · 场景 scripts/issue_scan.py · issue_scan · CI 扫描潜在 MoonBit 高危模式 scripts/output_validate.py --artifacts ... · output_validate · 交付物 L4 硬门验证 scripts/mcp_smoke.py · 多工具联动 · 一键 MCP 冒烟自检
scripts/ 目录下的 *_demo.py 和 *_verify.py 不是测试——它们是本项目用自身能力打磨自身的自证:
DEMO · 证明什么 python scripts/award_demo.py · 能力链全通:publish → plan → claim → execute → verify → archive,结尾自动 cleanup python scripts/atgc_selfdrive_demo.py · 自驱闭环:selfdrive_init → review_tick → publish_next → pick_next python scripts/scratch_verify.py · 递归拆解正确性:task_plan_deep 产出的 DAG 能被 dag_ready 正确消费 python scripts/issue_scan.py src · 四态对齐:CLI 扫描 → 31 条 MoonBit 高危规则(11 内建 + 20 ocr-local)→ findings 可喂 report_bug python scripts/fist.py call project_standards · AI 开发规范基线(R116):10 条通用+FIST 强制规范 + 7 项四态 checklist;正文真源 AI-DEVELOPMENT-STANDARD.md python scripts/gen_plugins.py · 一源四态·插件态生成:真源 → atomcode/codearts/deepseek-harness/claude 四宿主投影 python scripts/check_plugin_sync.py · cl7 守卫:四宿主插件目录必须等于真源投影(手改/漏重生成/数字漂移即红) python scripts/check_model_auth_no_key.py · 凭据形状守卫:config_json/HTML/default-fist.mcp.json 里禁止出现 api_key/Bearer/sk- 值形状(对齐 BUG-127) python scripts/check_host_installable.py · 宿主可装守卫:deepseek-harness 宿主侧真的能装上(补 cl7「等于投影」却「装不上」的旧边界) python scripts/check_skill_inject.py · 注入命中守卫:evolve_asset_register 注入路径可测命中(plan/claim 传了 inject 时 injected_assets 非空才算命中)
更多 walkthrough 见 docs/selfdrive-walkthrough.md、docs/issue-scan-skill.md、docs/output-validate-skill.md、docs/loop-mode-skill.md(组合环编排 × 自驱七模式)、docs/phi-accrual-heal-skill.md(Phi Accrual 判活 × 心跳回滚 × 看门狗编排)。