@jentrix/plugin-claude 0.6.0 → 0.6.2

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.
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "jentrix",
3
3
  "description": "Connect this Claude Code session to a Jentrix project: /jentrix-connect binds the current session (trusted lifecycle hooks supply the session id), /jentrix-align anchors it to a task with an accountable owner, /jentrix-plan, /jentrix-checkpoint, /jentrix-review, /jentrix-status and /jentrix-end wrap the same session operations. Business logic lives in the Jentrix CLI — removing this plugin leaves `jentrix session connect` as the universal fallback.",
4
- "version": "0.6.0"
4
+ "version": "0.6.2"
5
5
  }
@@ -47,6 +47,26 @@ wizard; a Project is an optional task label and is never part of it).
47
47
  `/jentrix-end` moves it to In review when the work is genuinely finished —
48
48
  the terminal move is the operator's Accept, never yours.
49
49
 
50
+ 5. **Finish by reading the card**, and relay what comes back:
51
+
52
+ ```
53
+ jentrix task context --task <that task>
54
+ ```
55
+
56
+ One call returns the description, the links BOTH ways with their titles,
57
+ the subtasks, the latest artifact of each type with its id, the last five
58
+ comments, and **Related evidence** — what OTHER work in this workspace
59
+ already said about this card (learnings, decisions, findings, reports
60
+ ranked by similarity; the align output printed the same block). Read it
61
+ before you touch any code: a linked card is usually where the prior
62
+ round's reasoning lives, its artifacts are the context you would otherwise
63
+ reconstruct from scratch, and a related learning is a mistake you do not
64
+ have to make twice — `jentrix artifact get --artifact-id <id>` reads one in
65
+ full. If it prints `no links · no artifacts · no comments · no related
66
+ evidence`, the card has nothing to give and you stop looking — that single
67
+ line is the answer, not an invitation to run `task get`, `task search` and
68
+ `comment list` to confirm it.
69
+
50
70
  Notes for you (the assistant):
51
71
 
52
72
  - Do NOT pass `--provider-session` — the CLI reads the current session id and
@@ -45,27 +45,63 @@ the plan, when a long investigation resolves, or before handing the work over.
45
45
  2. Do not summarize the transcript. Do not restate the prompt. Do not include
46
46
  anything you have not verified this session — a checkpoint that carries a
47
47
  guess as a fact poisons every session that reads it.
48
- 3. Push it:
48
+ 3. **If the checkpoint claims a gate, run the gate first.** A checkpoint that
49
+ says "typecheck green" without an attested LOG behind it is a claim, and
50
+ `jentrix session end` now REFUSES a close whose report claims a gate family
51
+ (`typecheck` · `lint` · `test` · `e2e`) with no attested LOG of that same
52
+ family. So, before writing the body: for each gate you are about to name,
53
+ check whether this session already has an attested LOG for it, and if not,
54
+ run it —
55
+
56
+ ```
57
+ jentrix push log --from-cmd "<the gate command>"
58
+ ```
59
+
60
+ — then cite the returned artifact id in the checkpoint beside the claim.
61
+ The command exits with the GATE's own code, so a red gate stays red and you
62
+ report it red. If you are not going to run it, do not claim it: say what was
63
+ not run and why.
64
+
65
+ 4. **`## Code contact`** — the files the objective named, and which of them
66
+ this session actually opened:
67
+
68
+ ```
69
+ jentrix session contact --paths <the files the PROMPT/GOAL named>
70
+ ```
71
+
72
+ List the never-opened ones under that heading, verbatim. This is the check
73
+ that catches the expensive failure: work built on a file nobody read. If the
74
+ answer says no local activity skeleton exists, say THAT — "never opened" by
75
+ absence is not the same claim as "never opened" by evidence.
76
+
77
+ 5. Push it — as an ARTIFACT, never as a comment. A "Checkpoint" posted as a
78
+ comment is not a checkpoint: the summary counts REPORTs titled
79
+ `Checkpoint — …` and prints `checkpoints: N`, and a comment counts zero.
49
80
  - `jentrix push learning --title "Checkpoint — <topic>"` when it is durable
50
81
  knowledge worth carrying past this work;
51
82
  - `jentrix push report --title "Checkpoint — <topic>"` when it is the
52
83
  state of THIS work.
53
84
  Content goes on stdin.
54
- 4. Relay the returned `artifactId` to the operator, and say which kind you
85
+ 6. Relay the returned `artifactId` to the operator, and say which kind you
55
86
  chose and why.
56
- 5. If the session's task status no longer matches reality, fix it now:
87
+ 7. If the session's task status no longer matches reality, fix it now:
57
88
  `jentrix column list --board <boardId>` then
58
89
  `jentrix task move --task <id> --to-column-id <id>`. Only the columns the
59
90
  board actually has.
60
91
 
61
92
  **Cadence duty (evidence floor).** Checkpoint after EVERY commit, not only at
62
- the end: push the `decision` (with `--basis`) the commit rested on the moment
63
- it lands, and run its gates through `jentrix push log --from-cmd "<command>"`
64
- so the exit code and output tail are recorded as a LOG. Record quality must
65
- track the work, not end-of-session diligence `jentrix session end` enforces
66
- this (it refuses on commits with no decision record and on sectioned reports
67
- with no typed artifacts; a deliberate exception is an ordinary
68
- `jentrix push gap`).
93
+ the end: push the `decision` the commit rested on the moment it lands — with
94
+ `--basis <artifact-id-or-url>`, or `--no-basis "<reason>"` when it rested on
95
+ your own reading and there is nothing filed to cite (the command REFUSES
96
+ without one of the two) and run its gates through `jentrix push log
97
+ --from-cmd "<command>"` so the exit code and output tail are recorded as a LOG.
98
+ Record quality must track the work, not end-of-session diligence — `jentrix
99
+ session end` enforces this: it refuses on commits with no decision record that
100
+ names its basis, on sectioned reports with no typed artifacts, and on a gate
101
+ claimed in prose with no attested LOG of that gate family. A deliberate
102
+ exception is an ordinary `jentrix push gap` — but a gap that names a file in
103
+ the checkout this session never opened is itself refused, because that is not a
104
+ limitation, it is an unread file.
69
105
 
