@theholocron/cli 4.12.1 → 4.13.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/README.md CHANGED
@@ -133,6 +133,30 @@ Writes `"holocron": "<holocronScript ?? 'holocron'>"` plus one
133
133
  `"<task>": "holocron run <task>"` per runnable task. `syncScripts: false`
134
134
  opts out entirely.
135
135
 
136
+ ### Splitting the task manifest — `astromech.config.ts`
137
+
138
+ The `tasks` key (plus `syncScripts` / `holocronScript` / `hooks` /
139
+ `extraRequiredChecks`) can move to a dedicated
140
+ `astromech.config.{ts,js,mjs,json}` at the project root:
141
+
142
+ ```ts
143
+ // astromech.config.ts
144
+ import { defineConfig } from "@theholocron/astromech/config";
145
+
146
+ export default defineConfig({
147
+ tasks: [{ name: "audit", required: true, with: { "run-knip": true } }, "wiki"],
148
+ syncScripts: false,
149
+ });
150
+ ```
151
+
152
+ `@theholocron/astromech`'s `loadTasksConfig` merges it over
153
+ `holocron.config`'s `tasks` — **task arrays concatenate**
154
+ (`holocron.config` first), the dedicated file **wins on scalars**,
155
+ `extraRequiredChecks` concatenate. `holocron run` / `holocron ci` /
156
+ `holocron setup` / `holocron sync` all read the merged result, so the
157
+ split is transparent. Useful for keeping the capability/provider config
158
+ and the "what this repo runs" manifest in separate files (this repo does).
159
+
136
160
  ### `holocron run`
137
161
 
138
162
  ```bash
package/dist/cli.mjs CHANGED
@@ -6449,6 +6449,12 @@ async function deriveDefaults(configDir, raw) {
6449
6449
  name: repoName
6450
6450
  };
6451
6451
  }
6452
+ const manifest = await loadTasksConfig(configDir);
6453
+ if (manifest.tasks) result.tasks = manifest.tasks;
6454
+ if (manifest.syncScripts !== void 0) result.syncScripts = manifest.syncScripts;
6455
+ if (manifest.holocronScript !== void 0) result.holocronScript = manifest.holocronScript;
6456
+ if (manifest.hooks !== void 0) result.hooks = manifest.hooks;
6457
+ if (manifest.extraRequiredChecks) result.extraRequiredChecks = [...result.extraRequiredChecks ?? [], ...manifest.extraRequiredChecks];
6452
6458
  return result;
6453
6459
  }
6454
6460
  async function readPackageJsonName(dir) {