cohorte 1.1.0 → 1.1.1
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 +9 -0
- package/core/commands/build.md +5 -2
- package/core/commands/doctor.md +4 -1
- package/core/commands/fix.md +1 -1
- package/core/commands/review.md +2 -2
- package/core/commands/smoke.md +2 -1
- package/package.json +1 -1
- package/profile/SCHEMA.md +5 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
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.1.1 — 2026-07-29
|
|
7
|
+
|
|
8
|
+
- **Fix: pipeline metrics survive worktree teardown.** With `isolation.enabled` the lead session
|
|
9
|
+
runs inside the feature worktree, so metrics lines landed in the worktree's `.claude/` and were
|
|
10
|
+
deleted with it — defeating their purpose (cross-feature evidence for surface splits, dashboard
|
|
11
|
+
history). All phases now append to the **main checkout's** `.claude/pipeline-metrics.jsonl`,
|
|
12
|
+
resolved from anywhere via `git rev-parse --git-common-dir`; `/doctor` flags a stray metrics file
|
|
13
|
+
inside a worktree as a stale-core sign.
|
|
14
|
+
|
|
6
15
|
## 1.1.0 — 2026-07-29
|
|
7
16
|
|
|
8
17
|
> **The token-economy release.** A full audit of the core (40 verified fixes) cuts the pipeline's
|
package/core/commands/build.md
CHANGED
|
@@ -93,8 +93,11 @@ tree. For each surface in `surfaces`:
|
|
|
93
93
|
|
|
94
94
|
When all return, flag any contract mismatch or failing test from the handoffs; otherwise print one
|
|
95
95
|
status line per surface (`<key> · tests pass/fail · <n> TODOs`) — do not restate handoff content.
|
|
96
|
-
Append **ONE line for the batch** to `.claude/pipeline-metrics.jsonl`
|
|
97
|
-
|
|
96
|
+
Append **ONE line for the batch** to the **main checkout's** `.claude/pipeline-metrics.jsonl` —
|
|
97
|
+
NOT the worktree's, which dies at teardown while metrics must accumulate across features. Resolve
|
|
98
|
+
it from anywhere: `$(dirname "$(git rev-parse --git-common-dir)")/.claude/pipeline-metrics.jsonl`
|
|
99
|
+
(in the main checkout this resolves to itself). Create it if absent; it must be gitignored.
|
|
100
|
+
Compute the elapsed time in the same Bash call
|
|
98
101
|
(`echo "{...\"seconds\":$(($(date +%s)-<start epoch from §2>)),...}" >> …`):
|
|
99
102
|
`{"ts":"<ISO date>","feature":"$ARGUMENTS","phase":"build","seconds":<wall-clock>,"surfaces":{"<key>":"ok|error",…}}`
|
|
100
103
|
— this is the evidence SCHEMA.md §Specialization asks for before splitting a surface.
|
package/core/commands/doctor.md
CHANGED
|
@@ -55,7 +55,10 @@ fix only with the human's go-ahead (or hand them the command).
|
|
|
55
55
|
against stale code ⇒ suggest rebasing it.
|
|
56
56
|
7. **Specs & metrics.** Every `specs/*.md` front-matter `status` is a valid stage; `shipped` specs
|
|
57
57
|
with a live worktree flagged (see 6). `.claude/pipeline-metrics.jsonl` and `specs/reports/` (the
|
|
58
|
-
`/review`·`/smoke` report buffer that lets a `/fix` survive a `/clear`) are gitignored.
|
|
58
|
+
`/review`·`/smoke` report buffer that lets a `/fix` survive a `/clear`) are gitignored. Metrics
|
|
59
|
+
belong to the **main checkout** — a `pipeline-metrics.jsonl` inside a live feature worktree is a
|
|
60
|
+
stale-core sign (its lines die at teardown) ⇒ suggest appending its lines to the main checkout's
|
|
61
|
+
file and deleting the stray.
|
|
59
62
|
|
|
60
63
|
## Report
|
|
61
64
|
|
package/core/commands/fix.md
CHANGED
|
@@ -60,7 +60,7 @@ When the agents return:
|
|
|
60
60
|
re-reads each loop. Keep any round with ≥1 still-open `- [ ]` item fully expanded (§2's skip logic
|
|
61
61
|
needs those checkboxes).
|
|
62
62
|
- Print one status line per surface (`<key> · items fixed <n>/<m> · tests pass/fail`) — do not restate
|
|
63
|
-
handoff content — and append ONE metrics line for the batch to
|
|
63
|
+
handoff content — and append ONE metrics line for the batch to `pipeline-metrics.jsonl`
|
|
64
64
|
(see `/build` §4, `phase: "fix"`).
|
|
65
65
|
- Tell the human: re-run `/smoke` if the failures were runtime ones, and `/review $ARGUMENTS` for the
|
|
66
66
|
re-verdict — the re-review is what *verifies* the ticked items actually hold (a regression simply
|
package/core/commands/review.md
CHANGED
|
@@ -56,8 +56,8 @@ metrics line needs it.
|
|
|
56
56
|
|
|
57
57
|
Merge the returned reports into **one** REVIEW REPORT (same template): findings concatenated and
|
|
58
58
|
re-ordered by severity, counts summed, duplicates collapsed, verdict = the worst returned
|
|
59
|
-
(`BLOCK` > `REVISE` > `SHIP`). Append ONE metrics line for the batch to
|
|
60
|
-
(
|
|
59
|
+
(`BLOCK` > `REVISE` > `SHIP`). Append ONE metrics line for the batch to `pipeline-metrics.jsonl`
|
|
60
|
+
(main-checkout path + rules in `/build` §4): `{"ts":"<ISO>","feature":"$ARGUMENTS","phase":"review","seconds":<wall-clock>,"surfaces":{"<key>":"<verdict>:<finding count>",…}}`.
|
|
61
61
|
**Stage the full report to `specs/reports/$ARGUMENTS.md`** (overwrite) — a gitignored buffer so a
|
|
62
62
|
`/fix` after a `/clear` can still read the findings; the `specs/reports/` subfolder is skipped by the
|
|
63
63
|
non-recursive `specs/*.md` glob, so it's never mistaken for a spec (no phantom card, no bogus stage).
|
package/core/commands/smoke.md
CHANGED
|
@@ -33,7 +33,8 @@ human; that's expected.
|
|
|
33
33
|
## 3. Relay the verdict
|
|
34
34
|
|
|
35
35
|
- Print the agent's return as-is (verdict + ❌ lines + report path) — it is already minimal.
|
|
36
|
-
- Append ONE metrics line to
|
|
36
|
+
- Append ONE metrics line to `pipeline-metrics.jsonl` (main-checkout path + rules in `/build` §4,
|
|
37
|
+
`phase: "smoke"`).
|
|
37
38
|
- **PASS** → tell the human to run `/review $ARGUMENTS`. **FAIL** → the failures are findings: feed
|
|
38
39
|
them to `/fix $ARGUMENTS`, re-run `/smoke` after. Either way the report is on disk —
|
|
39
40
|
**recommend a `/clear`** before the next command.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cohorte",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
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"
|
package/profile/SCHEMA.md
CHANGED
|
@@ -155,10 +155,12 @@ the frozen contract as the only cross-surface channel**. So specialization means
|
|
|
155
155
|
|
|
156
156
|
Coarse first, specialize on evidence: start with one `frontend` / `backend` surface each; split only a
|
|
157
157
|
surface that's proven slow and cleanly separable. The evidence lives in
|
|
158
|
-
`.claude/pipeline-metrics.jsonl` (gitignored) — one JSONL line per phase batch
|
|
158
|
+
the **main checkout's** `.claude/pipeline-metrics.jsonl` (gitignored) — one JSONL line per phase batch
|
|
159
159
|
(`ts`/`feature`/`phase`/`seconds`/`surfaces:{key: result}`), appended by `/build`, `/review`, `/fix`
|
|
160
|
-
and `/smoke`.
|
|
161
|
-
|
|
160
|
+
and `/smoke`. Always the main checkout, never the feature worktree (which dies at teardown while
|
|
161
|
+
metrics must accumulate across features) — resolve from anywhere with
|
|
162
|
+
`$(dirname "$(git rev-parse --git-common-dir)")/.claude/pipeline-metrics.jsonl`. Read it before
|
|
163
|
+
proposing a split: split the surface that actually dominates wall-clock, not the one that feels big.
|
|
162
164
|
|
|
163
165
|
## Measuring cost — what's slow vs what's expensive
|
|
164
166
|
|