@brainervirus/workit-cursor 8.15.1 → 8.17.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/.cursor-plugin/plugin.json +1 -1
- package/dist/cursor-session-start.js +1083 -83
- package/dist/mcp-server.js +192 -3
- package/dist/workit-hook.js +1098 -80
- package/package.json +3 -3
- package/skills/workit-fanout/SKILL.md +7 -7
- package/skills/workit-fanout/references/brief.md +3 -1
- package/skills/workit-implement/SKILL.md +8 -1
- package/skills/workit-review/SKILL.md +2 -1
- package/skills/workit-verify-app/SKILL.md +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brainervirus/workit-cursor",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.17.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Workit Cursor plugin — shared MCP transport, native hooks, and sixteen method skills",
|
|
6
6
|
"keywords": [
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"build": "bun scripts/build.ts"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@brainervirus/workit-core": "^8.
|
|
50
|
-
"@brainervirus/workit-mcp": "^8.
|
|
49
|
+
"@brainervirus/workit-core": "^8.17.0",
|
|
50
|
+
"@brainervirus/workit-mcp": "^8.17.0"
|
|
51
51
|
},
|
|
52
52
|
"engines": {
|
|
53
53
|
"node": ">=24"
|
|
@@ -5,13 +5,13 @@ description: Run independent slices in parallel - one worker per isolated worktr
|
|
|
5
5
|
|
|
6
6
|
# Fan out parallel workers
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
Inline-first (workspace `delegation`): fan out only past a threshold, named as
|
|
9
|
+
each slice's `reason` (explore, parallel, backstop, high-risk-verify): an
|
|
10
|
+
explorer past ~3 tool calls or 10k tokens; parallel writers only for 2+ disjoint
|
|
11
|
+
units of ~100+ lines each. Coupled work stays with one owner. Workit never spawns.
|
|
12
12
|
|
|
13
13
|
1. **Plan the slices** (read the `workit-shape` skill's SKILL.md and follow it) in a plan file (`references/brief.md`):
|
|
14
|
-
per slice an id, branch, TIER, SCOPE globs, `owns` for shared files,
|
|
14
|
+
per slice an id, branch, REASON, TIER, SCOPE globs, `owns` for shared files,
|
|
15
15
|
`dependsOn` only for a real dependency, and the brief fields. `workit fanout
|
|
16
16
|
plan <plan.json>` refuses an empty or placeholder brief field (exit 2) and
|
|
17
17
|
two slices that may write one file (exit 3) with a fix; apply it and re-run:
|
|
@@ -21,8 +21,8 @@ ceremony; do it yourself. Workit never spawns agents; you do.
|
|
|
21
21
|
2. **Record standing orders** (`workit ledger standing add "<order>"`): every
|
|
22
22
|
user directive all workers share. Directives decay across resumes.
|
|
23
23
|
3. **Brief each worker verbatim** with `workit fanout brief <slice>`: plan
|
|
24
|
-
fields, standing orders, SCRATCH, session id, fan-in
|
|
25
|
-
it; change the plan or the standing orders and render again.
|
|
24
|
+
fields, standing orders, SCRATCH, session id, fan-in and heavy-lease rules.
|
|
25
|
+
Never hand-edit it; change the plan or the standing orders and render again.
|
|
26
26
|
4. **Spawn in a rolling window**, in the background, each in its own worktree:
|
|
27
27
|
keep 4-6 in flight and refill from `spawnable` in `workit fanout status` as
|
|
28
28
|
each one finishes. Model: the brief's `model:` line, else TIER
|
|
@@ -59,7 +59,8 @@ defaults to the trunk, or to the branch of a single `dependsOn` slice (a
|
|
|
59
59
|
stack); `worktree` defaults to `../<repo>-wt/<id>`. `owns` claims a shared
|
|
60
60
|
file another slice's glob also matches. Globs that match no file yet are compared
|
|
61
61
|
through a sample path. Use `/` as the separator; a backslash only escapes
|
|
62
|
-
literal brackets: `"app/\\[id\\]/page.tsx"`. A `
|
|
62
|
+
literal brackets: `"app/\\[id\\]/page.tsx"`. A `reason` (`explore`, `parallel`, `backstop` or `high-risk-verify`) is rendered as the brief's `REASON:` line and is
|
|
63
|
+
required unless the workspace sets `delegation` to `lead-orchestrates`. A `timebox` such as `45 minutes`
|
|
63
64
|
is the slice's STUCK threshold in `workit fanout status`. `"fanIn":
|
|
64
65
|
"integration"` (with an integration branch as `trunk`) is the one-PR mode in
|
|
65
66
|
`orchestration.md`; the default `"prs"` lands one PR per slice.
|
|
@@ -79,6 +80,7 @@ is the slice's STUCK threshold in `workit fanout status`. `"fanIn":
|
|
|
79
80
|
"acceptance": ["Given no auth header, When GET /v1/usage, Then the status is 401"],
|
|
80
81
|
"verify": ["workit check test"],
|
|
81
82
|
"forbidden": ["no edits outside SCOPE", "no rebase or force-push"],
|
|
83
|
+
"reason": "parallel",
|
|
82
84
|
"context": "docs/usage/spec.md Behavior",
|
|
83
85
|
"timebox": "45 minutes"
|
|
84
86
|
},
|
|
@@ -19,7 +19,9 @@ description: Build a requested change in small verified steps - follow local pat
|
|
|
19
19
|
Mechanical change: the existing checks are enough. No tautological tests:
|
|
20
20
|
a test must fail if the behavior breaks, never restate the implementation.
|
|
21
21
|
4. Run the real checks: `workit check test` (and `lint`, `typecheck` when the
|
|
22
|
-
repo has them).
|
|
22
|
+
repo has them). Heavy work runs under one machine-wide lease: an ad-hoc
|
|
23
|
+
suite is `workit check --heavy -- <cmd>`, never a hand-made flock; a busy
|
|
24
|
+
lease waits and names its holder (`workit lock status`).
|
|
23
25
|
5. Prove the feature on its real surface with the project's `verify-<app>`
|
|
24
26
|
skill; none yet? Write one (read the `workit-verify-app` skill's SKILL.md and follow it). Tests show branch behavior,
|
|
25
27
|
not that the feature works.
|
|
@@ -41,6 +43,11 @@ description: Build a requested change in small verified steps - follow local pat
|
|
|
41
43
|
|
|
42
44
|
Independent slices that could run in parallel: fan them out (read the `workit-fanout` skill's SKILL.md and follow it).
|
|
43
45
|
|
|
46
|
+
Stay inline by default (workspace `delegation: inline-first`). Hand work off
|
|
47
|
+
only past the thresholds: an explorer after about 3 tool calls or 10k tokens
|
|
48
|
+
of searching, parallel writers for 2 or more disjoint units of about 100+
|
|
49
|
+
lines each.
|
|
50
|
+
|
|
44
51
|
## Example
|
|
45
52
|
|
|
46
53
|
Bad: "Done - added the --since flag, tests pass." (no check ran this turn; the
|
|
@@ -24,7 +24,8 @@ independent; `type-check-only` never proves a behavior change.
|
|
|
24
24
|
- **Standards:** repo rules first (`CODING_STANDARDS.md` when present),
|
|
25
25
|
then a smell baseline (unclear name, long function, duplicated logic,
|
|
26
26
|
leaky abstraction). Judgment only; lint owns nits.
|
|
27
|
-
4. **Tests:**
|
|
27
|
+
4. **Tests:** run suites under the heavy-check lease (`workit check test`,
|
|
28
|
+
`workit check --heavy -- <cmd>`); `workit test-audit --diff`. Would each new test fail if the
|
|
28
29
|
behavior broke? Triage the findings (read the `workit-test-audit` skill's SKILL.md and follow it).
|
|
29
30
|
5. **Blast radius:** for each touched contract, caller, config or migration,
|
|
30
31
|
state the one fact it is safe because of and run the proof. Anything
|
|
@@ -21,6 +21,8 @@ way a user would.
|
|
|
21
21
|
`.cursor/skills/`; other hosts: the directory their docs name). If the repo
|
|
22
22
|
already has a project skills directory, use it:
|
|
23
23
|
- **Launch:** one command, its ready signal (log line, port, exit 0), a timeout.
|
|
24
|
+
Builds, installs and e2e suites run under the heavy-check lease
|
|
25
|
+
(`workit check --heavy -- <cmd>`); a long-running server does not.
|
|
24
26
|
- **Doctor:** each precondition and its fix (deps, env vars, ports, services).
|
|
25
27
|
- **Drive:** how to exercise it: CLI invocations, `curl` against routes, a
|
|
26
28
|
browser tool for UI, with fixture data.
|