hstack 0.16.0 → 0.17.0

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.
Files changed (132) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +73 -163
  3. package/VERSION +1 -1
  4. package/dist/commands/doctor.js +18 -8
  5. package/dist/commands/doctor.js.map +1 -1
  6. package/dist/commands/init.js +7 -3
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/update.js +9 -2
  9. package/dist/commands/update.js.map +1 -1
  10. package/dist/lib/descriptions.js +10 -17
  11. package/dist/lib/descriptions.js.map +1 -1
  12. package/dist/lib/wire.js +166 -138
  13. package/dist/lib/wire.js.map +1 -1
  14. package/dist/manifest.js +41 -29
  15. package/dist/manifest.js.map +1 -1
  16. package/package.json +3 -4
  17. package/template/.claude/agents/adversarial-reviewer.md +42 -50
  18. package/template/.claude/agents/app-architect.md +44 -96
  19. package/template/.claude/agents/data-architect.md +46 -89
  20. package/template/.claude/agents/test-strategist.md +39 -68
  21. package/template/.claude/skills/hstack-adr-new/SKILL.md +23 -73
  22. package/template/.claude/skills/hstack-adversarial-review/SKILL.md +46 -152
  23. package/template/.claude/skills/hstack-adversarial-review/references/finding-categories.md +80 -103
  24. package/template/.claude/skills/hstack-app-architecture/SKILL.md +43 -68
  25. package/template/.claude/skills/hstack-commit/SKILL.md +27 -68
  26. package/template/.claude/skills/hstack-data-architecture/SKILL.md +34 -56
  27. package/template/.claude/skills/hstack-promote/SKILL.md +55 -0
  28. package/template/.claude/skills/hstack-story/SKILL.md +58 -0
  29. package/template/.claude/skills/hstack-test-audit/SKILL.md +64 -0
  30. package/template/.claude/skills/hstack-wrap/SKILL.md +48 -0
  31. package/template/.claude/skills/hstack-wrap/references/pr-description.md +45 -0
  32. package/template/KERNEL.md +75 -318
  33. package/template/templates/adr.md +2 -18
  34. package/template/templates/app-architecture.md +38 -50
  35. package/template/templates/data-architecture.md +38 -89
  36. package/template/templates/infrastructure.md +54 -148
  37. package/template/templates/roadmap.md +6 -12
  38. package/template/templates/story.md +7 -13
  39. package/template/templates/tech-debt.md +2 -37
  40. package/template/templates/tech-stack.md +2 -12
  41. package/template/.claude/agents/data-specialist.md +0 -81
  42. package/template/.claude/agents/implementer.md +0 -97
  43. package/template/.claude/agents/kernel-fit-analyst.md +0 -129
  44. package/template/.claude/agents/planner.md +0 -75
  45. package/template/.claude/agents/product-discovery.md +0 -129
  46. package/template/.claude/agents/product-manager.md +0 -76
  47. package/template/.claude/agents/researcher.md +0 -87
  48. package/template/.claude/agents/security-reviewer.md +0 -88
  49. package/template/.claude/agents/spec-author.md +0 -89
  50. package/template/.claude/agents/stack-architect.md +0 -108
  51. package/template/.claude/agents/ui-ux-briefer.md +0 -75
  52. package/template/.claude/agents/verifier.md +0 -81
  53. package/template/.claude/skills/hstack-branch/SKILL.md +0 -76
  54. package/template/.claude/skills/hstack-brownfield-init/SKILL.md +0 -131
  55. package/template/.claude/skills/hstack-change-new/SKILL.md +0 -84
  56. package/template/.claude/skills/hstack-change-plan/SKILL.md +0 -108
  57. package/template/.claude/skills/hstack-configure/SKILL.md +0 -99
  58. package/template/.claude/skills/hstack-coord/SKILL.md +0 -95
  59. package/template/.claude/skills/hstack-data-review/SKILL.md +0 -93
  60. package/template/.claude/skills/hstack-finalize/SKILL.md +0 -140
  61. package/template/.claude/skills/hstack-flag/SKILL.md +0 -99
  62. package/template/.claude/skills/hstack-greenfield-init/SKILL.md +0 -148
  63. package/template/.claude/skills/hstack-help/SKILL.md +0 -153
  64. package/template/.claude/skills/hstack-implement/SKILL.md +0 -155
  65. package/template/.claude/skills/hstack-kernel-fit-promote/SKILL.md +0 -125
  66. package/template/.claude/skills/hstack-kernel-fit-scan/SKILL.md +0 -142
  67. package/template/.claude/skills/hstack-kernel-fit-scan/references/slack-setup.md +0 -42
  68. package/template/.claude/skills/hstack-kernel-fit-triage/SKILL.md +0 -121
  69. package/template/.claude/skills/hstack-module-spec/SKILL.md +0 -78
  70. package/template/.claude/skills/hstack-product-discovery/SKILL.md +0 -75
  71. package/template/.claude/skills/hstack-research/SKILL.md +0 -115
  72. package/template/.claude/skills/hstack-scaffold/SKILL.md +0 -113
  73. package/template/.claude/skills/hstack-security-review/SKILL.md +0 -95
  74. package/template/.claude/skills/hstack-ship/SKILL.md +0 -119
  75. package/template/.claude/skills/hstack-stack-decide/SKILL.md +0 -81
  76. package/template/.claude/skills/hstack-story-draft/SKILL.md +0 -92
  77. package/template/.claude/skills/hstack-tech-debt-new/SKILL.md +0 -95
  78. package/template/.claude/skills/hstack-tech-debt-resolve/SKILL.md +0 -123
  79. package/template/.claude/skills/hstack-tech-debt-stale/SKILL.md +0 -86
  80. package/template/.claude/skills/hstack-tech-debt-wontfix/SKILL.md +0 -77
  81. package/template/.claude/skills/hstack-telemetry/SKILL.md +0 -73
  82. package/template/.claude/skills/hstack-test-plan/SKILL.md +0 -159
  83. package/template/.claude/skills/hstack-ui-brief/SKILL.md +0 -81
  84. package/template/.claude/skills/hstack-verify/SKILL.md +0 -128
  85. package/template/scripts/compute-merge-readiness.mjs +0 -780
  86. package/template/scripts/coord/coord_scan.py +0 -681
  87. package/template/scripts/run-gates.sh +0 -388
  88. package/template/scripts/telemetry/__init__.py +0 -6
  89. package/template/scripts/telemetry/insights/__init__.py +0 -0
  90. package/template/scripts/telemetry/insights/contract_drift.py +0 -137
  91. package/template/scripts/telemetry/insights/kernel_fit.py +0 -438
  92. package/template/scripts/telemetry/insights/overengineering.py +0 -115
  93. package/template/scripts/telemetry/insights/quality_outcomes.py +0 -131
  94. package/template/scripts/telemetry/insights/token_economics.py +0 -302
  95. package/template/scripts/telemetry/insights/workflow_shape.py +0 -198
  96. package/template/scripts/telemetry/parsers/__init__.py +0 -0
  97. package/template/scripts/telemetry/parsers/bodies.py +0 -87
  98. package/template/scripts/telemetry/parsers/commits.py +0 -219
  99. package/template/scripts/telemetry/parsers/frontmatter.py +0 -322
  100. package/template/scripts/telemetry/parsers/sidecars.py +0 -61
  101. package/template/scripts/telemetry/parsers/transcripts.py +0 -294
  102. package/template/scripts/telemetry/render.py +0 -460
  103. package/template/scripts/telemetry/report.py +0 -150
  104. package/template/scripts/telemetry/run_kernel_fit.py +0 -95
  105. package/template/scripts/telemetry/session_id.py +0 -139
  106. package/template/scripts/validate-spec.mjs +0 -3303
  107. package/template/templates/adversarial-review.md +0 -54
  108. package/template/templates/bootstrap.md +0 -105
  109. package/template/templates/change-spec.md +0 -82
  110. package/template/templates/ci-cd.md +0 -41
  111. package/template/templates/coord-message.md +0 -56
  112. package/template/templates/data-review.md +0 -54
  113. package/template/templates/discovery/brainstorm.md +0 -69
  114. package/template/templates/discovery/forcing-questions.md +0 -76
  115. package/template/templates/discovery/project-brief.md +0 -53
  116. package/template/templates/figma-handoff.md +0 -38
  117. package/template/templates/glossary.md +0 -20
  118. package/template/templates/hardening-checklist.md +0 -73
  119. package/template/templates/incident-runbook.md +0 -57
  120. package/template/templates/kernel-fit-finding.md +0 -63
  121. package/template/templates/kernel-fit-flag.md +0 -52
  122. package/template/templates/module-spec.md +0 -49
  123. package/template/templates/persona.md +0 -38
  124. package/template/templates/plan.md +0 -53
  125. package/template/templates/product-brief.md +0 -56
  126. package/template/templates/security-review.md +0 -63
  127. package/template/templates/telemetry-sidecar.md +0 -227
  128. package/template/templates/test-plan.md +0 -119
  129. package/template/templates/threat-model.md +0 -54
  130. package/template/templates/ui-brief.md +0 -49
  131. package/template/templates/verification.md +0 -63
  132. package/template/templates/vision.md +0 -34
@@ -30,28 +30,21 @@ import { join } from "node:path";
30
30
  export const WORD_BUDGET = 40;
31
31
  export const CHAR_BUDGET = 300;
32
32
  /**
33
- * Named carve-outs. ADR-0011 § Named carve-outs grants three, but only the
34
- * first needs a larger budget in practice:
33
+ * Named carve-outs. Empty since v0.17.
35
34
  *
36
- * `hstack-coord` the only description that routes with no human typing
37
- * anything. ADR-0007's hooks inject `HSTACK-COORD: N unread …` and the model
38
- * must invoke `check` mode on sight; that sentence plus the four-mode list
39
- * is load-bearing routing, not documentation. 84 words today.
40
- *
41
- * The other two carve-outs (confusable families, status preconditions stated
42
- * as triggers) buy a clause, not a budget every file in those families is
43
- * already under 40 words. They are not listed here because listing them would
44
- * exempt files that do not need exempting.
35
+ * ADR-0011 § Named carve-outs grants three, and only one ever needed a larger
36
+ * budget: `hstack-coord`, the single description that routed with no human
37
+ * typing anything ADR-0007's hooks injected `HSTACK-COORD: N unread …` and
38
+ * the model had to invoke `check` mode on sight. v0.17 removed coord, and with
39
+ * it the only description that could argue for the exemption. The other two
40
+ * carve-outs (confusable families, status preconditions stated as triggers)
41
+ * always bought a clause rather than a budget: every file in those families is
42
+ * under 40 words.
45
43
  *
46
44
  * An entry here is a decision with a reason, not a snooze. Adding one means
47
45
  * arguing that the description does routing work no body can do.
48
46
  */
