← 返回列表
未验证
跨会话保存目标与证据,完成必须附带证明
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/20 · 已提供中文文档
为你的编码代理打造的完整工程工作台:工作成果在任何会话中都能保留,而且每一项完成都附带证明。可运行于 Claude Code、Codex CLI、Copilot CLI、Kiro CLI 和 DeepSeek Harness。
综合分
28.8
GitHub 分
28.8
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add debabsah/superstack该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
为你的编码代理打造的全套工程工作台。工作成果可跨任意会话存续,无需任何交接,且每一次完成都附带证明。
安装 ·
主干 ·
工作台 ·
你的状态 ·
更新日志
superstack 是一个你全天候使用的 Claude Code 插件:一个由 25 个专家技能组成的工作台,覆盖工程工作的每个阶段,外加一层始终运行的 shell 钩子,无论是否有任何技能加载都会执行。这一层将你的目标、修正和证据保存在每个会话都会读回的纯文本文件中,它的门会拦截任何没有附带证明的“完成”。Claude Code 的 /goal 检查你在单个会话中输入的目标;superstack 则是目标在所有会话中存续的地方。
如果你通过编码代理运行长期工作,你一定遇到过它所要解决的问题:
- 你又一次解释项目。第九个会话开始时对目标的了解程度和第一个会话一样一无所知,工作在任何人察觉之前就已经偏离。
- 一次压缩在功能开发中途发生,把推理过程一并带走;继续的会话不知道自己丢失了什么。
- 承载关键作用的讨论(为什么某个方案被否决、你们双方一致同意这件事是为了什么)只存在于对话中。它从未落到文件里,会话结束时便永远消失。
- 你在上一个会话结束时写了一份 HANDOFF.md。它被读取时已经过时,而下一个会话却依然相信它。
- 你已经定下的规则(“永远不要碰那张表”、“永远先运行 linter”)在下一次压缩或冷启动时消散,于是你周二纠正模型,周四又要重复一遍。
- 你最终不得不安装一个单独的记忆插件,只为保存和回忆项目上下文:本该简单地随项目一起存在磁盘上的东西,却要用外挂命令来实现。
- 你想把整个构建交给它端到端运行,但没有任何东西记录它在你不在这段时间跳过了哪些审批门。
- “完成”自信地到来,背后却空无一物。它引用的测试从未真正运行过。
而在交付的每一个其他阶段,同样的问题都拖着一条长长的尾巴:把原始想法塑造成形、界定范围、调试、审查、验证、发布、线上事故、有风险的升级、事后报告。每一个这样的时刻,工作台上都有一位专家:superstack-inception 把原始想法变成可构建的东西,核心的 scope · debug · review · verify · ship 执行器掌管日常构建循环,superstack-execute 让一次构建跨越多个会话持续推进,superstack-incident 在生产宕机时放下一切去缓解问题,superstack-doctrine 把你的纠正变成常设规则。而当你的领域需要名册上没有的专家时(数据分析师包、基础设施包、前端审查员包),superstack-smith 就是构建你自己的专家的准入关口。
整个产品浓缩为四个理念
superstack 所做的一切,都是为了让四件事在磁盘上保持为真,好让下一个会话能读到它们:
- 你的目标。 工作是为了什么、究竟停在了哪里,都写在一个计划文件里,随工作进展而写,这样冷启动或压缩后读到的是目标本身,而不是靠猜。目标还会被核对,而不只是被展示:当记录的停止点跨会话停滞不动、而提交却不断推进时,会话启动时的声音会说出来。计划刻意保持轻量(目标、每个里程碑的完成标准、你的裁定),因为一个能力强的模型边做边适应,比照着第一天写下的步骤清单去做效果更好。
- 你的状态。 工作区在工作的过程中顺带长出一份纯文本记录(.superstack/):进行中的任务、战役、搁置的想法、预测、演练历史。无需手写交接文件,无需信任会话摘要。
- 你的规则。 你给出的一次纠正会变成常设准则,在每次会话启动时被读回,并对你具有约束力,直到你解除它:周二说的“绝不要碰那张表”,到了周四依然有效,在每个会话中、每次压缩之后都有效。
- 你的证据。 一个“完成”要么带着证明,要么被打回。凭据记录的是真正运行过的检查(一个捆绑脚本会亲自运行检查,并写下它看到的命令、退出码和修订版本),一旦其下的代码发生变化,凭据就自行失效,而一个战役若没有当前有效的凭据,就不能声称某个里程碑已关闭。来自外部工具的证据同样算数:在 .superstack/providers 里用一行 provider 记录指定一个浏览器或测试运行器,superstack 就会亲自运行那个工具,并根据它看到的结果写下凭据,绝不凭记忆。
本页剩下的部分,就是让这四件事保持为真的机制:一条确定性的主干,由无论技能是否加载都会触发的 shell 钩子构成;以及一个专家工作台,为工作的每个阶段配备专家。
安装
在 Claude Code 会话中输入:
/plugin marketplace add debabsah/superstack
/plugin install superstack@superstack
/reload-plugins
在 GitHub Copilot CLI 上(常驻层)
git clone https://github.com/debabsah/superstack && cd superstack
bash adapters/copilot-cli/install.sh
这会写入 ~/.copilot/hooks/superstack.json;删除它即可卸载。你将获得会话启动简报、塑形提议、发布门禁,以及两个回合结束门禁;压缩载体和 25 项技能不会在那里沿用。各宿主详情:adapters/README.md。
在 OpenAI Codex CLI 上(常驻层加上全部 25 项技能)
git clone https://github.com/debabsah/superstack && cd superstack
bash adapters/codex-cli/install.sh
mkdir -p ~/.agents/skills && ln -sf "$PWD/skills/"* ~/.agents/skills/
安装程序会写入 ~/.codex/hooks.json,并拒绝触碰你已有的 hooks 文件;在 Codex 会话中批准一次这些 hooks(使用其 /hooks 命令)。最后一行将技能链接到 Codex 读取它们的位置;那里的技能路由是尽力而为。通过删除 hooks 文件和这些链接来卸载。各宿主详情:adapters/README.md。
在 Kiro CLI 上(常驻层)
git clone https://github.com/debabsah/superstack && cd superstack
bash adapters/kiro-cli/install.sh
kiro-cli agent set-default superstack
安装程序会写入 ~/.kiro/agents/superstack.json(在该宿主上 hooks 随 agent 配置一起生效),并拒绝它未写入的文件;删除它即可卸载。最后一行让 hooks 在每个会话中生效;跳过它则可通过 kiro-cli chat --agent superstack 按会话使用它们。你将获得会话启动简报、塑形提议和发布门禁;两个回合结束门禁会在你的会话中发出警告,但无法让模型重述,压缩载体和 25 项技能也不会在那里沿用。各宿主详情:adapters/README.md。
在 DeepSeek Harness 上(常驻层加上全部 25 项技能)
[!NOTE]
个人备注:使用 Qwen3.8 27B(IQ4_XS 与 Q5_K_M)测试过,差异让我惊讶:体验和结果明显优于裸模型,某些情况下甚至优于前沿模型。小模型似乎从这些门禁中获益最多,尤其是在规划和头脑风暴方面。
git clone https://github.com/debabsah/superstack && cd superstack
bash adapters/dsh/install.sh
mkdir -p ~/.agents/skills && ln -sf "$PWD/skills/"* ~/.agents/skills/
安装器会创建自己的 profile(~/.dsh/profiles/superstack),并拒绝使用不是它写入的 profile;用 npx -y @deepseek-ai/dsh --profile superstack 启动,卸载时删除该目录即可(如果你也想清掉会话日志,还要删除 ~/.dsh/sessions-superstack 下的日志)。你会获得全强度的 shaping offer、publish gate 以及两个 turn-end gate;在这台主机上,session-start briefing 可能会晚于第一轮出现,而且 compaction carrier 不会延续(目标会在你下一次 session 启动时回来)。最后一行链接到这台主机原生读取 skills 的位置;那里的 skill routing 是尽力而为。各主机细节:adapters/README.md。
如何判断它正在工作: 你在任何项目中的下一次 session 都会以一行 superstack: 开头(全新的 workspace 会收到一次性的 overlay offer)。在一个空文件夹里输入一个 idea 形态的 prompt,比如“create a mario game in a single html document”,front door 会先提议对它进行 shaping。/superstack:superstack-status 随时报告 workspace record。
要求: 支持 plugin 的 Claude Code;Bash、git 和标准 POSIX 工具;jq,publish gate 和 prompt-time door 需要它(下面的说明会准确指出没有它时哪些功能会关闭);以及仅在你运行 self-check suites 时才需要的 claude CLI(它们会调用其 validator)。已在能力较强的前沿模型上构建并测试;较小的模型对这套纪律的遵循不够可靠。Hooks 是 shell 脚本,已在 CI 中于每次 push 时针对 macOS、Linux 和 Windows(Git Bash 下)测试;在原生 Windows 上请先安装 Git Bash 和 jq,WSL 的行为与 Linux 相同。
[!IMPORTANT]
jq 是关键依赖:没有它,publish gate 和 prompt-time door 会 fail open,在其余一切继续工作的同时被静默禁用。安装它,以保持整个安全层处于启用状态。
从本地 clone 安装(也是运行测试套件的方式)
git clone https://github.com/debabsah/superstack
/plugin marketplace add /path/to/superstack
/plugin install superstack@superstack
/reload-plugins
Self-checks,从 clone 的根目录运行:for f in hooks/test-*.sh; do bash "$f" || { echo "failed: $f"; break; }; done
每个套件都会打印自己的通过行(大多数会读取 all checks pass (N));循环会在第一个失败的套件处停止并指出它。
已经运行 godmode 或 fable-method?
- godmode 按设计可共存:superstack 拥有持久的项目真相(oracle、gotchas、statutes、calibration record),godmode 拥有 trial/plan 状态,并且二者会在 session 启动时互相指向对方。
- 在 superstack 开启时应禁用 fable-method:superstack 自带相同的 calibration kernel,同时运行两者会让 gates 双重触发。现有的 .fable/ 状态可用 mv .fable .superstack 迁移过来。
确定性主干
插件通常用技能文本回应这些痛点:当正确的技能在正确的时机加载时,模型会遵循其中的好建议。但加载是尽力而为的。模型必须先注意到某个技能适用,它的建议才会加载,而没有什么能保证它会在关键时刻注意到。superstack 拆分了这个任务:所有不能依赖于被注意到的事情都是 shell 钩子,无论模型是否注意到,都会在 harness 事件上触发,而这些钩子所强制执行的记录存在于磁盘上的文件中,而不是任何人对对话的记忆中。
无论模型加载或忘记了什么,六个 shell 钩子都会运行:
- 提示时门禁。 在未成形的工作区中,一个原始想法会得到一个提供的提问:先把它成形,还是直接构建。无论选择哪种方式都会被尊重,且静默进行。
- 声明门禁。 一个改变了事物的回合不能以一句光秃秃的“完成”结束;它会被弹回一次,直到模型重写其回复,携带证据台账(Verified: / Assumed: / PROVISIONAL 行,说明运行了什么以及打印了什么),或引用一张凭据;凭据仅在其新鲜时才作数:绑定到文件的凭据在被覆盖的文件发生变化的瞬间自行过期,而记录了一次失败运行的凭据从不作数。对已关闭的战役或里程碑的声明更为严格:它只能凭当前凭据通过,绝不能凭措辞通过。
- 查看门禁。 修改一个有面孔的文件(.html、.tsx、.css 等等),却仅凭纯逻辑证据声称完成,它会问一次是否真的有人看过。
- 发布门禁。 git push、gh pr create/merge、发布、npm publish、docker push 以及 terraform/kubectl apply 都会被扣住,直到存在一份新鲜的扫描凭据。扫描会检查即将发出的增量中是否有秘密(失败即关闭)、AI 作者痕迹、机密术语以及过时的公开声明;凭据在一小时后过期。
- 会话开始时的声音。 目标、现行法则、未决问题以及搁置的工作都在单行预算之下。目标最先组合,存活最久;当预算迫使丢弃时,丢弃会被宣告,绝不静默。它还运行漂移检查:一个在多次会话开始之间都没有移动、而工作却在推进的停止点,会被指出可能是过时的地面真相。
- 压缩载体。 计划的目标和前沿在压缩后存活,并在经过时被净化。
每道闸门都会弹回一次并记录日志,而在破坏性发布层级之外,一次相同的重试会通过。这是有意为之:一道可能困住会话的闸门,比一道你可以覆盖的闸门是更糟糕的失败,因此覆盖始终可用,并且始终会落到日志里,让你看得见。发布闸门的破坏性层级多要求一件事:对于 terraform/kubectl apply、docker push 以及包注册表发布,你通过写一行授权文件来批准重试(printf 'grant: npm publish\n' > .superstack/outward-grant);闸门在使用时消耗该授权并记录日志。该授权记录你的授权行为。它不是访问控制,这些闸门也都不是,而 SUPERSTACK_GATES=off 会让它们全部静默。
graph LR
E["the agent harnesssession start · prompt · Bash · turn end · compaction"] --> H["six shell hooksfire on the event, always"]
R["skill router"] -.->|"best-effort"| K["25 skillsthe 7-skill kernel + 18 modules"]
H --> S[".superstack/goals · corrections · evidenceplain text · git-ignored · yours"]
K --> S
S -->|"read back at every session start"| H
classDef green fill:#2d6a4f,stroke:#95d5b2,color:#fff
classDef amber fill:#7f5539,stroke:#e6ccb2,color:#fff
classDef grey fill:#3d405b,stroke:#8d99ae,color:#fff
class H green
class R,K amber
class S grey
代价是什么:这些钩子是本地 shell,不调用模型,每个事件耗时毫秒级。技能列表给会话上下文增加大约 2,000 个 token,而会话启动语音最多增加 8 行。
专家席
这些都不会自行触发;只有上面的主干保证会触发。用一句平实的话输入你想要什么,Claude 会根据描述尽力路由到某位专家;多位专家依次处理同一任务是正常的。
专家席共有 25 项技能:一个七技能的校准内核(superstack 方法技能及其 scope · debug · review · verify · ship · status 运行器)以及下面列出的十八个生命周期模块。内核负责构建与声明:工作要针对一个具名检查来划定范围,在声明的层级上验证,并按风险分级。较高层级上的对抗性审查通过一个被派发的审查者代理来运行,该代理无法编辑它所审查的内容;它的工具允许列表没有写入权限,这由 harness 强制执行,而不是靠请求。
在真实任务中,专家席以循环方式运行,而且这个循环能在会话结束后存续:
flowchart TD
S["Scopename the check that will judge the work"] --> B["Build one slicethe record updates as you go"]
B --> V["Verifyrun the check, read the output"]
V --> R["Reportproof attached, assumptions named"]
R -->|"next slice"| B
R -.->|"a bare done is bounced once"| V
R --> X["Session endscrash, compaction, or a week away"]
X --> W["Next session wakesreads the goal, the stopping point,and your standing rules from disk"]
W --> G["重新检查基准事实"]
G -->|"在周期中途重新加入"| B
classDef grey fill:#3d405b,stroke:#8d99ae,color:#fff
class X,W,G grey
下面的路径才是区别所在:下一个会话不是从头开始,也不是信任交接摘要,而是从磁盘上的记录在周期中途重新加入同一个循环。
十八个模块围绕它排列,按它们所服务的时刻分组:
启动某事
- superstack-inception:在构建开始前塑造一个原始想法;当你宁愿对选项做出反应而不是回答问题的时候,它把中间环节交给 cocreate,并在之后完成
- superstack-cocreate:当你还无法陈述需求时的探查轮次;它自身可以在现有项目内塑造文档、规格或模式,无需新想法
- superstack-spike:时间盒内的可行性探查,收获后即丢弃
- superstack-decide:技术分叉记录为决策记录
让长期工作保持在正轨上
- superstack-execute:带有崩溃安全簿记的里程碑战役;每一步之后都会盖上进度戳,因此一个死掉的会话会因其缺失的戳记而被检测到,审计会冷酷地关闭里程碑,而关闭声明需要其收据是最新的
- superstack-continuity:安全恢复,重新验证基准事实,不信任继承的状态
- superstack-doctrine:更正被逐字保留、限定范围,并在你解除之前具有约束力
- superstack-queue:停放的带有重访触发条件的想法
- superstack-autonomy:无人值守的工作会留下一个账本,记录它跳过的每一道人工关卡,并在每个会话中浮现,直到你关闭它
生产、数据和依赖
- superstack-incident:生产宕机时优先缓解的响应
- superstack-migrate:扩展-迁移-收缩的数据变更,经过测试的回滚
- superstack-deps:按风险分批的升级,真正阅读变更日志
声明完成并公开
- superstack-experiential:任何有门面的东西在“完成”之前都要被看过
- superstack-outward:发布关卡背后的公开清扫
- superstack-smith:新技能的准入关卡
报告、预测和演练
- superstack-digest:从日志而非记忆中汇编的周期报告
- superstack-value:结果声明记录为可证伪的预测
- superstack-teach:扩展你心智模型的演练
[!TIP]
斜杠命令强制打开一扇特定的门;如果你感到迷失,/superstack:superstack 就是前门。
你的工作区所生长的状态
文书痕迹作为工作的副作用积累起来;没有人必须记得去要求它。带有原因的决策记录,每个完成声明背后的证据账本,被判定为真或假的预测:
text
.superstack/ 被 git 忽略;位于你的工作目录中,绝不在你的提交中
├── project.md 你的状态:覆盖层:验收预言机、约定、陷阱
├── tasks/ plans/ 你的目标:进行中的工作和战役,每个都带有其目标行
├── doctrine.md domain.md 你的规则:逐字更正;你已确认为内部语言的术语表
├── claims-log gate-log residuals.md 你的证据:已交付的声明、门禁退回、未决假设(残留项)
├── queue.md value-log toured.md 你的状态:搁置的想法、预测、走查历史
└── receipts/ outward-pass 你的证据:带命令和修订的检查运行;扫描回执
回读的样子是这样的:后续会话在任务中途打开工作区时,会以类似下面这样的行开始,这些行在每次会话开始时从文件中重新组合:
text
superstack: this workspace has a project overlay (.superstack/project.md) — payments-api — oracle: pytest -q, green prints "214 passed". Canonical docs: CLAUDE.md. Full profile: .superstack/project.md
superstack: 1 undischarged residual(s) — .superstack/residuals.md
superstack doctrine: 1 standing statute(s); newest: 2026-08-07 — Never touch the ledger table without a migration plan — statutes bind until the owner lifts them; read .superstack/doctrine.md before acting in their scope.
superstack: in-flight task (tasks/retry-dedupe.md) — retry-dedupe — goal: the webhook retry never double-charges — next: replay the duplicate event in the sandbox
一个刻意的例外:superstack-decide 会提议(从不悄悄创建)一个已提交的 docs/decisions/ 目录,因为决策记录必须能在机器和队友之间存续。
本地且可检查。 钩子是你机器上的普通 shell 脚本,不调用任何网络服务;在 hooks/ 中阅读它们,测试套件就在旁边。安装和卸载除了一个 .superstack/ 忽略规则外,不会触碰你的任何东西。上方徽章背后的路由评估位于 eval/routing/,附有方法和记录的运行结果:25 个测试提示中有 24 个到达了预期的技能,结果文件会打印出那一个未命中的。生存场景(一次压缩、一次会话死亡、一份过期回执、一项捏造的声明,每一个都被证明能被你可读的检查捕获,基线数字和记录的未命中就在旁边)位于 eval/scenarios/。
调低它。 你可以在不卸载任何东西的情况下,让你不使用的部分安静下来:在 .superstack/muted 中列出模块名称,每行一个,每个列出的模块的会话开始行会安静下来,同时会话被要求不要路由到那里(与路由本身一样是尽力而为;状态报告会显示哪些被静音)。门禁不受静音覆盖;它们保留自己的 SUPERSTACK_GATES 旋钮。有三样东西不能被静音,因为它们承载着四个理念:方法内核、活动运行器(superstack-execute)和恢复仪式(superstack-continuity)。
卸载: /plugin uninstall superstack@superstack。你的 .superstack/ 目录和忽略规则留在原处;它们是你的文件。
[!NOTE]
.superstack/ 下的所有内容都是纯文本,会被读入模型的上下文中。请像对待你的 shell 配置文件一样信任它,并让它保持被 git 忽略;如果它被纳入版本跟踪,会话启动时的提示音会发出警告。
MIT © debabsah扫码进群