@afokapu/atdd-bun 0.10.51 → 0.10.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/integrity.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.10.51",
2
+ "version": "0.10.52",
3
3
  "files": {
4
4
  "HOOK_AUDIT.md": "5329d840db37671b1918f688ead26865473b87db73dbc75f7c8b2a8bbe8d6d43",
5
5
  "PLANNER_PORT.md": "fb5935bac8b7ac18994de21e43ace3a5ef8cd55f85b0e3349fca261280054f11",
@@ -1193,7 +1193,7 @@
1193
1193
  "planner-schemas/wagon.schema.json": "57b98f1ade998d745538eb3d72fb3014a50042006870f90bce47028eea336eb4",
1194
1194
  "planner-schemas/wmbt.schema.json": "7a3a5693bfcf01340667c2be4a3c48e74f34b1af7e8dc13372c0de06b7f4fe12",
1195
1195
  "relationships.yaml": "5860a308ebc3ee7fa8172fc2c6633984000ab3003f0ae4b6fa28db48879eda22",
1196
- "src/agent.ts": "39ca8b3183063c60e00eb96e5629d0397aeb83cc82d4c4bc32c01715c906649b",
1196
+ "src/agent.ts": "6d6c6e75908af8fbab13432f0001b0374bb25cf3dee46ba218dfd67e0090cb56",
1197
1197
  "src/ci.ts": "67e54d2cbfc44a9e42837d5e750af526d6255c539d3c452a4d5fca3226c0d9ac",
1198
1198
  "src/cli.ts": "8f5d69bdd5940c7213f8b7c342fd94c1dc9387d56dad7458ce6e9286d88181d3",
1199
1199
  "src/docs-capability.ts": "bdeeb414649049b1cd4fa8008cada3a576318be51c43bec91bfa46a8e250c270",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@afokapu/atdd-bun",
3
- "version": "0.10.51",
3
+ "version": "0.10.52",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/afokapu/atdd-bun.git"
package/src/agent.ts CHANGED
@@ -6,6 +6,8 @@ const root = resolve(import.meta.dir, "..");
6
6
  const version = (await Bun.file(join(root, "package.json")).json() as { version: string }).version;
7
7
  const render = async (path: string) => (await readFile(join(root, "templates/agents", path), "utf8")).replace("{{VERSION}}", version);
8
8
  const legacySkillPaths = [".agents/skills/atdd/SKILL.md", ".claude/skills/atdd/SKILL.md"];
9
+ /** Delivery orchestration was retired; only these formerly generator-owned paths are eligible for removal. */
10
+ const legacyDeliverySkillPaths = [".agents/skills/delivery/SKILL.md", ".agents/skills/delivery/review.md", ".claude/skills/delivery/SKILL.md", ".claude/skills/delivery/review.md"];
9
11
  // AGENTS.md is read by Codex, Cursor and most agents; CLAUDE.md by Claude Code. Both carry the same block.
10
12
  export const instructionPaths = ["AGENTS.md", "CLAUDE.md"];
11
13
  const block = /<!-- atdd-bun:start[\s\S]*?<!-- atdd-bun:end -->\n?/;
@@ -22,6 +24,13 @@ export async function agentInit(repo = process.cwd(), replace = false) {
22
24
  if (!existsSync(output) || (!replace && !generatedSkill.test(await readFile(output, "utf8")))) continue;
23
25
  await rm(output); retired.push(output);
24
26
  }
27
+ // Never remove a user-authored delivery skill, even with --replace: only the exact paths and
28
+ // generator marker from the retired delivery generator prove this artifact is ours to retire.
29
+ for (const path of legacyDeliverySkillPaths) {
30
+ const output = join(repo, path);
31
+ if (!existsSync(output) || !generatedSkill.test(await readFile(output, "utf8"))) continue;
32
+ await rm(output); retired.push(output);
33
+ }
25
34
  const managed = await render("AGENTS.block.md");
26
35
  for (const path of instructionPaths) {
27
36
  const file = join(repo, path), current = existsSync(file) ? await readFile(file, "utf8") : "";
@@ -35,5 +44,6 @@ export async function agentStatus(repo = process.cwd()) {
35
44
  const missing: string[] = [];
36
45
  for (const path of instructionPaths) { const agents = join(repo, path); if (!existsSync(agents) || !block.test(await readFile(agents, "utf8"))) missing.push(`${agents} (atdd-bun block)`); }
37
46
  for (const path of legacySkillPaths) { const skill = join(repo, path); if (existsSync(skill) && generatedSkill.test(await readFile(skill, "utf8"))) missing.push(`${skill} (retired generated skill)`); }
47
+ for (const path of legacyDeliverySkillPaths) { const skill = join(repo, path); if (existsSync(skill) && generatedSkill.test(await readFile(skill, "utf8"))) missing.push(`${skill} (retired generated delivery skill)`); }
38
48
  return { ok: !missing.length, message: missing.length ? `missing: ${missing.join(", ")}` : instructionPaths.map(path => join(repo, path)).join("\n") };
39
49
  }