@jentrix/plugin-codex 0.3.3 → 0.3.4
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/package.json +8 -1
- package/plugins/jentrix/.codex-plugin/plugin.json +1 -1
- package/plugins/jentrix/skills/jentrix-align/SKILL.md +12 -0
- package/plugins/jentrix/skills/jentrix-checkpoint/SKILL.md +29 -7
- package/plugins/jentrix/skills/jentrix-connect/SKILL.md +12 -0
- package/plugins/jentrix/skills/jentrix-end/SKILL.md +68 -8
- package/plugins/jentrix/skills/jentrix-plan/SKILL.md +38 -6
- package/plugins/jentrix/skills/jentrix-review/SKILL.md +12 -0
- package/plugins/jentrix/skills/jentrix-status/SKILL.md +12 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jentrix/plugin-codex",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "The official Jentrix plugin for Codex: connected-session skills and trusted lifecycle hooks, materialized by the Jentrix CLI (jentrix plugin install codex).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jentrix",
|
|
@@ -28,5 +28,12 @@
|
|
|
28
28
|
"publishConfig": {
|
|
29
29
|
"access": "public"
|
|
30
30
|
},
|
|
31
|
+
"jentrix": {
|
|
32
|
+
"host": "codex",
|
|
33
|
+
"behaviorRevision": "2026.09.13-3",
|
|
34
|
+
"semanticSchemaRevision": 1,
|
|
35
|
+
"resourceDigest": "e4cca6c3fc9c8c93a9fd39350c7a9f966e6112514d7649dd04f64f90ed1fceff",
|
|
36
|
+
"cliRange": ">=0.11.0 <1.0.0"
|
|
37
|
+
},
|
|
31
38
|
"scripts": {}
|
|
32
39
|
}
|
|
@@ -124,3 +124,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
124
124
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
125
125
|
completion belong to the operator. Typed artifacts and completed verification
|
|
126
126
|
commands provide evidence; a report alone does not prove work is finished.
|
|
127
|
+
|
|
128
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
129
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
130
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
131
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
132
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
133
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
134
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
135
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
136
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
137
|
+
closes on.
|
|
138
|
+
What the host records on its own is provisional and says so.
|
|
@@ -86,14 +86,24 @@ the plan, when a long investigation resolves, or before handing the work over.
|
|
|
86
86
|
answer says no local activity skeleton exists, say THAT — "never opened" by
|
|
87
87
|
absence is not the same claim as "never opened" by evidence.
|
|
88
88
|
|
|
89
|
-
5. Push it — as an ARTIFACT, never as a comment
|
|
90
|
-
comment is not a checkpoint
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
5. Push it — as an ARTIFACT, never as a comment, and **with the boundary
|
|
90
|
+
named**. A "Checkpoint" posted as a comment is not a checkpoint, and a
|
|
91
|
+
report merely TITLED "Checkpoint" is indexed by its title, which is a
|
|
92
|
+
guess; `--checkpoint <boundary>` writes the semantic header the summary
|
|
93
|
+
indexes (`checkpoints: N`) and answers the request the `PreCompact` hook
|
|
94
|
+
left in the spool. Boundaries: `compaction` · `handoff` · `intent-change`
|
|
95
|
+
· `task-switch` · `investigation-resolved` · `manual`.
|
|
96
|
+
- `jentrix push learning --checkpoint <boundary> --title "Checkpoint — <topic>"`
|
|
97
|
+
when it is durable knowledge worth carrying past this work;
|
|
98
|
+
- `jentrix push report --checkpoint <boundary> --intent "<current intent>"
|
|
99
|
+
--next "<next action>" --title "Checkpoint — <topic>"` when it is the
|
|
95
100
|
state of THIS work.
|
|
96
|
-
Content goes on stdin.
|
|
101
|
+
Content goes on stdin. When `jentrix session status` says
|
|
102
|
+
`Checkpoint requested: compaction …` and the compaction changed nothing
|
|
103
|
+
worth writing, say so instead of writing filler:
|
|
104
|
+
`jentrix push report --checkpoint none-occurred --title "Checkpoint — nothing changed"`
|
|
105
|
+
with a one-line body. A hook cannot distil (no model turn); leaving the
|
|
106
|
+
request unanswered is what makes `session end` print it at the close.
|
|
97
107
|
6. Relay the returned `artifactId` to the operator, and say which kind you
|
|
98
108
|
chose and why.
|
|
99
109
|
7. If the session's task status no longer matches reality, fix it now:
|
|
@@ -148,3 +158,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
148
158
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
149
159
|
completion belong to the operator. Typed artifacts and completed verification
|
|
150
160
|
commands provide evidence; a report alone does not prove work is finished.
|
|
161
|
+
|
|
162
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
163
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
164
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
165
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
166
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
167
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
168
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
169
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
170
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
171
|
+
closes on.
|
|
172
|
+
What the host records on its own is provisional and says so.
|
|
@@ -74,3 +74,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
74
74
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
75
75
|
completion belong to the operator. Typed artifacts and completed verification
|
|
76
76
|
commands provide evidence; a report alone does not prove work is finished.
|
|
77
|
+
|
|
78
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
79
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
80
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
81
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
82
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
83
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
84
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
85
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
86
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
87
|
+
closes on.
|
|
88
|
+
What the host records on its own is provisional and says so.
|
|
@@ -31,7 +31,20 @@ pipeline), the typed artifacts ARE the record — push them before closing:
|
|
|
31
31
|
1. If this session is aligned (`jentrix session status` shows the alignment):
|
|
32
32
|
- Push the final report: write a concise session report (what was done,
|
|
33
33
|
what changed, what's next) and run
|
|
34
|
-
`jentrix push report --title "<short title>"` with the content on
|
|
34
|
+
`jentrix push report --final --title "<short title>"` with the content on
|
|
35
|
+
stdin. `--final` marks it the EXPLICIT final deliverable: the session
|
|
36
|
+
host also records your last response as a PROVISIONAL final output (its
|
|
37
|
+
title says so), and the server keeps at most one current closing output —
|
|
38
|
+
the explicit one supersedes the host's copy, and a later `--final` push
|
|
39
|
+
supersedes the earlier. Without `--final`, the record's final output is
|
|
40
|
+
whatever the host last observed, which may be a mid-turn progress note.
|
|
41
|
+
- **Answer a pending checkpoint request.** If `jentrix session status`
|
|
42
|
+
prints `Checkpoint requested: …`, write it now
|
|
43
|
+
(`jentrix push report --checkpoint <boundary> …`, or
|
|
44
|
+
`--checkpoint none-occurred` when nothing changed). `session end` does
|
|
45
|
+
not refuse over it — it prints the unanswered request at the close, and
|
|
46
|
+
a fresh agent reading the record will see that the boundary went
|
|
47
|
+
undistilled.
|
|
35
48
|
- Push any decisions made this session that were not already pushed. **Ask
|
|
36
49
|
what the decision rested on BEFORE you write the memo** — the basis is
|
|
37
50
|
not a field to fill in afterwards, it is the thing that makes the memo a
|
|
@@ -57,18 +70,31 @@ pipeline), the typed artifacts ARE the record — push them before closing:
|
|
|
57
70
|
generates the real `git log --patch` for the session's range itself and
|
|
58
71
|
pushes it as the attested DIFF (evidence check E1) — a model-authored
|
|
59
72
|
diff would be a second, unattested copy.
|
|
73
|
+
- **Ending dirty by design?** When the authorization was "no commits" (or
|
|
74
|
+
the work stays uncommitted for review), the working tree IS the output.
|
|
75
|
+
`jentrix session end --preserve-uncommitted` pushes the uncommitted
|
|
76
|
+
delta — tracked changes and untracked files, bounded at 256 KB stat-first
|
|
77
|
+
— as an attested patch bound to the close's tree digest. Without the
|
|
78
|
+
flag, `session end` says the tree is dirty and NOT preserved; relay that
|
|
79
|
+
line rather than describing the changes from memory.
|
|
60
80
|
Ask the operator (native choice UI) before pushing anything they might
|
|
61
81
|
not want recorded; never invent content — summarize what actually
|
|
62
82
|
happened.
|
|
63
|
-
2. **Batched mint confirmations.** Collect this
|
|
64
|
-
artifacts that are not yet cards (each push
|
|
65
|
-
operator ONCE, as a single native choice
|
|
66
|
-
For each accepted one run
|
|
83
|
+
2. **Batched mint confirmations — optional, never blocking.** Collect this
|
|
84
|
+
session's gap/issue/findings artifacts that are not yet cards (each push
|
|
85
|
+
printed its offer) and ask the operator ONCE, as a single native choice
|
|
86
|
+
list: which should become cards? For each accepted one run
|
|
67
87
|
`jentrix artifact mint-issue --artifact <id> --from-task <taskId>`
|
|
68
88
|
(add `--blocks` when it blocks acceptance of the aligned task). Mints are
|
|
69
89
|
idempotent per artifact (`mint-<artifactId>`), so a retry converges on the
|
|
70
90
|
same card. A declined mint leaves the artifact exactly as pushed — never
|
|
71
|
-
nag again, never mint unasked.
|
|
91
|
+
nag again, never mint unasked. **If no answer can arrive** — a
|
|
92
|
+
non-interactive run, or the operator does not reply — mint nothing, list
|
|
93
|
+
the artifact ids whose mint is still pending in the report you pushed in
|
|
94
|
+
step 1 (or in your closing reply), and go on to steps 3 and 4: the
|
|
95
|
+
artifacts are already preserved, and closing the session is what
|
|
96
|
+
preserves the rest. Never pick an answer for the operator, and never let
|
|
97
|
+
an optional mint stand between the session and its close.
|
|
72
98
|
3. Move the aligned task to the board's **"In review"** column when the work
|
|
73
99
|
is finished — not to a terminal one. Acceptance is a human's to record
|
|
74
100
|
(Accept / Return on the task panel writes who decided, when, and on which
|
|
@@ -87,7 +113,9 @@ pipeline), the typed artifacts ARE the record — push them before closing:
|
|
|
87
113
|
session status` shows); pass an id only when the operator names a different
|
|
88
114
|
session. If the CLI reports ambiguous sessions, ask the operator which one;
|
|
89
115
|
never choose a sibling. Telemetry is recorded by the session host's attested path — never
|
|
90
|
-
report token numbers yourself.
|
|
116
|
+
report token numbers yourself. The RUN_SUMMARY does not exist before this
|
|
117
|
+
step — `session end` is what writes it — so its absence in `session
|
|
118
|
+
status` is expected and is never a reason to hold off the close.
|
|
91
119
|
5. **Relay the closing telemetry line verbatim.** `session end` prints a
|
|
92
120
|
`Telemetry:` line, and on stderr it may print `NO TOKEN TELEMETRY: …`.
|
|
93
121
|
Exit 0 does NOT mean telemetry was recorded — on 2026-08-11 a real session
|
|
@@ -120,7 +148,27 @@ REFUSE to close when they are unmet:
|
|
|
120
148
|
**same gate family**: `typecheck` · `lint` · `test` · `e2e`. Family, not
|
|
121
149
|
exact command — "tests green" is covered by `pnpm test:mvp` and is NOT
|
|
122
150
|
covered by `pnpm lint`. A pasted LOG covers nothing; the CLI warns
|
|
123
|
-
`UNATTESTED LOG` when you push one, and the summary marks it.
|
|
151
|
+
`UNATTESTED LOG` when you push one, and the summary marks it. The LOG is a
|
|
152
|
+
structured receipt: it counts only when the command **binds to a gate
|
|
153
|
+
definition** — a package script (`pnpm test:mvp`, `npm run typecheck`: the
|
|
154
|
+
family comes from the script's NAME and the receipt records the script's
|
|
155
|
+
body and digest), a known runner (`vitest`, `jest`, `tsc`, `eslint`,
|
|
156
|
+
`playwright test`, `node --test`, `pytest`, `cargo test`, …), or a wrapper
|
|
157
|
+
listed in the checkout's reviewed `.jentrix/gates.json` — it exited 0, and
|
|
158
|
+
it ran at the revision AND on the working tree the session closes on
|
|
159
|
+
(`session end` measures both; a receipt from before your last edit does
|
|
160
|
+
not cover it). `--from-cmd "echo tests green"`, an inline `node -e "…"`,
|
|
161
|
+
or a line composed with `||`, `;`, `|` or `&` — glued or spaced — records a
|
|
162
|
+
LOG and proves nothing, and so do `--help`/`--version`/`--listTests`-style
|
|
163
|
+
runs, subshells, `$(…)` substitution, any `$VAR`/`${VAR}` expansion outside
|
|
164
|
+
single quotes (the receipt cannot see what the shell substituted — `"$FLAG"`
|
|
165
|
+
may be `--help`, `"$FILE"` a path in another checkout), a second line after
|
|
166
|
+
a `#` comment, a `cd`/`pushd` or `--prefix`/`-C`/`--filter` that moves
|
|
167
|
+
execution, and any argument that reaches outside the checkout (an absolute
|
|
168
|
+
or `../` path). The CLI says why when you push one. Run the gate from the
|
|
169
|
+
checkout root as one line of literal arguments, chain gates only with
|
|
170
|
+
`&&`, never pipe the gate (`| tail`): the exit code recorded would be the
|
|
171
|
+
pipe's. A red gate you are recording on purpose takes `--expected-failure`.
|
|
124
172
|
|
|
125
173
|
Comply by pushing the named evidence and retrying, or deviate honestly with a
|
|
126
174
|
`gap`. `--acknowledge-evidence-gaps` closes anyway and stamps each unmet check
|
|
@@ -154,3 +202,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
154
202
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
155
203
|
completion belong to the operator. Typed artifacts and completed verification
|
|
156
204
|
commands provide evidence; a report alone does not prove work is finished.
|
|
205
|
+
|
|
206
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
207
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
208
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
209
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
210
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
211
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
212
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
213
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
214
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
215
|
+
closes on.
|
|
216
|
+
What the host records on its own is provisional and says so.
|
|
@@ -41,10 +41,21 @@ task deep. This command extends the same rule to the rest.
|
|
|
41
41
|
- **Propose few tasks.** A task is a commitment, not a restatement of the
|
|
42
42
|
prompt. Two or three real units of work beat six that mirror your plan's
|
|
43
43
|
headings. If the prompt is one unit of work, say so and create nothing.
|
|
44
|
-
- **The prompt is provenance, the tasks are commitments
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
- **The prompt is provenance, the tasks are commitments, the plan is the
|
|
45
|
+
record of the decomposition.** Save the prompt once, verbatim, as a
|
|
46
|
+
`prompt` artifact; do not transcribe it into task titles. The approved goal
|
|
47
|
+
is its own `goal` artifact, and the decomposition itself — goal, task
|
|
48
|
+
titles, what was approved and what is still pending — is a `plan` artifact.
|
|
49
|
+
The inputs are typed records the RUN_SUMMARY's Intent and Plan history
|
|
50
|
+
cite, not prose folded into chat. The PLAN exists whether or not any card
|
|
51
|
+
gets created: it records what was proposed and decided.
|
|
52
|
+
- **Never fabricate approval.** When the native choice UI cannot answer
|
|
53
|
+
(a non-interactive run, an operator who has not replied), the approvals
|
|
54
|
+
already in hand still stand — the aligned task's title is the operator's
|
|
55
|
+
words, and a goal the opening prompt states in its own terms is the
|
|
56
|
+
operator's goal — but a title they have not seen is only a proposal.
|
|
57
|
+
Preserve the proposals as the PLAN, create no cards for them, and say in
|
|
58
|
+
your reply which decisions are pending. Silence is not a yes.
|
|
48
59
|
- Read the board's real columns before placing anything. Never invent a
|
|
49
60
|
column or a status.
|
|
50
61
|
|
|
@@ -76,10 +87,19 @@ task deep. This command extends the same rule to the rest.
|
|
|
76
87
|
`jentrix push goal --title "Goal"` with the approved goal sentence on
|
|
77
88
|
stdin;
|
|
78
89
|
- when a PRD exists for this work, push it too:
|
|
79
|
-
`jentrix push prd --title "<PRD title>"` with the PRD body on stdin
|
|
90
|
+
`jentrix push prd --title "<PRD title>"` with the PRD body on stdin;
|
|
91
|
+
- push the plan — ALWAYS, even when the operator approved nothing yet or
|
|
92
|
+
declined every card: `jentrix push plan --title "Plan"` with, on stdin,
|
|
93
|
+
the goal sentence, each proposed task title marked `approved` /
|
|
94
|
+
`pending` / `declined`, the ids and keys of the cards that were
|
|
95
|
+
created, and the column they landed in. A plan with every title
|
|
96
|
+
`pending` is a true record of a headless run; a session with no PLAN
|
|
97
|
+
artifact has no record that a decomposition happened at all.
|
|
80
98
|
6. Report the created ids and keys back to the operator, and say which task
|
|
81
99
|
you are starting on. Move that one into the working column
|
|
82
|
-
(`jentrix task move --task <id> --to-column-id <id>`).
|
|
100
|
+
(`jentrix task move --task <id> --to-column-id <id>`). When confirmation
|
|
101
|
+
is still pending, say so and continue with the aligned task — do not wait
|
|
102
|
+
on an answer that cannot arrive.
|
|
83
103
|
|
|
84
104
|
If the operator declines the plan, create nothing and say so plainly. An
|
|
85
105
|
un-decomposed prompt is a normal outcome; a board full of speculative tasks is
|
|
@@ -111,3 +131,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
111
131
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
112
132
|
completion belong to the operator. Typed artifacts and completed verification
|
|
113
133
|
commands provide evidence; a report alone does not prove work is finished.
|
|
134
|
+
|
|
135
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
136
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
137
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
138
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
139
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
140
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
141
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
142
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
143
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
144
|
+
closes on.
|
|
145
|
+
What the host records on its own is provisional and says so.
|
|
@@ -89,3 +89,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
89
89
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
90
90
|
completion belong to the operator. Typed artifacts and completed verification
|
|
91
91
|
commands provide evidence; a report alone does not prove work is finished.
|
|
92
|
+
|
|
93
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
94
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
95
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
96
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
97
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
98
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
99
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
100
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
101
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
102
|
+
closes on.
|
|
103
|
+
What the host records on its own is provisional and says so.
|
|
@@ -58,3 +58,15 @@ labels. Read actual board columns before moving tasks. Work goes into its
|
|
|
58
58
|
working column; completed work goes to In review. Accept/Return and terminal
|
|
59
59
|
completion belong to the operator. Typed artifacts and completed verification
|
|
60
60
|
commands provide evidence; a report alone does not prove work is finished.
|
|
61
|
+
|
|
62
|
+
Records carry their meaning in a header, not a title. `jentrix push report
|
|
63
|
+
--final` is the explicit final deliverable; `--checkpoint <boundary>` is a
|
|
64
|
+
semantic checkpoint (answer a `Checkpoint requested:` line from `session
|
|
65
|
+
status` — a hook cannot distil, only a model turn can); `push log --from-cmd`
|
|
66
|
+
is a verification receipt that counts only for a gate bound to a package
|
|
67
|
+
script, a known runner or a reviewed wrapper, run from the checkout root as one
|
|
68
|
+
plain `&&`-chained line of literal arguments (no `||`/`|`/`;`, no `cd`, no
|
|
69
|
+
help/version flags, no `$VAR` expansion outside single quotes, no second line
|
|
70
|
+
after a `#` comment), at exit 0, on the revision and working tree the session
|
|
71
|
+
closes on.
|
|
72
|
+
What the host records on its own is provisional and says so.
|