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.
- package/CHANGELOG.md +37 -0
- package/README.md +73 -163
- package/VERSION +1 -1
- package/dist/commands/doctor.js +18 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +7 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.js +9 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/lib/descriptions.js +10 -17
- package/dist/lib/descriptions.js.map +1 -1
- package/dist/lib/wire.js +166 -138
- package/dist/lib/wire.js.map +1 -1
- package/dist/manifest.js +41 -29
- package/dist/manifest.js.map +1 -1
- package/package.json +3 -4
- package/template/.claude/agents/adversarial-reviewer.md +42 -50
- package/template/.claude/agents/app-architect.md +44 -96
- package/template/.claude/agents/data-architect.md +46 -89
- package/template/.claude/agents/test-strategist.md +39 -68
- package/template/.claude/skills/hstack-adr-new/SKILL.md +23 -73
- package/template/.claude/skills/hstack-adversarial-review/SKILL.md +46 -152
- package/template/.claude/skills/hstack-adversarial-review/references/finding-categories.md +80 -103
- package/template/.claude/skills/hstack-app-architecture/SKILL.md +43 -68
- package/template/.claude/skills/hstack-commit/SKILL.md +27 -68
- package/template/.claude/skills/hstack-data-architecture/SKILL.md +34 -56
- package/template/.claude/skills/hstack-promote/SKILL.md +55 -0
- package/template/.claude/skills/hstack-story/SKILL.md +58 -0
- package/template/.claude/skills/hstack-test-audit/SKILL.md +64 -0
- package/template/.claude/skills/hstack-wrap/SKILL.md +48 -0
- package/template/.claude/skills/hstack-wrap/references/pr-description.md +45 -0
- package/template/KERNEL.md +75 -318
- package/template/templates/adr.md +2 -18
- package/template/templates/app-architecture.md +38 -50
- package/template/templates/data-architecture.md +38 -89
- package/template/templates/infrastructure.md +54 -148
- package/template/templates/roadmap.md +6 -12
- package/template/templates/story.md +7 -13
- package/template/templates/tech-debt.md +2 -37
- package/template/templates/tech-stack.md +2 -12
- package/template/.claude/agents/data-specialist.md +0 -81
- package/template/.claude/agents/implementer.md +0 -97
- package/template/.claude/agents/kernel-fit-analyst.md +0 -129
- package/template/.claude/agents/planner.md +0 -75
- package/template/.claude/agents/product-discovery.md +0 -129
- package/template/.claude/agents/product-manager.md +0 -76
- package/template/.claude/agents/researcher.md +0 -87
- package/template/.claude/agents/security-reviewer.md +0 -88
- package/template/.claude/agents/spec-author.md +0 -89
- package/template/.claude/agents/stack-architect.md +0 -108
- package/template/.claude/agents/ui-ux-briefer.md +0 -75
- package/template/.claude/agents/verifier.md +0 -81
- package/template/.claude/skills/hstack-branch/SKILL.md +0 -76
- package/template/.claude/skills/hstack-brownfield-init/SKILL.md +0 -131
- package/template/.claude/skills/hstack-change-new/SKILL.md +0 -84
- package/template/.claude/skills/hstack-change-plan/SKILL.md +0 -108
- package/template/.claude/skills/hstack-configure/SKILL.md +0 -99
- package/template/.claude/skills/hstack-coord/SKILL.md +0 -95
- package/template/.claude/skills/hstack-data-review/SKILL.md +0 -93
- package/template/.claude/skills/hstack-finalize/SKILL.md +0 -140
- package/template/.claude/skills/hstack-flag/SKILL.md +0 -99
- package/template/.claude/skills/hstack-greenfield-init/SKILL.md +0 -148
- package/template/.claude/skills/hstack-help/SKILL.md +0 -153
- package/template/.claude/skills/hstack-implement/SKILL.md +0 -155
- package/template/.claude/skills/hstack-kernel-fit-promote/SKILL.md +0 -125
- package/template/.claude/skills/hstack-kernel-fit-scan/SKILL.md +0 -142
- package/template/.claude/skills/hstack-kernel-fit-scan/references/slack-setup.md +0 -42
- package/template/.claude/skills/hstack-kernel-fit-triage/SKILL.md +0 -121
- package/template/.claude/skills/hstack-module-spec/SKILL.md +0 -78
- package/template/.claude/skills/hstack-product-discovery/SKILL.md +0 -75
- package/template/.claude/skills/hstack-research/SKILL.md +0 -115
- package/template/.claude/skills/hstack-scaffold/SKILL.md +0 -113
- package/template/.claude/skills/hstack-security-review/SKILL.md +0 -95
- package/template/.claude/skills/hstack-ship/SKILL.md +0 -119
- package/template/.claude/skills/hstack-stack-decide/SKILL.md +0 -81
- package/template/.claude/skills/hstack-story-draft/SKILL.md +0 -92
- package/template/.claude/skills/hstack-tech-debt-new/SKILL.md +0 -95
- package/template/.claude/skills/hstack-tech-debt-resolve/SKILL.md +0 -123
- package/template/.claude/skills/hstack-tech-debt-stale/SKILL.md +0 -86
- package/template/.claude/skills/hstack-tech-debt-wontfix/SKILL.md +0 -77
- package/template/.claude/skills/hstack-telemetry/SKILL.md +0 -73
- package/template/.claude/skills/hstack-test-plan/SKILL.md +0 -159
- package/template/.claude/skills/hstack-ui-brief/SKILL.md +0 -81
- package/template/.claude/skills/hstack-verify/SKILL.md +0 -128
- package/template/scripts/compute-merge-readiness.mjs +0 -780
- package/template/scripts/coord/coord_scan.py +0 -681
- package/template/scripts/run-gates.sh +0 -388
- package/template/scripts/telemetry/__init__.py +0 -6
- package/template/scripts/telemetry/insights/__init__.py +0 -0
- package/template/scripts/telemetry/insights/contract_drift.py +0 -137
- package/template/scripts/telemetry/insights/kernel_fit.py +0 -438
- package/template/scripts/telemetry/insights/overengineering.py +0 -115
- package/template/scripts/telemetry/insights/quality_outcomes.py +0 -131
- package/template/scripts/telemetry/insights/token_economics.py +0 -302
- package/template/scripts/telemetry/insights/workflow_shape.py +0 -198
- package/template/scripts/telemetry/parsers/__init__.py +0 -0
- package/template/scripts/telemetry/parsers/bodies.py +0 -87
- package/template/scripts/telemetry/parsers/commits.py +0 -219
- package/template/scripts/telemetry/parsers/frontmatter.py +0 -322
- package/template/scripts/telemetry/parsers/sidecars.py +0 -61
- package/template/scripts/telemetry/parsers/transcripts.py +0 -294
- package/template/scripts/telemetry/render.py +0 -460
- package/template/scripts/telemetry/report.py +0 -150
- package/template/scripts/telemetry/run_kernel_fit.py +0 -95
- package/template/scripts/telemetry/session_id.py +0 -139
- package/template/scripts/validate-spec.mjs +0 -3303
- package/template/templates/adversarial-review.md +0 -54
- package/template/templates/bootstrap.md +0 -105
- package/template/templates/change-spec.md +0 -82
- package/template/templates/ci-cd.md +0 -41
- package/template/templates/coord-message.md +0 -56
- package/template/templates/data-review.md +0 -54
- package/template/templates/discovery/brainstorm.md +0 -69
- package/template/templates/discovery/forcing-questions.md +0 -76
- package/template/templates/discovery/project-brief.md +0 -53
- package/template/templates/figma-handoff.md +0 -38
- package/template/templates/glossary.md +0 -20
- package/template/templates/hardening-checklist.md +0 -73
- package/template/templates/incident-runbook.md +0 -57
- package/template/templates/kernel-fit-finding.md +0 -63
- package/template/templates/kernel-fit-flag.md +0 -52
- package/template/templates/module-spec.md +0 -49
- package/template/templates/persona.md +0 -38
- package/template/templates/plan.md +0 -53
- package/template/templates/product-brief.md +0 -56
- package/template/templates/security-review.md +0 -63
- package/template/templates/telemetry-sidecar.md +0 -227
- package/template/templates/test-plan.md +0 -119
- package/template/templates/threat-model.md +0 -54
- package/template/templates/ui-brief.md +0 -49
- package/template/templates/verification.md +0 -63
- package/template/templates/vision.md +0 -34
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,43 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to hstack are documented here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versioning follows [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## [0.17.0] - 2026-08-22
|
|
6
|
+
|
|
7
|
+
The pivot is subtractive (ADR-0015). Four months of hstack v1 produced a workflow whose per-change ceremony made every change roughly ten times slower, and no MVP. The diagnosis is not that the rules were wrong — it is that pre-PMF, the dominant risk is never shipping, not shipping bugs, and a rule that costs something on every single change has to earn it against that. So the question asked of every piece was the same: **does it change what an agent does on an ordinary change, without charging ceremony per change?** What survived was kept *in place*, with its v0.16 wording where the rule survived. What did not was removed, not replaced — this release designs almost nothing new.
|
|
8
|
+
|
|
9
|
+
The complete version is not deleted. The `v0.16.0` tag holds it, intact, for the day a team, a paying user or a compliance requirement asks for it. We froze a version, not the repository.
|
|
10
|
+
|
|
11
|
+
### Removed
|
|
12
|
+
|
|
13
|
+
- **Thirty Skills and twelve subagents.** The per-change phase chain (story → scaffold → spec → UI brief → plan → security review → data review → implement → verify → adversarial review → ship), the two init orchestrators and the discovery atoms around them, the tech-debt status machinery, the kernel-fit loop, research, coord, telemetry, help, flag, configure. The mechanical test for each: *what artifact or status does it write, and does that thing still exist?*
|
|
14
|
+
- **The enforcement scripts** — `validate-spec.mjs` (artifact contracts), `compute-merge-readiness.mjs` (the twelve merge gates) and `run-gates.sh` — with the artifacts and statuses they validated. Twenty-two files under `template/scripts/`, plus the coord and telemetry trees.
|
|
15
|
+
- **Twenty-six templates**, including every change-spec and module-spec type, the discovery technique scripts, and the telemetry sidecar schema.
|
|
16
|
+
- **Frontmatter machinery, everywhere it survived.** Statuses, owners, `schema-version`, reciprocal fields, `related-change-specs`, promotion links. `templates/tech-debt.md` keeps exactly four fields — `id`, `severity`, `related-modules`, `created` — and `templates/adr.md` keeps none. A tech-debt file existing means the item is open; deleting it in the PR that fixes it means resolved, and git is the audit trail.
|
|
17
|
+
- **`hstack/config.yaml`** as a concept, and the `.claude/settings.json` hook wiring that served the coord notifications. `hstack update` takes all of it back from a consumer installed on an earlier version, rather than leaving orphaned files behind.
|
|
18
|
+
- **The installer's `.gitignore` writes.** `**/.telemetry/`, `hstack/kernel-fit/flags/` and `hstack/.session-state/` all hid directories the framework no longer creates. Lines already in a consumer's `.gitignore` stay: hstack never edits an engineer's file to unsay something it once said. `USER_CONTENT_PATHS` narrows to what the boundary actually protects — `context/`, `adr/`, `tech-debt/`.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- **`/hstack-wrap`** — the end of a change, loaded fresh at the moment it runs, which is the point: end-of-change rules no longer have to survive two hundred turns of conversation. It re-checks the categories in `review-miss.md`, runs `/review` and `/security-review` on the branch diff, audits test immutability against the merge-base, updates the living docs the diff invalidated, names the conscious shortcuts as tech-debt files, and writes the PR description. It never merges.
|
|
23
|
+
- **`/hstack-promote`** — the one deploy step hstack carries. The sequence lives in the Skill; the concrete commands live in the consumer's `infrastructure.md` § Deploy Pipeline, and a missing section halts the promotion rather than guessing a production command. Two questions are asked of the human, the exposure map is checked before promotion, production is watched for five minutes after it, and rollback is re-promoting the previous deployment — safe because migrations are additive by default.
|
|
24
|
+
- **`/hstack-test-audit <module>`** — on demand, never a phase. Business rules mapped against existing tests, the gaps named, the ones the engineer picks closed, and every rule the audit surfaced recorded in `invariants.md` *including the gaps left open*.
|
|
25
|
+
- **The exposure map**, a column of the Module Map in `app-architecture.md`. Its atom is an entry point — page route, API route, server action, job, webhook — at `live`, `routable` (the URL responds, nothing links to it, it is fully exposed) or `off`. It exists because agents were repeatedly wrong about what a user can actually reach. It grades product severity, never security severity.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **The kernel is `template/KERNEL.md` at ~1,700 words**, down from ~9,500. Twenty-five sections became one kept, fifteen condensed, nine removed. What is verbatim from v0.16 is verbatim on purpose: test immutability and its canonical authorization phrases, where the wording *is* the mechanism.
|
|
30
|
+
- **Review runs on every PR, not on a sensitive tenth.** `/hstack-wrap` runs the built-in `/review` and `/security-review` before the push and puts the findings in the PR description; sensitive surfaces additionally get the deep pass in a fresh session. There is no senior human reviewer on this team, and that is the reason.
|
|
31
|
+
- **The PR description is the artifact.** It carries the intention, the perimeter, the decisions, the shortcuts, and what the reviews found — replacing change-specs as the record. Living docs are the coordination channel between parallel sessions, updated in the same PR that invalidates them.
|
|
32
|
+
- **`hstack-adversarial-review` posts a PR comment** instead of writing an artifact, and the author resolves the findings. `hstack-story-draft` became `hstack-story`, writes into the Notion feature via MCP, and is explicitly a product tool rather than a gate on a change.
|
|
33
|
+
- **Subagents stop repeating what the templates own.** The section lists and the drift-challenge wording live in the templates; the subagents carry the judgment. `tools:` is declared only where the restriction is the point — `adversarial-reviewer` has neither Write nor Edit.
|
|
34
|
+
- **Skills are named by their real invocation** — `/hstack-wrap`, `/hstack-promote`, `/hstack-test-audit` — in the kernel and throughout. The `/hstack:<name>` form used across v0.16 was never how a symlinked project Skill is invoked.
|
|
35
|
+
- **The repo runs its own fast lane.** A `ci` workflow runs `npm ci && npm test` — which is `tsc` plus the description-budget fixtures — on every pull request. Four PRs shipped this release with nothing but a human running the build locally.
|
|
36
|
+
|
|
37
|
+
### Known limitations
|
|
38
|
+
|
|
39
|
+
- **Retroactive traceability is permanently thinner.** A change's reasoning lives in its PR description and nowhere else; there is no queryable artifact chain behind it. That was the trade, and it is not reversible for the changes that ship under it.
|
|
40
|
+
- **Nothing here has run on a real change yet.** The upgrade of the first consumer, moso-app, from 0.7.1 to 0.17, is the test — and the first place the pieces added on evidence, the exposure map above all, either earn their keep or come out.
|
|
41
|
+
|
|
5
42
|
## [0.16.0] - 2026-08-21
|
|
6
43
|
|
|
7
44
|
The micro-prescriptions come out (ADR-0014). hstack's prose carried a layer of instruction written for a model that needed to be told how to think — a findings quota, character thresholds standing in for substance, keyword blocklists standing in for intent, and interview scripts that had to be read out even when they did not fit the product. Fifteen prescriptions across five families are each replaced by one of three things: **a stated goal**, **a rubric loaded on demand**, or **an executable rule in the validator**. The ledger records which form each took and why.
|
package/README.md
CHANGED
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
# hstack
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **The tag `v0.16.0` is the complete version, frozen** — the full workflow, with its phases, artifacts and gates, kept intact for the day a team, a paying user or a compliance requirement asks for it. **`main` is light (v0.17)**, the subtractive pivot recorded in [ADR-0015](./adr/ADR-0015-the-light-pivot.md). We froze a version, not the repository.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
An engineering workflow for humans and AI agents, shipping as Claude Code Skills and subagents. Rules the agent reads once, CI, an agent review on every PR, and living docs holding what it needs to remember between sessions.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
A thin, opinionated layer on top of Claude Code that governs how engineers and AI agents collaborate on a codebase. ~34 Skills, ~16 subagents, ~32 canonical templates, and one kernel (`KERNEL.md`) that wins every conflict. AI writes; humans confirm. Artifacts on disk are the state machine — no parallel tracker, no separate dashboard.
|
|
7
|
+
hstack sits between an engineer's intent and a merged commit — without charging ceremony on every change.
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
## What hstack is
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
- **`/hstack:brownfield-init`** — for existing repositories. The same discovery atoms run in extract+confirm mode against existing source, populating the context layer without rewriting it.
|
|
11
|
+
A thin, opinionated layer on top of Claude Code that governs how engineers and AI agents collaborate on a codebase. One kernel (`KERNEL.md`, ~1,700 words) that wins every conflict, nine Skills, four subagents, and the templates behind them. Two written artifacts remain: a PR description on every change, and a rare ADR for a one-way door.
|
|
15
12
|
|
|
16
13
|
## What hstack is not
|
|
17
14
|
|
|
18
15
|
- Not a methodology framework like BMAD or Spec Kit. Patterns were borrowed; the framework was not adopted.
|
|
19
|
-
- Not a project tracker.
|
|
20
|
-
- Not a deployment system
|
|
21
|
-
- Not a SOC 2 / GDPR compliance substrate by itself.
|
|
16
|
+
- Not a project tracker. Notion holds product work, the repo holds engineering memory, GitHub holds PRs and CI.
|
|
17
|
+
- Not a deployment system, beyond the one step it does carry: `/hstack-promote`.
|
|
18
|
+
- Not a SOC 2 / GDPR compliance substrate by itself. v0.16.0 was good engineering hygiene; the light version keeps the hygiene that costs nothing per change, and ADR-0015 names what it gave up.
|
|
22
19
|
|
|
23
20
|
## Prerequisites
|
|
24
21
|
|
|
25
|
-
- **Claude Code** installed and authenticated.
|
|
26
|
-
- **Optional MCPs
|
|
27
|
-
- Nothing else is strictly required. hstack runs against any codebase; the consuming repo's stack details land in `hstack/context/tech-stack.md
|
|
22
|
+
- **Claude Code** installed and authenticated.
|
|
23
|
+
- **Optional MCPs**, recognized when present and degraded cleanly when absent: Notion (features and stories), Supabase (live schema introspection when the data layer is being written down).
|
|
24
|
+
- Nothing else is strictly required. hstack runs against any codebase; the consuming repo's stack details land in `hstack/context/tech-stack.md`.
|
|
28
25
|
|
|
29
26
|
## Installation
|
|
30
27
|
|
|
@@ -35,19 +32,19 @@ hstack installs into the consuming repo at the path `hstack/` relative to the re
|
|
|
35
32
|
npx hstack@latest init
|
|
36
33
|
```
|
|
37
34
|
|
|
38
|
-
`hstack init` copies the framework files under `template/` into `<consumer>/hstack/`, wires `.claude/agents` (dir-level symlink) and `.claude/skills/hstack-*` (per-skill symlinks), appends the kernel-import line to `<consumer>/CLAUDE.md`,
|
|
35
|
+
`hstack init` copies the framework files under `template/` into `<consumer>/hstack/`, wires `.claude/agents` (dir-level symlink) and `.claude/skills/hstack-*` (per-skill symlinks), appends the kernel-import line to `<consumer>/CLAUDE.md`, and stamps `hstack/VERSION`. Nothing else in the consumer is touched — v0.17 removed the `.claude/settings.json` hook wiring and the `.gitignore` lines along with the machinery that produced the directories they hid. Use `--dry-run` to preview the plan, `--yes` to skip the confirmation prompt, `--force` to override the dirty-working-tree check.
|
|
39
36
|
|
|
40
37
|
The CLI ships three commands:
|
|
41
38
|
|
|
42
39
|
| Command | What it does |
|
|
43
40
|
| --- | --- |
|
|
44
41
|
| `npx hstack init` | First-time install. Halts if `<consumer>/hstack/` already exists. |
|
|
45
|
-
| `npx hstack update` | Sync framework files to the package version. Preserves user content (`context/`, `
|
|
46
|
-
| `npx hstack doctor` | Read-only health check. Reports version drift, framework file drift, missing or orphan symlinks, missing wiring lines,
|
|
42
|
+
| `npx hstack update` | Sync framework files to the package version. Preserves user content (`context/`, `adr/`, `tech-debt/`). Surfaces a diff plan before writing. Migrates a pre-ADR-0010 install (`hstack/CLAUDE.md` → `hstack/KERNEL.md` plus the import line), and takes back what v0.17 removed: the enforcement scripts, the coord and telemetry trees, and the coord hooks in `.claude/settings.json`. |
|
|
43
|
+
| `npx hstack doctor` | Read-only health check. Reports version drift, framework file drift, missing or orphan symlinks, missing wiring lines, a stale pre-ADR-0010 kernel filename, and any Skill / subagent description over the ADR-0011 routing-trigger budget. Exits 1 on any finding. |
|
|
47
44
|
|
|
48
45
|
The kernel is installed at `hstack/KERNEL.md`, not `hstack/CLAUDE.md` (ADR-0010): Claude Code discovers *any* nested file named `CLAUDE.md` and injects it on the first read of a file in its directory, which loaded the whole kernel a second time on top of the `@`-import. The import in the consumer's root `CLAUDE.md` is the single load path — it fires at launch, survives compaction, and is inherited by subagents.
|
|
49
46
|
|
|
50
|
-
The framework-vs-user-content boundary is canonical in `src/manifest.ts`. **What `init` and `update` write**: `hstack/KERNEL.md`, `hstack/templates/`, `hstack/.claude/agents/`, `hstack/.claude/skills/`, `hstack/
|
|
47
|
+
The framework-vs-user-content boundary is canonical in `src/manifest.ts`. **What `init` and `update` write**: `hstack/KERNEL.md`, `hstack/templates/`, `hstack/.claude/agents/`, `hstack/.claude/skills/`, `hstack/VERSION`. **What they never touch**: `hstack/context/`, `hstack/adr/`, `hstack/tech-debt/` — the engineering memory belongs to the repo that wrote it.
|
|
51
48
|
|
|
52
49
|
### Manual install (legacy)
|
|
53
50
|
|
|
@@ -63,39 +60,7 @@ for d in hstack/.claude/skills/hstack-*/; do
|
|
|
63
60
|
ln -s "../../hstack/.claude/skills/$name" ".claude/skills/$name"
|
|
64
61
|
done
|
|
65
62
|
echo '> **Engineering workflow:** all changes in this repo are governed by hstack. See @hstack/KERNEL.md.' >> CLAUDE.md
|
|
66
|
-
|
|
67
|
-
git add hstack .claude CLAUDE.md .gitignore && git commit -m "vendor hstack"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Then wire the coord-notification hooks (ADR-0007) by merging this into `.claude/settings.json` (create the file if absent; keep any existing keys):
|
|
71
|
-
|
|
72
|
-
```json
|
|
73
|
-
{
|
|
74
|
-
"hooks": {
|
|
75
|
-
"SessionStart": [
|
|
76
|
-
{
|
|
77
|
-
"hooks": [
|
|
78
|
-
{
|
|
79
|
-
"type": "command",
|
|
80
|
-
"command": "python3 \"$CLAUDE_PROJECT_DIR\"/hstack/scripts/coord/coord_scan.py hook",
|
|
81
|
-
"timeout": 15
|
|
82
|
-
}
|
|
83
|
-
]
|
|
84
|
-
}
|
|
85
|
-
],
|
|
86
|
-
"UserPromptSubmit": [
|
|
87
|
-
{
|
|
88
|
-
"hooks": [
|
|
89
|
-
{
|
|
90
|
-
"type": "command",
|
|
91
|
-
"command": "python3 \"$CLAUDE_PROJECT_DIR\"/hstack/scripts/coord/coord_scan.py hook",
|
|
92
|
-
"timeout": 15
|
|
93
|
-
}
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
]
|
|
97
|
-
}
|
|
98
|
-
}
|
|
63
|
+
git add hstack .claude CLAUDE.md && git commit -m "vendor hstack"
|
|
99
64
|
```
|
|
100
65
|
|
|
101
66
|
`hstack doctor` works against manually-vendored installs too. It will flag the missing `hstack/VERSION` marker as a warning until you run `hstack update --force` to stamp it.
|
|
@@ -110,7 +75,7 @@ Run `npx hstack doctor` to audit health without making changes — useful for CI
|
|
|
110
75
|
|
|
111
76
|
#### Adding or removing a Skill or subagent
|
|
112
77
|
|
|
113
|
-
`hstack update` handles this for a consumer pulling a release. A session working *in the framework source* carries the obligation manually, and lands the wiring change in the same PR as the Skill or subagent change
|
|
78
|
+
`hstack update` handles this for a consumer pulling a release. A session working *in the framework source* carries the obligation manually, and lands the wiring change in the same PR as the Skill or subagent change:
|
|
114
79
|
|
|
115
80
|
| Change | Consumer-side action |
|
|
116
81
|
|---|---|
|
|
@@ -121,84 +86,46 @@ Run `npx hstack doctor` to audit health without making changes — useful for CI
|
|
|
121
86
|
| Subagent removed | None, same reason. |
|
|
122
87
|
| Copy-based consumer (copied `.claude/` instead of symlinking) | Mirror every add / remove / rename by hand. The drift cost is why symlinks are recommended. |
|
|
123
88
|
|
|
124
|
-
#### Telemetry
|
|
125
|
-
|
|
126
|
-
`hstack/scripts/telemetry/` ships with the framework and is installed by `hstack init` automatically. The `/hstack:telemetry` Skill shells out to `python3 hstack/scripts/telemetry/report.py --window 30`, generating a markdown report at `hstack/telemetry/reports/<YYYY-MM-DD>.md`. The reports directory is git-tracked; per-change `.telemetry/` sidecar dirs are git-ignored (`hstack init` adds the `**/.telemetry/` line for you).
|
|
127
|
-
|
|
128
|
-
Five Skills (`hstack-test-plan`, `hstack-implement`, `hstack-verify`, `hstack-adversarial-review`, `hstack-finalize`) emit small JSON sidecars at their existing terminal commits — schema in `hstack/templates/telemetry-sidecar.md`. The sidecars are derivative — re-runnable from git + frontmatter + transcripts — and exist only to make per-change attribution cheap. Deleting them is harmless.
|
|
129
|
-
|
|
130
|
-
Coord usage rides the same discipline: `coord_scan.py` appends one JSON line per `scan` / `hook` / `ack` invocation to `hstack/.telemetry/coord/events.jsonl` (covered by the same `**/.telemetry/` gitignore line) — per-worktree measurement of hit-rate and hook latency, never authoritative, safe to delete. `send` usage needs no log: every send is a `chore(coord): message <id>` commit already visible in git history.
|
|
131
|
-
|
|
132
89
|
#### Platform support
|
|
133
90
|
|
|
134
|
-
macOS and Linux only
|
|
91
|
+
macOS and Linux only. Windows is hard-failed at `hstack init` — the dir-level + per-skill symlink wiring needs admin or developer-mode on Windows, and copy-mode fallback is a v2 consideration.
|
|
135
92
|
|
|
136
93
|
## First run
|
|
137
94
|
|
|
138
|
-
Open a fresh Claude Code session in the consuming repo.
|
|
139
|
-
|
|
140
|
-
### Empty repo — greenfield
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
/hstack:greenfield-init
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Six phases of conversational design, each ending at a commit point. Total elapsed time is founder-paced — typically 4–8 hours of conversation across multiple sessions. Phases:
|
|
147
|
-
|
|
148
|
-
1. **Product discovery** — `product-discovery` agent runs one of three techniques (Brainstorm, Forcing-Questions, Project-Brief) and produces `hstack/context/product/product-brief.md`, then auto-routes to `product-manager` to refresh vision, roadmap, personas, glossary.
|
|
149
|
-
2. **Data architecture** — `data-architect` agent walks five sections (Tenancy, Entities, RLS, RAG, Migration Sketches) and produces a deeper `hstack/context/data-architecture.md`.
|
|
150
|
-
3. **App architecture** — `app-architect` agent walks five sections (Module Map, Agent Orchestration, Deterministic-vs-LLM Split, State-Ownership, Surface Boundaries) and produces `hstack/context/app-architecture.md`. Scaffolds module-spec stubs.
|
|
151
|
-
4. **Stack decisions** — `stack-architect` agent runs the constraint interview, routes ADRs through `spec-author` with pre-populated Context / Decision / Alternatives. Default-stack fast-path collapses confirmed defaults into one rollup ADR.
|
|
152
|
-
5. **Threat-model + hardening** — `security-reviewer` in `--mode foundational` scores against proposed posture.
|
|
153
|
-
6. **Scaffold** — `/hstack:scaffold` generates a bootstrap change-spec, runs foundational-mode security/data review, then planner → implementer phase-by-phase → verifier. At the end, the repo is bootable.
|
|
154
|
-
|
|
155
|
-
### Existing repo — brownfield
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
/hstack:brownfield-init
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Conversational, split into mini-sessions of ten-to-fifteen minutes each — one per product-context document. Each mini-session ends at a commit point. Total elapsed time is 60–90 minutes for a fresh adoption. No other per-change Skill runs until init completes.
|
|
162
|
-
|
|
163
|
-
Brownfield-init produces `hstack/config.yaml` and every required document under `hstack/context/`: vision, glossary, roadmap, personas (via `product-manager` reading existing docs in extract+confirm mode), data-architecture and app-architecture (delegated to the standalone atoms running in extract mode against the live schema and source tree), tech-stack, ci-cd, threat-model, hardening-checklist, infrastructure, incident-runbook. If the consuming repo has existing source documents (Notion pages, repo markdown, Google Docs), point the agents at them and they will map content into the canonical templates before walking field-by-field confirmation.
|
|
164
|
-
|
|
165
|
-
After brownfield-init, run `/hstack:module-spec <area>` once per critical module to reverse-engineer baseline module-specs from the stubs scaffolded by `/hstack:app-architecture`.
|
|
95
|
+
Open a fresh Claude Code session in the consuming repo. There is no init interview in the light version: the kernel is loaded by the import line, and the living docs get written when there is something true to write in them.
|
|
166
96
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
```
|
|
172
|
-
/hstack:product-discovery [--mode extract|elicit] [--section <name>]
|
|
173
|
-
/hstack:data-architecture [--mode extract|elicit] [--section <name>]
|
|
174
|
-
/hstack:app-architecture [--mode extract|elicit] [--section <name>]
|
|
175
|
-
/hstack:stack-decide [--layer <name>]
|
|
176
|
-
```
|
|
97
|
+
1. **Write the two architecture docs** when the shape of the product is settled enough to be worth recording — `/hstack-data-architecture` (tenancy, entities, RLS posture, RAG layout) and `/hstack-app-architecture` (module map with its exposure column, LLM call sites, deterministic-vs-LLM split, state ownership, surfaces). Both run in extract mode against a live schema or the source tree, and ask when extraction is not enough.
|
|
98
|
+
2. **Fill the rest by hand or in the PR that needs them**, from `hstack/templates/`: `tech-stack.md`, `infrastructure.md` — whose § Deploy Pipeline is what `/hstack-promote` reads — `roadmap.md`, `invariants.md`, `review-miss.md`.
|
|
99
|
+
3. **Then just work.** The per-change loop below is the whole of it.
|
|
177
100
|
|
|
178
|
-
|
|
101
|
+
## The change loop
|
|
179
102
|
|
|
180
|
-
|
|
103
|
+
The kernel states it in one line: branch → announce the perimeter → a five-bullet plan when the change holds more than three files → code and tests → `/hstack-wrap` → PR → fast CI green → a human other than the author reads → merge → `/hstack-promote`.
|
|
181
104
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
|
185
|
-
|
|
|
186
|
-
|
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
|
|
|
190
|
-
| Figma handoff | cofounder produces, commits `figma-handoff.md` | `surfaces` includes `ui` |
|
|
191
|
-
| Plan | `/hstack:change-plan` | always |
|
|
192
|
-
| Security review | `/hstack:security-review` | always |
|
|
193
|
-
| Data review | `/hstack:data-review` | `surfaces` includes `db` |
|
|
194
|
-
| Implement | `/hstack:implement <change-id> <task-id>` | once per phase |
|
|
195
|
-
| Verify | `/hstack:verify` | always |
|
|
196
|
-
| Adversarial review | `/hstack:adversarial-review` | always — **fresh Claude Code session required** |
|
|
197
|
-
| Ship | `/hstack:ship` | always — read-only scorecard + PR description |
|
|
105
|
+
| When | Then |
|
|
106
|
+
| --- | --- |
|
|
107
|
+
| db, schema or RLS work | the Supabase skills, and `data-architecture.md` |
|
|
108
|
+
| the change is done | `/hstack-wrap` |
|
|
109
|
+
| the PR is merged | `/hstack-promote` |
|
|
110
|
+
| a sensitive surface is touched | `/hstack-adversarial-review`, in a fresh session |
|
|
111
|
+
| a bug a review missed | an entry in `review-miss.md` |
|
|
112
|
+
| a module's tests look thin | `/hstack-test-audit <module>` |
|
|
198
113
|
|
|
199
|
-
|
|
114
|
+
The nine Skills:
|
|
200
115
|
|
|
201
|
-
|
|
116
|
+
| Skill | What it is for |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| `/hstack-wrap` | The end of a change: runs `/review` and `/security-review`, audits test immutability, updates the living docs the diff invalidated, writes the PR description. |
|
|
119
|
+
| `/hstack-promote` | The release: pending production migrations, a smoke test on the unpromoted build, then promotion. Commands live in `infrastructure.md` § Deploy Pipeline. |
|
|
120
|
+
| `/hstack-commit` | The one Commitizen format humans and agents both write. |
|
|
121
|
+
| `/hstack-adversarial-review` | The deep pass on a sensitive surface, from a session that never saw the change being written. Findings land as a PR comment. |
|
|
122
|
+
| `/hstack-test-audit` | On demand, for one module: business rules against existing tests, the gaps named, the missing tests written. |
|
|
123
|
+
| `/hstack-data-architecture` | When the data layer really moves. |
|
|
124
|
+
| `/hstack-app-architecture` | When the application architecture really moves — the exposure map lives here. |
|
|
125
|
+
| `/hstack-adr-new` | A one-way door, drafted in the PR that implements it. |
|
|
126
|
+
| `/hstack-story` | The user story of a Notion feature. A product tool, never a gate on a change. |
|
|
127
|
+
|
|
128
|
+
Four subagents do the heavy reading behind them: `adversarial-reviewer`, `test-strategist`, `data-architect`, `app-architect`.
|
|
202
129
|
|
|
203
130
|
## Repository layout
|
|
204
131
|
|
|
@@ -206,65 +133,48 @@ After init the consuming repo has:
|
|
|
206
133
|
|
|
207
134
|
```
|
|
208
135
|
hstack/
|
|
209
|
-
config.yaml # repo-level configuration
|
|
210
136
|
KERNEL.md # the kernel (authority)
|
|
211
|
-
|
|
212
|
-
context/ #
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
adr/ #
|
|
222
|
-
tech-debt/ #
|
|
223
|
-
|
|
224
|
-
sessions/ # transient
|
|
225
|
-
promoted/ # durable
|
|
226
|
-
templates/ # canonical templates
|
|
227
|
-
discovery/ # three technique scripts (brainstorm, forcing-questions, project-brief)
|
|
228
|
-
kernel-fit/ # closed-loop drift detection findings
|
|
229
|
-
lints/ # pattern-based lint rules
|
|
230
|
-
scripts/ # validators, gate runners, telemetry
|
|
137
|
+
VERSION # installed framework version
|
|
138
|
+
context/ # the agent's memory between sessions
|
|
139
|
+
data-architecture.md # tenancy, entities, RLS, RAG
|
|
140
|
+
app-architecture.md # module map + exposure map, LLM call sites, surfaces
|
|
141
|
+
tech-stack.md # pinned versions, pinned on purpose
|
|
142
|
+
infrastructure.md # where things run, why the couplings, the gotchas
|
|
143
|
+
roadmap.md # Now / Next / Later — advisory, never a gate
|
|
144
|
+
invariants.md # the business rules a test names
|
|
145
|
+
review-miss.md # what a review missed, so the next one re-checks it
|
|
146
|
+
... # frozen and dated: threat-model, product-brief, vision, personas, incident-runbook
|
|
147
|
+
adr/ # one-way doors only
|
|
148
|
+
tech-debt/ # one file per item; deleted in the PR that fixes it
|
|
149
|
+
templates/ # the eight canonical templates
|
|
231
150
|
.claude/
|
|
232
|
-
skills/hstack-*/SKILL.md #
|
|
233
|
-
agents/ #
|
|
151
|
+
skills/hstack-*/SKILL.md # nine Skills
|
|
152
|
+
agents/ # four subagents
|
|
234
153
|
```
|
|
235
154
|
|
|
236
|
-
## Honesty clause
|
|
237
|
-
|
|
238
|
-
hstack v1 ships good engineering hygiene: spec discipline, scope-locked implementation, conversational interviews with confirmation gates, append-only ADRs and tech-debt, frontmatter-driven status. It does not by itself deliver SOC 2 / GDPR posture.
|
|
155
|
+
## Honesty clause
|
|
239
156
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
- **
|
|
243
|
-
- **
|
|
244
|
-
- **adversarial-review.md** — v1 fresh-session separation is honor-system, attested in frontmatter; v2 verifies via Claude Code session-id comparison at the CI gate.
|
|
245
|
-
|
|
246
|
-
The Skills frame their output to reflect this. v1 rationales never claim "verified by test." When the honest answer is "structured judgment based on the diff," the artifact says so.
|
|
247
|
-
|
|
248
|
-
The full v2 roadmap lives in the architecture document.
|
|
157
|
+
- **Reviews are LLM judgments, not evidence.** An empty findings list means the reviewer found nothing, not that nothing is there. CI is the only mechanical check in the loop.
|
|
158
|
+
- **Fresh-session separation is honor-system.** `/hstack-adversarial-review` states that the session never saw the implementation conversation; nothing verifies it.
|
|
159
|
+
- **The exposure map grades product severity, never security severity.** Every routable entry point is covered by the kernel's security checklist whatever the map says.
|
|
160
|
+
- **The light version gave things up on purpose**, and ADR-0015 names them: retroactive traceability of a change's reasoning beyond its PR, the status machinery that made artifacts queryable, and the per-change gates. The trade was made pre-PMF, where the dominant risk is never shipping.
|
|
249
161
|
|
|
250
162
|
## Reference
|
|
251
163
|
|
|
252
164
|
Authoritative, in the repo:
|
|
253
165
|
|
|
254
166
|
- [`template/KERNEL.md`](./template/KERNEL.md) — the kernel. Authority over every Skill, subagent, and template.
|
|
255
|
-
- [`template/templates/`](./template/templates/) — the canonical structure of every artifact type
|
|
256
|
-
- `
|
|
257
|
-
- `
|
|
167
|
+
- [`template/templates/`](./template/templates/) — the canonical structure of every artifact type.
|
|
168
|
+
- [`adr/ADR-0015-the-light-pivot.md`](./adr/ADR-0015-the-light-pivot.md) — why the pivot is subtractive, and what it costs.
|
|
169
|
+
- [`CHANGELOG.md`](./CHANGELOG.md) — the release history, including the full v0.16.0 lineage.
|
|
258
170
|
|
|
259
|
-
|
|
171
|
+
Historical companions, describing the frozen full version rather than `main`:
|
|
260
172
|
|
|
261
|
-
- [Architecture document](https://www.notion.so/360d6791656c813d955af822cb8814d1) — long-form companion to the
|
|
173
|
+
- [Architecture document](https://www.notion.so/360d6791656c813d955af822cb8814d1) — long-form companion to the pre-v1 kernel.
|
|
262
174
|
- [Adversarial review of the architecture](https://www.notion.so/361d6791656c81f78eb3c97ba4aecbb4) — the 21-finding pressure test that shaped the v1 / v2 split.
|
|
263
175
|
|
|
264
|
-
The former "template schemas and frontmatter contracts" page is no longer listed: it has diverged from the repo and is superseded by the templates directory and the validator registry (ADR-0013).
|
|
265
|
-
|
|
266
176
|
## Status
|
|
267
177
|
|
|
268
|
-
hstack v0.
|
|
178
|
+
hstack v0.17.0 — the kernel at ~1,700 words, nine Skills, four subagents, eight templates. The `v0.16.0` tag holds the complete version: ~34 Skills, ~16 subagents, the validator, the merge gates, the coord and telemetry trees.
|
|
269
179
|
|
|
270
|
-
|
|
180
|
+
Next milestone: the first real use of the light version, upgrading moso-app from 0.7.1 to 0.17.
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.17.0
|
package/dist/commands/doctor.js
CHANGED
|
@@ -169,19 +169,29 @@ export async function runDoctor(opts) {
|
|
|
169
169
|
.join("\n"),
|
|
170
170
|
});
|
|
171
171
|
}
|
|
172
|
-
//
|
|
173
|
-
//
|
|
174
|
-
//
|
|
175
|
-
const hookActions = actions.filter((a) => a.kind === "
|
|
172
|
+
// Leftovers from before v0.17: the coord hooks in .claude/settings.json and
|
|
173
|
+
// the framework paths that left FRAMEWORK_PATHS with their machinery. Both
|
|
174
|
+
// survive pruneNoopActions only while they are still on disk.
|
|
175
|
+
const hookActions = actions.filter((a) => a.kind === "remove-coord-hooks");
|
|
176
176
|
for (const a of hookActions) {
|
|
177
177
|
const m = a;
|
|
178
178
|
const state = await coordHooksState(m.file);
|
|
179
179
|
findings.push({
|
|
180
|
-
level: "error",
|
|
181
|
-
category: "hooks",
|
|
180
|
+
level: state === "invalid" ? "error" : "warn",
|
|
181
|
+
category: "coord-hooks",
|
|
182
182
|
message: state === "invalid"
|
|
183
|
-
? `.claude/settings.json is not a parseable JSON settings object — coord notification
|
|
184
|
-
: `.claude/settings.json
|
|
183
|
+
? `.claude/settings.json is not a parseable JSON settings object — hstack will not touch it; remove the coord notification hook entries by hand (ADR-0007, removed in v0.17)`
|
|
184
|
+
: `.claude/settings.json still carries the coord notification hooks (ADR-0007, removed in v0.17) — fix: \`npx hstack update\``,
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
const legacyActions = actions.filter((a) => a.kind === "remove-legacy-paths");
|
|
188
|
+
for (const a of legacyActions) {
|
|
189
|
+
const m = a;
|
|
190
|
+
findings.push({
|
|
191
|
+
level: "warn",
|
|
192
|
+
category: "legacy-paths",
|
|
193
|
+
message: `${m.relpaths.length} pre-v0.17 framework path(s) still under hstack/ — fix: \`npx hstack update\``,
|
|
194
|
+
detail: opts.verbose ? m.relpaths.map((r) => ` hstack/${r}`).join("\n") : undefined,
|
|
185
195
|
});
|
|
186
196
|
}
|
|
187
197
|
// Render
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -79,9 +79,13 @@ export async function runInit(opts) {
|
|
|
79
79
|
console.log("Next steps:");
|
|
80
80
|
console.log(" 1. Review the changes: " + pc.cyan("git status"));
|
|
81
81
|
console.log(" 2. Commit: " + pc.cyan("git add . && git commit -m 'chore: install hstack'"));
|
|
82
|
-
console.log(" 3. Open Claude Code in this repo
|
|
83
|
-
|
|
84
|
-
"
|
|
82
|
+
console.log(" 3. Open Claude Code in this repo. The kernel loads itself; write the living docs\n" +
|
|
83
|
+
" under hstack/context/ when there is something true to write in them —\n" +
|
|
84
|
+
" " +
|
|
85
|
+
pc.cyan("/hstack-data-architecture") +
|
|
86
|
+
" and " +
|
|
87
|
+
pc.cyan("/hstack-app-architecture") +
|
|
88
|
+
" do the two big ones.");
|
|
85
89
|
return 0;
|
|
86
90
|
}
|
|
87
91
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/update.js
CHANGED
|
@@ -52,13 +52,16 @@ export async function runUpdate(opts) {
|
|
|
52
52
|
}
|
|
53
53
|
// 7. Render plan
|
|
54
54
|
const summary = planSummary(actions);
|
|
55
|
+
const legacy = actions.find((a) => a.kind === "remove-legacy-paths");
|
|
55
56
|
console.log(pc.bold(`hstack update: v${installedVersion} -> v${newVersion}`));
|
|
56
57
|
console.log("");
|
|
57
|
-
renderSummary(summary);
|
|
58
|
+
renderSummary(summary, legacy?.relpaths.length ?? 0);
|
|
58
59
|
console.log("");
|
|
59
60
|
if (opts.verbose ||
|
|
60
61
|
summary["remove-file"] ||
|
|
61
62
|
summary["remove-symlink"] ||
|
|
63
|
+
summary["remove-legacy-paths"] ||
|
|
64
|
+
summary["remove-coord-hooks"] ||
|
|
62
65
|
summary["migrate-kernel-filename"]) {
|
|
63
66
|
console.log(pc.dim("Detail:"));
|
|
64
67
|
console.log(filterDetailedActions(actions, opts.verbose ?? false, gitRoot));
|
|
@@ -95,7 +98,7 @@ export async function runUpdate(opts) {
|
|
|
95
98
|
console.log("Review with " + pc.cyan("git diff") + " and commit when satisfied.");
|
|
96
99
|
return 0;
|
|
97
100
|
}
|
|
98
|
-
function renderSummary(summary) {
|
|
101
|
+
function renderSummary(summary, legacyPathCount) {
|
|
99
102
|
const fmt = (label, n, color) => n > 0 ? ` ${color(`${n} ${label}`)}` : null;
|
|
100
103
|
const lines = [
|
|
101
104
|
fmt("kernel rename migration, CLAUDE.md -> KERNEL.md (ADR-0010)", summary["migrate-kernel-filename"] ?? 0, pc.cyan),
|
|
@@ -104,6 +107,8 @@ function renderSummary(summary) {
|
|
|
104
107
|
fmt("framework file(s) removed", summary["remove-file"] ?? 0, pc.red),
|
|
105
108
|
fmt("symlink(s) added", summary["symlink"] ?? 0, pc.green),
|
|
106
109
|
fmt("symlink(s) removed", summary["remove-symlink"] ?? 0, pc.red),
|
|
110
|
+
fmt("pre-v0.17 path(s) removed", legacyPathCount, pc.red),
|
|
111
|
+
fmt("settings.json cleanup, coord notification hooks removed (ADR-0007)", summary["remove-coord-hooks"] ?? 0, pc.cyan),
|
|
107
112
|
].filter(Boolean);
|
|
108
113
|
if (lines.length === 0) {
|
|
109
114
|
console.log(pc.dim(" (no file-level changes; idempotent checks only)"));
|
|
@@ -118,6 +123,8 @@ function filterDetailedActions(actions, verbose, consumerRoot) {
|
|
|
118
123
|
? true
|
|
119
124
|
: a.kind === "remove-file" ||
|
|
120
125
|
a.kind === "remove-symlink" ||
|
|
126
|
+
a.kind === "remove-legacy-paths" ||
|
|
127
|
+
a.kind === "remove-coord-hooks" ||
|
|
121
128
|
a.kind === "migrate-kernel-filename");
|
|
122
129
|
return renderPlan(interesting, consumerRoot);
|
|
123
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|