pm-presets 2026.6.1 → 2026.6.2

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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 2026.6.1 - 2026-06-01
3
+ ## 2026.06.01 - 2026-06-01
4
4
 
5
5
  ### Fixed
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;AAuCH,wBA+EG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;;;;AAgEH,wBA4IG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -15,11 +15,34 @@
15
15
  */
16
16
  import { runBugTriageSetup } from "./presets/bug-triage/index.js";
17
17
  import { runIndieDevSetup } from "./presets/indie-dev/index.js";
18
+ import { runKanbanSetup, ITEM_TYPES as kanbanItemTypes } from "./presets/kanban/index.js";
18
19
  import { runOpenSourceSetup } from "./presets/open-source/index.js";
19
20
  import { runTemplatesList, runTemplatesShow } from "./presets/shared.js";
20
21
  import { runSoftwareSprintSetup } from "./presets/software-sprint/index.js";
21
22
  import { runStartupRoadmapSetup } from "./presets/startup-roadmap/index.js";
23
+ import { PRESET_REGISTRY } from "./registry.js";
22
24
  const defineExtension = ((extension) => extension);
25
+ // A thrown error only yields a clean non-zero exit (no double-invocation) when
26
+ // it carries a numeric `exitCode`. Standalone-installed extensions can't import
27
+ // the SDK's EXIT_CODE at runtime, so mirror the contract locally.
28
+ class PresetError extends Error {
29
+ exitCode;
30
+ constructor(message, exitCode = 1) {
31
+ super(message);
32
+ this.name = "PresetError";
33
+ this.exitCode = exitCode;
34
+ }
35
+ }
36
+ // Dispatch table: preset id -> its setup handler. Powers `presets apply <id>`
37
+ // and keeps the individual *-setup commands as thin aliases.
38
+ const PRESET_HANDLERS = {
39
+ "bug-triage": runBugTriageSetup,
40
+ "indie-dev": runIndieDevSetup,
41
+ "open-source": runOpenSourceSetup,
42
+ "software-sprint": runSoftwareSprintSetup,
43
+ "startup-roadmap": runStartupRoadmapSetup,
44
+ "kanban": runKanbanSetup,
45
+ };
23
46
  // pm-cli's loose-option matcher (extension-command-options.ts) only recognizes
24
47
  // flag definitions whose `long`/`short` include their dash prefixes. Declaring
25
48
  // `long: "dry-run"` (no `--`) makes the flag invisible to `--help` AND rejected
@@ -82,6 +105,58 @@ export default defineExtension({
82
105
  flags: COMMON_FLAGS,
83
106
  run: runStartupRoadmapSetup,
84
107
  });
108
+ // ── kanban ──────────────────────────────────────────────────────────────
109
+ api.registerCommand({
110
+ name: "kanban-setup",
111
+ description: "Apply the kanban preset: continuous-flow board (backlog/ready/in-progress/review/done) with card templates.",
112
+ flags: COMMON_FLAGS,
113
+ run: runKanbanSetup,
114
+ });
115
+ // Register the kanban board columns as custom item types via the schema API.
116
+ if (typeof api.registerItemTypes === "function") {
117
+ api.registerItemTypes(kanbanItemTypes);
118
+ }
119
+ // ── unified presets list / apply ────────────────────────────────────────
120
+ api.registerCommand({
121
+ name: "presets list",
122
+ action: "presets-list",
123
+ description: "List all available workspace presets bundled in pm-presets.",
124
+ examples: ["pm presets list"],
125
+ run: () => ({
126
+ presets: PRESET_REGISTRY.map((p) => ({
127
+ id: p.id,
128
+ name: p.displayName,
129
+ command: p.command,
130
+ governance: p.governance,
131
+ templates: p.templates,
132
+ description: p.description,
133
+ })),
134
+ count: PRESET_REGISTRY.length,
135
+ }),
136
+ });
137
+ api.registerCommand({
138
+ name: "presets apply",
139
+ action: "presets-apply",
140
+ description: "Apply a workspace preset by id (e.g. `pm presets apply kanban`). Run `pm presets list` to see all ids.",
141
+ examples: [
142
+ "pm presets apply kanban",
143
+ "pm presets apply software-sprint --dry-run",
144
+ "pm presets apply bug-triage --force",
145
+ ],
146
+ arguments: [
147
+ { name: "preset", required: true, description: "Preset id (see `pm presets list`)." },
148
+ ],
149
+ flags: COMMON_FLAGS,
150
+ run: (ctx) => {
151
+ const id = ctx.args?.[0];
152
+ const handler = id ? PRESET_HANDLERS[id] : undefined;
153
+ if (!handler) {
154
+ const ids = Object.keys(PRESET_HANDLERS).join(", ");
155
+ throw new PresetError(`Unknown preset '${id ?? ""}'. Available: ${ids}. Run \`pm presets list\` for details.`, 2);
156
+ }
157
+ return handler(ctx);
158
+ },
159
+ });
85
160
  // ── create-template runtime ─────────────────────────────────────────────
86
161
  // pm create --template resolves through a package-owned "templates show"
87
162
  // command. pm-presets provides the handler for templates it installs so
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { CommandHandlerContext, SchemaItemTypeDefinition } from "@unbrained/pm-cli/sdk";
2
+ export declare const SETTINGS: {
3
+ id_prefix: string;
4
+ governance: {
5
+ preset: "minimal";
6
+ ownership_enforcement: "warn";
7
+ create_mode_default: "progressive";
8
+ close_validation_default: "off";
9
+ parent_reference: "warn";
10
+ metadata_profile: "core";
11
+ create_default_type: string;
12
+ };
13
+ validation: {
14
+ sprint_release_format: "warn";
15
+ parent_reference: "warn";
16
+ metadata_profile: "core";
17
+ };
18
+ testing: {
19
+ record_results_to_items: false;
20
+ };
21
+ };
22
+ export declare const ITEM_TYPES: SchemaItemTypeDefinition[];
23
+ export declare const TEMPLATES: {
24
+ "card.json": import("../shared.js").StoredCreateTemplateDocument;
25
+ "expedite.json": import("../shared.js").StoredCreateTemplateDocument;
26
+ "blocked.json": import("../shared.js").StoredCreateTemplateDocument;
27
+ };
28
+ export declare function runKanbanSetup(context: CommandHandlerContext): void;
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presets/kanban/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAS7F,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;CAmBU,CAAC;AAIhC,eAAO,MAAM,UAAU,EAAE,wBAAwB,EAYhD,CAAC;AAEF,eAAO,MAAM,SAAS;;;;CAgCO,CAAC;AAE9B,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAWnE"}
@@ -0,0 +1,82 @@
1
+ import { applyPreset, storedTemplate, } from "../shared.js";
2
+ export const SETTINGS = {
3
+ id_prefix: "kan-",
4
+ governance: {
5
+ preset: "minimal",
6
+ ownership_enforcement: "warn",
7
+ create_mode_default: "progressive",
8
+ close_validation_default: "off",
9
+ parent_reference: "warn",
10
+ metadata_profile: "core",
11
+ create_default_type: "Card",
12
+ },
13
+ validation: {
14
+ sprint_release_format: "warn",
15
+ parent_reference: "warn",
16
+ metadata_profile: "core",
17
+ },
18
+ testing: {
19
+ record_results_to_items: false,
20
+ },
21
+ };
22
+ // Custom item types this preset contributes to the workspace schema. Registered
23
+ // at activation via api.registerItemTypes — see ../../index.ts.
24
+ export const ITEM_TYPES = [
25
+ {
26
+ name: "Card",
27
+ aliases: ["card"],
28
+ options: [
29
+ {
30
+ key: "column",
31
+ values: ["backlog", "todo", "in-progress", "review", "done"],
32
+ },
33
+ { key: "swimlane", values: ["default", "expedite", "blocked"] },
34
+ ],
35
+ },
36
+ ];
37
+ export const TEMPLATES = {
38
+ "card.json": storedTemplate("card", {
39
+ type: "Card",
40
+ priority: "2",
41
+ tags: "kanban",
42
+ column: "backlog",
43
+ swimlane: "default",
44
+ assignee: "TBD",
45
+ acceptanceCriteria: "Card reaches the done column with its checklist complete.",
46
+ body: "## Summary\nTBD\n\n## Checklist\n- [ ] TBD\n\n## Notes\nTBD\n",
47
+ }),
48
+ "expedite.json": storedTemplate("expedite", {
49
+ type: "Card",
50
+ priority: "1",
51
+ tags: "kanban,expedite",
52
+ column: "todo",
53
+ swimlane: "expedite",
54
+ assignee: "TBD",
55
+ acceptanceCriteria: "Expedited card is unblocked and pulled straight to done.",
56
+ body: "## Why expedite\nTBD\n\n## Blocking\nTBD\n\n## Resolution\nTBD\n",
57
+ }),
58
+ "blocked.json": storedTemplate("blocked", {
59
+ type: "Card",
60
+ priority: "2",
61
+ tags: "kanban,blocked",
62
+ column: "in-progress",
63
+ swimlane: "blocked",
64
+ blockedBy: "TBD",
65
+ assignee: "TBD",
66
+ acceptanceCriteria: "Blocker is cleared and the card returns to the active flow.",
67
+ body: "## Blocked by\nTBD\n\n## Owner of blocker\nTBD\n\n## Next check-in\nTBD\n",
68
+ }),
69
+ };
70
+ export function runKanbanSetup(context) {
71
+ applyPreset(context, {
72
+ label: "Kanban board",
73
+ settings: SETTINGS,
74
+ templates: TEMPLATES,
75
+ nextSteps: [
76
+ 'pm create --template card --title "Pull a card onto the board"',
77
+ 'pm create --template expedite --title "Expedite urgent work"',
78
+ "pm list --type Card",
79
+ ],
80
+ });
81
+ }
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/kanban/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,cAAc,GAGf,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE;QACV,MAAM,EAAE,SAAS;QACjB,qBAAqB,EAAE,MAAM;QAC7B,mBAAmB,EAAE,aAAa;QAClC,wBAAwB,EAAE,KAAK;QAC/B,gBAAgB,EAAE,MAAM;QACxB,gBAAgB,EAAE,MAAM;QACxB,mBAAmB,EAAE,MAAM;KAC5B;IACD,UAAU,EAAE;QACV,qBAAqB,EAAE,MAAM;QAC7B,gBAAgB,EAAE,MAAM;QACxB,gBAAgB,EAAE,MAAM;KACzB;IACD,OAAO,EAAE;QACP,uBAAuB,EAAE,KAAK;KAC/B;CAC4B,CAAC;AAEhC,gFAAgF;AAChF,gEAAgE;AAChE,MAAM,CAAC,MAAM,UAAU,GAA+B;IACpD;QACE,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE;YACP;gBACE,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC;aAC7D;YACD,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE;SAChE;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE;QAClC,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,KAAK;QACf,kBAAkB,EAAE,2DAA2D;QAC/E,IAAI,EAAE,+DAA+D;KACtE,CAAC;IACF,eAAe,EAAE,cAAc,CAAC,UAAU,EAAE;QAC1C,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,KAAK;QACf,kBAAkB,EAAE,0DAA0D;QAC9E,IAAI,EAAE,kEAAkE;KACzE,CAAC;IACF,cAAc,EAAE,cAAc,CAAC,SAAS,EAAE;QACxC,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG;QACb,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,kBAAkB,EAAE,6DAA6D;QACjF,IAAI,EAAE,2EAA2E;KAClF,CAAC;CACyB,CAAC;AAE9B,MAAM,UAAU,cAAc,CAAC,OAA8B;IAC3D,WAAW,CAAC,OAAO,EAAE;QACnB,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE;YACT,gEAAgE;YAChE,8DAA8D;YAC9D,qBAAqB;SACtB;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -9,6 +9,7 @@ export { SETTINGS as indieDevSettings, TEMPLATES as indieDevTemplates, runIndieD
9
9
  export { SETTINGS as openSourceSettings, TEMPLATES as openSourceTemplates, runOpenSourceSetup } from "./presets/open-source/index.js";
10
10
  export { SETTINGS as softwareSprintSettings, TEMPLATES as softwareSprintTemplates, runSoftwareSprintSetup } from "./presets/software-sprint/index.js";
11
11
  export { SETTINGS as startupRoadmapSettings, TEMPLATES as startupRoadmapTemplates, runStartupRoadmapSetup } from "./presets/startup-roadmap/index.js";
12
+ export { SETTINGS as kanbanSettings, TEMPLATES as kanbanTemplates, ITEM_TYPES as kanbanItemTypes, runKanbanSetup } from "./presets/kanban/index.js";
12
13
  export interface PresetDescriptor {
13
14
  /** Stable identifier used in pm CLI commands (e.g. "bug-triage") */
14
15
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,SAAS,IAAI,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,SAAS,IAAI,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,SAAS,IAAI,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACtI,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACtJ,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAEtJ,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxD,oEAAoE;IACpE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,gBAAgB,EA8C7C,CAAC"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,SAAS,IAAI,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,SAAS,IAAI,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,SAAS,IAAI,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACtI,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACtJ,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACtJ,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,IAAI,eAAe,EAAE,UAAU,IAAI,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEpJ,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACxD,oEAAoE;IACpE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,gBAAgB,EAuD7C,CAAC"}
package/dist/registry.js CHANGED
@@ -9,6 +9,7 @@ export { SETTINGS as indieDevSettings, TEMPLATES as indieDevTemplates, runIndieD
9
9
  export { SETTINGS as openSourceSettings, TEMPLATES as openSourceTemplates, runOpenSourceSetup } from "./presets/open-source/index.js";
10
10
  export { SETTINGS as softwareSprintSettings, TEMPLATES as softwareSprintTemplates, runSoftwareSprintSetup } from "./presets/software-sprint/index.js";
11
11
  export { SETTINGS as startupRoadmapSettings, TEMPLATES as startupRoadmapTemplates, runStartupRoadmapSetup } from "./presets/startup-roadmap/index.js";
12
+ export { SETTINGS as kanbanSettings, TEMPLATES as kanbanTemplates, ITEM_TYPES as kanbanItemTypes, runKanbanSetup } from "./presets/kanban/index.js";
12
13
  export const PRESET_REGISTRY = [
13
14
  {
14
15
  id: "bug-triage",
@@ -55,5 +56,14 @@ export const PRESET_REGISTRY = [
55
56
  governance: "custom",
56
57
  templates: ["initiative", "feature", "milestone"],
57
58
  },
59
+ {
60
+ id: "kanban",
61
+ displayName: "Kanban",
62
+ description: "Continuous-flow board with backlog/ready/in-progress/review/done and WIP-friendly card templates.",
63
+ command: "kanban-setup",
64
+ idPrefix: "kb-",
65
+ governance: "minimal",
66
+ templates: ["card", "expedite", "blocked"],
67
+ },
58
68
  ];
59
69
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,SAAS,IAAI,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,SAAS,IAAI,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,SAAS,IAAI,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACtI,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACtJ,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAmBtJ,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,0FAA0F;QACvG,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC;KACrD;IACD;QACE,EAAE,EAAE,WAAW;QACf,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,2FAA2F;QACxG,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;KACjE;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,mEAAmE;QAChF,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,wFAAwF;QACrG,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;KAClD;CACF,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,SAAS,IAAI,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClI,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,SAAS,IAAI,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,SAAS,IAAI,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACtI,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACtJ,OAAO,EAAE,QAAQ,IAAI,sBAAsB,EAAE,SAAS,IAAI,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACtJ,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,SAAS,IAAI,eAAe,EAAE,UAAU,IAAI,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAmBpJ,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,0FAA0F;QACvG,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC;KACrD;IACD;QACE,EAAE,EAAE,WAAW;QACf,WAAW,EAAE,WAAW;QACxB,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;KAC5B;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE,2FAA2F;QACxG,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;KACjE;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,mEAAmE;QAChF,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC;KAC9C;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,wFAAwF;QACrG,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;KAClD;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,mGAAmG;QAChH,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC;KAC3C;CACF,CAAC"}
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-presets",
3
- "version": "2026.6.1",
3
+ "version": "2026.6.2",
4
4
  "description": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-presets",
3
- "version": "2026.6.1",
3
+ "version": "2026.6.2",
4
4
  "description": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
5
5
  "repository": {
6
6
  "type": "git",
@@ -47,7 +47,7 @@
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/node": "^25.9.1",
50
- "@unbrained/pm-cli": "^2026.5.29",
50
+ "@unbrained/pm-cli": "^2026.5.31",
51
51
  "pm-changelog": "^2026.5.29-2",
52
52
  "typescript": "^6.0.3"
53
53
  },