cohorte 1.2.4 → 1.2.6

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 CHANGED
@@ -3,6 +3,23 @@
3
3
  Entries are shown by `/update-pipeline` ("What's new") after a core refresh. Keep them short,
4
4
  user-facing, most recent first. One `## <version> — <YYYY-MM-DD>` section per release.
5
5
 
6
+ ## 1.2.6 — 2026-07-30
7
+
8
+ - **`npx cohorte install` never installed the `smoke` agent.** It copied only `review.md` and
9
+ `release.md`, so `/smoke` was there but the agent it dispatches was not — the run failed
10
+ saying `/smoke` is not installed. The shell installers always copied it; only the npm port
11
+ drifted. It now copies every non-template agent in `core/agents/`, so nothing to keep in sync.
12
+ Fix an affected install by re-running `npx cohorte install --global` (or `install --repo`).
13
+
14
+ ## 1.2.5 — 2026-07-29
15
+
16
+ - **`.claude/pipeline.json`'s `core_version` never updated on global installs.** The installer
17
+ bumps it in bundled mode, but a global core is shared — it cannot know which repos point at
18
+ it, so nothing bumped the field and it drifted forever. Repos running a current core were
19
+ still claiming `1.0.0`. `/update-pipeline` now syncs the pointer in both modes.
20
+ - `/doctor` no longer reports that drift as a broken install: a global-mode pointer lagging the
21
+ VERSION file is ⚠️ with the one-command fix, not ❌. The core was never the problem.
22
+
6
23
  ## 1.2.4 — 2026-07-29
7
24
 
8
25
  > **If you installed with `npx cohorte`, this is the release that makes 1.2.3 actually
package/bin/cli.js CHANGED
@@ -156,8 +156,15 @@ function scrubTddGate() {
156
156
  // the fixed (non-rendered) agents: the dev review/release pipeline agents
157
157
  function copyFixedAgents() {
158
158
  fs.mkdirSync(path.join(dest, 'agents'), { recursive: true });
159
- for (const f of ['review.md', 'release.md']) {
160
- fs.copyFileSync(path.join(src, 'core', 'agents', f), path.join(dest, 'agents', f));
159
+ // Every agent in core/agents/ EXCEPT the *.template.md ones, which /init-pipeline renders
160
+ // per-surface. Until 1.2.6 this was a hardcoded ['review.md', 'release.md'] that never grew
161
+ // the `smoke.md` the shell installers copy, so `npx cohorte install` shipped the /smoke
162
+ // command with no `smoke` agent to dispatch — the run reported /smoke as not installed.
163
+ // Reading the directory needs no list to keep in sync with the shell installers.
164
+ const agentDir = path.join(src, 'core', 'agents');
165
+ for (const f of fs.readdirSync(agentDir)) {
166
+ if (!f.endsWith('.md') || f.endsWith('.template.md')) continue;
167
+ fs.copyFileSync(path.join(agentDir, f), path.join(dest, 'agents', f));
161
168
  }
162
169
  // 0.1.19 split the bi-mode questionnaire-researcher into research-agent + questionnaire-architect;
163
170
  // copy-over never deletes, so scrub the retired agent lest a dead subagent_type linger.
@@ -14,8 +14,10 @@ fix only with the human's go-ahead (or hand them the command).
14
14
 
15
15
  1. **Core & pointer.** A core exists (`~/.claude/pipeline/VERSION` global, and/or
16
16
  `.claude/pipeline/VERSION` bundled); `.claude/pipeline.json` names a mode + `core_version`
17
- coherent with the VERSION file. Compare against `npm view cohorte version` behind
18
- suggest `/update-pipeline`. Read `pipeline/CHANGELOG.md` for what they're missing. The router
17
+ coherent with the VERSION file. A **global**-mode pointer lagging the VERSION file is ⚠️, not ❌:
18
+ nothing bumped that field before 1.2.5, so the core itself is fine and only the pointer is stale
19
+ ⇒ fix by running `/update-pipeline` (§3 syncs it now), or by editing the one field. Compare
20
+ against `npm view cohorte version` — behind ⇒ suggest `/update-pipeline`. Read `pipeline/CHANGELOG.md` for what they're missing. The router
19
21
  commands' step files are present — `templates/steps/init-pipeline/` non-empty (a router whose
20
22
  `templates/steps/<cmd>/` dir is missing is a partial/stale install ⇒
21
23
  re-run install/update). **Shipped scripts present and executable** in `<core>/pipeline/scripts/`:
@@ -51,7 +51,14 @@ the human's choices — so `/init-pipeline` never needs re-running for an upgrad
51
51
  ## 3. Report old → new
52
52
 
53
53
  Re-read the VERSION file(s) and print `old → new`. If unchanged, say the core was already up to date.
54
- For a bundled repo, note that `.claude/pipeline.json`'s `core_version` was bumped and should be committed.
54
+
55
+ **Sync the pointer — in BOTH modes.** If this repo has a `.claude/pipeline.json` whose `core_version`
56
+ differs from the core you just installed, rewrite that one field (leave every other field untouched)
57
+ and tell the human to commit it. In **bundled** mode the installer already did it; in **global** mode
58
+ **nothing does** — the installer refreshes one shared core and cannot know which repos point at it,
59
+ so before 1.2.5 the field simply drifted forever (a repo on a current core still claiming `1.0.0`).
60
+ `/doctor` check 1 requires the pointer to be coherent with the VERSION file, so a drifted field reads
61
+ as a broken install when nothing is broken.
55
62
 
56
63
  Then print **What's new**: read the installed `<core>/pipeline/CHANGELOG.md` and show the entries
57
64
  between the old and new versions (most recent first). File absent ⇒ the old core predates 0.1.14 —
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cohorte",
3
- "version": "1.2.4",
3
+ "version": "1.2.6",
4
4
  "description": "Portable, stack-agnostic multi-agent development pipeline for Claude Code — install the core, run /init-pipeline, and it adapts to your project's stack.",
5
5
  "bin": {
6
6
  "cohorte": "bin/cli.js"