dw-mc 0.1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dominik Woźniak
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE.md ADDED
@@ -0,0 +1,43 @@
1
+ # Notices
2
+
3
+ `dw-mc` is MIT licensed, and so is everything it carries. What it carries from
4
+ someone else is listed here.
5
+
6
+ ## The reviewer persona
7
+
8
+ `src/domain/persona.ts` holds the review prompt the `prompt` runner opens on. Its
9
+ body is derived from the `code-reviewer` agent of
10
+ [`addyosmani/agent-skills`](https://github.com/addyosmani/agent-skills)
11
+ (`agents/code-reviewer.md`, commit `be4e44a`), by Addy Osmani, MIT licensed.
12
+
13
+ Taken: the five review dimensions with their questions, the four severity words
14
+ — Critical, Required, Optional, Nit — and the working rules.
15
+
16
+ Changed: the answer is structured output against this tool's finding schema, so
17
+ the Markdown report template is gone and each severity word says which of
18
+ `error`, `warning` and `info` it is reported as. The prose is rewritten in this
19
+ repository's register.
20
+
21
+ ```
22
+ MIT License
23
+
24
+ Copyright (c) 2025 Addy Osmani
25
+
26
+ Permission is hereby granted, free of charge, to any person obtaining a copy
27
+ of this software and associated documentation files (the "Software"), to deal
28
+ in the Software without restriction, including without limitation the rights
29
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
30
+ copies of the Software, and to permit persons to whom the Software is
31
+ furnished to do so, subject to the following conditions:
32
+
33
+ The above copyright notice and this permission notice shall be included in all
34
+ copies or substantial portions of the Software.
35
+
36
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
37
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
38
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
39
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
40
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
41
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
42
+ SOFTWARE.
43
+ ```
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # dw-mc
2
+
3
+ Mission control for the pull requests you have open. `dw-mc` keeps what it knows about each one on disk, reads GitHub through your own `gh`, runs code reviews through the agent CLIs already installed on your machine, and sorts every pull request into the one bucket that says what it waits on. It is a local tool for one person: no server, no GitHub App, no webhooks, and nothing leaves the machine but the calls to GitHub it makes as you and whatever the agent CLIs send to their own providers.
4
+
5
+ ## Requirements
6
+
7
+ - Node 24 or newer
8
+ - [`gh`](https://cli.github.com), authenticated: `gh auth login`
9
+ - `git`
10
+ - [Claude Code](https://claude.com/claude-code) as `claude`, or the [Codex CLI](https://developers.openai.com/codex/cli) as `codex` — at least one, for review runs and the sessions they open
11
+
12
+ ## Install
13
+
14
+ ```sh
15
+ pnpm add -g dw-mc
16
+ ```
17
+
18
+ To look before installing, `pnpm dlx dw-mc --help` runs the same binary from a throwaway copy.
19
+
20
+ ## Set up
21
+
22
+ ```sh
23
+ dw-mc init
24
+ ```
25
+
26
+ Run it once on the machine, and once more inside each repository whose pull requests you want followed. It asks which runner is your bar, whether Codex should give a second opinion beside it, and writes both answers to one file you can keep in your dotfiles.
27
+
28
+ ## The day
29
+
30
+ ```sh
31
+ dw-mc
32
+ ```
33
+
34
+ With no arguments `dw-mc` opens the picker: every tracked pull request under the bucket it sits in, and the commands that move the one you choose. It is a prompt and a table, not a full-screen application, so what it runs is the command you would have typed.
35
+
36
+ The commands behind it, each usable on its own:
37
+
38
+ | Command | What it does |
39
+ | --------------------- | --------------------------------------------------------------------------------------- |
40
+ | `dw-mc sweep` | Refreshes what mission control knows about every tracked pull request. It only reads. |
41
+ | `dw-mc status` | Shows which bucket every tracked pull request sits in, and which ones you have stamped. |
42
+ | `dw-mc review <pr>` | Reviews one pull request on the configured runners, in a throwaway worktree. |
43
+ | `dw-mc findings <pr>` | Prints what the current review run found. |
44
+ | `dw-mc fix <pr>` | Opens a session on the findings you pick, in a worktree that outlives it. |
45
+ | `dw-mc stamp <pr>` | Prints your stamp on a pull request, or withdraws it by hand. |
46
+ | `dw-mc rebase <pr>` | Rebases a branch onto its base and pushes it with a lease. |
47
+ | `dw-mc resolve <pr>` | Opens a session on the conflict that stopped a rebase. |
48
+ | `dw-mc rerun <pr>` | Runs a flaky red CI again, once per head. |
49
+
50
+ A **bucket** is the one place a pull request sits at a time, named for what it waits on: _needs me_, _needs review run_, _waiting on others_, _ready_. A **stamp** is your own mark that a pull request has passed your bar — it lives on this machine and is never a GitHub approval. Every other word this tool uses is defined in [`CONTEXT.md`](./CONTEXT.md), and the decisions behind them in [`docs/adr/`](./docs/adr).
51
+
52
+ ## Where things live
53
+
54
+ - Configuration: `$XDG_CONFIG_HOME/dw-mc/config.yaml`, or `~/.config/dw-mc/config.yaml`
55
+ - State: `$XDG_STATE_HOME/dw-mc`, or `~/.local/state/dw-mc`
56
+
57
+ The worktrees live under the state directory. A review run's is thrown away when the run ends; the one a fix or resolve session opens is left standing, on a branch of the tool's own, because the work you commit in it is yours.
58
+
59
+ ## The skill
60
+
61
+ An agent session can reach mission control's state through the `/dw-mc` skill, which lives in this repository and calls the CLI and nothing else:
62
+
63
+ ```sh
64
+ pnpm dlx skills@latest add dominikwozniak/dw-mc
65
+ ```
66
+
67
+ ## Licence
68
+
69
+ MIT. Third-party notices are in [`NOTICE.md`](./NOTICE.md).