@brainervirus/workit-cursor 8.16.0 → 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brainervirus/workit-cursor",
3
- "version": "8.16.0",
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.16.0",
50
- "@brainervirus/workit-mcp": "^8.16.0"
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
- Fan out only independent slices: disjoint files, no shared mutable state, each
9
- verifiable alone. Code-coupled work stays with one owner, who fans out after
10
- the blocking part lands. A worker whose whole job is re-running one command is
11
- ceremony; do it yourself. Workit never spawns agents; you do.
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 rule. Never hand-edit
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 `timebox` such as `45 minutes`
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:** `workit test-audit --diff`. Would each new test fail if the
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.