@xoxoai/checkmate 0.7.0 → 0.7.1
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 +21 -0
- package/README.md +91 -0
- package/package.json +32 -10
- package/plugin/.claude-plugin/plugin.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Dawid Dobrowolski SoftQA
|
|
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/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#### □ □ ■ □
|
|
2
|
+
|
|
3
|
+
# Checkmate
|
|
4
|
+
|
|
5
|
+
### The QA system of record for an agent software factory.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@xoxoai/checkmate)
|
|
8
|
+
|
|
9
|
+
It turns a ticket into executable requirements, finds the gaps, drives test runs, and keeps the evidence and every decision in one auditable database. The factory runs the agents and builds the code. Checkmate keeps the record that they all read.
|
|
10
|
+
|
|
11
|
+
<img src="https://raw.githubusercontent.com/dawiddiwad/checkmate/v0.7.1/docs/img/onboarding.gif" alt="One ticket in two synced views. Top: a ring with four stations, the planner and the oracle on the top edge, the factory and QA on the bottom edge, the Checkmate record in the centre, and a human badge for the review UI below. An amber path on the left edge goes from QA back to the planner: new gaps or a plan change give a new revision. Below: the same steps on a swimlane timeline with lanes for the planner, the oracle, QA, and the factory, and a Checkmate record lane at the bottom. Iteration 1: the planner writes plan@1 with open gaps G1 to G3, the oracle answers them, the planner writes plan@2, and the oracle approves it. An early QA run fails three of four tests, with defects F1 to F3 and run gap G4. Iteration 2: the factory builds b2, and QA retests: three tests pass and defect F4 is found. A human edits the plan in the review UI to add G4 as plan@3, the oracle answers G4, the planner writes plan@4, and the oracle approves it. Iteration 3: the factory builds c3, QA retests and all four tests pass, and the oracle accepts the result. The animation ends with solo mode in Claude Code." width="100%"/>
|
|
12
|
+
|
|
13
|
+
The **oracle** answers gaps, approves plans, and accepts results. It is a product-owner agent or a human.<br/>
|
|
14
|
+
Checkmate does not start, schedule, or message agents, and it does not change code. Your factory does.
|
|
15
|
+
|
|
16
|
+
## Actors
|
|
17
|
+
|
|
18
|
+
| Role | What it does | What it writes to the record |
|
|
19
|
+
| ------- | --------------------------------------------------------------- | ------------------------------------------- |
|
|
20
|
+
| Planner | Turns a ticket into tests. Records the gaps. | Plan revisions and gaps |
|
|
21
|
+
| Oracle | Answers gaps. Approves plans. Accepts results. | Decisions |
|
|
22
|
+
| QA | Runs the tests, early and again on each new build. | Runs, evidence, defects, and new gaps |
|
|
23
|
+
| Factory | Runs the agents and their sandboxes. Builds and fixes the code. | Only what its commands record, such as runs |
|
|
24
|
+
|
|
25
|
+
A human can make the oracle's decisions at any time in the review UI.
|
|
26
|
+
|
|
27
|
+
## Highlights
|
|
28
|
+
|
|
29
|
+
- **Shared QA record.** Everything lives in `.checkmate/checkmate.db`. Payloads go through stdin, no temporary files.
|
|
30
|
+
- **Built for a factory.** `plan open` takes `--objective` and `--source`. Early runs pick the ready tests. Gaps found during a run go into the plan with `gap answer` or `plan adopt-gaps`. Small edits use `plan edit --patch`. A retest replaces the earlier run in the inbox.
|
|
31
|
+
- **The caller is the Oracle.** Policy `return_to_oracle`, startup owner `factory`, and the assertion field `checkKind`.
|
|
32
|
+
- **The review UI inside the plugin.** No npm install is needed for `/checkmate:ui`. Lists are paged, sorted, and filtered as you type. Plans can be edited, and reports download as HTML, Markdown, or JSON.
|
|
33
|
+
- **Aware of the caller's harness tools.** A target lists the CLI tools, MCP servers, and skills that the factory provides. Claude Code still owns the permissions.
|
|
34
|
+
|
|
35
|
+
## The review UI
|
|
36
|
+
|
|
37
|
+
<img src="https://raw.githubusercontent.com/dawiddiwad/checkmate/a5a2c17f7014a95563758b19258f19c7298d355a/docs/img/ui/inbox.jpg" alt="Inbox with a plan gap, a gap from a run, a plan to approve, and a result to accept" width="100%"/>
|
|
38
|
+
|
|
39
|
+
<details>
|
|
40
|
+
<summary>More screenshots</summary>
|
|
41
|
+
<img src="https://raw.githubusercontent.com/dawiddiwad/checkmate/a5a2c17f7014a95563758b19258f19c7298d355a/docs/img/ui/plans.jpg" alt="Plans list with the Loop column showing each plan's state and who it waits on" width="100%"/>
|
|
42
|
+
<img src="https://raw.githubusercontent.com/dawiddiwad/checkmate/a5a2c17f7014a95563758b19258f19c7298d355a/docs/img/ui/run-gap.jpg" alt="Run page with a defect, its evidence, and a new gap with the Answer and Bring into plan buttons" width="100%"/>
|
|
43
|
+
<img src="https://raw.githubusercontent.com/dawiddiwad/checkmate/a5a2c17f7014a95563758b19258f19c7298d355a/docs/img/ui/plan.jpg" alt="Plan page with the loop state pill: needs answers, waits on oracle" width="100%"/>
|
|
44
|
+
<img src="https://raw.githubusercontent.com/dawiddiwad/checkmate/a5a2c17f7014a95563758b19258f19c7298d355a/docs/img/ui/run.jpg" alt="Full run page with tests, evidence, the defect, the new gap, and coverage" width="100%"/>
|
|
45
|
+
|
|
46
|
+
</details>
|
|
47
|
+
|
|
48
|
+
## Team mode
|
|
49
|
+
|
|
50
|
+
### QA CLI for your Factory
|
|
51
|
+
|
|
52
|
+
Install the CLI with `npm i -g @xoxoai/checkmate@^0.7.0` and set up a target with `checkmate target open` and `checkmate delegate setup`. Then the factory opens a plan for each ticket, lets the planner write it, and reads what waits for the oracle:
|
|
53
|
+
|
|
54
|
+
```sh
|
|
55
|
+
checkmate plan open checkout --target shop@1 --objective "Verify checkout totals." --source docs/checkout.md
|
|
56
|
+
checkmate delegate plan checkout --allow Read --allow Bash
|
|
57
|
+
checkmate inbox
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
To give requirements or plan tools, send the request as JSON on standard input ([Plan request](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/CONFIGURATION.md#plan-request)). `checkmate status checkout` says where the ticket is in the loop and who it waits on. Your factory can read the record with `status`, `inbox`, `log`, `query` (read-only), and `export --format json`. [The factory loop](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/WORKFLOW.md#factory-loop) shows each step, from the early red run to acceptance.
|
|
61
|
+
|
|
62
|
+
## Solo mode
|
|
63
|
+
|
|
64
|
+
### Plugin for your Claude Code
|
|
65
|
+
|
|
66
|
+
You are the oracle. Test your own work, or verify the work of a teammate. Install the plugin with `/plugin marketplace add dawiddiwad/checkmate` and `/plugin install checkmate@checkmate`. It does not need the npm CLI.
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
/checkmate:setup shop at http://127.0.0.1:4173, browser, operations read_catalog and create_order
|
|
70
|
+
/checkmate:plan checkout for shop@1: verify checkout totals from docs/checkout.md
|
|
71
|
+
/checkmate:ui
|
|
72
|
+
/checkmate:status checkout
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
[The full path in Claude Code](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/WORKFLOW.md#in-claude-code): setup, plan, review, revise, execute, and report.
|
|
76
|
+
|
|
77
|
+
Both modes need Claude Code and Node.js 24.12.0 or later. Team mode also needs a logged-in `claude` command. For browser tests, install Playwright CLI: `npm i -g @playwright/cli`.
|
|
78
|
+
|
|
79
|
+
## Docs
|
|
80
|
+
|
|
81
|
+
- [Workflow](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/WORKFLOW.md): each stage and decision, the factory loop, and sub-agents
|
|
82
|
+
- [CLI](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/CLI.md): commands, statuses, delegated stages, and the review UI
|
|
83
|
+
- [Configuration](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/CONFIGURATION.md): targets, plans, policies, runtime gaps, and the actor
|
|
84
|
+
- [Evidence and outcomes](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/EVIDENCE.md): assertions, evidence, outcomes, coverage, and reports
|
|
85
|
+
- [Validation](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/VALIDATION.md): what the tests and the live run check
|
|
86
|
+
- [Examples](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/examples/README.md): plans and runs exported from a live run
|
|
87
|
+
- [Development](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/docs/DEVELOPMENT.md): build, test, release, and the media of this page
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
[MIT](https://github.com/dawiddiwad/checkmate/blob/v0.7.1/LICENSE)
|
package/package.json
CHANGED
|
@@ -1,25 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xoxoai/checkmate",
|
|
3
|
-
"version": "0.7.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "The QA system of record for an agent software factory",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"ai-agents",
|
|
8
|
+
"ai-governance",
|
|
9
|
+
"claude-plugin",
|
|
10
|
+
"cli-tool",
|
|
11
|
+
"sdlc",
|
|
12
|
+
"software-factory",
|
|
13
|
+
"test-automation"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://github.com/dawiddiwad/checkmate#readme",
|
|
16
|
+
"bugs": {
|
|
17
|
+
"url": "https://github.com/dawiddiwad/checkmate/issues"
|
|
18
|
+
},
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/dawiddiwad/checkmate.git",
|
|
22
|
+
"directory": "cli"
|
|
23
|
+
},
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"author": {
|
|
26
|
+
"name": "Dawid Dobrowolski"
|
|
27
|
+
},
|
|
5
28
|
"type": "module",
|
|
6
29
|
"bin": {
|
|
7
30
|
"checkmate": "dist/checkmate.js"
|
|
8
31
|
},
|
|
9
32
|
"files": [
|
|
10
33
|
"dist",
|
|
11
|
-
"plugin"
|
|
34
|
+
"plugin",
|
|
35
|
+
"README.md",
|
|
36
|
+
"LICENSE"
|
|
12
37
|
],
|
|
13
38
|
"engines": {
|
|
14
39
|
"node": ">=24.12.0"
|
|
15
40
|
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
},
|
|
16
44
|
"scripts": {
|
|
17
45
|
"prepack": "node ../scripts/build-cli.ts"
|
|
18
|
-
}
|
|
19
|
-
"repository": {
|
|
20
|
-
"type": "git",
|
|
21
|
-
"url": "git+https://github.com/dawiddiwad/checkmate.git",
|
|
22
|
-
"directory": "cli"
|
|
23
|
-
},
|
|
24
|
-
"license": "MIT"
|
|
46
|
+
}
|
|
25
47
|
}
|