@roulabs/mx 2.2.0 → 2.3.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/bin/mx.js CHANGED
@@ -363,7 +363,7 @@ function initRuntime(target0, templatesDir2) {
363
363
  function ensureWorkScaffolding(root, workName) {
364
364
  const created = [];
365
365
  const wd = workDir(root, workName);
366
- for (const d of ["wt", "scripts", "files", "tmp", "sessions", "hooks"]) {
366
+ for (const d of ["wt", "scripts", "bin", "files", "tmp", "sessions", "hooks"]) {
367
367
  const p = path3.join(wd, d);
368
368
  if (!exists(p)) {
369
369
  fs4.mkdirSync(p, { recursive: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@roulabs/mx",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "mx — run several features in parallel across shared repos using git worktrees",
5
5
  "type": "module",
6
6
  "bin": {
@@ -70,6 +70,7 @@ mx/
70
70
  │ ├── repo-a/ # worktree of repo-a on this feature's branch
71
71
  │ └── repo-b/ # worktree of repo-b on this feature's branch
72
72
  ├── scripts/ # ad-hoc per-work scripts
73
+ ├── bin/ # executables/binaries a session builds or fetches
73
74
  ├── files/ # artifacts worth keeping (agent/user drop zone)
74
75
  ├── tmp/ # throwaway scratch — may be deleted at any time
75
76
  ├── hooks/ # per-work lifecycle hooks (see § Work lifecycle hooks)
@@ -91,7 +92,7 @@ mx/
91
92
  - `works/<feature>/hooks/` holds **per-work lifecycle hooks** — mx-owned scripts mx runs around
92
93
  `mx work archive`/`unarchive`. mx stamps documented no-op scripts you customize (see § Work
93
94
  lifecycle hooks).
94
- - `works/<feature>/{scripts,files,tmp}/` are the only places to put non-mx files in a work — see
95
+ - `works/<feature>/{scripts,bin,files,tmp}/` are the only places to put non-mx files in a work — see
95
96
  § The work folder holds mx-native files only.
96
97
 
97
98
  ## Work lifecycle hooks
@@ -131,6 +132,8 @@ subfolders. When you or the user need to write anything else, use one of these,
131
132
  - **`tmp/`** — throwaway scratch. Its contents may be deleted at **any** time, with no guarantees —
132
133
  never rely on anything here persisting.
133
134
  - **`scripts/`** — ad-hoc scripts for this work.
135
+ - **`bin/`** — executables and binaries this work needs: tools you compile, CLIs you download, helper
136
+ binaries. Add it to `PATH` for the work if useful. Starts empty.
134
137
 
135
138
  The one exception: a runtime file a session legitimately needs to create at the work root for tooling
136
139
  to work (e.g. an MCP connection file like `.<something>-mcp`) is fine. The rule targets *ad-hoc*
@@ -306,7 +309,7 @@ clarity; dropping it works while you're inside the work.
306
309
  5. **Don't destroy anything unless asked.** Worktrees stay until the user confirms the feature is merged.
307
310
  Teardown keeps feature branches; never delete them.
308
311
  6. **Never create ad-hoc files in the work-folder root.** Keepable artifacts go in `files/`, throwaway
309
- scratch in `tmp/`, scripts in `scripts/`. The root is mx-native only (only exception: a tooling
312
+ scratch in `tmp/`, scripts in `scripts/`, executables/binaries in `bin/`. The root is mx-native only (only exception: a tooling
310
313
  file a session genuinely needs there, e.g. an MCP connection file). See § The work folder holds
311
314
  mx-native files only.
312
315