70
106
  Note for the operator: this records the distillation. On a session aligned
71
107
  with `--capture`, the raw pre-compaction range is preserved separately and
@@ -20,15 +20,26 @@ pipeline), the typed artifacts ARE the record — push them before closing:
20
20
  - Push the final report: write a concise session report (what was done,
21
21
  what changed, what's next) and run
22
22
  `jentrix push report --title "<short title>"` with the content on stdin.
23
- - Push any decisions made this session that were not already pushed:
24
- `jentrix push decision --basis <artifact-id|url> …` (one per decision;
25
- `--basis` is repeatable and names what the decision rested on file the
26
- context first so the ref resolves).
23
+ - Push any decisions made this session that were not already pushed. **Ask
24
+ what the decision rested on BEFORE you write the memo** — the basis is
25
+ not a field to fill in afterwards, it is the thing that makes the memo a
26
+ decision rather than an assertion. For each one, answer "what did this
27
+ rest on?" first, then push:
28
+ `jentrix push decision --basis <artifact-id|url> …` (repeatable; file the
29
+ context first so the ref resolves), or, when it genuinely rested on your
30
+ own reading of the code and there is nothing filed to cite,
31
+ `jentrix push decision --no-basis "<the reason>"`. The command REFUSES
32
+ without one of the two, and a memo with neither would not have counted
33
+ toward E2/E3 anyway.
27
34
  - **Gap sweep**: every promised-but-undone item becomes a
28
35
  `jentrix push gap` — one per gap, title stating the claim ("Windows hook
29
36
  path untested"). A session with no output MUST have at least one gap
30
37
  explaining why. Push `jentrix push issue` for anything found broken and
31
- not yet recorded.
38
+ not yet recorded. A gap that names a file in this checkout the session
39
+ never OPENED is refused with the path and the remedy: read it or drop the
40
+ path. That refusal is not an obstacle to route around — the one-line read
41
+ that satisfies it is the read that would have told you whether the gap is
42
+ real.
32
43
  - Push any durable lessons: `jentrix push learning …`.
33
44
  - Do NOT push a diff by hand. When HEAD moved, `jentrix session end`
34
45
  generates the real `git log --patch` for the session's range itself and
@@ -82,18 +93,28 @@ pipeline), the typed artifacts ARE the record — push them before closing:
82
93
  say so if the user seems to expect it.
83
94
 
84
95
  **Evidence floor.** `jentrix session end` enforces fixed checks and will
85
- REFUSE to close when they are unmet: E1 — HEAD moved but no attested DIFF
86
- (the CLI pushes the real patch itself; just re-run `session end` from the
87
- aligned checkout); E2 commits with no `jentrix push decision` and no
88
- declared-deviation `jentrix push gap`; E3 a REPORT carrying `## Learnings`
89
- / `## Gaps` / `## Decisions` sections while the session has zero
90
- corresponding typed artifacts (split them into `push learning|gap|decision`,
91
- never one blob). Comply by pushing the named evidence and retrying, or
92
- deviate honestly with a `gap` `--acknowledge-evidence-gaps` closes anyway
93
- and stamps each unmet check MISSING into Review readiness. Run every gate
94
- through `jentrix push log --from-cmd "<command>"` (it records the exit code
95
- and output tail as a LOG and exits with the command's own code), so "tests
96
- green" claims carry evidence instead of tripping the E4 advisory.
96
+ REFUSE to close when they are unmet:
97
+
98
+ - **E1**HEAD moved but no attested DIFF (the CLI pushes the real patch
99
+ itself; just re-run `session end` from the aligned checkout).
100
+ - **E2** commits with no `jentrix push decision` **that names its basis**,
101
+ and no declared-deviation `jentrix push gap`. Basis-less memos do not count,
102
+ however many are pushed: the count was never the evidence.
103
+ - **E3** a REPORT carrying `## Learnings` / `## Gaps` / `## Decisions`
104
+ sections while the session has zero corresponding typed artifacts (split
105
+ them into `push learning|gap|decision`, never one blob).
106
+ - **E4** a REPORT that CLAIMS a gate refuses the close unless the session
107
+ has an attested LOG (`jentrix push log --from-cmd`) whose command names the
108
+ **same gate family**: `typecheck` · `lint` · `test` · `e2e`. Family, not
109
+ exact command — "tests green" is covered by `pnpm test:mvp` and is NOT
110
+ covered by `pnpm lint`. A pasted LOG covers nothing; the CLI warns
111
+ `UNATTESTED LOG` when you push one, and the summary marks it.
112
+
113
+ Comply by pushing the named evidence and retrying, or deviate honestly with a
114
+ `gap`. `--acknowledge-evidence-gaps` closes anyway and stamps each unmet check
115
+ MISSING into Review readiness — reach for it when the gap is real, never to get
116
+ past a check you could satisfy by running the gate. A refusal leaves the
117
+ session AND its capture host running, so the comply work is still recorded.
97
118
 
98
119
  ## Shared boundaries
99
120
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jentrix/plugin-claude",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "The official Jentrix plugin for Claude Code: connected-session commands and trusted lifecycle hooks, materialized by the Jentrix CLI (jentrix plugin install claude).",
5
5
  "keywords": [
6
6
  "jentrix",