@afokapu/atdd-bun
用于保存其计划、接受、测试和 在一个基特历史中执行。 它检查了计划明确表明的联系:
plan / WMBT → acceptance → Bun test → implementation
它运行在Bun 从仓库自己的 node_modules,没有全局安装和网络
访问。 与本地测试相同的检查 与快速反馈的Git钩一样,
这是合并的大门。 每个发现都失败了:没有咨询模式,也没有调整基线.
安装
bun add -d @afokapu/atdd-bun
bun run atdd-bun init
init 安装 Git 钩(.githooks/),CI工作流程(A.github/workflows/atdd-bun.yml, (中文(简体) ),
管理区块 AGENTS.md 财务报告和审定财务报表 CLAUDE.md,以及 atdd-bun.integrity.test.ts全部提交
他们。 没有东西是覆盖的
无 --replace,添加依赖性后再运行 init。 。 。 .
然后要求工作流程在 GitHub 分支规则中的工作,所以它门会合并.
关于已申报的 GitHub 包范围 .npmrc (例如,
@forgeonehundred:registry=https://npm.pkg.github.com),运行
bun run atdd-bun ci init --replace。生成器保留了该范围并添加
仅限 //npm.pkg.github.com/:_authToken=${NODE_AUTH_TOKEN}; 生成的工作流程
为被冻结的安装步骤提供电子动作符号。 它拒绝一个
已有存储的符号,而不是读取、复制或替换.
图标
| 命令 | 它会做什么 |
|---|---|
atdd-bun [profile ...] [--root <path>] | 执行命名简介; all 运行每一个激活的 |
atdd-bun init [--replace] | 安装钩子、 CI、 代理文件和完整性测试 |
atdd-bun hooks <install|uninstall|status> | 只管理 Git 钩 |
atdd-bun ci <init|status> | 只管理 CI 工作流程 |
atdd-bun agent <init|status> | 管理 AGENTS.md编号 :CLAUDE.md 指令块 |
atdd-bun profiles registry [--check] | 生成(或核实)确定性剖面范围公约登记册 |
atdd-bun integrity [init|status] | 检查工具包及其生成的文件是否未修改 |
atdd-bun docs journeys [--check] | 生成( 或验证) 行程、 交错和列车视图 |
atdd-bun worktree <start|finish|status> | 代理工作的可选链接-工作树木政策 |
atdd-bun release check | 仅读 SemVer 和 释放意图检查 |
atdd-bun help [--json] | 每一个命令和特征, 人或代理可读 |
跟着他们跑 bun run atdd-bun …。要在断开关闭时使单一的 Bun 测试失败 :
import { registerEnforcementTest } from "@afokapu/atdd-bun/register";
registerEnforcementTest({ root: import.meta.dir + "/..", profiles: ["traceability"] });
简介
| 简介 | 检查 |
|---|---|
traceability | 封闭源码:每一次验收、每一次装订 Tested-By 解决 |
topology | 特性分解和计划、源、测试和E2E位置。 缺少源、测试和E2E套件仅在运行时报告 coder 或者说 tester,因此计划阶段的存储器可以强制 planner 财务报告和审定财务报表 topology 在RED之前 |
planner | 每个计划都有计划 完整图 范围规划规则 |
telemetry | 遥测跟踪计划:项目形状、路径自旋身份和版本 telemetry/,逻辑文物的马车所有权,每个接受的遥测决定,标注基本性,来源 Telemetry: 参考、活弦和被禁财产排放、遥测站周围的销售商-SDK边界以及遥测测试,这些测试将验收和物品捆绑起来,在被捕获的水槽上申明确切身份,覆盖所需要每一物品,并进行申报的定时语义 |
docs | 文献能力,包括生成的行程视图 |
coder, (中文(简体) ), tester, (中文(简体) ), security, (中文(简体) ), architecture, (中文(简体) ), metrics, (中文(简体) ), runtime | Bun 源和试验公约 |
interlocking | 火车/闭合捆绑、基础设施和线路覆盖 |
htmx | htmx 源码/ 测试常规和 Playwright 浏览器规格 (*.e2e.ts(中文(简体) ) |
design | 设计-系统分层、只显示符号的造型和反应能力 |
flow | 可选ATDD 长期席位、任务和线程的流程配套公约 |
all | 每个激活的配置文件; 钩子和 CI 运行 |
planner-nodes/ENFORCEMENT_SCOPE.yaml 说哪个警犬计划者的规则有Bun实现.
巡回执行战略公约
计划员的简介揭露了Bun所有 planner.journey.execution-strategies 和8个人
战略模式:参考、有条件、并行、编审、分批、缓存、投机、,
和适应性。 每一份说明适用性、制约因素、证据及其实际运行时间
支助。 特工们通过生成的 规划者简介登记册来发现它们 战略
可合并,但无一是强制性的,或仅仅是因为公约的存在而是一种运行模式.
现有的行走续航,交接路线,验收验证器仍然严格. 《公约》指南的确 没有 允许未申报的叉/联、流或投机 执行:这些需要自己的运行时间语义和接受证据.
绿地和棕地
一个绿地寄存器从一开始就执行每个配置文件:这就是默认. 一个棕地 (遗产)存储处可以逐步采用强制执行。 操作员列出已准备好的配置文件 并随着代码的追赶而增加:
# atdd-bun.yaml
profiles: [traceability, planner]
all然后,钩子和生成的CI只运行这些配置文件。 任何配置文件仍然可以运行
按名称分列bun run atdd-bun coder)去见所遗. 未知的名称或空列表是
错误,永远不要沉默无声.
流程配置文件兼容性
flow 是犬科可选配置名称。 对于兼容的升级, 遗留的清晰
workflow 输入 atdd-bun.yaml,或直接 bun run atdd-bun workflow,常态化为
flow; 它不使无关的名称有效. flow 需求 @afokapu/atdd-bun 0.10.45 或 2
更新。如果离职报告 flow 未知, 它正在运行一个 stale 工具包: 运行
bun update @afokapu/atdd-bun,然后使用仓库-本地命令
bun run atdd-bun flow --root . (从不采用全球方式) atdd-bun) (中文(简体) ). 保留 flow 在新编辑中
配置 .
没有 profiles: 字段,每个配置文件运行,但还没有管理。 第一个明确的清单是:
用于建立所规范的集合的通过,这样一个褐地寄存器就可以声明
profiles: [docs] 在普通拉动请求中。 从那时起 廉洁检查报告
从列表中删除一个配置文件,并删除列表本身。 第二关
两步绕行 [docs, security] 没有清单 [docs]。 。 。 . init 写入新文件 atdd-bun.yaml
列出每个配置文件,并有匹配的清晰 reject-new 权宜之计 绿地
储存库从其第一次承诺开始。 对于有明确内容的现有配置
配置列表,但没有策略, init 只附加匹配策略并保存选中的
配置配置和所有其他配置字段; 当
在第一个承诺逐步收养之前对其进行调整.
配置
一切就绪 atdd-bun.yaml。主要键 :
profiles: [traceability, planner, topology] # default: every profile
topology: # default layout; point it at existing roots
plan_root: plan
source_root: src/wagons
test_root: tests/wagons
e2e_root: e2e
telemetry_root: telemetry # tracking-plan registry; inert until the tree or a decision exists
frontend:
viewports: [375, 768, 1280]
breakpoints: [480, 768, 1024, 1280]
registry_paths: ["plan/_*.yaml", "contracts/_*.yaml"] # exempt from micro-commit size caps only
max_registry_removed_lines: 350 # larger removals need [mass-delete-approved]
worktrees: { enabled: false } # enabled defaults to ~/Github/worktrees/<repo>/...
release: { enabled: false }
当启用时没有覆盖, 则在 ~/Github/<repo> 使用链接的工作树 ~/Github/worktrees/<repo>/<branch>默认值 primary_directory: . (当前主要离职)和 root: ../worktrees/{repo}· ; {repo} 扩展为主检出目录名 。 需要另作布局的仓库可以明确设置任一字段.
精确的基底查找鼠标
bun run atdd-bun init 生成明确的 reject-new 其配置完全符合的政策
生成的选定配置文件。 对于现有的明确选择,没有政策,同样
命令附加匹配策略而不改变选择或其他配置.
没有政策,严格强制执行仍然是违约; bun run atdd-bun all 仍然失败
每一个发现:
# atdd-bun.yaml
ratchet:
mode: report # or reject-new
profiles: [coder, tester]
运行它只针对一个完全审查的基地SHA:
bun run atdd-bun coder tester --ratchet --base <40-character-reviewed-main-sha>
司令部对一个孤立的精确基地运行同样的安装的探测器 干净的候选者发出一个经过编辑的JSON carried编号 :new编号 :resolved 指纹报告,从不写入或接受基线. report 记录债务而不改变命令成功; reject-new 只有当候选人在同等基数之外增加一个结果时,才退出非零。 声明 ratchet.profiles 必须完全匹配命令的有效配置。 基准和候选简介/文摘必须匹配或比较失败;简介/文摘的采用另行管理。 利用债务补偿分支来删除附带的调查结果。 直接执行配置只能通过这一明确政策选择,不更改已配置的合并配置或 profiles:。 。 。 .
指纹是版本规则的SHA-256,正常寄存器相对路径,以及提供时的语义主题;行/栏,提供证据,源文本,绝对路径,运行时间数据被排除在外. 鼠标检测结果与Bun无关 test.failing() 或J股/行为测试基线。 当生成策略时, 生成提供者 CI 使用此精确命令 reject-new,相对于拉取请求基对象,预推提示,或并排目标,带有完整历史取出;它拒绝缺出,零,无效,不可用,或非祖先取出. 没有这一政策,生成的CI保留严格的 all 执行.
一次性明确配置激活
如果现有确切的主公司在较小规模的明确概况清单下有债务,则单独管理下的收养承诺可能会扩大该清单而不接受债务。 基础和候选人都根据候选人新选的简介进行评判,所以旧的调查结果是 carried中,只有候选人的审计结果依然存在 new 拒绝 reject-new,清除量报告为 resolved数字 :
bun run atdd-bun --profile flow,traceability --ratchet --ratchet-activate-profiles --base <40-character-reviewed-main-sha>
这是普通等同文字规则的只激活例外,而不是基线迁移. 这需要一名明确的候选人 profiles: 列表,其有效的配置文件设置(其明确的列表,或者在无设置时的隐性默认设置)是其严格的子集,并且是相同的非特征政策/配置。 不变的匹配配置也可能带有旗帜并遵循普通的准确文本比较,让生成的CI使用一个命令来进行活动并扩展政策. 删除、隐含/默认列表候选人的通过、不相关的配置改变、肮脏的树、不可用/非祖先基础或省略 --ratchet-activate-profiles 扩张失败 关闭。 指挥库没有激活状态,也没有接受的结果;在受管制的扩张后,使用普通 --ratchet 带有精确匹配的上下文。 严格非评议执行不变.
生成精确基数承诺门
生成 pre-commit 钩子认得一个舞台 reject-new 政策与实现
承诺 HEAD 加上一个孤立的工作树上的阶梯索引树。 已经很活跃了,
不变的显式配置集和相同的上下文,它运行普通的精确基准比较和
发出已携带/新/已解决的报告;承诺只有在 new 为空。 严格
profile扩展使用与一次性激活例外相同的比较.
大门从不写一个基线,或削弱政策,而不进行精确的比较。 无法关闭 除非指数有明确对应的鼠标政策,否则工作树没有被取消或 未跟踪状态,且所选配置/文本要么没有改变,要么基本配置是 一个严格的子集,具有相同的不公开政策。 删除、上下文漂移、不可用/非祖先 基准、绕行、放弃、可变基线和新结论仍然被拒绝.
文件站点主题
一个将 AsciiDocs 发布为网站的寄存器不需要自己的主题.
templates/docs/site.css 样式 Ascidoctor 默认 HTML5 输出(toc: left),轻和
黑暗,而且干净 design 简介。 用包而不是复制,
所以它不会在你的扫描和 更新与工具包。 Ascidoctor把它嵌入每一页;
将网站写入 dist/,没有配置扫描 :
asciidoctor -a stylesheet="$PWD/node_modules/@afokapu/atdd-bun/templates/docs/site.css" -D dist docs/index.adoc
为了重新确定主题,必须超越其自定义属性(--paper, (中文(简体) ), --ink, (中文(简体) ), --accent, (中文(简体) ), --sans继续
:root 在您自己的样式表中,使用您的设计符号.
代理人和正直
管理区块引导一个代理人到配置文件预设的常规, 然后到选定配置文件的
生成的登记册 conventions/_profiles/。每个登记册都是对
剖面的探测器显示 常规路径 和直接关系边缘
仅开放与其任务有关的公约。 它还防止代理人修改
工具箱或更改配置激活而无需用户选择.
对于一个实时的ATDD流动服务台,管理区块还需要提供 atdd-flow
命令: 不得使用代理人 bunx 以获取另一个流程版本,初始化一个现有的服务台,
或重写办公桌/项目/座椅/运行时间记录,以围绕缺失的命令或平板错配.
它向操作员/协调员报告先决条件或具有约束力的问题。 刷新一个
现有消费者管理区块 bun run atdd-bun agent init --replace 升级后.
atdd-bun integrity,由生成的测试运行,并在CI中第一个在干净的安装上运行,当:
- 已安装的软件包不同于其公布的散列;
- 依赖性不是 npm 注册版本;
- 编辑了生成的文件(工作流程、指令块、完整性测试);
atdd-bun.yaml宽于基部分支( 在第一个显式之后)profiles:列表中, 正在删除一个配置文件或列表计数 .
每个查找名称的恢复命令 .
不断更新
每次合并到此软件包 main 以出处发布到 npm 作为下一个补丁
标记 vX.Y.Z。一旦一个寄存器升级依赖,规则和钩子就会改变。 来刷新
每个安装上的管理指令块, 将此添加到仓库本身
package.json数字 :
"scripts": { "postinstall": "atdd-bun agent init --replace" }
升级方式 bun update @afokapu/atdd-bun,或让 Depabot (package-ecosystem: "bun"打开 a
每一次释放都拉出请求。 为了新的 0.x 次要, 运行 bun add -d @afokapu/atdd-bun@latest如果
升级更改工作流程或完整性测试,运行 bun run atdd-bun init --replace 承诺.
开发此软件包
bun test 运行探测器的清洁而肮脏的蝎子, 真正的吉特钩固定装置, 前端
铬链( C)bunx playwright install chromium) (中文(简体) ). 警卫测试要求每个发射规则
有个严格的公约, 一个失败的固定和边缘 relationships.yaml。 。 。 .