@magnusekdahl/parallix 1.0.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.
Files changed (123) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/LICENSE +661 -0
  3. package/README.md +196 -0
  4. package/config/agents.json +25 -0
  5. package/config/agents.local.json.template +8 -0
  6. package/config/state-map.json +4 -0
  7. package/config/state-map.json.template +31 -0
  8. package/config/workflow.config.schema.json +98 -0
  9. package/data/.gitkeep +0 -0
  10. package/docs/adr/0031-ai-agent-instruction-boundary-and-command-floor.md +114 -0
  11. package/docs/adr/0032-mission-refinement-state-and-usage-budget-signals.md +135 -0
  12. package/docs/adr/0034-module-and-skill-invocation-model.md +202 -0
  13. package/docs/adr/0036-mission-sizing-and-dependency-wave-heuristics.md +79 -0
  14. package/docs/adr/0037-ai-workflow-coordination-architecture.md +162 -0
  15. package/docs/adr/0041-integration-pipeline-gates.md +165 -0
  16. package/docs/adr/0042-workflow-cli-color-rendering-approach.md +106 -0
  17. package/docs/adr/0043-git-target-resolution-strategy.md +185 -0
  18. package/docs/adr/0044-workflow-distribution-model.md +277 -0
  19. package/docs/adr/0045-parallax-branch-model.md +182 -0
  20. package/docs/adr/0046-npm-publish-process-and-security.md +138 -0
  21. package/docs/adr/index.md +20 -0
  22. package/docs/agents.md +212 -0
  23. package/docs/authority-reference.md +298 -0
  24. package/docs/forgejo-setup.md +31 -0
  25. package/docs/migration/extraction.md +61 -0
  26. package/docs/migration/task-classification.md +36 -0
  27. package/docs/operator-setup.md +76 -0
  28. package/docs/readme-rewrite-benchmark.md +188 -0
  29. package/docs/use-cases.md +105 -0
  30. package/examples/README.md +62 -0
  31. package/examples/run-enterprise-tarball-workflow-smoke.sh +257 -0
  32. package/examples/run-verify-env-smoke.sh +40 -0
  33. package/index.js +250 -0
  34. package/lib/README.md +13 -0
  35. package/lib/agents/agents.js +867 -0
  36. package/lib/agents/claude-telemetry.js +233 -0
  37. package/lib/agents/claude.js +139 -0
  38. package/lib/agents/codex-telemetry.js +202 -0
  39. package/lib/agents/codex.js +219 -0
  40. package/lib/agents/limit-hit.js +252 -0
  41. package/lib/agents/mistral-telemetry.js +44 -0
  42. package/lib/agents/mistral.js +68 -0
  43. package/lib/agents/opencode-export.js +110 -0
  44. package/lib/agents/opencode-telemetry.js +356 -0
  45. package/lib/agents/opencode.js +218 -0
  46. package/lib/agents/stage-telemetry.js +37 -0
  47. package/lib/commands/active.js +625 -0
  48. package/lib/commands/checkpoint.js +76 -0
  49. package/lib/commands/config.js +39 -0
  50. package/lib/commands/coverage-gate.js +358 -0
  51. package/lib/commands/diff.js +119 -0
  52. package/lib/commands/draft.js +854 -0
  53. package/lib/commands/handoff.js +501 -0
  54. package/lib/commands/integrate.js +1528 -0
  55. package/lib/commands/mission-start.js +246 -0
  56. package/lib/commands/rebase.js +597 -0
  57. package/lib/commands/repair-handoff.js +227 -0
  58. package/lib/commands/resolve-conflict.js +109 -0
  59. package/lib/commands/review.js +13 -0
  60. package/lib/commands/setup-review.js +13 -0
  61. package/lib/commands/setup.js +3 -0
  62. package/lib/commands/stats-backfill.js +395 -0
  63. package/lib/commands/stats.js +1601 -0
  64. package/lib/commands/status.js +183 -0
  65. package/lib/commands/verify.js +1 -0
  66. package/lib/core/fmt.js +202 -0
  67. package/lib/core/git.js +73 -0
  68. package/lib/core/gitignore.js +110 -0
  69. package/lib/core/mission-utils.js +1017 -0
  70. package/lib/core/persistent-data-migration.js +201 -0
  71. package/lib/core/product-config.js +508 -0
  72. package/lib/core/runtime-matrix.js +82 -0
  73. package/lib/core/spawn-tee.js +173 -0
  74. package/lib/core/state-map.js +89 -0
  75. package/lib/core/storage.js +165 -0
  76. package/lib/core/verification.js +149 -0
  77. package/lib/index.js +77 -0
  78. package/lib/review/rebase.js +163 -0
  79. package/lib/review/review-adapter.js +135 -0
  80. package/lib/review/review-artifacts.js +619 -0
  81. package/lib/review/review-commands.js +1375 -0
  82. package/lib/review/review-events.js +1007 -0
  83. package/lib/review/review-loop.js +1004 -0
  84. package/lib/review/review-polling.js +141 -0
  85. package/lib/review/review-prompts.js +212 -0
  86. package/lib/review/review-state.js +280 -0
  87. package/lib/review/review.js +96 -0
  88. package/lib/tools/backlog.js +680 -0
  89. package/lib/tools/forgejo.js +1585 -0
  90. package/lib/tools/gatekeeper.js +106 -0
  91. package/lib/tools/sessions.js +74 -0
  92. package/lib/tools/setup-review.js +1053 -0
  93. package/package.json +56 -0
  94. package/prompts/act-on-review-verbose.md +20 -0
  95. package/prompts/act-on-review.md +22 -0
  96. package/prompts/draft.md +20 -0
  97. package/prompts/execute.md +24 -0
  98. package/prompts/portfolio.md +30 -0
  99. package/prompts/review-verbose.md +20 -0
  100. package/prompts/review.md +17 -0
  101. package/px.js +236 -0
  102. package/templates/AGENTS-snippet.md +14 -0
  103. package/templates/AGENTS.md.template +34 -0
  104. package/templates/CLAUDE.md.template +27 -0
  105. package/templates/CODEX.md.template +38 -0
  106. package/templates/MISTRAL.md.template +24 -0
  107. package/templates/claude-commands/act-on-review.md +3 -0
  108. package/templates/claude-commands/area-review.md +3 -0
  109. package/templates/claude-commands/draft.md +6 -0
  110. package/templates/claude-commands/execute.md +6 -0
  111. package/templates/claude-commands/integrate.md +4 -0
  112. package/templates/claude-commands/portfolio.md +5 -0
  113. package/templates/claude-commands/review.md +4 -0
  114. package/templates/codex/config.toml +6 -0
  115. package/templates/mission-scaffold.md +39 -0
  116. package/templates/vibe/skills/act-on-review/SKILL.md +16 -0
  117. package/templates/vibe/skills/area-review/SKILL.md +16 -0
  118. package/templates/vibe/skills/draft/SKILL.md +16 -0
  119. package/templates/vibe/skills/execute/SKILL.md +16 -0
  120. package/templates/vibe/skills/integrate/SKILL.md +16 -0
  121. package/templates/vibe/skills/portfolio/SKILL.md +21 -0
  122. package/templates/vibe/skills/review/SKILL.md +16 -0
  123. package/tools/setup-forgejo-docker.sh +84 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,140 @@
