@magnusekdahl/parallix 1.5.289 → 1.5.396
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/NOTICES +137 -4
- package/README.md +9 -6
- package/build/asset-manifest.json +59 -7
- package/build/config/agents.json +3 -3
- package/build/decision/tokenizer-data.gz +0 -0
- package/build/manifest.sha256 +29 -16
- package/build/migrations/0018-adhoc-mission-counter.sql +1 -1
- package/build/migrations/0031-goal-check-recorded-round.sql +4 -0
- package/build/migrations/0032-goal-check-repaired-gate.sql +4 -0
- package/build/migrations/0033-goal-check-repaired-gates.sql +2 -0
- package/build/migrations/0034-checkpoint-repair.sql +2 -0
- package/build/migrations/0034-mission-description.sql +4 -0
- package/build/migrations/0035-review-round-baseline.sql +3 -0
- package/build/migrations/0036-integration-repair-assessment.sql +2 -0
- package/build/migrations/0037-checkpoint-evidence-history.sql +39 -0
- package/build/migrations/0038-success-criterion-identity.sql +30 -0
- package/build/migrations/0039-review-decided-revision.sql +2 -0
- package/build/migrations/0039-workflow-operations.sql +12 -0
- package/build/migrations/0040-goal-check-carried-from.sql +2 -0
- package/build/package.json +1 -1
- package/build/prompts/act-on-review-core.md +5 -5
- package/build/prompts/act-on-review.md +1 -1
- package/build/prompts/draft-core.md +19 -7
- package/build/prompts/execute-core.md +15 -16
- package/build/prompts/review-core.md +4 -3
- package/build/px.mjs +1012 -1090
- package/build/px.mjs.map +4 -4
- package/build/sbom.json +32 -6
- package/build/web/assets/index-BQ-hgXcF.js +9 -0
- package/build/web/assets/index-Be2y914M.css +1 -0
- package/build/web/index.html +2 -2
- package/build/web/manifest.json +9 -9
- package/package.json +11 -5
- package/build/web/assets/index-HfrsWWLp.css +0 -1
- package/build/web/assets/index-Q1kufqqY.js +0 -9
|
@@ -18,9 +18,19 @@ Forbidden actions:
|
|
|
18
18
|
|
|
19
19
|
Mission state authority: `px status {{slug}}` is the authority for recorded Mission facts.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Prefer one foreground px mission author invocation to record the complete contract atomically, then read it back once with px status {{slug}}. Run px mission --help for the typed flags. The slug is inferred from this worktree. Each write resolves its own current version automatically; --expected-version is optional when you want to pin an earlier read. Validation or a version conflict rejects the whole batch without partial writes.
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
For example, a small greeting fix can use plain criterion text:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
px mission author --goal 'Fix the greeting' --why 'The greeting contains a typo' --scope 'Correct hello.sh greeting text' --out-of-scope 'Other behavior' --criterion 'hello.sh prints Hello, World! and exits successfully' --checkpoint CP-1 --checkpoint-text 'Correct the greeting and verify public execution' --gate './scripts/verify-local.sh all' --predicted Small --classification ai_sdlc
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Supply every required part: goal and why, scope, at least one success criterion, an ordered checkpoint plan, exact runnable verification gates, a predicted NEL bucket, and classification. Repeat list flags within the same invocation; the lists replace recorded lists. Out-of-scope entries are optional; record them whenever review should check a deliberate boundary. Checkpoint descriptions are at most 512 characters. Gates contain only runnable commands, without prose, comments or expected outcomes. Expected outcomes belong in criteria.
|
|
30
|
+
|
|
31
|
+
Use plain text in criteria and evidence values, without literal backticks or embedded double quotes. Quote shell arguments with single quotes as in the example. Execution can cite a repository-relative path such as hello.sh or test/unit/example.test.ts as its evidence reference; formatting characters are unnecessary.
|
|
32
|
+
|
|
33
|
+
The required parts and their existing single-concept commands are listed below. The batch above records the same parts together; reproduction and dependencies use their own commands.
|
|
24
34
|
|
|
25
35
|
| Part | Command | Required |
|
|
26
36
|
|---|---|---|
|
|
@@ -34,13 +44,13 @@ The contract, and what the harness requires before this draft can finish:
|
|
|
34
44
|
| Reproduction test | `px repro set --test <path>` | required for a `bug` mission only |
|
|
35
45
|
| Dependencies | `px depends add --on <slug>`, one call each | optional; nothing enforces it |
|
|
36
46
|
|
|
37
|
-
|
|
47
|
+
Existing single-concept commands remain available for focused edits. Record a reproduction test with px repro set --test <path> for a bug mission; add optional dependencies with px depends add --on <slug>. Neither changes lifecycle state. Run any command with --help for exact flags.
|
|
38
48
|
|
|
39
|
-
|
|
49
|
+
Wait for each foreground write to finish; never end your turn while a `px` command is still running: when your turn ends, anything still running is killed and was not recorded.
|
|
40
50
|
|
|
41
51
|
A write against a stale version is rejected with an explicit conflict and changes nothing; re-read the version with `px status {{slug}}` and retry.
|
|
42
52
|
|
|
43
|
-
Before you finish, read the contract back with `px status {{slug}}` and check every required part
|
|
53
|
+
Before you finish, read the contract back with `px status {{slug}}` and check every required part above. Anything it does not report was not recorded.
|
|
44
54
|
|
|
45
55
|
Plan the checkpoints; do not record their evidence. `px checkpoint record` is for execution: evidence is what the work produces, and there is nothing to cite yet.
|
|
46
56
|
|
|
@@ -48,18 +58,20 @@ Drafting requirements:
|
|
|
48
58
|
- every part you record is concrete and specific to this mission; no placeholders or "TBD"
|
|
49
59
|
- plan checkpoints as coherent, independently verifiable slices of the work; together they must cover every success criterion
|
|
50
60
|
- each success criterion must be specific and checkable: execution records one Goal Check row of evidence per criterion
|
|
61
|
+
- Before locking, check that all criteria and scope constraints can hold together. Challenge absolute guarantees with boundary cases; finite budgets must include all mandatory content, metadata and request overhead. Resolve contradictions during drafting.
|
|
51
62
|
- {{classificationInstructions}}
|
|
52
63
|
- preserve `{{taskPath}}`: update content as needed but do not delete, rename, or move the file
|
|
53
64
|
- do not edit the backlog `assignee` field; the workflow records ownership itself
|
|
54
65
|
- predict the size of the change as a net engineering lines (NEL) bucket — Small (0–80), Medium (81–235) or Large (235+)
|
|
66
|
+
- Plan a brief check where the implementer exercises the changed behavior through the running application’s public interface and records the observed result, using existing tools without adding E2E tests unless explicitly asked for in the intent.
|
|
55
67
|
|
|
56
68
|
Bug-labeled missions (regression-test-first / "lock the bug"):
|
|
57
69
|
- this section applies only when the backlog task at `{{taskPath}}` carries a `bug` label (in addition to its `ai_sdlc` or `user_value` classification). If there is no `bug` label, ignore this section entirely.
|
|
58
|
-
- make the **first planned checkpoint** (
|
|
70
|
+
- make the **first planned checkpoint** (--checkpoint CP-1 in the batch) the authoring of a failing reproduction test that locks the bug before any fix is written. Describe in that checkpoint: the test file location (under `test/`), the reproduction scenario, and the assertion that fails at the mission's parent commit (red) and will pass once the fix lands (green).
|
|
59
71
|
- record the reproduction test's path with `px repro set --test <path>` (for example, `px repro set --test test/task-1354-repro.test.ts`); the table above makes it required for a bug mission. `px status {{slug}}` reports it back for the reviewer to check against the diff.
|
|
60
72
|
- do not author the fix during draft — the reproduction test and its recorded path are the only bug-specific drafting outputs.
|
|
61
73
|
|
|
62
|
-
Graphify-first: before drafting, check if `graphify-out/graph.json` exists. If it does, run `graphify query "{{slug}} mission scope and dependencies"` to understand the codebase context before filling in the mission contract.
|
|
74
|
+
Graphify-first: before drafting, check if `graphify-out/graph.json` exists. If it does, run `graphify query "{{slug}} mission scope and dependencies"` to understand the codebase context before filling in the mission contract. Parallix updates existing Graphify graphs after successful squash integration on the receiving base worktree; review, edits and checkpoints do not trigger updates.
|
|
63
75
|
|
|
64
76
|
Finishing:
|
|
65
77
|
- verify the draft with `{{verifyCmd}}` before stopping
|
|
@@ -12,12 +12,12 @@ Mission context is application-owned. Load it with:
|
|
|
12
12
|
|
|
13
13
|
Execution supports evidence and completion writes:
|
|
14
14
|
|
|
15
|
-
- `px mission mark-complete --slug {{slug}} --criterion <index
|
|
15
|
+
- `px mission mark-complete --slug {{slug}} --criterion <index>` — mark a verified success criterion complete using its one-based index. The write resolves its own current version; the status Version is diagnostic.
|
|
16
16
|
- `px checkpoint record --name <CP-N> --criterion <text> --evidence <text> --next <text>` — `--criterion` and `--evidence` repeat and pair up in order.
|
|
17
17
|
|
|
18
18
|
You do not change the mission here. The goal, scope, out-of-scope, success criteria, checkpoint plan and gates were settled at draft and are what your work is judged against; if you believe one of them is wrong, say so in your response and stop rather than editing it to match what you built.
|
|
19
19
|
|
|
20
|
-
The slug is inferred from this worktree, so you do not pass it.
|
|
20
|
+
The slug is inferred from this worktree, so you do not pass it. Writes resolve their own current version, so you do not pass `--expected-version`; pass it only to pin a version. A competing write still fails with an explicit conflict and changes nothing. Run the command with `--help` for its exact flags.
|
|
21
21
|
|
|
22
22
|
Harness preflight already confirmed:
|
|
23
23
|
- branch/worktree shape
|
|
@@ -25,29 +25,28 @@ Harness preflight already confirmed:
|
|
|
25
25
|
|
|
26
26
|
Execution requirements:
|
|
27
27
|
- execute checkpoint-by-checkpoint per the checkpoint plan reported by `px status {{slug}}`, starting with the first planned checkpoint that has no recorded evidence. That is also where you resume after a relaunch.
|
|
28
|
-
- after each completed checkpoint, record its evidence with `px checkpoint record --name <its planned CP-N>`, one `--criterion`/`--evidence` pair per Goal Check row, and a non-generic `--next`. Use the exact text of the success criterion a row evidences as its `--criterion
|
|
28
|
+
- after each completed checkpoint, record its evidence with `px checkpoint record --name <its planned CP-N>`, one `--criterion`/`--evidence` pair per Goal Check row, and a non-generic `--next`. Use the exact text of the success criterion a row evidences as its `--criterion` so a reviewer can map rows to criteria. Handoff checks every recorded checkpoint, not just the final one: every criterion must be marked complete, and the recorded checkpoints taken together must carry a row naming each completed criterion, each citing a verifiable reference; handoff matches each row to the success criterion its `criterion` text names and refuses when the recorded checkpoints leave any completed criterion without a matching row. A repair checkpoint that carries only its affected criteria is not a shortfall while earlier evidence covers the others. That is the durable write; read it back with `px status {{slug}}`. Do not write a checkpoint document.
|
|
29
29
|
- never create, edit, or commit files under the mission dir or anywhere under `missions/`: it is a retired legacy location, the tree must contain no files there, and handoff fails if it does. Measurements, timings, and populations belong inline in `px checkpoint record --evidence` text, citing runnable commands and test paths.
|
|
30
|
-
- Immediately after recording a checkpoint's evidence,
|
|
30
|
+
- Immediately after recording a checkpoint's evidence, {{checkpointContextAction}} only the mission goal, scope, success criteria and checkpoint plan with `px status {{slug}}`, then continue.
|
|
31
31
|
- Completing a checkpoint is **non-terminal**: after recording its evidence, immediately continue to the next planned checkpoint without recorded evidence. Do not send a final response or exit merely because one checkpoint is complete; break large checkpoints into safe slices and keep progressing.
|
|
32
32
|
- You may terminate this execution only when exactly one of these conditions applies: (a) every success criterion is marked complete, every planned checkpoint has recorded evidence, the final one covers every success criterion, and every mission-declared gate passes, (b) a mission stop rule applies, or (c) a genuine external dependency blocks progress. Checkpoint size, uncertainty, or needing further investigation are not terminal conditions.
|
|
33
33
|
- Keep Goal Check evidence durable: prefer stable file references and commands that can be rerun against the committed tree. Do not claim that `git diff HEAD` proves a committed change—its expected output is empty after committing. If historical diff evidence is needed, state the exact non-HEAD baseline or describe the observed change without implying that an empty post-commit diff will reproduce it.
|
|
34
|
-
- the final checkpoint MUST record one Goal Check row per success criterion, citing real, durable references such as runnable project commands, test names, decision-record references, or test paths
|
|
35
34
|
- **One row per criterion:** each `--criterion` is paired with the `--evidence` that follows it, in order. Pass the flags as many times as you have criteria; the counts must match or the write is rejected.
|
|
36
|
-
- **
|
|
37
|
-
1.
|
|
38
|
-
2.
|
|
39
|
-
3.
|
|
40
|
-
4.
|
|
41
|
-
|
|
42
|
-
- **Not sufficient by themselves:** raw `stat`/`ls` output or generic prose claims. You may include them as supporting context, but the same `--evidence` value must also cite at least one accepted reference from the list above.
|
|
35
|
+
- **Evidence references:** `px checkpoint record` and handoff apply the same check, and recording refuses a row that cites none of these, naming the offending row:
|
|
36
|
+
1. an existing repository-relative path such as `test/store.test.ts`; a bare basename such as `store.test.ts` does not resolve
|
|
37
|
+
2. an exact test name in quotes, as written in `test(...)` or `it(...)` in a `.test`, `.spec` or `.cases` module under `test/`
|
|
38
|
+
3. a backticked command: `npm`, `npx`, `node`, `git` or `px`, a `./` script that exists, or a shell reader such as `grep` or `cat` with an existing file argument
|
|
39
|
+
4. an ADR reference such as `ADR 0012` whose file exists in `docs/adr/`
|
|
40
|
+
Raw stat/ls output and prose claims are context only. Prefer a repository-relative path reference and plain evidence text with no literal backticks or embedded double quotes. Example: px checkpoint record --name CP-2 --criterion '<exact success criterion text>' --evidence 'test/unit/example.test.ts passes under npm test -- test/unit/example.test.ts' --next 'CP-3: update the operator guidance'
|
|
43
41
|
- run targeted checks needed to develop and validate the change; handoff owns the authoritative execution of mission-declared Gates, so do not rerun a complete declared gate solely as lifecycle ritual (run one when diagnosing a concrete issue)
|
|
44
|
-
- Immediately after **each successful mission-declared Gate**,
|
|
42
|
+
- Immediately after **each successful mission-declared Gate**, {{gateContextAction}} only the locked mission goal and scope plus committed checkpoint or successful-gate evidence that is present, re-reading them with `px status {{slug}}` rather than from repository files. Retain a failed gate's failure diagnostic while repairing it.
|
|
45
43
|
- preserve `{{taskPath}}`: update mission-relevant content as needed but do not delete, rename, or move the file
|
|
46
|
-
- do not change the Backlog task's status, assignee, labels, or lifecycle metadata, and do not run `px active`, `px review`, `px integrate`, `px assign` or `px unassign`; Parallix performs lifecycle transitions and review decisions itself. `px status {{slug}}` and `px history` are the supported reads in this phase, and `px checkpoint record` and `px mission mark-complete` are the supported writes.
|
|
44
|
+
- do not change the Backlog task's status, assignee, labels, or lifecycle metadata, and do not run `px active`, `px review`, `px integrate`, `px assign` or `px unassign`; Parallix performs lifecycle transitions and review decisions itself. `px status {{slug}}`, `px checkpoint check --json` and `px history` are the supported reads in this phase, and `px checkpoint record` and `px mission mark-complete` are the supported writes.
|
|
47
45
|
- earlier agent runs of this Mission (before a relaunch, a fallback family or a fresh context) are retained: `px history search <pattern>` and `px history show <ref>` return bounded slices with `run:` references and coverage notes. Cite those references instead of pasting transcripts into your context.
|
|
48
|
-
- After verifying a success criterion, record completion with `px mission mark-complete --slug {{slug}} --criterion <index
|
|
46
|
+
- After verifying a success criterion, record completion with `px mission mark-complete --slug {{slug}} --criterion <index>`, using its one-based index. The write resolves its own current version; the status Version is diagnostic. Reload status after each write. Use `--all` only when every criterion is verified. Recording checkpoint evidence does not mark criteria complete.
|
|
47
|
+
- Before declaring completion, run `px checkpoint check --slug {{slug}} --json`. Inspect `ready`, `version`, `findings`, `primaryStopReason` and `nextCommands`; a successful read is not evidence readiness. A recorded unresolved human-only contract blocker is the primary stop reason even when evidence is incomplete: stop for the operator, without fabricated evidence or repeated evidence-only repair. Do not use `record --force` or treat prose as resolution; only an explicit operator decision can clear the recorded blocker.
|
|
49
48
|
- do not hand off to review until every success criterion is marked complete, or with uncommitted implementation work, or before the final checkpoint's evidence is recorded
|
|
50
49
|
|
|
51
|
-
Graphify-first: before executing, check if `graphify-out/graph.json` exists. If it does, use `graphify query "<question>"` for codebase questions, `graphify path "<A>" "<B>"` for relationships, and `graphify explain "<concept>"` for focused concepts. Read `graphify-out/GRAPH_REPORT.md` only for broad architecture review.
|
|
50
|
+
Graphify-first: before executing, check if `graphify-out/graph.json` exists. If it does, use `graphify query "<question>"` for codebase questions, `graphify path "<A>" "<B>"` for relationships, and `graphify explain "<concept>"` for focused concepts. Read `graphify-out/GRAPH_REPORT.md` only for broad architecture review. Parallix updates existing Graphify graphs after successful squash integration on the receiving base worktree; review, edits and checkpoints do not trigger updates. If `graphify-out/wiki/index.md` exists, use it for broad navigation.
|
|
52
51
|
|
|
53
52
|
{{checkpoint_context}}
|
|
@@ -20,7 +20,7 @@ Review history is not optional context:
|
|
|
20
20
|
- Treat a `PUSHBACK_ALL` in the history as a response awaiting your decision, not as an approval and not as a fresh set of findings.
|
|
21
21
|
|
|
22
22
|
Minimum loop contract:
|
|
23
|
-
- When `{{attempt}}` is 2 or later, before beginning this review round
|
|
23
|
+
- When `{{attempt}}` is 2 or later, before beginning this review round {{reviewContextAction}} the locked mission goal and scope; committed checkpoint or gate evidence when present; current round and disposition; unresolved findings and implementer resolutions; and the exact post-rebase revision and review baseline shown by `git diff {{reviewBaseline}}..HEAD`. This compaction is independent of the mission's declared gates.
|
|
24
24
|
- Load the Mission context with `px status {{slug}}` and read `AGENTS.md` before reviewing.
|
|
25
25
|
- The block below reports which controls the workflow has already executed for this mission and which it has not, derived from machine records rather than from anyone's prose. Do not re-run a listed command whose recorded status is `passed`; cite the recorded result from this block instead. Re-running is permitted only when the block reports no recorded gate result, reports a `failed` status, reports a control as not yet run, or the command you need is not listed here.
|
|
26
26
|
{{completedControls}}
|
|
@@ -49,9 +49,10 @@ Check:
|
|
|
49
49
|
- maintainability issues that materially affect future work
|
|
50
50
|
|
|
51
51
|
- Decision submission is mandatory: your final chat response does **not** submit a review. Before stopping, run exactly one of:
|
|
52
|
-
- `px verdict approve --slug {{slug}} --actor {{reviewer}} --
|
|
53
|
-
- `px verdict request-changes --slug {{slug}} --actor {{reviewer}} --
|
|
52
|
+
- `px verdict approve --slug {{slug}} --actor {{reviewer}} --comment "<review summary>"`
|
|
53
|
+
- `px verdict request-changes --slug {{slug}} --actor {{reviewer}} --finding <finding-id> --summary "<issue>" [--location "<path>"] ... --comment "<review summary>"`
|
|
54
54
|
- Every request-change finding needs a distinct stable `F<number>` id and non-empty summary. `px verdict` persists the decision and publishes through the established workflow; do not post to Forgejo directly.
|
|
55
|
+
- When a finding concerns specific success criteria, name them in its summary as `Success criterion N` (or `criteria N, M`, 1-based as `px status` lists them). Checkpoint recording and handoff read these references to require fresh fix evidence for exactly those criteria in the repair round.
|
|
55
56
|
- Do not edit repo files; do not switch into implementer behavior.
|
|
56
57
|
- Graphify-first: before reviewing, check if `graphify-out/graph.json` exists. If it does, run `graphify query "review {{slug}} for correctness and completeness"` to get a graph-based view of the mission scope before examining the diff.
|
|
57
58
|
|