49
- export const BUDGET_CARVE_OUTS = new Map([
50
- [
51
- "hstack-coord",
52
- "autonomous invocation — the HSTACK-COORD pointer line is the framework's only non-typed routing trigger (ADR-0007, ADR-0011 carve-out 1)",
53
- ],
54
- ]);
47
+ export const BUDGET_CARVE_OUTS = new Map();
55
48
  /**
56
49
  * Pull the `description:` value out of a frontmatter block.
57
50
  *
@@ -1 +1 @@
1
- {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../src/lib/descriptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAgC,IAAI,GAAG,CAAC;IACpE;QACE,cAAc;QACd,0IAA0I;KAC3I;CACF,CAAC,CAAC;AAYH;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC/B,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEzB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACvB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACb,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,MAAM;gBAC7B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;QAC3D,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,mBAAmB,CACjC,WAAmB;IAEnB,MAAM,GAAG,GAA+D,EAAE,CAAC;IAE3E,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,IAAuB,EAAE,GAAW,EAAE,EAAE;QACnF,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QAC1B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,OAAO;YACP,IAAI;YACJ,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;SAC9C,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE;gBAAE,SAAS;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,kBAAkB,KAAK,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,kBAAkB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,OAAO,mBAAmB,CAAC,WAAW,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,WAAW,IAAI,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,CAAC;SACtF,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../src/lib/descriptions.ts"],"names":[],"mappings":"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"}
package/dist/lib/wire.js CHANGED
@@ -3,7 +3,7 @@ import { resolve, relative, dirname, join } from "node:path";
3
3
  import { readdir, symlink, readlink, lstat, unlink } from "node:fs/promises";
4
4
  import { diffFramework } from "./diff.js";
5
5
  import { gitMove } from "./git.js";
6
- import { FRAMEWORK_PATHS } from "../manifest.js";
6
+ import { FRAMEWORK_PATHS, LEGACY_FRAMEWORK_PATHS, LEGACY_SCRIPTS_DIR, } from "../manifest.js";
7
7
  /**
8
8
  * ADR-0010: the consumer-side kernel lives at `hstack/KERNEL.md`, not
9
9
  * `hstack/CLAUDE.md`. Claude Code loads a file named `CLAUDE.md` twice — once
@@ -31,23 +31,16 @@ export const LEGACY_KERNEL_IMPORT_PROBE = "@hstack/CLAUDE.md";
31
31
  * prefix) is never rewritten, so `doctor` has to keep flagging it.
32
32
  */