1
+ # Changelog
2
+
3
+ All notable changes to parallix (`parallix/`) are recorded here. This project
4
+ follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
+
6
+ ## Versioning policy
7
+
8
+ parallix distinguishes three release states:
9
+
10
+ - **Local release candidate** — a `X.Y.Z` version built with `npm pack`. The
11
+ manifest stays `private: true`; no registry entry exists. Until the first
12
+ public release, the version scheme uses SemVer `X.Y.Z` with PATCH bumps for
13
+ each integration cycle (e.g., `1.0.0` → `1.0.1` → `1.0.2`). Before each
14
+ `px integrate`, the PATCH version is incremented; after a successful integrate,
15
+ the operator reinstalls `px` globally from the new tarball with
16
+ `npm install -g` to ensure the freshest binary. This is the current state.
17
+ - **Approved public release** — an `X.Y.Z` version published to a public
18
+ registry. A public release is performed **only** after explicit human
19
+ approval is recorded in a mission checkpoint, including the exact version,
20
+ registry, and publish command. Until then `private: true` remains set and no
21
+ publish runs.
22
+ - **Unpublished internal change** — work that lands in the repository (bug
23
+ fixes, refactors, test changes) without producing a new release candidate or
24
+ public release. Such changes are noted under "Unreleased" and folded into the
25
+ next release-candidate entry.
26
+
27
+ Version bumps follow SemVer: MAJOR for incompatible runner/config contract
28
+ changes, MINOR for backward-compatible proven capabilities, PATCH for fixes.
29
+ Until the first public release, PATCH bumps increment with each integration
30
+ cycle (pre-integrate bump + post-integrate reinstall).
31
+
32
+ ## [Unreleased]
33
+
34
+ ### Changed
35
+
36
+ - **Relicensed from MIT to AGPL-3.0-or-later.** Replaced `LICENSE-MIT` with the
37
+ full AGPL-3.0 text in `LICENSE`, updated the `package.json` `license` field and
38
+ `files` array, and added a License section to `README.md`. The AGPL covers
39
+ parallix and any modified or network-hosted fork; running `px` as a tool does
40
+ not impose AGPL terms on the user's own project.
41
+
42
+ - **Renamed the source directory `workflow/` → `parallix/`, removed the
43
+ `workflow/index.js` compatibility shim, and propagated the parallix/`px`
44
+ naming convention** across source, documentation, prompts, templates, examples,
45
+ `AGENTS.md`, `scripts/AGENTS.md`, agent prompt files, and operational docs
46
+ (task-1242 + task-1299, ADR 0044). The `package.json` `name` is now
47
+ `parallix` (was `visualboard-workflow`). `node parallix <command>` is
48
+ the direct local entrypoint — `workflow/index.js` no longer exists. The `px`
49
+ binary name, the `WORKFLOW_*` env-var namespace, the `.workflow/` runtime-data
50
+ directory, and the `workflow.config.json` filename are unchanged.
51
+ - PATCH — bump version before integrate, reinstall after success. This policy
52
+ ensures operators always run the `px` version that produced a change,
53
+ preventing stale binaries from executing `px integrate` against outdated
54
+ runtime fixes (e.g., `px shell-init` directory-switching from rc.3, Forgejo
55
+ review opt-in from rc.2). The version scheme is SemVer `X.Y.Z` with PATCH
56
+ bumps for each integration cycle until the first public release.
57
+
58
+ ### Added
59
+
60
+ `px` directory-switching reaches the caller's shell. The previous `bin.px` ran
61
+ as a child process and could only print `[INFO] Next: cd …`, so a plain
62
+ `px draft` / `px integrate` never moved the operator's terminal — the same
63
+ limitation that made the separate sourced `w.sh` wrapper necessary.
64
+
65
+ - `px shell-init [bash|zsh]` — prints a `px` shell function for the operator's
66
+ shell rc (`eval "$(px shell-init bash)"`). The function delegates to the
67
+ installed binary via `command px` and performs the `cd` on
68
+ `[INFO] Next: cd …` / `[INFO] Working directory: …` transitions, so a plain
69
+ `px <command>` both runs the command and switches the terminal.
70
+
71
+ ### Removed
72
+ - `workflow/w.sh` (and the repo-level `scripts/w.sh`). Superseded by the `px`
73
+ shell function: a function always runs in the caller's shell, so it no longer
74
+ needs `w.sh`'s sourced-vs-executed detection. `node parallix <command>` is
75
+ unchanged and remains the no-install dispatcher (it does not change the
76
+ caller's directory).
77
+
78
+ ## [1.0.0-rc.3] — 2026-06-05
79
+
80
+ PATCH — Fixes `graphify update` scanning entire worktree (including `.workflow/sessions/`, agent caches, session logs, and tool state) by creating a `.graphifyignore` file during draft setup that excludes `.workflow/` from extraction. Also updates rc.2 changelog entry formatting.
81
+
82
+ ### Fixed
83
+ - `ensureGraphifyIgnore` — new function in `draft.js` that creates and commits `.graphifyignore` during worktree setup, excluding `.workflow/` from graphify AST extraction
84
+ - graphify no longer wastes time/LLM cost extracting session logs, plugin caches, and agent state from `.workflow/` directories in mission worktrees
85
+
86
+ ## [1.0.0-rc.2] — 2026-06-05
87
+
88
+ PATCH — Forgejo review is now opt-in by default. `isForgejoReviewEnabled()` returns `false` when `adapters.review.provider` is unset, removing Forgejo from the critical path when no review provider is configured. Fixes handoff Step 2 failing with "No Forgejo token found" on repos without review configuration (task-1236).
89
+
90
+ ### Changed
91
+ - `isForgejoReviewEnabled` — null/missing provider now returns `false` instead of `true`
92
+ - `DEFAULT_CONFIG.review` comment updated to reflect opt-in semantics
93
+
94
+ ### Fixed
95
+ - Handoff Step 2 no longer attempts Forgejo PR creation when review is not explicitly configured
96
+
97
+ ## [1.0.0-rc.1] — 2026-06-05
98
+
99
+ First release candidate. Packaging and documentation prepared from the Phase 1–4
100
+ extraction evidence (TASK-1231 … TASK-1234) and ADR 0044. Not published.
101
+
102
+ ### Added
103
+ - Release-facing guide appended to `README.md` covering the provisional `px`
104
+ runner, cwd-based repo operation, proven workflow command delegation, the
105
+ code-owned config contract, the six agent adapters and their bare-name
106
+ `PATH` resolution, the safety model, and deferred future work.
107
+ - `CHANGELOG.md` with this versioning policy.
108
+ - `examples/` with caller-supplied temporary-target smokes for `verify-env` and
109
+ enterprise tarball transfer.
110
+ - `README.md`: the canonical packaging and install guidance — `npm pack` →
111
+ transfer the tarball → `npm install -g`, giving a single global `px` that
112
+ replaces any prior install (no accumulation) and works offline.
113
+ - `package.json` release-candidate metadata: `license`, sharpened `description`,
114
+ `bin.px`, and `CHANGELOG.md`, `docs/`, and `examples/` added to the packed
115
+ `files` allowlist.
116
+
117
+ ### Changed
118
+ - Default verification gate is now **no validation** when
119
+ `adapters.verification.command` is not configured (previously `npm test`,
120
+ which crashed with `npm ENOENT` in any non-npm target repo). parallix targets
121
+ arbitrary repositories, so a repository opts into a real gate by declaring the
122
+ command in `workflow.config.json`. `px --version`-style provenance and the
123
+ `--no-gate` opt-out are unchanged.
124
+
125
+ ### Unchanged (compatibility preserved)
126
+ - `node parallix <command>` behavior (sourced auto-`cd`, executed
127
+ handoff, deleted-start-dir recovery, exit-code preservation).
128
+ - Agent adapter resolution, eligibility, and bare-command `PATH` semantics.
129
+ - `private: true`; no `exports`, install hooks, `publishConfig`, or registry
130
+ metadata were added.
131
+
132
+ ### Deferred (not in this release candidate)
133
+ - Public registry publication, release tags, and signing.
134
+ - Final `px` command taxonomy (`px init`, `px doctor`, presets, dry-run
135
+ inventory, help redesign). The `bin.px` global-install entry point itself is
136
+ proven and used by the enterprise transfer path.
137
+ - Final public package name, ownership, and repository URL.
138
+ - Artifact signing/provenance/SBOM and full enterprise approval; standalone
139
+ binary and container artifacts. The bounded local tarball transfer via
140
+ `npm install -g` is supported (see `README.md`).