@staff0rd/assist 0.549.0 → 0.550.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
@@ -110,9 +110,16 @@ Every command supports `--help` for full detail on its flags and behaviour.
110
110
  - `assist prs edit [--title <t>] [--what <w>] [--why <y>] [--how <h>] [--resolves <key>]` - Update only the supplied sections of the current PR's body. In a web session the resulting title and body are previewed for approve/reject first (with inline comments and pasted screenshots, as for `raise`); on approval the edit is applied with any screenshots appended, on rejection the reviewer's comments are printed and nothing is changed. Outside a session the edit applies directly
111
111
  - `assist prs list-comments` - List all comments on the current branch's pull request
112
112
  - `assist prs fixed <comment-id> <sha>` - Reply with commit link and resolve thread
113
- - `assist prs wontfix <comment-id> <reason>` - Reply with reason and resolve thread
114
- - `assist prs reply <comment-id> <body>` - Reply to a comment thread without resolving it
115
- - `assist prs comment <path> <line> <body>` - Add a line comment to the pending review
113
+ - `assist prs wontfix <comment-id> <reason>` - Reply with reason and resolve thread. Pass `-` as the reason to read it from stdin. A body containing markdown — backticks around identifiers, `$(...)`, `$VAR` — must be piped in rather than passed as an argument, or the calling shell expands it before assist sees it:
114
+
115
+ ```bash
116
+ assist prs wontfix 3718677497 - <<'EOF'
117
+ Deferring to #197, which renames `query_duckdb` to `query_data`.
118
+ EOF
119
+ ```
120
+
121
+ - `assist prs reply <comment-id> <body>` - Reply to a comment thread without resolving it. Pass `-` as the body to read it from stdin
122
+ - `assist prs comment <path> <line> <body>` - Add a line comment to the pending review. Pass `-` as the body to read it from stdin
116
123
  - `assist review [number]` - Run Claude and Codex in parallel to review the current branch's PR, then post line-bound comments. The diff comes from GitHub, so stale local base branches don't pollute the review; cached `claude.md` / `codex.md` / `synthesis.md` are reused when present
117
124
  - `[number]` - `gh pr checkout <number>` first, placed by the worktree allocator on a repo with parallel work enabled (see [docs/parallel-work.md](docs/parallel-work.md))
118
125
  - `--no-prompt` - Skip all confirmations
@@ -187,8 +194,9 @@ Backlog item ids are written and displayed in an `a`-prefixed form (e.g. item 55
187
194
 
188
195
  A run entry's relative `cwd` (and a `link` path) resolves against the **repo root** - the directory holding `assist.yml` or `.claude/`, or the enclosing git repository when the repo has no project config at all (entries coming only from a `repos:` override in `~/.assist.yml`). The base does not shift with which config file the entry came from. A resolved `cwd` that does not exist fails with `run config "<name>": cwd <path> does not exist` rather than a `spawn <command> ENOENT`, and the daemon logs that reason when a `run:` session errors.
189
196
 
190
- - `assist config get <key>` - Get a config value. Secret values (`database.url`, `roam.*` tokens, `sql.connections[].password`, `seq.connections[].apiToken`) print as `<hidden>`; `--reveal` prints the raw value undecorated for command substitution and always needs an explicit permission prompt (the CLI hook never auto-approves it). An unset key still reports `Key "<key>" is not set`
191
- - `assist config list` - List all config values, with secret values shown as `<hidden>` (no reveal option)
197
+ - `assist config keys [filter]` - List every key in the config schema with its type, schema default, what it does and the `assist config set` line that sets it. The optional filter narrows to keys containing it (case-insensitive), so `assist config keys worktree` shows just the worktree block. The listing is derived from `assistConfigSchema` and the `configHelp` registry that `assist verify config-keys` forces to cover every key, so no key can go missing from it
198
+ - `assist config get <key>` - Get a config value. Secret values (`database.url`, `roam.*` tokens, `sql.connections[].password`, `seq.connections[].apiToken`) print as `<hidden>`; `--reveal` prints the raw value undecorated for command substitution and always needs an explicit permission prompt (the CLI hook never auto-approves it). An unset key exits non-zero and reports `Key "<key>" is not set`; when the key is a valid schema key that message carries its schema default (or `has no schema default`) plus the key's note and setter
199
+ - `assist config list` - List the config values that are **set**, with secret values shown as `<hidden>` (no reveal option). Unset optional blocks are omitted entirely, so the output leads with a comment pointing at `assist config keys` for the full schema
192
200
  - `assist config set <key> <value>` - Set a config value. `--global` writes to `~/.assist.yml`; `-g --repo [name]` writes a per-repo override there. The confirmation line and any validation error mask secret values
193
201
  - `assist config unset <key>` - Remove a config value so the key falls back to the global value or schema default (`-g` targets `~/.assist.yml`; `-g --repo [name]` removes it from a per-repo override there)
194
202
 
package/allowed.cli-reads CHANGED
@@ -30,6 +30,7 @@ assist backup schedule status
30
30
  assist cli-hook
31
31
  assist complexity
32
32
  assist config get
33
+ assist config keys
33
34
  assist config list
34
35
  assist coverage
35
36
  assist daemon status
@@ -43,13 +43,25 @@ Create a task for each unresolved **thread** (not each comment). For each thread
43
43
  3. Run `assist prs fixed <comment-id> <sha>` to reply with commit link and resolve the thread
44
44
  - If not addressing:
45
45
  1. Write a **1-sentence** summary of why, max 15 words (must not contain "claude" or "opus")
46
- 2. Run `assist prs wontfix <comment-id> "<reason>"` to reply and resolve the thread
46
+ 2. Run `assist prs wontfix <comment-id> "<reason>"` to reply and resolve the thread — or, if the reason contains backticks, `$(...)` or `$VAR`, use the stdin form below so your shell cannot expand it
47
47
  - If skipping:
48
48
  1. Do nothing — move on to the next comment immediately
49
49
  - **Commit references**: Always use full markdown links (e.g., `[abc1234](https://github.com/owner/repo/commit/abc1234)`), never bare SHAs
50
50
 
51
51
  5. **Repeat** until all comments have been processed
52
52
 
53
+ ## Bodies containing markdown
54
+
55
+ Reply bodies routinely contain backticks around identifiers, and a double-quoted argument lets your shell expand backticks, `$(...)` and `$VAR` before assist ever sees the body — it posts mangled and resolves the thread with no error. Whenever the body contains any of those, pass `-` as the body and pipe it in on stdin, with the heredoc at the left margin so `EOF` terminates it:
56
+
57
+ ```bash
58
+ assist prs wontfix <comment-id> - <<'EOF'
59
+ Deferring to #197, which renames `query_duckdb` to `query_data`.
60
+ EOF
61
+ ```
62
+
63
+ The same `-` form works for `assist prs reply <comment-id> -` and `assist prs comment <path> <line> -`.
64
+
53
65
  ## Announcing when done
54
66
 
55
67
  If `$ARGUMENTS` contains `--announce <number>`, then once every thread has been processed (addressed, wontfixed, or skipped) run `/prs-slack <number> --no-confirm` exactly once to announce the PR in Slack. Do this only at the very end, and only once, no matter how many threads there were. Without `--announce`, never announce.
@@ -62,4 +74,4 @@ If `$ARGUMENTS` contains `--announce <number>`, then once every thread has been
62
74
  - If a comment is unclear, note this in your analysis
63
75
  - Reply messages must not contain "claude" or "opus" (case-insensitive) - the command will reject them
64
76
  - When referencing previous comments, use markdown link syntax: `[previous comment](url)`
65
- - Use backticks to wrap inline code or keywords (e.g., `functionName`, `variable`)
77
+ - Use backticks to wrap inline code or keywords (e.g., `functionName`, `variable`) — and because that puts shell metacharacters in the body, use the stdin form from [Bodies containing markdown](#bodies-containing-markdown) whenever the body contains markdown
@@ -30,6 +30,7 @@ assist backup schedule status
30
30
  assist cli-hook
31
31
  assist complexity
32
32
  assist config get
33
+ assist config keys
33
34
  assist config list
34
35
  assist coverage
35
36
  assist daemon status