Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"name": "human-fsm",
"source": "./plugins/human-fsm",
"description": "Slash commands for the human's side of the issue→PR pipeline FSM: read the next ai:ready PR and check the vetter's verdict against the diff and the issue it closes, read the next ai:close-candidate flag and check the producer's reason against the issue and the code it claims about, read the next ai:design PR and check the raised question against the issue and the code it is about, read the next FSM leak and locate which of three defects left the PR in no modeled state, then rule on a close-candidate, send work back as needs-work, rule a design question, or keep an issue open — plus an observation command that forces a run, watches it, measures what its context cost and reads the retained trace corpus for what a run still hand-rolls. Every input comes from pr-review-report, and the reads rule through it what they can articulate.",
"version": "0.24.0",
"version": "0.25.0",
"author": { "name": "Rain Open Source Software Ltd" },
"keywords": [
"rainlanguage",
Expand Down
2 changes: 1 addition & 1 deletion plugins/human-fsm/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "human-fsm",
"displayName": "Human FSM transitions",
"version": "0.24.0",
"version": "0.25.0",
"description": "Slash commands for the human's side of the rainlanguage issue→PR pipeline finite state machine: the reads that precede a ruling, the transitions that make it, and /observe-run — force a run, watch it, measure its context, and read the retained trace corpus for what a run still hand-rolls. Every input arrives from pr-review-report — each ruling as one subcommand, /nr, /ncc, /ndd and /nm as typed MCP reads — and the guards (vocabulary, mandatory note, provenance anchor, stranded-flag refusal, subject type, terminal-is-moot, idempotence) live in that binary, not here.",
"author": {
"name": "Rain Open Source Software Ltd",
Expand Down
4 changes: 3 additions & 1 deletion plugins/human-fsm/commands/ncc.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ reassembled, and never the number off a title or a URL. One call per row if the
caller asked for several. It carries the issue BODY (step 1 does not), the whole
flag body, and every trusted `ai:producer` and `ai:vetter` comment unclipped —
step 1's `flag.reason` and `verdict.note` are clipped, and `reasonTruncated` /
`noteTruncated` say when.
`noteTruncated` say when. Their share is the PAGE's, so a clip on a multi-row
page has a cheaper escape first: re-ask step 1 at `limit: 1`, which carries
several times what the widest page can.

**3. Derive the standard from the ISSUE, and do it before reading the flag.**
Say in your own words what the issue asked for and what would have to be TRUE of
Expand Down
4 changes: 3 additions & 1 deletion plugins/human-fsm/commands/ndd.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,9 @@ call per row if the caller asked for several. It carries the PR body, the
changed files, the full diff, every issue the PR Closes or Refs with that
issue's title, body and labels, and the trusted comments unclipped — step 1's
`question.note` is clipped, `noteTruncated` says when, and this call is where
the whole raising comment is read.
the whole raising comment is read. `question.note`'s share is the PAGE's, so a
`noteTruncated` on a multi-row page has a cheaper escape first: re-ask step 1 at
`limit: 1`, which carries several times what the widest page can.

**3. Derive the intent from the ISSUE, and do it before weighing the question.**
Say in your own words what the issue asked for, from `issues[].body` alone — not
Expand Down
Loading
Loading