33
33
  export const LEGACY_KERNEL_PATH_PROBE = "hstack/CLAUDE.md";
34
- export const GITIGNORE_TELEMETRY_LINE = "**/.telemetry/";
35
- export const GITIGNORE_KERNEL_FIT_FLAGS_LINE = "hstack/kernel-fit/flags/";
36
- export const GITIGNORE_SESSION_STATE_LINE = "hstack/.session-state/";
37
34
  /**
38
- * Coord-notification hooks (ADR-0007): the harness runs the coord scan at
39
- * SessionStart and on every UserPromptSubmit, injecting a count-only pointer
40
- * line when unread coord-messages exist and nothing otherwise. The command
41
- * targets the consumer's own committed copy of the script; `hook` mode always
42
- * exits 0 so a coordination failure can never break a prompt.
35
+ * The coord-notification hooks (ADR-0007) the installer wired into consumers
36
+ * before v0.17 — a coord scan at SessionStart and on every UserPromptSubmit.
37
+ * The machinery they called is gone, so `hstack update` removes them.
38
+ *
39
+ * This probe is the ownership boundary, and it is deliberately narrow: hstack
40
+ * removes a hook entry only when its command names hstack's own coord script.
41
+ * Everything else in `.claude/settings.json` belongs to the engineer.
43
42
  */
44
- export const COORD_HOOK_COMMAND = 'python3 "$CLAUDE_PROJECT_DIR"/hstack/scripts/coord/coord_scan.py hook';
45
- /** Idempotency probe: any existing hook command containing this substring
46
- * counts as "already wired" (survives cosmetic command edits). */
47
43
  export const COORD_HOOK_PROBE = "scripts/coord/coord_scan.py";
48
- export const COORD_HOOK_EVENTS = ["SessionStart", "UserPromptSubmit"];
49
- /** Generous cap for branch-heavy machines; the scan is typically <1s. */
50
- export const COORD_HOOK_TIMEOUT_S = 15;
51
44
  /**
52
45
  * Compute the full plan for `hstack init` against `consumerRoot`,
53
46
  * using `templateDir` as the source of framework files.
@@ -88,43 +81,7 @@ export async function planInit(consumerRoot, templateDir, packageVersion) {
88
81
  createIfMissing: true,
89
82
  matchOn: KERNEL_IMPORT_PROBE,
90
83
  });
91
- // 5. Append telemetry gitignore line (create if missing)
92
- actions.push({
93
- kind: "append-line",
94
- file: resolve(consumerRoot, ".gitignore"),
95
- line: GITIGNORE_TELEMETRY_LINE,
96
- createIfMissing: true,
97
- });
98
- // 5b. Append kernel-fit flags gitignore line (per ADR-0005 — pins are
99
- // derivative signal, mirroring the `.telemetry/` decision in ADR-0004).
100
- // Findings under hstack/kernel-fit/findings/ remain committed; only the
101
- // flags/ subtree is gitignored.
102
- actions.push({
103
- kind: "append-line",
104
- file: resolve(consumerRoot, ".gitignore"),
105
- line: GITIGNORE_KERNEL_FIT_FLAGS_LINE,
106
- createIfMissing: true,
107
- });
108
- // 5c. Append session-state gitignore line. The kernel's Resumability section
109
- // declared hstack/.session-state/ git-ignored, but the installer never wired
110
- // it until ADR-0006 (the coord ack cursor made the gap load-bearing) — repos
111
- // installed before this may have committed session-state files; `hstack
112
- // doctor` users should verify.
113
- actions.push({
114
- kind: "append-line",
115
- file: resolve(consumerRoot, ".gitignore"),
116
- line: GITIGNORE_SESSION_STATE_LINE,
117
- createIfMissing: true,
118
- });
119
- // 5d. Merge the coord-notification hook entries into .claude/settings.json
120
- // (per ADR-0007 — sessions get alerted about unread coord-messages without
121
- // the engineer hand-carrying the nudge). Merge-only; engineer-owned settings
122
- // are never touched.
123
- actions.push({
124
- kind: "merge-hooks",
125
- file: resolve(consumerRoot, ".claude", "settings.json"),
126
- });
127
- // 6. Stamp the installed-version marker so update can compare later.
84
+ // 5. Stamp the installed-version marker so update can compare later.
128
85
  actions.push({
129
86
  kind: "write-version",
130
87
  to: resolve(consumerRoot, "hstack", "VERSION"),
@@ -135,7 +92,7 @@ export async function planInit(consumerRoot, templateDir, packageVersion) {
135
92
  /**
136
93
  * Compute the full plan for `hstack update` against `consumerRoot`.
137
94
  * Diffs framework files in template/ vs the consumer's hstack/, plus
138
- * the .claude/ symlink delta, plus idempotent CLAUDE.md / .gitignore
95
+ * the .claude/ symlink delta, plus the idempotent CLAUDE.md
139
96
  * line checks, plus the VERSION marker stamp.
140
97
  */
