thurview 0.8.3 → 0.10.0

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/README.md CHANGED
@@ -73,6 +73,7 @@ reads the Agent Skills format:
73
73
 
74
74
  ```sh
75
75
  npx skills add Thurbeen/thurview --skill thurview
76
+ npx skills add Thurbeen/thurview --skill review-fix # optional, see below
76
77
  ```
77
78
 
78
79
  That form tracks this repository's default branch: `skills update` takes
@@ -89,8 +90,8 @@ that matches the command you have installed. Use that when you want the two to
89
90
  move together.
90
91
 
91
92
  The skill drives the `thurview` command, which needs Node 22 or later and
92
- git (`gh` for pull requests). Install it, or let the skill reach it through
93
- `npx`:
93
+ git (`gh` for pull requests, `glab` for merge requests). Install it, or let
94
+ the skill reach it through `npx`:
94
95
 
95
96
  ```sh
96
97
  npm install -g thurview # or: pnpm add -g thurview
@@ -168,19 +169,20 @@ bar.
168
169
 
169
170
  ## CLI
170
171
 
171
- | Command | Purpose |
172
- | --------------------------------------------------------------------- | ---------------------------------------------------------------- |
173
- | `thurview scaffold [--pr N \| --base R --head R]` | Create a review pinned to exact commits (`--update` re-pins) |
174
- | `thurview explain [<path>] [--commit R]` | Create a code explainer of a codebase or subsystem at one commit |
175
- | `thurview info [--all]` | Reviews bound to this worktree |
176
- | `thurview publish --review ID [--view T] [--open]` | Validate the document and map, seal a revision |
177
- | `thurview open --review ID [--view T]` | Start the server if needed and open the browser |
178
- | `thurview wait --review ID [--timeout S]` | Block until the reader needs the agent |
179
- | `thurview threads list\|get\|reply\|resolve` | Read and answer threads |
180
- | `thurview graph interfaces\|impact\|callers\|tests-for\|architecture` | Ask the code graph at the pinned commits |
181
- | `thurview serve` / `thurview stop` | Run the server in the foreground / stop the background one |
182
- | `thurview setup hooks\|skill\|status` | Session hooks, agent skill, install state |
183
- | `thurview update` | Self-update from npm |
172
+ | Command | Purpose |
173
+ | --------------------------------------------------------------------- | ----------------------------------------------------------------- |
174
+ | `thurview scaffold [--pr N \| --base R --head R]` | Create a review pinned to exact commits (`--update` re-pins) |
175
+ | `thurview explain [<path>] [--commit R]` | Create a code explainer of a codebase or subsystem at one commit |
176
+ | `thurview info [--all]` | Reviews bound to this worktree |
177
+ | `thurview publish --review ID [--view T] [--open]` | Validate the document and map, seal a revision |
178
+ | `thurview open --review ID [--view T]` | Start the server if needed and open the browser |
179
+ | `thurview wait --review ID [--timeout S]` | Block until the reader needs the agent |
180
+ | `thurview threads list\|get\|reply\|resolve` | Read and answer threads |
181
+ | `thurview graph interfaces\|impact\|callers\|tests-for\|architecture` | Ask the code graph at a review's pins, or at `--base`/`--head` |
182
+ | `thurview forge status\|prior\|submit\|reply` | Read a change request through its forge, and post the review back |
183
+ | `thurview serve` / `thurview stop` | Run the server in the foreground / stop the background one |
184
+ | `thurview setup hooks\|skill\|status` | Session hooks, agent skill, install state |
185
+ | `thurview update` | Self-update from npm |
184
186
 
185
187
  thurview is an [AXI](https://axi.md): built for agents that drive it through a
186
188
  shell. Output is [TOON](https://toonformat.dev) on stdout, errors are
@@ -192,6 +194,53 @@ arguments shows live state for the current directory instead of a manual.
192
194
  `thurview <command> --help` is the fallback. Progress and diagnostics go to
193
195
  stderr.
194
196
 
197
+ ## Review and fix
198
+
199
+ The `review-fix` skill reviews a branch, a commit range or a pull or merge
200
+ request, fixes what it is sure of and reports the rest, with no browser and no
201
+ approval step. For each changed symbol it asks the code graph who calls it and
202
+ which tests reach it, so a finding can name a caller the diff never shows.
203
+ Fixes that pass the repository's own tests and lint land as one local commit;
204
+ nothing is pushed unless you ask.
205
+
206
+ ```sh
207
+ thurview graph impact --head HEAD # changed symbols, the callers they left alone, the tests
208
+ thurview graph callers discount --head HEAD # every call site of one symbol
209
+ ```
210
+
211
+ `--base` and `--head` ask about two commits directly; `--head` alone diffs
212
+ from where it forked from trunk. Each caller in `impact.reach` carries the line
213
+ of its call and whether any test reaches it.
214
+
215
+ With `--post`, the skill posts the findings it did not fix as inline comments
216
+ on the change request, through `thurview forge`:
217
+
218
+ ```sh
219
+ thurview forge status --change 123 # what CI actually did, and whether it is a gate at all
220
+ thurview forge prior --change 123 # the previous pass, thread by thread
221
+ thurview forge submit --change 123 --file pass.json --dry-run
222
+ thurview forge reply <threadId> --change 123 --body "<answer>" --resolve --at <head>
223
+ ```
224
+
225
+ `status` counts passed, failed, cancelled, skipped and running checks
226
+ separately, and compares them against what the target branch's own tip runs -
227
+ a change request from a fork typically runs a fraction of them, and a
228
+ cancelled job shows no failure while asserting nothing. `ci.trustworthy` is
229
+ the only field that means the tests really passed.
230
+
231
+ `submit` takes one JSON file so a human can read the pass before it is posted,
232
+ refuses an `approve` without `--confirm`, and warns about comments too long to
233
+ be read. `reply --resolve` takes `--at <sha>` and refuses any commit but the
234
+ current head, so a thread is never closed against code nobody looked at. There
235
+ is no merge, close or push command, deliberately.
236
+
237
+ GitHub goes through `gh`, GitLab through `glab`; hosts other than github.com
238
+ and gitlab.com are matched against what those CLIs are authenticated for, and
239
+ an unmatched host is refused rather than guessed. The differences that survive
240
+ the seam - GitLab has no changes-requested state, no atomic review and no
241
+ multi-line comment anchor - are listed in
242
+ [skills/review-fix/references/forges.md](skills/review-fix/references/forges.md).
243
+
195
244
  ## Authoring format
196
245
 
197
246
  The agent writes three files in `~/.thurview/reviews/<id>/`: