loadouts 0.1.15 → 0.2.1

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 (48) hide show
  1. package/README.md +8 -8
  2. package/bundled/loadouts/loadouts.yaml +1 -1
  3. package/bundled/skills/{loadout-usage → loadouts-usage}/SKILL.md +1 -1
  4. package/dist/builtins/index.d.ts.map +1 -1
  5. package/dist/builtins/index.js +4 -0
  6. package/dist/builtins/index.js.map +1 -1
  7. package/dist/builtins/kinds/opencode-config.d.ts +3 -0
  8. package/dist/builtins/kinds/opencode-config.d.ts.map +1 -0
  9. package/dist/builtins/kinds/opencode-config.js +8 -0
  10. package/dist/builtins/kinds/opencode-config.js.map +1 -0
  11. package/dist/builtins/kinds/opencode-plugin.d.ts +3 -0
  12. package/dist/builtins/kinds/opencode-plugin.d.ts.map +1 -0
  13. package/dist/builtins/kinds/opencode-plugin.js +9 -0
  14. package/dist/builtins/kinds/opencode-plugin.js.map +1 -0
  15. package/dist/builtins/tools/opencode.d.ts.map +1 -1
  16. package/dist/builtins/tools/opencode.js +14 -28
  17. package/dist/builtins/tools/opencode.js.map +1 -1
  18. package/dist/cli/commands/doctor.d.ts.map +1 -1
  19. package/dist/cli/commands/doctor.js +484 -51
  20. package/dist/cli/commands/doctor.js.map +1 -1
  21. package/dist/cli/commands/init.d.ts.map +1 -1
  22. package/dist/cli/commands/init.js +6 -1
  23. package/dist/cli/commands/init.js.map +1 -1
  24. package/dist/cli/commands/install.d.ts +5 -2
  25. package/dist/cli/commands/install.d.ts.map +1 -1
  26. package/dist/cli/commands/install.js +101 -78
  27. package/dist/cli/commands/install.js.map +1 -1
  28. package/dist/cli/commands/skill.js +1 -1
  29. package/dist/cli/commands/skill.js.map +1 -1
  30. package/dist/cli/commands/update.d.ts.map +1 -1
  31. package/dist/cli/commands/update.js +1 -2
  32. package/dist/cli/commands/update.js.map +1 -1
  33. package/dist/core/import-discovery.d.ts +7 -4
  34. package/dist/core/import-discovery.d.ts.map +1 -1
  35. package/dist/core/import-discovery.js +287 -142
  36. package/dist/core/import-discovery.js.map +1 -1
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/lib/fs.d.ts.map +1 -1
  39. package/dist/lib/fs.js +2 -1
  40. package/dist/lib/fs.js.map +1 -1
  41. package/dist/lib/gitignore.d.ts +10 -10
  42. package/dist/lib/gitignore.d.ts.map +1 -1
  43. package/dist/lib/gitignore.js +142 -42
  44. package/dist/lib/gitignore.js.map +1 -1
  45. package/docs/authoring.md +40 -0
  46. package/docs/concepts.md +9 -7
  47. package/docs/troubleshooting.md +1 -4
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/lib/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/lib/fs.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Gitignore management — per-target .gitignore files.
3
3
  *
4
- * Each tool's output directory (e.g., .claude/, .cursor/) gets its own
5
- * .gitignore with paths relative to that directory. This ensures:
4
+ * Each output boundary gets its own .gitignore with paths relative to that
5
+ * directory. Tool outputs use the tool directory (e.g., .claude/, .cursor/),
6
+ * while root-level outputs use the project/global root. This ensures:
6
7
  *
7
8
  * - All artifacts are ignored regardless of activation state
8
9
  * - Global scope is supported (same mechanism, absolute target dirs)
9
- * - The project root .gitignore is not cluttered with tool-specific paths
10
+ * - The project root .gitignore only contains root-level managed outputs
10
11
  *
11
12
  * Gitignore is part of the artifact lifecycle (add/delete/import), not the
12
13
  * render pipeline. Updates happen when artifacts are created or removed,
@@ -31,19 +32,18 @@ export declare function updateTargetGitignore(targetDir: string, relativePaths:
31
32
  */
32
33
  export declare function updateLoadoutsGitignore(loadoutsDir: string): void;
33
34
  /**
34
- * Compute gitignore paths for an artifact, grouped by target directory.
35
+ * Compute gitignore paths for an artifact, grouped by gitignore directory.
35
36
  *
36
- * Returns a Map of targetBase (as stored in tool.basePath[scope]) →
37
- * relative paths within that directory.
38
- *
39
- * Instruction artifacts (CLAUDE.md, AGENTS.md) that resolve outside the
40
- * tool's base directory are automatically excluded.
37
+ * Returns a Map of gitignore base directory → relative paths within that
38
+ * directory. Outputs under a tool base use that tool base. Outputs outside the
39
+ * tool base (for example AGENTS.md or opencode.jsonc at project root) use the
40
+ * project/global root.
41
41
  */
42
42
  export declare function computeArtifactGitignorePaths(kindId: string, artifactName: string, scope?: Scope): Map<string, string[]>;
43
43
  /**
44
44
  * Rebuild gitignore entries for all artifacts in the loadouts directory.
45
45
  *
46
- * Scans all rules and skills and writes per-target .gitignore files so that
46
+ * Scans all artifacts and writes per-target .gitignore files so that
47
47
  * every artifact is ignored regardless of whether it is currently activated.
48
48
  * Called after artifact add/delete/import.
49
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/lib/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAcH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAqE9C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EAAE,GACtB,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEjE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,KAAiB,GACvB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAsDvB;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,GACX,IAAI,CAiBN;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAS1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,GACX,qBAAqB,CA2CvB;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE;AAsBD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe1E;AA2FD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D"}
1
+ {"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/lib/gitignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAcH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA0E9C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EAAE,GACtB,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEjE;AAMD;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,KAAiB,GACvB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAOvB;AA6DD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,GACX,IAAI,CAiBN;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAS1E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,KAAK,GACX,qBAAqB,CA2CvB;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAErE;AAsBD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAe1E;AAuND;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D"}
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * Gitignore management — per-target .gitignore files.
3
3
  *
4
- * Each tool's output directory (e.g., .claude/, .cursor/) gets its own
5
- * .gitignore with paths relative to that directory. This ensures:
4
+ * Each output boundary gets its own .gitignore with paths relative to that
5
+ * directory. Tool outputs use the tool directory (e.g., .claude/, .cursor/),
6
+ * while root-level outputs use the project/global root. This ensures:
6
7
  *
7
8
  * - All artifacts are ignored regardless of activation state
8
9
  * - Global scope is supported (same mechanism, absolute target dirs)
9
- * - The project root .gitignore is not cluttered with tool-specific paths
10
+ * - The project root .gitignore only contains root-level managed outputs
10
11
  *
11
12
  * Gitignore is part of the artifact lifecycle (add/delete/import), not the
12
13
  * render pipeline. Updates happen when artifacts are created or removed,
@@ -19,8 +20,9 @@
19
20
  */
20
21
  import * as path from "node:path";
21
22
  import * as os from "node:os";
22
- import { fileExists, readFile, writeFile, listFiles, listFilesWithExtension, isDirectory, } from "./fs.js";
23
+ import { fileExists, readFile, writeFile, listFiles, isDirectory, } from "./fs.js";
23
24
  import { registry } from "../core/registry.js";
25
+ import { getBundledRoot } from "../core/discovery.js";
24
26
  import { expandTemplate } from "../core/template.js";
25
27
  const START_MARKER = "# <loadouts>";
26
28
  const END_MARKER = "# </loadouts>";
@@ -30,7 +32,6 @@ const LEGACY_START_MARKER = "# <loadout>";
30
32
  const LEGACY_END_MARKER = "# </loadout>";
31
33
  // Paths always ignored within .loadouts/
32
34
  const LOADOUTS_STATE_PATHS = [".fallback-applied", ".state.json"];
33
- const MANAGED_ARTIFACT_KINDS = new Set(["rule", "skill"]);
34
35
  // ---------------------------------------------------------------------------
35
36
  // Core write function
36
37
  // ---------------------------------------------------------------------------
@@ -50,12 +51,18 @@ function updateGitignoreFile(gitignorePath, managedPaths) {
50
51
  return;
51
52
  }
52
53
  const content = readFile(gitignorePath);
53
- const startIdx = content.indexOf(START_MARKER);
54
- const endIdx = content.indexOf(END_MARKER);
54
+ let startIdx = content.indexOf(START_MARKER);
55
+ let endIdx = content.indexOf(END_MARKER);
56
+ let markerLength = END_MARKER.length;
57
+ if (startIdx === -1 || endIdx === -1 || endIdx <= startIdx) {
58
+ startIdx = content.indexOf(LEGACY_START_MARKER);
59
+ endIdx = content.indexOf(LEGACY_END_MARKER);
60
+ markerLength = LEGACY_END_MARKER.length;
61
+ }
55
62
  if (startIdx !== -1 && endIdx !== -1 && endIdx > startIdx) {
56
63
  // Replace existing section
57
64
  const before = content.slice(0, startIdx).trimEnd();
58
- const after = content.slice(endIdx + END_MARKER.length).trimStart();
65
+ const after = content.slice(endIdx + markerLength).trimStart();
59
66
  const parts = [before];
60
67
  if (managedSection)
61
68
  parts.push(managedSection);
@@ -98,54 +105,57 @@ export function updateLoadoutsGitignore(loadoutsDir) {
98
105
  // Path computation
99
106
  // ---------------------------------------------------------------------------
100
107
  /**
101
- * Compute gitignore paths for an artifact, grouped by target directory.
108
+ * Compute gitignore paths for an artifact, grouped by gitignore directory.
102
109
  *
103
- * Returns a Map of targetBase (as stored in tool.basePath[scope]) →
104
- * relative paths within that directory.
105
- *
106
- * Instruction artifacts (CLAUDE.md, AGENTS.md) that resolve outside the
107
- * tool's base directory are automatically excluded.
110
+ * Returns a Map of gitignore base directory → relative paths within that
111
+ * directory. Outputs under a tool base use that tool base. Outputs outside the
112
+ * tool base (for example AGENTS.md or opencode.jsonc at project root) use the
113
+ * project/global root.
108
114
  */
109
115
  export function computeArtifactGitignorePaths(kindId, artifactName, scope = "project") {
116
+ const kind = registry.getKind(kindId);
117
+ if (!kind)
118
+ return new Map();
119
+ const relativePath = synthesizeArtifactRelativePath(kindId, artifactName, kind.layout);
120
+ const sourcePath = path.join(os.tmpdir(), "loadouts-gitignore", relativePath);
121
+ return computeSourceArtifactGitignorePaths(kindId, relativePath, sourcePath, scope);
122
+ }
123
+ function computeSourceArtifactGitignorePaths(kindId, relativePath, sourcePath, scope) {
110
124
  const kind = registry.getKind(kindId);
111
125
  if (!kind)
112
126
  return new Map();
113
127
  const byTarget = new Map();
114
128
  for (const tool of registry.allTools()) {
115
- if (!tool.supports.includes(kindId))
116
- continue;
117
129
  const mapping = registry.resolveMapping(tool.name, kindId);
118
130
  if (!mapping)
119
131
  continue;
120
132
  const targetBase = tool.basePath[scope];
121
- const ext = mapping.ext ?? (kind.layout === "file" ? ".md" : "");
133
+ const sourceExt = path.extname(sourcePath);
134
+ const ext = mapping.ext ?? sourceExt;
122
135
  const vars = {
123
136
  base: targetBase,
124
137
  home: os.homedir(),
125
- stem: artifactName,
138
+ stem: path.basename(sourcePath, sourceExt),
126
139
  ext,
127
- name: artifactName,
128
- relative: `${kindId}s/${artifactName}${ext}`,
140
+ name: path.basename(sourcePath),
141
+ relative: relativePath,
129
142
  kind: kindId,
130
143
  };
131
144
  const pathTemplate = typeof mapping.path === "string" ? mapping.path : mapping.path[scope];
132
145
  try {
133
146
  const expandedPath = expandTemplate(pathTemplate, scope, vars);
134
- // Compute the relative path within the target directory
135
- const relPath = path.relative(targetBase, expandedPath);
136
- // Skip if the path escapes the target directory (e.g., instruction
137
- // artifacts that expand to CLAUDE.md or AGENTS.md at the project root)
138
- if (relPath.startsWith(".."))
147
+ const target = getGitignoreTarget(expandedPath, targetBase, scope);
148
+ if (!target)
139
149
  continue;
140
- const existing = byTarget.get(targetBase) ?? [];
150
+ const existing = byTarget.get(target.base) ?? [];
141
151
  if (kind.layout === "dir") {
142
152
  // Dir-layout: use trailing slash so all files within are covered
143
- existing.push(relPath.endsWith("/") ? relPath : relPath + "/");
153
+ existing.push(target.relativePath.endsWith("/") ? target.relativePath : target.relativePath + "/");
144
154
  }
145
155
  else {
146
- existing.push(relPath);
156
+ existing.push(target.relativePath);
147
157
  }
148
- byTarget.set(targetBase, existing);
158
+ byTarget.set(target.base, existing);
149
159
  }
150
160
  catch {
151
161
  // Skip if template expansion fails
@@ -159,7 +169,7 @@ export function computeArtifactGitignorePaths(kindId, artifactName, scope = "pro
159
169
  /**
160
170
  * Rebuild gitignore entries for all artifacts in the loadouts directory.
161
171
  *
162
- * Scans all rules and skills and writes per-target .gitignore files so that
172
+ * Scans all artifacts and writes per-target .gitignore files so that
163
173
  * every artifact is ignored regardless of whether it is currently activated.
164
174
  * Called after artifact add/delete/import.
165
175
  *
@@ -223,7 +233,7 @@ export function inspectGitignoreHealth(loadoutsDir, projectRoot, scope) {
223
233
  const expectedStatePaths = normalizePaths(LOADOUTS_STATE_PATHS);
224
234
  const actualStatePaths = normalizePaths(getManagedPathsFromTarget(loadoutsDir));
225
235
  const loadoutsStateOutOfDate = !samePaths(expectedStatePaths, actualStatePaths);
226
- const hasLegacyRootSection = hasLegacyRootGitignoreSection(projectRoot);
236
+ const hasLegacyRootSection = hasOldRootGitignoreSection(projectRoot);
227
237
  const issues = targetMismatches.length +
228
238
  (loadoutsStateOutOfDate ? 1 : 0) +
229
239
  (hasLegacyRootSection ? 1 : 0);
@@ -298,28 +308,118 @@ function hasMarkerSection(content, startMarker, endMarker) {
298
308
  const endIdx = content.indexOf(endMarker);
299
309
  return startIdx !== -1 && endIdx !== -1 && endIdx > startIdx;
300
310
  }
311
+ function hasOldRootGitignoreSection(projectRoot) {
312
+ const gitignorePath = path.join(projectRoot, ".gitignore");
313
+ if (!fileExists(gitignorePath))
314
+ return false;
315
+ const content = readFile(gitignorePath);
316
+ return hasMarkerSection(content, LEGACY_START_MARKER, LEGACY_END_MARKER);
317
+ }
301
318
  function collectArtifactPathsByTarget(loadoutsDir, scope) {
302
- const rulesDir = path.join(loadoutsDir, "rules");
303
- const skillsDir = path.join(loadoutsDir, "skills");
304
319
  const allByTarget = new Map();
305
- for (const file of listFilesWithExtension(rulesDir, ".md")) {
306
- const name = file.replace(/\.md$/, "");
307
- mergeIntoMap(allByTarget, computeArtifactGitignorePaths("rule", name, scope));
308
- }
309
- for (const name of listFiles(skillsDir).filter((d) => isDirectory(path.join(skillsDir, d)))) {
310
- mergeIntoMap(allByTarget, computeArtifactGitignorePaths("skill", name, scope));
320
+ const roots = [loadoutsDir, ...getSupplementalArtifactRoots(loadoutsDir, scope)];
321
+ for (const root of roots) {
322
+ for (const artifact of collectArtifacts(root)) {
323
+ mergeIntoMap(allByTarget, computeSourceArtifactGitignorePaths(artifact.kindId, artifact.relativePath, artifact.sourcePath, scope));
324
+ }
311
325
  }
312
326
  return allByTarget;
313
327
  }
328
+ function getSupplementalArtifactRoots(loadoutsDir, scope) {
329
+ // Bundled artifacts should contribute to global ignore expectations when
330
+ // global loadouts are managed from ~/.config/loadouts.
331
+ if (scope !== "global")
332
+ return [];
333
+ if (!isGlobalLoadoutsDir(loadoutsDir))
334
+ return [];
335
+ const bundled = getBundledRoot();
336
+ if (!bundled)
337
+ return [];
338
+ return [bundled.path];
339
+ }
340
+ function isGlobalLoadoutsDir(loadoutsDir) {
341
+ const expected = path.resolve(os.homedir(), ".config", "loadouts");
342
+ return path.resolve(loadoutsDir) === expected;
343
+ }
314
344
  function getManagedTargetBases(scope) {
315
- const bases = new Set();
345
+ const bases = new Set([getRootGitignoreBase(scope)]);
316
346
  for (const tool of registry.allTools()) {
317
- if (!tool.supports.some((kind) => MANAGED_ARTIFACT_KINDS.has(kind)))
318
- continue;
319
347
  bases.add(tool.basePath[scope]);
320
348
  }
321
349
  return [...bases];
322
350
  }
351
+ function collectArtifacts(loadoutsDir) {
352
+ const artifacts = [];
353
+ function walk(relativeDir) {
354
+ const absDir = path.join(loadoutsDir, relativeDir);
355
+ for (const entry of listFiles(absDir).sort()) {
356
+ const relativePath = relativeDir ? path.join(relativeDir, entry) : entry;
357
+ const sourcePath = path.join(loadoutsDir, relativePath);
358
+ if (isDirectory(sourcePath)) {
359
+ const kindId = registry.inferKind(relativePath);
360
+ const kind = kindId ? registry.getKind(kindId) : undefined;
361
+ if (kindId && kind?.layout === "dir") {
362
+ artifacts.push({ kindId, relativePath, sourcePath });
363
+ continue;
364
+ }
365
+ walk(relativePath);
366
+ continue;
367
+ }
368
+ const kindId = registry.inferKind(relativePath);
369
+ const kind = kindId ? registry.getKind(kindId) : undefined;
370
+ if (kindId && kind?.layout === "file") {
371
+ artifacts.push({ kindId, relativePath, sourcePath });
372
+ }
373
+ }
374
+ }
375
+ walk("");
376
+ return artifacts;
377
+ }
378
+ function synthesizeArtifactRelativePath(kindId, artifactName, layout) {
379
+ if (kindId === "rule")
380
+ return `rules/${artifactName}.md`;
381
+ if (kindId === "skill")
382
+ return `skills/${artifactName}`;
383
+ if (kindId === "instruction")
384
+ return `instructions/${artifactName}.md`;
385
+ if (kindId === "prompt")
386
+ return `prompts/${artifactName}.md`;
387
+ if (kindId === "extension")
388
+ return `extensions/${withDefaultExtension(artifactName, ".ts")}`;
389
+ if (kindId === "theme")
390
+ return `themes/${withDefaultExtension(artifactName, ".json")}`;
391
+ if (kindId === "opencode-config")
392
+ return `opencode/${withDefaultExtension(artifactName, ".jsonc")}`;
393
+ if (kindId === "opencode-plugin")
394
+ return `opencode/plugins/${withDefaultExtension(artifactName, ".ts")}`;
395
+ return layout === "dir" ? `${kindId}s/${artifactName}` : `${kindId}s/${artifactName}.md`;
396
+ }
397
+ function withDefaultExtension(name, ext) {
398
+ return path.extname(name) ? name : `${name}${ext}`;
399
+ }
400
+ function getGitignoreTarget(targetPath, toolBase, scope) {
401
+ const normalizedTarget = path.normalize(targetPath);
402
+ const normalizedBase = path.normalize(toolBase);
403
+ const relativeToToolBase = path.relative(normalizedBase, normalizedTarget);
404
+ if (relativeToToolBase &&
405
+ !relativeToToolBase.startsWith("..") &&
406
+ !path.isAbsolute(relativeToToolBase)) {
407
+ return { base: toolBase, relativePath: relativeToToolBase };
408
+ }
409
+ if (!path.isAbsolute(normalizedTarget)) {
410
+ return {
411
+ base: getRootGitignoreBase(scope),
412
+ relativePath: normalizedTarget,
413
+ };
414
+ }
415
+ return {
416
+ base: path.dirname(normalizedTarget),
417
+ relativePath: path.basename(normalizedTarget),
418
+ };
419
+ }
420
+ function getRootGitignoreBase(scope) {
421
+ return scope === "project" ? "." : os.homedir();
422
+ }
323
423
  function normalizePaths(paths) {
324
424
  return [...new Set(paths)].sort();
325
425
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/lib/gitignore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/lib/gitignore.ts"],"names":[],"mappings":"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"}
package/docs/authoring.md CHANGED
@@ -142,6 +142,46 @@ include:
142
142
 
143
143
  ---
144
144
 
145
+ ## OpenCode Config And Plugins
146
+
147
+ OpenCode-specific artifacts live under `.loadouts/opencode/` and only render when included in a loadout that targets `opencode`.
148
+
149
+ **Whole-file config:**
150
+ ```jsonc
151
+ // .loadouts/opencode/opencode.jsonc
152
+ {
153
+ "$schema": "https://opencode.ai/config.json",
154
+ "plugin": ["opencode-wakatime"]
155
+ }
156
+ ```
157
+
158
+ Project scope renders this to `opencode.jsonc`. Global scope renders it to `~/.config/opencode/opencode.jsonc`. This is whole-file ownership; if you do not include this artifact, loadouts does not touch your OpenCode config file.
159
+
160
+ **Local plugins:**
161
+ ```ts
162
+ // .loadouts/opencode/plugins/notify.ts
163
+ import type { Plugin } from "@opencode-ai/plugin";
164
+
165
+ export const Notify: Plugin = async ({ $ }) => ({
166
+ "session.idle": async () => {
167
+ await $`osascript -e 'display notification "Session completed" with title "opencode"`;
168
+ },
169
+ });
170
+ ```
171
+
172
+ Project scope renders this to `.opencode/plugins/notify.ts`. Global scope renders it to `~/.config/opencode/plugins/notify.ts`.
173
+
174
+ **Include in a loadout:**
175
+ ```yaml
176
+ include:
177
+ - opencode/opencode.jsonc
178
+ - opencode/plugins/notify.ts
179
+ ```
180
+
181
+ NPM plugins belong in the managed `opencode.json(c)` `plugin` array. Local plugin source files belong in `.loadouts/opencode/plugins/`.
182
+
183
+ ---
184
+
145
185
  ## Custom Kinds
146
186
 
147
187
  Define custom artifact types in `.loadouts/kinds/*.yaml`:
package/docs/concepts.md CHANGED
@@ -78,16 +78,18 @@ include:
78
78
  | `prompt` | file | Slash command templates |
79
79
  | `extension` | directory | Runtime code extensions |
80
80
  | `theme` | file | UI theme configuration |
81
+ | `opencode-config` | file | Whole-file OpenCode runtime configuration |
82
+ | `opencode-plugin` | file | Local OpenCode plugin modules |
81
83
 
82
84
  ## Supported Tools
83
85
 
84
- | Tool | Rules | Skills | Instructions |
85
- |------|-------|--------|--------------|
86
- | Claude Code | `.claude/rules/*.md` | `.claude/skills/` | `CLAUDE.md` |
87
- | Cursor | `.cursor/rules/*.mdc` | `.cursor/skills/` | `AGENTS.md` |
88
- | OpenCode | `.opencode/rules/*.md` | `.opencode/skills/` | `AGENTS.md` |
89
- | Codex | — | `.agents/skills/` | `AGENTS.md` |
90
- | Pi | `.pi/rules/*.md` | `.pi/skills/` | `AGENTS.md` |
86
+ | Tool | Rules | Skills | Instructions | Extra Artifacts |
87
+ |------|-------|--------|--------------|-----------------|
88
+ | Claude Code | `.claude/rules/*.md` | `.claude/skills/` | `CLAUDE.md` | — |
89
+ | Cursor | `.cursor/rules/*.mdc` | `.cursor/skills/` | `AGENTS.md` | — |
90
+ | OpenCode | `.opencode/rules/*.md` | `.opencode/skills/` | `AGENTS.md` | `opencode.json(c)`, `.opencode/plugins/` |
91
+ | Codex | — | `.agents/skills/` | `AGENTS.md` | — |
92
+ | Pi | `.pi/rules/*.md` | `.pi/skills/` | `AGENTS.md` | `.pi/extensions/`, `.pi/themes/` |
91
93
 
92
94
  ## Sources (Cross-Project Config)
93
95
 
@@ -51,10 +51,7 @@ loadouts sync # Re-render if needed
51
51
 
52
52
  **Cursor:** Rules need `.mdc` extension — loadouts handles this automatically. Restart Cursor if rules don't appear immediately.
53
53
 
54
- **OpenCode:** Rules require the `opencode-rules` plugin. Add to `opencode.json`:
55
- ```json
56
- { "plugins": ["opencode-rules"] }
57
- ```
54
+ **OpenCode:** Rules render to `.opencode/rules/`. Local plugins render to `.opencode/plugins/`, and NPM plugins are configured with the `plugin` array in `opencode.json(c)`.
58
55
 
59
56
  **Claude Code:** Verify rules exist in `.claude/rules/`. May require restarting the session.
60
57
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loadouts",
3
- "version": "0.1.15",
3
+ "version": "0.2.1",
4
4
  "description": "Composable configuration bundles for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {