dw-mc 0.3.0 → 0.4.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/NOTICE.md +1 -1
- package/README.md +27 -30
- package/dist/bin.js +398 -578
- package/dist/bin.js.map +1 -1
- package/package.json +1 -2
package/NOTICE.md
CHANGED
|
@@ -5,7 +5,7 @@ someone else is listed here.
|
|
|
5
5
|
|
|
6
6
|
## The reviewer persona
|
|
7
7
|
|
|
8
|
-
`src/domain/persona.ts` holds the review prompt
|
|
8
|
+
`src/domain/persona.ts` holds the review prompt a run with no slash command opens on. Its
|
|
9
9
|
body is derived from the `code-reviewer` agent of
|
|
10
10
|
[`addyosmani/agent-skills`](https://github.com/addyosmani/agent-skills)
|
|
11
11
|
(`agents/code-reviewer.md`, commit `be4e44a`), by Addy Osmani, MIT licensed.
|
package/README.md
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
[](./LICENSE)
|
|
8
8
|
[](https://nodejs.org)
|
|
9
9
|
|
|
10
|
-
`dw-mc` keeps what it knows about each of your open pull requests on disk, reads GitHub through your own `gh`, runs code reviews through local
|
|
10
|
+
`dw-mc` keeps what it knows about each of your open pull requests on disk, reads GitHub through your own `gh`, runs code reviews through your local Claude Code, and sorts every pull request into the one bucket that says what it waits on.
|
|
11
11
|
|
|
12
12
|
- **One bucket per pull request** — _needs me_, _needs review run_, _waiting on others_, _ready_. Never two at once.
|
|
13
|
-
- **Reviews on the
|
|
14
|
-
- **Nothing leaves the machine** — no server, no GitHub App, no webhooks. Only the GitHub calls you would have made yourself, and whatever
|
|
13
|
+
- **Reviews on the Claude Code you already have** — its own `/code-review`, your own review brief, or both at once.
|
|
14
|
+
- **Nothing leaves the machine** — no server, no GitHub App, no webhooks. Only the GitHub calls you would have made yourself, and whatever Claude Code sends Anthropic.
|
|
15
15
|
- **State in plain files** — JSON and Markdown under XDG paths, readable without the tool.
|
|
16
16
|
- **A prompt, not a TUI** — the picker runs the command you would have typed, so nothing it does is hidden from you.
|
|
17
17
|
|
|
@@ -45,7 +45,7 @@ To look before installing, `pnpm dlx dw-mc --help` runs the same binary from a t
|
|
|
45
45
|
- Node 24 or newer
|
|
46
46
|
- [`gh`](https://cli.github.com), authenticated: `gh auth login`
|
|
47
47
|
- `git`
|
|
48
|
-
- [Claude Code](https://claude.com/claude-code) as `claude`,
|
|
48
|
+
- [Claude Code](https://claude.com/claude-code) as `claude`, for review runs and the sessions they open
|
|
49
49
|
|
|
50
50
|
## Quick start
|
|
51
51
|
|
|
@@ -55,35 +55,35 @@ dw-mc # the picker: every tracked PR under its bucket, and the command
|
|
|
55
55
|
dw-mc review 62 # or drive any command straight
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
-
`init` asks
|
|
58
|
+
`init` asks nothing: it writes the defaults to one file you can keep in your dotfiles, and what a review opens on is two keys in it — `review.command` and `review.prompt`.
|
|
59
59
|
|
|
60
60
|
Every command that takes a pull request takes it as `62` inside the repository, or as `owner/name#62` from anywhere.
|
|
61
61
|
|
|
62
62
|
## Commands
|
|
63
63
|
|
|
64
|
-
| Command | Flags
|
|
65
|
-
| --------------------- |
|
|
66
|
-
| `dw-mc` | —
|
|
67
|
-
| `dw-mc init` | `--
|
|
68
|
-
| `dw-mc sweep` | —
|
|
69
|
-
| `dw-mc status` | —
|
|
70
|
-
| `dw-mc comments <pr>` | `--all`
|
|
71
|
-
| `dw-mc review <pr>` | `--effort`, `--force`
|
|
72
|
-
| `dw-mc findings <pr>` | `--
|
|
73
|
-
| `dw-mc fix <pr>` | `--print`, `--commit`
|
|
74
|
-
| `dw-mc stamp <pr>` | `--withdraw`
|
|
75
|
-
| `dw-mc rebase <pr>` | —
|
|
76
|
-
| `dw-mc resolve <pr>` | `--print`
|
|
77
|
-
| `dw-mc rerun <pr>` | —
|
|
78
|
-
| `dw-mc merge <pr>` | —
|
|
79
|
-
| `dw-mc cleanup` | `--yes`
|
|
80
|
-
| `dw-mc uninstall` | `--config`, `--force`, `--yes`
|
|
64
|
+
| Command | Flags | What it does |
|
|
65
|
+
| --------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
|
66
|
+
| `dw-mc` | — | Opens the picker: every tracked pull request under its bucket, and what moves the one you choose. |
|
|
67
|
+
| `dw-mc init` | `--effort`, `--base` | Sets this machine up and registers the repository you are in. |
|
|
68
|
+
| `dw-mc sweep` | — | Refreshes what mission control knows about every tracked pull request. It only reads. |
|
|
69
|
+
| `dw-mc status` | — | Shows which bucket every tracked pull request sits in, and which ones you have stamped. |
|
|
70
|
+
| `dw-mc comments <pr>` | `--all` | Prints the conversation on a pull request, and what in it is waiting on you. |
|
|
71
|
+
| `dw-mc review <pr>` | `--command`, `--prompt`, `--effort`, `--model`, `--prompt-only`, `--command-only`, `--force` | Reviews one pull request on Claude Code, in a throwaway worktree. |
|
|
72
|
+
| `dw-mc findings <pr>` | `--json` | Prints what the current review run found. |
|
|
73
|
+
| `dw-mc fix <pr>` | `--print`, `--commit` | Opens a session on the findings you pick, in a worktree that outlives it. |
|
|
74
|
+
| `dw-mc stamp <pr>` | `--withdraw` | Prints your stamp on a pull request, or withdraws it by hand. |
|
|
75
|
+
| `dw-mc rebase <pr>` | — | Rebases a branch onto its base and pushes it with a lease. |
|
|
76
|
+
| `dw-mc resolve <pr>` | `--print` | Opens a session on the conflict that stopped a rebase. |
|
|
77
|
+
| `dw-mc rerun <pr>` | — | Runs a flaky red CI again, once per head. |
|
|
78
|
+
| `dw-mc merge <pr>` | — | Squash-merges a Ready, stamped pull request of yours and deletes its branch. |
|
|
79
|
+
| `dw-mc cleanup` | `--yes` | Takes back the disk spent on clones and review worktrees, and keeps everything you decided. |
|
|
80
|
+
| `dw-mc uninstall` | `--config`, `--force`, `--yes` | Removes everything the tool wrote on this machine, and says how to remove the binary. |
|
|
81
81
|
|
|
82
82
|
`dw-mc <command> --help` prints the flags and what each one is worth.
|
|
83
83
|
|
|
84
84
|
## How it works
|
|
85
85
|
|
|
86
|
-
A **bucket** is the one place a pull request sits at a time, named for what it waits on. The rules are tried in order and the first that claims the pull request wins, so a pull request that both needs a review run and has changes requested is yours to move, not the
|
|
86
|
+
A **bucket** is the one place a pull request sits at a time, named for what it waits on. The rules are tried in order and the first that claims the pull request wins, so a pull request that both needs a review run and has changes requested is yours to move, not the review's.
|
|
87
87
|
|
|
88
88
|
| Bucket | Marker | It waits on |
|
|
89
89
|
| ----------------- | ------ | --------------------------------------------------------------------------------------- |
|
|
@@ -109,16 +109,14 @@ Every other word this tool uses is defined in [`CONTEXT.md`](./CONTEXT.md), and
|
|
|
109
109
|
launcher:
|
|
110
110
|
command: [claude] # program + argument prefix that starts Claude Code
|
|
111
111
|
fix_args: [] # flags only a fix session gets
|
|
112
|
-
codex: [codex] # program + argument prefix that starts the Codex CLI
|
|
113
112
|
defaults:
|
|
114
113
|
base: null # the default branch from gh when null
|
|
115
114
|
review:
|
|
116
|
-
|
|
117
|
-
effort: low #
|
|
118
|
-
|
|
119
|
-
|
|
115
|
+
command: /code-review # the slash command a run opens on; null for none
|
|
116
|
+
effort: low # the word after the command: low | medium | high | xhigh | max
|
|
117
|
+
prompt: null # your own review brief
|
|
118
|
+
model: null
|
|
120
119
|
docs_only: ["**/*.md", "docs/**"]
|
|
121
|
-
path_instructions: [] # [{ path: glob, instructions: text }]
|
|
122
120
|
ci:
|
|
123
121
|
ignore: [] # check names that do not count towards green
|
|
124
122
|
flaky_patterns: []
|
|
@@ -128,7 +126,6 @@ defaults:
|
|
|
128
126
|
enabled: false
|
|
129
127
|
stamp:
|
|
130
128
|
blocks_on: error
|
|
131
|
-
supporting_blocks: false # whether a supporting runner's findings block
|
|
132
129
|
repos:
|
|
133
130
|
owner/name:
|
|
134
131
|
# the same keys, overriding defaults
|