141
98
  export async function planUpdate(consumerRoot, templateDir, packageVersion) {
@@ -147,6 +104,13 @@ export async function planUpdate(consumerRoot, templateDir, packageVersion) {
147
104
  if (kernelFilenameNeedsMigration(await kernelFilenameState(consumerRoot))) {
148
105
  actions.push({ kind: "migrate-kernel-filename", consumerRoot });
149
106
  }
107
+ // 0b. v0.17 legacy paths. Planned before the file diff for the same reason
108
+ // the rename is: these paths left FRAMEWORK_PATHS, so the diff below is
109
+ // blind to them and only this action can take them back.
110
+ const legacyRelpaths = await legacyPathsPresent(consumerRoot);
111
+ if (legacyRelpaths.length > 0) {
112
+ actions.push({ kind: "remove-legacy-paths", consumerRoot, relpaths: legacyRelpaths });
113
+ }
150
114
  // 1. File-level diff for framework paths.
151
115
  const fileDiffs = await diffFramework(templateDir, consumerHstack, FRAMEWORK_PATHS);
152
116
  for (const d of fileDiffs) {
@@ -194,30 +158,14 @@ export async function planUpdate(consumerRoot, templateDir, packageVersion) {
194
158
  createIfMissing: true,
195
159
  matchOn: KERNEL_IMPORT_PROBE,
196
160
  });
197
- // 5. .gitignore telemetry line idempotent re-check.
161
+ // 5. Coord-notification hooksremoved, not merged (v0.17).
162
+ // Nothing is added to a consumer's .gitignore any more: the `**/.telemetry/`,
163
+ // `hstack/kernel-fit/flags/` and `hstack/.session-state/` lines the installer
164
+ // used to write are gone with the machinery that produced those directories.
165
+ // Lines already in a consumer's .gitignore stay — hstack never edits an
166
+ // engineer's file to unsay something it once said.
198
167
  actions.push({
199
- kind: "append-line",
200
- file: resolve(consumerRoot, ".gitignore"),
201
- line: GITIGNORE_TELEMETRY_LINE,
202
- createIfMissing: true,
203
- });
204
- // 5b. .gitignore kernel-fit flags line — idempotent re-check (per ADR-0005).
205
- actions.push({
206
- kind: "append-line",
207
- file: resolve(consumerRoot, ".gitignore"),
208
- line: GITIGNORE_KERNEL_FIT_FLAGS_LINE,
209
- createIfMissing: true,
210
- });
211
- // 5c. .gitignore session-state line — idempotent re-check (per ADR-0006).
212
- actions.push({
213
- kind: "append-line",
214
- file: resolve(consumerRoot, ".gitignore"),
215
- line: GITIGNORE_SESSION_STATE_LINE,
216
- createIfMissing: true,
217
- });
218
- // 5d. Coord-notification hooks — idempotent re-check (per ADR-0007).
219
- actions.push({
220
- kind: "merge-hooks",
168
+ kind: "remove-coord-hooks",
221
169
  file: resolve(consumerRoot, ".claude", "settings.json"),
222
170
  });
223
171
  // 6. VERSION marker.
@@ -284,80 +232,131 @@ async function migrateKernelFilename(consumerRoot) {
284
232
  `hstack never rewrites a hand-edited import. Point it at \`${KERNEL_IMPORT_PROBE}\` yourself; \`hstack doctor\` will keep flagging it until you do.`);
285
233
  }
286
234
  }
287
- function eventHasCoordHook(hooks, event) {
288
- if (typeof hooks !== "object" || hooks === null)
289
- return false;
290
- const matchers = hooks[event];
291
- if (!Array.isArray(matchers))
292
- return false;
293
- return matchers.some((m) => {
294
- const inner = m?.hooks;
295
- if (!Array.isArray(inner))
296
- return false;
297
- return inner.some((h) => typeof h?.command === "string" &&
298
- (h.command).includes(COORD_HOOK_PROBE));
299
- });
235
+ /**
236
+ * Which of the pre-v0.17 framework paths are still on disk in this consumer.
237
+ * Returns paths relative to `<consumer>/hstack/`, in manifest order.
238
+ */
239
+ export async function legacyPathsPresent(consumerRoot) {
240
+ const hstackDir = resolve(consumerRoot, "hstack");
241
+ const present = [];
242
+ for (const rel of LEGACY_FRAMEWORK_PATHS) {
243
+ if (await fs.pathExists(resolve(hstackDir, rel)))
244
+ present.push(rel);
245
+ }
246
+ return present;
300
247
  }
301
- export async function coordHooksState(file) {
248
+ /**
249
+ * Remove the pre-v0.17 paths, then `hstack/scripts/` if it came out empty.
250
+ *
251
+ * `fs.remove` is a no-op on a path that is already gone, so a re-run after a
252
+ * partial failure finishes the job rather than erroring.
253
+ */
254
+ async function removeLegacyPaths(consumerRoot, relpaths) {
255
+ const hstackDir = resolve(consumerRoot, "hstack");
256
+ for (const rel of relpaths) {
257
+ await fs.remove(resolve(hstackDir, rel));
258
+ }
259
+ const scriptsDir = resolve(hstackDir, LEGACY_SCRIPTS_DIR);
260
+ if (await fs.pathExists(scriptsDir)) {
261
+ const left = await readdir(scriptsDir).catch(() => null);
262
+ if (left !== null && left.length === 0)
263
+ await fs.remove(scriptsDir);
264
+ }
265
+ }
266
+ /** True when this hook command is one hstack installed and therefore owns. */
267
+ function isCoordHookCommand(h) {
268
+ const command = h?.command;
269
+ return typeof command === "string" && command.includes(COORD_HOOK_PROBE);
270
+ }
271
+ function matcherHasCoordHook(matcher) {
272
+ const inner = matcher?.hooks;
273
+ return Array.isArray(inner) && inner.some(isCoordHookCommand);
274
+ }
275
+ /** Parse the settings file, or say why it cannot be touched. */
276
+ async function readSettings(file) {
302
277
  if (!(await fs.pathExists(file)))
303
- return "missing";
304
- let settings;
278
+ return { ok: true, settings: {} };
279
+ let parsed;
305
280
  try {
306
281
  const raw = await fs.readFile(file, "utf8");
307
- settings = raw.trim() === "" ? {} : JSON.parse(raw);
282
+ parsed = raw.trim() === "" ? {} : JSON.parse(raw);
308
283
  }
309
284
  catch {
310
- return "invalid";
285
+ return { ok: false };
311
286
  }
312
- if (typeof settings !== "object" || settings === null || Array.isArray(settings)) {
313
- return "invalid";
287
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
288
+ return { ok: false };
314
289
  }
315
- const hooks = settings.hooks;
316
- if (hooks !== undefined && (typeof hooks !== "object" || hooks === null || Array.isArray(hooks))) {
317
- return "invalid";
290
+ const hooks = parsed.hooks;
291
+ if (hooks !== undefined &&
292
+ (typeof hooks !== "object" || hooks === null || Array.isArray(hooks))) {
293
+ return { ok: false };
318
294
  }
319
- for (const event of COORD_HOOK_EVENTS) {
320
- const matchers = hooks ? hooks[event] : undefined;
321
- if (matchers !== undefined && !Array.isArray(matchers))
295
+ return { ok: true, settings: parsed };
296
+ }
297
+ export async function coordHooksState(file) {
298
+ const read = await readSettings(file);
299
+ if (!read.ok)
300
+ return "invalid";
301
+ const hooks = read.settings.hooks;
302
+ if (!hooks)
303
+ return "absent";
304
+ for (const matchers of Object.values(hooks)) {
305
+ if (!Array.isArray(matchers))
322
306
  return "invalid";
323
- if (!eventHasCoordHook(hooks, event))
324
- return "missing";
307
+ if (matchers.some(matcherHasCoordHook))
308
+ return "present";
325
309
  }
326
- return "present";
310
+ return "absent";
327
311
  }
328
- async function mergeCoordHooks(file) {
329
- const state = await coordHooksState(file);
330
- if (state === "present")
331
- return;
332
- if (state === "invalid") {
312
+ /**
313
+ * Take back the coord hook entries hstack installed (ADR-0007), and nothing
314
+ * else. A matcher is dropped only once its own `hooks` array is empty, an event
315
+ * only once it has no matchers left, and the `hooks` key only once it is empty
316
+ * an engineer's SessionStart hook sitting next to hstack's survives all
317
+ * three. Everything outside `hooks` is untouched.
318
+ */
319
+ async function removeCoordHooks(file) {
320
+ const read = await readSettings(file);
321
+ if (!read.ok) {
333
322
  // Never rewrite an unparseable engineer-owned file, and never abort the
334
323
  // rest of the plan over it — warn and let `hstack doctor` keep flagging it.
335
- console.error(`hstack: skipped coord notification hooks — ${file} is not a parseable JSON settings object. Fix it, then re-run \`npx hstack update\`.`);
324
+ console.error(`hstack: left the coord notification hooks in place — ${file} is not a parseable JSON settings object. Remove the \`${COORD_HOOK_PROBE}\` entries by hand.`);
336
325
  return;
337
326
  }
338
- let settings = {};
339
- if (await fs.pathExists(file)) {
340
- const raw = await fs.readFile(file, "utf8");
341
- if (raw.trim() !== "")
342
- settings = JSON.parse(raw);
343
- }
344
- const hooks = (settings.hooks ??= {});
345
- for (const event of COORD_HOOK_EVENTS) {
346
- if (eventHasCoordHook(hooks, event))
327
+ const settings = read.settings;
328
+ const hooks = settings.hooks;
329
+ if (!hooks)
330
+ return;
331
+ let removed = 0;
332
+ for (const [event, matchers] of Object.entries(hooks)) {
333
+ if (!Array.isArray(matchers))
347
334
  continue;
348
- const matchers = (hooks[event] ??= []);
349
- matchers.push({
350
- hooks: [
351
- {
352
- type: "command",
353
- command: COORD_HOOK_COMMAND,
354
- timeout: COORD_HOOK_TIMEOUT_S,
355
- },
356
- ],
357
- });
335
+ const keptMatchers = [];
336
+ for (const matcher of matchers) {
337
+ if (!matcherHasCoordHook(matcher)) {
338
+ keptMatchers.push(matcher);
339
+ continue;
340
+ }
341
+ const inner = matcher.hooks;
342
+ const keptInner = inner.filter((h) => !isCoordHookCommand(h));
343
+ removed += inner.length - keptInner.length;
344
+ if (keptInner.length > 0) {
345
+ keptMatchers.push({ ...matcher, hooks: keptInner });
346
+ }
347
+ }
348
+ if (keptMatchers.length > 0)
349
+ hooks[event] = keptMatchers;
350
+ else
351
+ delete hooks[event];
358
352
  }
353
+ if (removed === 0)
354
+ return;
355
+ if (Object.keys(hooks).length === 0)
356
+ delete settings.hooks;
359
357
  await fs.ensureDir(dirname(file));
360
358
  await fs.writeFile(file, JSON.stringify(settings, null, 2) + "\n");
359
+ console.error(`hstack: removed ${removed} coord notification hook ${removed === 1 ? "entry" : "entries"} from ${file} (ADR-0007 machinery removed in v0.17).`);
361
360
  }
362
361
  /**
363
362
  * Filter out actions that would be no-ops at execute time (e.g., a symlink
@@ -405,9 +404,9 @@ export async function pruneNoopActions(actions, packageVersion) {
405
404
  continue;
406
405
  }
407
406
  }
408
- else if (a.kind === "merge-hooks") {
409
- // "invalid" is kept so validatePlan / doctor can surface it.
410
- if ((await coordHooksState(a.file)) === "present")
407
+ else if (a.kind === "remove-coord-hooks") {
408
+ // "invalid" is kept so doctor can surface it.
409
+ if ((await coordHooksState(a.file)) === "absent")
411
410
  continue;
412
411
  }
413
412
  out.push(a);
@@ -455,8 +454,12 @@ export function renderPlan(actions, consumerRoot) {
455
454
  return ` unlink ${rel(a.to, consumerRoot)}`;
456
455
  case "append-line":
457
456
  return ` check ${rel(a.file, consumerRoot)} (idempotent append)`;
458
- case "merge-hooks":
459
- return ` hooks ${rel(a.file, consumerRoot)} (coord notification hooks, ADR-0007)`;
457
+ case "remove-coord-hooks":
458
+ return ` hooks ${rel(a.file, consumerRoot)} (remove the coord notification hooks, ADR-0007)`;
459
+ case "remove-legacy-paths":
460
+ return a.relpaths
461
+ .map((r) => ` rm hstack/${r} (removed in v0.17)`)
462
+ .join("\n");
460
463
  case "migrate-kernel-filename":
461
464
  return ` move hstack/${LEGACY_KERNEL_FILENAME} -> hstack/${KERNEL_FILENAME} + CLAUDE.md import line (ADR-0010)`;
462
465
  case "write-version":
@@ -500,7 +503,7 @@ export async function validatePlan(actions) {
500
503
  }
501
504
  }
502
505
  }
503
- if (a.kind === "merge-hooks") {
506
+ if (a.kind === "remove-coord-hooks") {
504
507
  if ((await coordHooksState(a.file)) === "invalid") {
505
508
  blockers.push(`${a.file} exists but is not a parseable JSON settings object (or its hooks key has an unexpected shape). ` +
506
509
  `Fix it manually, then re-run — hstack never rewrites an unparseable settings file.`);
@@ -524,6 +527,12 @@ export async function executePlan(actions) {
524
527
  break;
525
528
  case "remove-file":
526
529
  await fs.remove(a.to);
530
+ // Removing every SKILL.md under a deleted skill leaves the skill's
531
+ // directory behind, and an empty `hstack/.claude/skills/hstack-ship/`
532
+ // reads as a skill that is still installed. `relpath` is a suffix of
533
+ // `to`, so what precedes it is the consumer's hstack root — the
534
+ // boundary the prune must not walk past.
535
+ await pruneEmptyDirs(dirname(a.to), a.to.slice(0, a.to.length - a.relpath.length));
527
536
  break;
528
537
  case "symlink": {
529
538
  const stat = await lstat(a.to).catch(() => null);
@@ -546,8 +555,11 @@ export async function executePlan(actions) {
546
555
  case "append-line":
547
556
  await appendLineIdempotent(a.file, a.line, a.createIfMissing, a.matchOn);
548
557
  break;
549
- case "merge-hooks":
550
- await mergeCoordHooks(a.file);
558
+ case "remove-coord-hooks":
559
+ await removeCoordHooks(a.file);
560
+ break;
561
+ case "remove-legacy-paths":
562
+ await removeLegacyPaths(a.consumerRoot, a.relpaths);
551
563
  break;
552
564
  case "migrate-kernel-filename":
553
565
  await migrateKernelFilename(a.consumerRoot);
@@ -559,6 +571,22 @@ export async function executePlan(actions) {
559
571
  }
560
572
  }
561
573
  }
574
+ /**
575
+ * Walk up from `dir`, removing directories that came out empty, and stop at
576
+ * `stopAt` (exclusive) or at the first directory that still holds something.
577
+ * A directory the engineer dropped a file into is never touched.
578
+ */
579
+ async function pruneEmptyDirs(dir, stopAt) {
580
+ const boundary = resolve(stopAt);
581
+ let current = resolve(dir);
582
+ while (current !== boundary && current.startsWith(boundary)) {
583
+ const entries = await readdir(current).catch(() => null);
584
+ if (entries === null || entries.length > 0)
585
+ return;
586
+ await fs.remove(current);
587
+ current = dirname(current);
588
+ }
589
+ }
562
590
  async function appendLineIdempotent(file, line, createIfMissing, matchOn) {
563
591
  const exists = await fs.pathExists(file);
564
592
  if (!exists && !createIfMissing)
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/lib/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/lib/wire.ts"],"names":[],"mappings":"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"}