Type: Feature Request / Milestone Epic
Milestone: TokenRoll ACPlugin 1.0
Status: Beta validation — implementation and local gates complete; real-world usage period pending
Breaking change: Yes
Public packages affected: 9
Summary
将原有 acplugin 重构并品牌升级为 TokenRoll ACPlugin 1.0:从以转换器和官方平台聚合为中心的单体工具,升级为具有公开 SDK、固定生命周期、独立 Platform/Extension package、确定性构建和受管输出事务的多平台 Plugin 生态。
这次里程碑不是一次名称替换,也不是以文档工程为主的功能迭代。核心交付是重新定义整个项目的 package 边界、运行时架构、第三方扩展模型、安全不变量、测试体系和发行验证;Docs、Playground、Logo 与主题升级属于该架构重构的开发者体验配套。
当前版本统一为 0.0.1-beta,用于真实项目试用、兼容性反馈和稳定性观察。Beta 通过全部自动化与手工验证并不自动等于 1.0 就绪:只有在约定的实际使用周期结束、没有未解决的 release blocker、公共 API 与交付契约完成最终冻结后,九个公开包才会通过同一份 Changeset 一次性晋升并正式发布 1.0.0。
品牌约定:
- 组织与 npm scope 使用
TokenRoll / @tokenroll/*;
- 产品展示名称统一为
ACPlugin;
- CLI、配置文件、package specifier 和路径等技术标识继续使用
acplugin 小写形式。
Current progress
Snapshot: beta_1_0 at 647fe93
Local verification date: 2026-08-10
Overall state: implementation and local quality gates complete; beta usage/observation and formal 1.0 release gates pending
| Workstream |
Status |
Current evidence |
| Core architecture and invariants |
✅ Complete |
固定 lifecycle、owner-aware Document、Artifact 隔离、事务回滚与确定性实现均已落地 |
| Public façade, CLI and Migration |
✅ Complete |
主包已收敛公开入口,显式 Platform 配置、dev watch 与动态 Migration chunk 已实现 |
| Six Platform packages |
✅ Complete |
六个 @tokenroll/acplugin-platform-* 包均已独立构建、导出和验证 |
| Hooks and MCP Extensions |
✅ Complete |
两个公开 Extension、六平台 Adapter、Bundle/Runner/协议 smoke 已实现 |
| Public package split |
✅ Complete |
九个公开包当前均为 0.0.1-beta,主包无官方集成依赖或 re-export |
| Docs, Playground and branding |
✅ Complete |
TypeDoc/VitePress、真实 Playground、ACPlugin Logo 与香蕉黄色主题已落地 |
| Lint and typecheck |
✅ Passed |
pnpm run lint、pnpm run typecheck 当前 HEAD 本地通过 |
| Build and tarball verification |
✅ Passed |
构建通过;pnpm run release:verify 验证九个 0.0.1-beta tarball 和 clean consumer |
| Docs and Playground verification |
✅ Passed |
pnpm run docs:check 当前 HEAD 本地通过 |
| Full test suite |
✅ Passed |
Package 边界枚举已排除 generated cache;当前 Core 82/82、主包 6/6、跨包集成 72/72,其余 Platform/Extension 测试全部通过 |
| Node 20.19 CI consumer |
⏳ Pending |
Verify Workflow 已实现,但本次状态快照未执行 GitHub workflow_dispatch 的 Node 20.19 job |
| Beta usage and observation |
⏳ Pending |
自动化验证已通过,但仍需在代表性真实项目中持续使用并收敛反馈 |
| Versioning and 1.0 preparation |
✅ Prepared, not consumable yet |
全部 Workspace Package 当前为 0.0.1-beta;major Changeset 已准备,但只能在 beta 观察期和最终评审通过后消费为 1.0.0 |
| Stable npm publish, Tag and GitHub Release |
⏳ Pending |
正式 1.0 尚未发布;仍需维护者通过全部 release gates 后手工执行 |
Remaining release gates
- 手工触发只读
Verify Workflow,确认同一组 tarball 在 Node 20.19 clean consumer 中通过。
- 将
0.0.1-beta 用于代表性真实项目,在维护者约定的观察周期内记录兼容性、DX、Migration 和产物问题。
- 关闭所有 release blocker;非阻塞问题必须修复或明确延期并记录理由。
- 冻结 1.0 公共 API、Platform/Extension 契约和交付格式,完成最终 code review 与 release readiness review。
- 仅在以上条件全部满足后消费 major Changeset,复核生成的
1.0.0 版本、Changelog、peer range 和 lockfile,并重新运行完整验证矩阵。
- 手工发布九个正式包并逐个验证 Registry;全部成功后才创建
tokenroll-v1.0.0 Tag 和 GitHub Release。
Motivation
旧架构把框架能力、官方 Platform 实现和转换流程耦合在一起,存在以下问题:
- 官方 Platform 依赖私有实现或由主包聚合导出,第三方作者无法复制相同的开发边界;
- CLI、程序化 API 与平台转换容易形成多条执行路径,生命周期和失败语义难以统一;
- Hooks/MCP 与平台协议耦合,缺少平台中立作者模型和显式 Adapter;
- Artifact 来源、Document owner、输出事务、稳定报告和兼容性缺少完整的强约束;
- Migration 与正常构建边界不够清晰,旧格式实现容易回流正式架构;
- 公开 tarball、peer dependency、类型表面和 Node 20 消费能力缺少真实安装验证;
- 项目品牌、Package 命名、README、API 文档和实际生态模型不一致。
Goals
- 建立 TokenRoll 旗下统一的
ACPlugin 产品品牌与 @tokenroll/* Package 体系。
- 将
@tokenroll/acplugin 收敛为公开 CLI、配置入口、通用框架 SDK 和唯一运行入口。
- 由私有 Core 固定生命周期、Canonical Scanner、兼容性、Artifact 所有权、事务和稳定报告。
- 将六个官方 Platform 发布为第三方可仿照的独立一等生态包。
- 将 Hooks/MCP 发布为平台中立、通过 Adapter 接入六个平台的独立 Extension 包。
- 保证相同输入下 Artifact 与报告稳定,并在任一失败时保留上一份完整输出。
- 隔离 Legacy Migration,只迁移能够安全映射的旧工程内容。
- 建立覆盖源码、CLI 子进程、协议、事务、九个 tarball 和 Node 20 clean consumer 的验证体系。
- 用 Docs、TypeDoc 和真实 Playground 对外呈现并持续验证新的公开边界。
- 在正式 1.0 前保留明确的 beta 试用期,用真实使用反馈验证 API、兼容性、Migration 和交付格式,而不是仅凭一次测试通过即发布稳定版。
Architecture overview
acplugin.config.ts
→ @tokenroll/acplugin CLI / public SDK
→ private Core fixed lifecycle
→ Canonical Scanner
→ Platform Draft
→ Extension Platform Adapters
→ DeliveryUnit validation
→ managed dist transaction
→ deterministic BuildResult
固定生命周期:
configResolved → buildStart → Extension.discover → Scanner
→ Extension.validate/build → Platform.prepare → Adapter.apply
→ Platform.generateBundle/validateBundle → generateDistributions
→ compatibility propagation → transaction → buildEnd
架构不变量:
- Core 不包含具体 Platform ID、Hooks、MCP 或 Migration 分支;
- CLI 与
runProject() 只进入同一条 Core lifecycle;
- Platform/Extension 使用 Symbol brand,不能由普通结构对象伪造;
- Adapter 只能进行 owner-aware add-only Document patch;
- Platform、Extension 和 Public 的文件来源与 workDir 按 owner 隔离;
dist 按所选目标集合全量提交,buildEnd 仍在回滚窗口内;
- 报告和生成内容不得包含时间戳、随机值、绝对路径、临时路径或凭据值。
Package-level changes
| Package |
Visibility |
Status |
Milestone change |
@tokenroll/acplugin |
Public |
✅ Implemented |
重建为 CLI、配置加载器、init、公开 SDK、runProject() 和隔离 Migration;不再聚合官方 Platform/Extension |
@acplugin/core |
Private |
✅ Implemented |
重建固定生命周期、Scanner、品牌契约、Document、Artifact、DeliveryUnit、兼容性、事务与稳定序列化 |
@tokenroll/acplugin-platform-claude-code |
Public |
✅ Implemented |
独立发布 Claude Code 原生 Commands/Skills/Agents、Plugin 与 Marketplace 实现 |
@tokenroll/acplugin-platform-codex |
Public |
✅ Implemented |
独立发布 Codex Skills、Command/Agent fallback、Plugin、Marketplace 与完整协议校验 |
@tokenroll/acplugin-platform-cursor |
Public |
✅ Implemented |
独立发布 Cursor 原生资源、Manifest、Logo 信任边界与 Schema 校验 |
@tokenroll/acplugin-platform-antigravity |
Public |
✅ Implemented |
独立发布原生 Skill 与 Command/Agent Skill fallback,只生成已确认的最小 Manifest |
@tokenroll/acplugin-platform-opencode |
Public |
✅ Implemented |
独立发布 OpenCode Workspace Overlay、原生资源与按需配置文档 |
@tokenroll/acplugin-platform-pi |
Public |
✅ Implemented |
独立发布 Pi npm Package、Prompt/Skill 转换与合法发布 Manifest |
@tokenroll/acplugin-extension-hooks |
Public |
✅ Implemented |
建立平台中立 Hook 作者协议、安全 Runner、单次 Bundle 与六平台 wire/Adapter |
@tokenroll/acplugin-extension-mcp |
Public |
✅ Implemented |
建立 HTTP/stdio portable intersection、Secret 引用、stdio Bundle/协议 smoke 与六平台 Adapter |
@acplugin/test |
Private |
✅ Implemented and passing |
建立跨包、CLI、Migration、架构、确定性、边界与真实发行集成测试 |
@acplugin/docs |
Private |
✅ Implemented |
配套提供 VitePress 内容与九个公开包的 TypeDoc API,不参与发布 |
@acplugin/playground |
Private |
✅ Implemented |
配套提供 llmdoc v3 主题的真实公开包消费和构建 smoke,不实现 llmdoc runtime |
Detailed scope
1. Public façade and CLI
- 主包精选公开
defineConfig()、definePlatform()、defineExtension()、runProject()、Artifact helper、稳定序列化函数和公共类型。
- 删除主包中的官方 Platform/Extension re-export、旧 subpath 和运行时依赖。
platforms 改为必填且必须显式实例化;--platform 只能筛选配置中已有实例。
init 默认建议 Claude Code/Codex,但会写入独立依赖、import 和 platforms 数组。
validate、inspect、build、dev 共用唯一 pipeline,并统一 JSON、文本输出和退出码。
- dev 监听配置的本地 import closure 和 Extension bundle module graph;重建失败时保留最后一次成功输出。
- Migration 只通过 CLI 动态 import,正常 façade 与启动路径不加载 Legacy 子系统。
2. Core lifecycle and data model
- Canonical Components 固定为 Commands、Skills、Agents 和 Public;不提供 Instructions Component。
- Scanner 校验 YAML Frontmatter、kebab-case ID、非空正文、Skill auxiliary 和依赖图。
- Platform options 深度冻结为 JSON;Extension 不读取其他 Extension 的 Built State。
- Extension Adapter 按配置顺序运行;该顺序可观察且确定,不承诺交换律。
- 同一 Document extension point 的 owner 冲突为 sticky failure,不能被 Adapter 捕获后绕过。
- Artifact 只接受 bytes 或已验证普通文件,绑定 owner、mode、size 和 SHA-256。
- 路径验证覆盖绝对路径、NUL、
..、符号链接、大小写、Unicode 与跨宿主分隔符冲突。
- 事务执行 lock → recover → stage → validate → backup/swap → reverse buildEnd → cleanup/rollback。
- 稳定排序使用 locale-independent code-unit 语义;报告脱敏不再枚举环境值并执行自由文本替换。
3. First-class Platform ecosystem
- 六个官方 Platform 都是独立
@tokenroll/acplugin-platform-* 公开包。
- 每个 Platform 只通过 peer dependency 使用主包公开 SDK,不依赖私有 Core 或其他官方集成。
- 每个 Platform 自己拥有转换器、Document、主 DeliveryUnit、可选 Distribution 和最终 Validator。
- 每项 Canonical 资源都必须报告
native、transform、degraded 或 unsupported。
- 第三方 Platform 可使用任意 npm 名称和相同公开 SDK,不需要注册中心、命名强制或主包修改。
4. Hooks and MCP Extensions
- Hook 作者只返回语义结果;平台 stdin/stdout 协议由对应 Adapter wire 负责。
- Hook Handler 限制输入、输出和 JSON 深度,捕获顶层错误并只暴露稳定错误码。
- MCP HTTP Secret 使用
{ env } 引用,构建过程只保留变量名,不读取真实值。
- MCP stdio 必须是完整 Server,Bundle 后在 development/production 都执行真实
initialize 和 tools/list smoke。
- Bundle 包含第三方依赖时生成相邻
THIRD_PARTY_LICENSES.txt。
- Adapter 只能修改 Platform 声明的 extension point 或追加自有 Artifact,不能替换完整文档。
5. Migration boundary
- Legacy Claude 工程、Plugin、Marketplace 和受支持 GitHub 来源只通过
acplugin migrate 进入隔离迁移流程。
- Migration 不原地改写源工程;不能安全映射的内容进入
.acplugin-migration/unmapped/ 和稳定报告。
- ID 分配按稳定源路径统一决策,避免大小写、显式后缀和多 workspace 冲突覆盖。
- 不把 Instructions、raw Hooks 或外部命令 MCP 伪装成 Canonical 资源。
- 不恢复旧 converter、writer、CLI 或 TUI 到正式架构。
6. Toolchain, testing and release
- Monorepo 使用 pnpm、ESM-only、TypeScript 7、tsdown、Vitest;不引入 Turborepo。
- 仓库构建环境使用 Node
22.18.0,九个公开包通过真实 clean consumer 验证 Node 20.19.0。
- Release verifier 从同一 revision pack 九个 tarball,执行 publint、类型解析、manifest、peer rewrite、ESM 图和私有依赖泄漏检查。
- clean consumer 同时验证官方 Platform、Extension 和使用
definePlatform() 创建的第三方形态。
- PR Check 执行 lint、typecheck 及 Docs/Playground 检查;手工 Verify Workflow 只读验证 tarball。
- 发行仍由维护者手工完成,不自动 publish、修改 dist-tag、创建 Tag 或 GitHub Release。
- 当前
0.0.1-beta 只承担试用与观察;正式 1.0.0 必须等待真实使用周期结束、release blocker 清零、API/格式冻结和完整验证矩阵复跑。
7. Supporting documentation and branding
- Docs 和 Playground 与其他 workspace 同级,但均为 private 且不进入 Changesets 或 tarball。
- VitePress 按 Guide、Config、Platforms、Extensions、Ecosystem、Playground、Resources 和 API 组织内容。
- TypeDoc 自动扫描九个公开根入口,并拒绝 private package 或绝对路径进入生成结果。
- Playground 使用真实公开包验证 Commands、Skill auxiliary、Agents、Hooks、Public 与 Claude Code/Codex 交付。
- 展示品牌统一为
ACPlugin,提供香蕉形 C Logo、香蕉黄色主题、浅深色代码可读性和响应式全宽表格。
- Docs/Playground 是架构验证与上手配套,不是该里程碑的核心运行时交付。
Public package model
@tokenroll/acplugin
@tokenroll/acplugin-platform-claude-code
@tokenroll/acplugin-platform-codex
@tokenroll/acplugin-platform-cursor
@tokenroll/acplugin-platform-antigravity
@tokenroll/acplugin-platform-opencode
@tokenroll/acplugin-platform-pi
@tokenroll/acplugin-extension-hooks
@tokenroll/acplugin-extension-mcp
九个公开包独立版本化。八个官方集成包使用 @tokenroll/acplugin 的正常 semver peer range;主包不依赖或重新导出它们。Core、Test、Docs 和 Playground 保持私有。
当前九个公开包和全部私有 Workspace Package 均使用 0.0.1-beta。已准备的 major Changeset 代表未来正式 1.0 发布,不应在 beta 观察期结束前消费;满足全部 release gates 后,它会把九个公开包统一晋升为 1.0.0。
Breaking changes
- 旧的主包 Platform 聚合导出和
./platforms/* subpath 被删除。
- 用户配置必须显式安装、导入并传入至少一个 Platform 实例。
- 旧 converter/writer API 不属于新的公共 façade。
- Instructions 不再是 Canonical Component;Hooks/MCP 必须使用正式 Extension 作者格式。
dist 成为框架完整托管目录,构建成功时按目标集合整体替换。
- 正式包仅支持 ESM,并声明经过 clean consumer 验证的 Node 运行范围。
- 旧工程如需接入新模型,应通过隔离 Migration 或人工重写,而不是依赖隐式兼容层。
Non-goals
- 不实现 whole-execution 增量更新、跨运行缓存或 lifecycle 跳过。
- 不新增 Extension
enforce、order、依赖图或并行 Adapter 协议。
- 不建立 Platform/Extension 中央 Registry、自动发现或自动安装机制。
- 不要求第三方包使用 TokenRoll scope 或跟随官方版本。
- 不恢复 Instructions Component 或 Legacy 多平台转换架构。
- 不实现在线 Playground、多语言、遥测、文档自动部署或版本站点。
- 不自动 publish/unpublish、修改 dist-tag、创建 Tag 或 GitHub Release。
Acceptance criteria
Architecture and package boundaries
Runtime correctness and safety
Platforms and Extensions
CLI, Migration and release
Developer experience
Beta observation and stable 1.0 release
Validation plan
pnpm install --frozen-lockfile
pnpm run lint
pnpm run typecheck
pnpm run test
pnpm run build
pnpm run release:verify
pnpm run docs:check
当前执行结果:
以下结果证明当前 beta 候选满足本地技术质量门,不代表真实使用观察期或正式 1.0 发布门已经完成。
| Command |
Result |
pnpm run lint |
✅ Passed |
pnpm run typecheck |
✅ Passed |
pnpm run test |
✅ Passed:Core 82/82、主包 6/6、跨包集成 72/72,其余包测试全部通过 |
pnpm run build |
✅ Passed(由 pretest 与 docs:check 实际执行) |
pnpm run release:verify |
✅ Passed:九个独立 0.0.1-beta tarball 与本地 clean consumer 通过 |
pnpm run docs:check |
✅ Passed:TypeDoc、VitePress、Docs verifier 与 Playground 全部通过 |
GitHub Verify / Node 20.19 |
⏳ Not run in this snapshot |
人工复核:
- 从九个真实 tarball 安装 clean consumer,验证官方和第三方 Platform 形态;
- 检查主包正常入口不会加载 Migration 或官方集成;
- 对比不同工程根目录和无关环境变量下的完整产物与报告字节;
- 注入事务与
buildEnd 失败,确认旧输出完整恢复;
- 检查六个平台交付结构、Hooks/MCP Adapter 和兼容性报告;
- 检查 README、Docs、API 和 Package 命名是否一致表达新的 TokenRoll 生态边界。
Risks and mitigations
| Risk |
Mitigation |
| Breaking API 导致旧用户无法直接升级 |
明确列出删除入口,提供隔离 Migration 和人工迁移边界 |
| 主包与生态包出现双 Core/Symbol brand |
集成包只 peer 主包,并在 clean tarball consumer 验证实例互操作 |
| 平台独立发布后格式或兼容性漂移 |
每个平台拥有 Validator、golden、兼容性矩阵和独立测试 |
| Adapter 绕过 owner 或吞掉冲突 |
Core sticky invalid、来源授权和跨 Extension 冲突测试 |
| 事务清理失败留下半成品 |
backup 保留到逆序 buildEnd 完成,并覆盖逐阶段 fault injection |
| Node 声明与真实依赖不一致 |
分离仓库工具链范围,并用 Node 20.19 安装确切 tarball |
| Migration 把 Legacy 行为重新带回 Core |
动态 import、目录隔离、架构测试和 unmapped 输出 |
| 重构范围被 Docs/品牌视觉掩盖 |
Issue、PR 和 Release Notes 以 Package/架构变化为首要叙事 |
| 一次测试通过后过早承诺 1.0 稳定性 |
保留 beta 观察期,以真实项目反馈、release blocker 清零和最终契约冻结作为正式发布前置条件 |
Delivery strategy
- 固化 1.0 Core lifecycle、确定性、事务和安全契约。
- 重建主包公开 façade、CLI、配置、init 与 Migration 隔离。
- 逐包完成六个平台转换、Validator 和兼容性测试。
- 完成 Hooks/MCP 作者协议、Bundle、安全 Runner 和六平台 Adapter。
- 将 Platform/Extension 调整为独立公开 peer package,验证第三方形态。
- 完成跨包测试、九 tarball release verifier、Node 20 consumer 和只读 Workflow。
- 最后同步 TokenRoll/ACPlugin 品牌、README、Docs、TypeDoc 和 Playground。
- 发布或分发
0.0.1-beta 供代表性项目试用,在约定周期内收集并处理反馈。
- Beta 无阻塞问题后冻结 1.0 契约,消费 major Changeset 并重新验证
1.0.0 tarball。
- 由维护者手工完成正式包发布、Registry 核验、
tokenroll-v1.0.0 Tag 和 GitHub Release。
每个实施 PR 应保持可独立审查,使用关联 Issue,并在合并前运行与其风险匹配的定向测试;最终里程碑统一运行完整验证矩阵。
Pull request requirements
建议总 PR 标题:
feat!: rebuild ACPlugin as the TokenRoll plugin ecosystem
总 PR 或分阶段 PR 应:
- 在描述中使用
Closes #<issue-number> 或 Refs #<milestone-issue-number>;
- 包含 Summary、Motivation、Package changes、Breaking changes、Testing、Release impact 和 Documentation;
- 明确列出新增/删除的公开入口、依赖关系和迁移方式;
- 为受影响的公开包提供指向
1.0.0 的 major Changeset,并在 beta 观察期结束前保持未消费状态;
- 不提交生成 API、sidebar、Docs dist/cache 或 Playground dist;
- 不包含自动 npm publish、dist-tag、Tag 或 GitHub Release;
- 附上完整质量门结果;涉及文档视觉的 PR 另附浅色/深色和桌面/移动端截图。
Checklist
Summary
将原有 acplugin 重构并品牌升级为 TokenRoll ACPlugin 1.0:从以转换器和官方平台聚合为中心的单体工具,升级为具有公开 SDK、固定生命周期、独立 Platform/Extension package、确定性构建和受管输出事务的多平台 Plugin 生态。
这次里程碑不是一次名称替换,也不是以文档工程为主的功能迭代。核心交付是重新定义整个项目的 package 边界、运行时架构、第三方扩展模型、安全不变量、测试体系和发行验证;Docs、Playground、Logo 与主题升级属于该架构重构的开发者体验配套。
当前版本统一为
0.0.1-beta,用于真实项目试用、兼容性反馈和稳定性观察。Beta 通过全部自动化与手工验证并不自动等于 1.0 就绪:只有在约定的实际使用周期结束、没有未解决的 release blocker、公共 API 与交付契约完成最终冻结后,九个公开包才会通过同一份 Changeset 一次性晋升并正式发布1.0.0。品牌约定:
TokenRoll/@tokenroll/*;ACPlugin;acplugin小写形式。Current progress
@tokenroll/acplugin-platform-*包均已独立构建、导出和验证0.0.1-beta,主包无官方集成依赖或 re-exportpnpm run lint、pnpm run typecheck当前 HEAD 本地通过pnpm run release:verify验证九个0.0.1-betatarball 和 clean consumerpnpm run docs:check当前 HEAD 本地通过VerifyWorkflow 已实现,但本次状态快照未执行 GitHubworkflow_dispatch的 Node 20.19 job0.0.1-beta;major Changeset 已准备,但只能在 beta 观察期和最终评审通过后消费为1.0.0Remaining release gates
VerifyWorkflow,确认同一组 tarball 在 Node 20.19 clean consumer 中通过。0.0.1-beta用于代表性真实项目,在维护者约定的观察周期内记录兼容性、DX、Migration 和产物问题。1.0.0版本、Changelog、peer range 和 lockfile,并重新运行完整验证矩阵。tokenroll-v1.0.0Tag 和 GitHub Release。Motivation
旧架构把框架能力、官方 Platform 实现和转换流程耦合在一起,存在以下问题:
Goals
ACPlugin产品品牌与@tokenroll/*Package 体系。@tokenroll/acplugin收敛为公开 CLI、配置入口、通用框架 SDK 和唯一运行入口。Architecture overview
固定生命周期:
架构不变量:
runProject()只进入同一条 Core lifecycle;dist按所选目标集合全量提交,buildEnd仍在回滚窗口内;Package-level changes
@tokenroll/acpluginrunProject()和隔离 Migration;不再聚合官方 Platform/Extension@acplugin/core@tokenroll/acplugin-platform-claude-code@tokenroll/acplugin-platform-codex@tokenroll/acplugin-platform-cursor@tokenroll/acplugin-platform-antigravity@tokenroll/acplugin-platform-opencode@tokenroll/acplugin-platform-pi@tokenroll/acplugin-extension-hooks@tokenroll/acplugin-extension-mcp@acplugin/test@acplugin/docs@acplugin/playgroundDetailed scope
1. Public façade and CLI
defineConfig()、definePlatform()、defineExtension()、runProject()、Artifact helper、稳定序列化函数和公共类型。platforms改为必填且必须显式实例化;--platform只能筛选配置中已有实例。init默认建议 Claude Code/Codex,但会写入独立依赖、import 和platforms数组。validate、inspect、build、dev共用唯一 pipeline,并统一 JSON、文本输出和退出码。2. Core lifecycle and data model
..、符号链接、大小写、Unicode 与跨宿主分隔符冲突。3. First-class Platform ecosystem
@tokenroll/acplugin-platform-*公开包。native、transform、degraded或unsupported。4. Hooks and MCP Extensions
{ env }引用,构建过程只保留变量名,不读取真实值。initialize和tools/listsmoke。THIRD_PARTY_LICENSES.txt。5. Migration boundary
acplugin migrate进入隔离迁移流程。.acplugin-migration/unmapped/和稳定报告。6. Toolchain, testing and release
22.18.0,九个公开包通过真实 clean consumer 验证 Node20.19.0。definePlatform()创建的第三方形态。0.0.1-beta只承担试用与观察;正式1.0.0必须等待真实使用周期结束、release blocker 清零、API/格式冻结和完整验证矩阵复跑。7. Supporting documentation and branding
ACPlugin,提供香蕉形CLogo、香蕉黄色主题、浅深色代码可读性和响应式全宽表格。Public package model
九个公开包独立版本化。八个官方集成包使用
@tokenroll/acplugin的正常 semver peer range;主包不依赖或重新导出它们。Core、Test、Docs 和 Playground 保持私有。当前九个公开包和全部私有 Workspace Package 均使用
0.0.1-beta。已准备的 major Changeset 代表未来正式 1.0 发布,不应在 beta 观察期结束前消费;满足全部 release gates 后,它会把九个公开包统一晋升为1.0.0。Breaking changes
./platforms/*subpath 被删除。dist成为框架完整托管目录,构建成功时按目标集合整体替换。Non-goals
enforce、order、依赖图或并行 Adapter 协议。Acceptance criteria
Architecture and package boundaries
@acplugin/*运行时依赖、源码、测试或私有 workspace 文件。definePlatform()实例与官方集成能够通过同一个主包 peer 和 Symbol brand 工作。Runtime correctness and safety
runProject()只运行同一固定 lifecycle。buildEnd失败时保留上一份完整输出,并通过 fault injection 验证。Platforms and Extensions
CLI, Migration and release
init生成独立 Platform 依赖、import 和显式配置。dev能观察配置依赖和 Extension 模块图,失败后仍保留最后成功输出。Developer experience
Beta observation and stable 1.0 release
0.0.1-beta。0.0.1-beta已在代表性真实项目中完成维护者约定的持续使用周期。1.0.0包、Changelog、peer range 和 lockfile。1.0.0的完整验证矩阵和 Node 20.19 Verify Workflow 已重新通过。tokenroll-v1.0.0Tag 和 GitHub Release。Validation plan
pnpm install --frozen-lockfile pnpm run lint pnpm run typecheck pnpm run test pnpm run build pnpm run release:verify pnpm run docs:check当前执行结果:
以下结果证明当前 beta 候选满足本地技术质量门,不代表真实使用观察期或正式 1.0 发布门已经完成。
pnpm run lintpnpm run typecheckpnpm run testpnpm run buildpretest与docs:check实际执行)pnpm run release:verify0.0.1-betatarball 与本地 clean consumer 通过pnpm run docs:checkVerify/ Node 20.19人工复核:
buildEnd失败,确认旧输出完整恢复;Risks and mitigations
buildEnd完成,并覆盖逐阶段 fault injectionDelivery strategy
0.0.1-beta供代表性项目试用,在约定周期内收集并处理反馈。1.0.0tarball。tokenroll-v1.0.0Tag 和 GitHub Release。每个实施 PR 应保持可独立审查,使用关联 Issue,并在合并前运行与其风险匹配的定向测试;最终里程碑统一运行完整验证矩阵。
Pull request requirements
建议总 PR 标题:
总 PR 或分阶段 PR 应:
Closes #<issue-number>或Refs #<milestone-issue-number>;1.0.0的 major Changeset,并在 beta 观察期结束前保持未消费状态;Checklist
pnpm run test通过。VerifyWorkflow 验证九个真实 tarball 和 Node 20.19 consumer。0.0.1-beta的真实项目使用周期并处理全部 release blocker。1.0.0tarball。