pm-presets 2026.5.28
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 +12 -0
- package/LICENSE +21 -0
- package/README.md +163 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/bug-triage/index.d.ts +40 -0
- package/dist/presets/bug-triage/index.d.ts.map +1 -0
- package/dist/presets/bug-triage/index.js +172 -0
- package/dist/presets/bug-triage/index.js.map +1 -0
- package/dist/presets/indie-dev/index.d.ts +24 -0
- package/dist/presets/indie-dev/index.d.ts.map +1 -0
- package/dist/presets/indie-dev/index.js +113 -0
- package/dist/presets/indie-dev/index.js.map +1 -0
- package/dist/presets/open-source/index.d.ts +43 -0
- package/dist/presets/open-source/index.d.ts.map +1 -0
- package/dist/presets/open-source/index.js +147 -0
- package/dist/presets/open-source/index.js.map +1 -0
- package/dist/presets/software-sprint/index.d.ts +24 -0
- package/dist/presets/software-sprint/index.d.ts.map +1 -0
- package/dist/presets/software-sprint/index.js +165 -0
- package/dist/presets/software-sprint/index.js.map +1 -0
- package/dist/presets/startup-roadmap/index.d.ts +43 -0
- package/dist/presets/startup-roadmap/index.d.ts.map +1 -0
- package/dist/presets/startup-roadmap/index.js +172 -0
- package/dist/presets/startup-roadmap/index.js.map +1 -0
- package/dist/registry.d.ts +29 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +59 -0
- package/dist/registry.js.map +1 -0
- package/manifest.json +62 -0
- package/package.json +112 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import * as fs from "node:fs";
|
|
2
|
+
import * as path from "node:path";
|
|
3
|
+
// ─── Settings ────────────────────────────────────────────────────────────────
|
|
4
|
+
export const SETTINGS = {
|
|
5
|
+
id_prefix: "road-",
|
|
6
|
+
governance: {
|
|
7
|
+
preset: "default",
|
|
8
|
+
ownership_enforcement: "warn",
|
|
9
|
+
create_mode_default: "progressive",
|
|
10
|
+
close_validation_default: "warn",
|
|
11
|
+
metadata_profile: "strict",
|
|
12
|
+
},
|
|
13
|
+
validation: {
|
|
14
|
+
sprint_release_format: "warn",
|
|
15
|
+
parent_reference: "warn",
|
|
16
|
+
},
|
|
17
|
+
item_types: {
|
|
18
|
+
definitions: [
|
|
19
|
+
{
|
|
20
|
+
name: "Epic",
|
|
21
|
+
description: "A top-level strategic initiative on the roadmap",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: "Feature",
|
|
25
|
+
description: "A product feature tied to a milestone",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "Task",
|
|
29
|
+
description: "Execution-level work item",
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
testing: {
|
|
34
|
+
record_results_to_items: false,
|
|
35
|
+
},
|
|
36
|
+
search: {
|
|
37
|
+
mode: "keyword",
|
|
38
|
+
},
|
|
39
|
+
calendar: {
|
|
40
|
+
default_view: "month",
|
|
41
|
+
first_day_of_week: 1,
|
|
42
|
+
},
|
|
43
|
+
telemetry: {
|
|
44
|
+
enabled: false,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
// ─── Templates ───────────────────────────────────────────────────────────────
|
|
48
|
+
const TEMPLATE_INITIATIVE = {
|
|
49
|
+
type: "Epic",
|
|
50
|
+
priority: "high",
|
|
51
|
+
tags: ["initiative", "roadmap"],
|
|
52
|
+
meta: {
|
|
53
|
+
objective: "",
|
|
54
|
+
business_value: "",
|
|
55
|
+
target_outcome: "",
|
|
56
|
+
success_metrics: "",
|
|
57
|
+
owner: "",
|
|
58
|
+
stakeholders: "",
|
|
59
|
+
target_quarter: "",
|
|
60
|
+
investment_level: "",
|
|
61
|
+
dependencies: "",
|
|
62
|
+
risks: "",
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
const TEMPLATE_FEATURE = {
|
|
66
|
+
type: "Feature",
|
|
67
|
+
priority: "medium",
|
|
68
|
+
tags: ["feature"],
|
|
69
|
+
meta: {
|
|
70
|
+
milestone: "",
|
|
71
|
+
user_story: "",
|
|
72
|
+
acceptance_criteria: "",
|
|
73
|
+
business_value: "",
|
|
74
|
+
impacted_personas: "",
|
|
75
|
+
owner: "",
|
|
76
|
+
design_link: "",
|
|
77
|
+
effort_estimate: "",
|
|
78
|
+
dependencies: "",
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
const TEMPLATE_MILESTONE = {
|
|
82
|
+
type: "Milestone",
|
|
83
|
+
priority: "high",
|
|
84
|
+
tags: ["milestone"],
|
|
85
|
+
meta: {
|
|
86
|
+
target_date: "",
|
|
87
|
+
release_name: "",
|
|
88
|
+
scope_summary: "",
|
|
89
|
+
exit_criteria: "",
|
|
90
|
+
owner: "",
|
|
91
|
+
stakeholder_sign_off: "",
|
|
92
|
+
investor_facing: "false",
|
|
93
|
+
go_to_market_notes: "",
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
export const TEMPLATES = {
|
|
97
|
+
"initiative.json": TEMPLATE_INITIATIVE,
|
|
98
|
+
"feature.json": TEMPLATE_FEATURE,
|
|
99
|
+
"milestone.json": TEMPLATE_MILESTONE,
|
|
100
|
+
};
|
|
101
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
102
|
+
function writeJsonFile(filePath, data, dryRun, label) {
|
|
103
|
+
if (dryRun) {
|
|
104
|
+
console.log(`[dry-run] Would write: ${filePath}`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n", "utf8");
|
|
108
|
+
console.log(` wrote ${label}: ${filePath}`);
|
|
109
|
+
}
|
|
110
|
+
// ─── Command Handler ──────────────────────────────────────────────────────────
|
|
111
|
+
export async function runStartupRoadmapSetup(context) {
|
|
112
|
+
const { options, pm_root } = context;
|
|
113
|
+
const force = Boolean(options["force"]);
|
|
114
|
+
const dryRun = Boolean(options["dry-run"]);
|
|
115
|
+
const prefixOverride = typeof options["prefix"] === "string" && options["prefix"] !== ""
|
|
116
|
+
? options["prefix"]
|
|
117
|
+
: null;
|
|
118
|
+
const cwd = pm_root ?? process.cwd();
|
|
119
|
+
const pmDir = path.join(cwd, ".agents", "pm");
|
|
120
|
+
// 1. Verify .agents/pm/ exists
|
|
121
|
+
if (!fs.existsSync(pmDir)) {
|
|
122
|
+
console.error(`Error: pm workspace not found at ${pmDir}\n` +
|
|
123
|
+
`Run "pm init" first to initialise the workspace.`);
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
console.log(`Applying startup-roadmap preset to: ${pmDir}`);
|
|
127
|
+
if (dryRun) {
|
|
128
|
+
console.log("(dry-run mode — no files will be written)\n");
|
|
129
|
+
}
|
|
130
|
+
// 2. Write settings.json
|
|
131
|
+
const settingsPath = path.join(pmDir, "settings.json");
|
|
132
|
+
const settingsExist = fs.existsSync(settingsPath);
|
|
133
|
+
if (settingsExist && !force) {
|
|
134
|
+
console.warn(`Warning: ${settingsPath} already exists — skipping.\n` +
|
|
135
|
+
`Pass --force to overwrite.`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const finalSettings = {
|
|
139
|
+
...SETTINGS,
|
|
140
|
+
id_prefix: prefixOverride ?? SETTINGS.id_prefix,
|
|
141
|
+
};
|
|
142
|
+
writeJsonFile(settingsPath, finalSettings, dryRun, "settings.json");
|
|
143
|
+
}
|
|
144
|
+
// 3. Create templates directory and write templates
|
|
145
|
+
const templatesDir = path.join(pmDir, "templates");
|
|
146
|
+
if (!dryRun && !fs.existsSync(templatesDir)) {
|
|
147
|
+
fs.mkdirSync(templatesDir, { recursive: true });
|
|
148
|
+
console.log(` created directory: ${templatesDir}`);
|
|
149
|
+
}
|
|
150
|
+
else if (dryRun) {
|
|
151
|
+
console.log(`[dry-run] Would create directory: ${templatesDir}`);
|
|
152
|
+
}
|
|
153
|
+
writeJsonFile(path.join(templatesDir, "initiative.json"), TEMPLATE_INITIATIVE, dryRun, "initiative.json");
|
|
154
|
+
writeJsonFile(path.join(templatesDir, "feature.json"), TEMPLATE_FEATURE, dryRun, "feature.json");
|
|
155
|
+
writeJsonFile(path.join(templatesDir, "milestone.json"), TEMPLATE_MILESTONE, dryRun, "milestone.json");
|
|
156
|
+
// 4. Print next steps
|
|
157
|
+
console.log(`
|
|
158
|
+
Startup-roadmap preset applied successfully.
|
|
159
|
+
|
|
160
|
+
Next steps:
|
|
161
|
+
pm create --template initiative # Create a strategic initiative (Epic)
|
|
162
|
+
pm create --template feature # Create a product feature
|
|
163
|
+
pm create --template milestone # Create a milestone
|
|
164
|
+
|
|
165
|
+
Tips:
|
|
166
|
+
- Use "pm list --tag roadmap" to see all roadmap initiatives.
|
|
167
|
+
- Use "pm list --tag milestone" to track milestones.
|
|
168
|
+
- Investor-facing milestones: set meta.investor_facing = "true".
|
|
169
|
+
- Run "pm calendar" to view items in the monthly calendar.
|
|
170
|
+
`);
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/presets/startup-roadmap/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* registry.ts — exposes all 5 presets to the pm CLI extension system.
|
|
3
|
+
*
|
|
4
|
+
* Each entry describes the preset's command name, flags, settings, and
|
|
5
|
+
* templates so callers can enumerate them without running the command.
|
|
6
|
+
*/
|
|
7
|
+
export { SETTINGS as bugTriageSettings, TEMPLATES as bugTriageTemplates, runBugTriageSetup } from "./presets/bug-triage/index.js";
|
|
8
|
+
export { SETTINGS as indieDevSettings, TEMPLATES as indieDevTemplates, runIndieDevSetup } from "./presets/indie-dev/index.js";
|
|
9
|
+
export { SETTINGS as openSourceSettings, TEMPLATES as openSourceTemplates, runOpenSourceSetup } from "./presets/open-source/index.js";
|
|
10
|
+
export { SETTINGS as softwareSprintSettings, TEMPLATES as softwareSprintTemplates, runSoftwareSprintSetup } from "./presets/software-sprint/index.js";
|
|
11
|
+
export { SETTINGS as startupRoadmapSettings, TEMPLATES as startupRoadmapTemplates, runStartupRoadmapSetup } from "./presets/startup-roadmap/index.js";
|
|
12
|
+
export interface PresetDescriptor {
|
|
13
|
+
/** Stable identifier used in pm CLI commands (e.g. "bug-triage") */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Human-readable display name */
|
|
16
|
+
displayName: string;
|
|
17
|
+
/** Short description for `pm preset list` */
|
|
18
|
+
description: string;
|
|
19
|
+
/** The pm CLI command that applies this preset (e.g. "triage-setup") */
|
|
20
|
+
command: string;
|
|
21
|
+
/** Default id_prefix written to settings.json */
|
|
22
|
+
idPrefix: string;
|
|
23
|
+
/** Governance level: minimal | default | strict */
|
|
24
|
+
governance: "minimal" | "default" | "strict";
|
|
25
|
+
/** Template names this preset installs (without .json extension) */
|
|
26
|
+
templates: string[];
|
|
27
|
+
}
|
|
28
|
+
export declare const PRESET_REGISTRY: PresetDescriptor[];
|
|
29
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +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,mDAAmD;IACnD,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7C,oEAAoE;IACpE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,EAAE,gBAAgB,EA8C7C,CAAC"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* registry.ts — exposes all 5 presets to the pm CLI extension system.
|
|
3
|
+
*
|
|
4
|
+
* Each entry describes the preset's command name, flags, settings, and
|
|
5
|
+
* templates so callers can enumerate them without running the command.
|
|
6
|
+
*/
|
|
7
|
+
export { SETTINGS as bugTriageSettings, TEMPLATES as bugTriageTemplates, runBugTriageSetup } from "./presets/bug-triage/index.js";
|
|
8
|
+
export { SETTINGS as indieDevSettings, TEMPLATES as indieDevTemplates, runIndieDevSetup } from "./presets/indie-dev/index.js";
|
|
9
|
+
export { SETTINGS as openSourceSettings, TEMPLATES as openSourceTemplates, runOpenSourceSetup } from "./presets/open-source/index.js";
|
|
10
|
+
export { SETTINGS as softwareSprintSettings, TEMPLATES as softwareSprintTemplates, runSoftwareSprintSetup } from "./presets/software-sprint/index.js";
|
|
11
|
+
export { SETTINGS as startupRoadmapSettings, TEMPLATES as startupRoadmapTemplates, runStartupRoadmapSetup } from "./presets/startup-roadmap/index.js";
|
|
12
|
+
export const PRESET_REGISTRY = [
|
|
13
|
+
{
|
|
14
|
+
id: "bug-triage",
|
|
15
|
+
displayName: "Bug Triage",
|
|
16
|
+
description: "Strict governance for production incidents, hotfixes, and mandatory root-cause metadata.",
|
|
17
|
+
command: "triage-setup",
|
|
18
|
+
idPrefix: "bug-",
|
|
19
|
+
governance: "strict",
|
|
20
|
+
templates: ["incident", "hotfix-task", "regression"],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: "indie-dev",
|
|
24
|
+
displayName: "Indie Dev",
|
|
25
|
+
description: "Minimal-ceremony workspace for solo developers and personal projects.",
|
|
26
|
+
command: "indie-setup",
|
|
27
|
+
idPrefix: "indie-",
|
|
28
|
+
governance: "minimal",
|
|
29
|
+
templates: ["idea", "task"],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "open-source",
|
|
33
|
+
displayName: "Open Source",
|
|
34
|
+
description: "Issue triage, milestone releases, and contributor-friendly templates for OSS maintainers.",
|
|
35
|
+
command: "oss-setup",
|
|
36
|
+
idPrefix: "oss-",
|
|
37
|
+
governance: "default",
|
|
38
|
+
templates: ["bug-report", "feature-request", "good-first-issue"],
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: "software-sprint",
|
|
42
|
+
displayName: "Software Sprint",
|
|
43
|
+
description: "Sprint-based team workflow with epics, features, tasks, and bugs.",
|
|
44
|
+
command: "sprint-setup",
|
|
45
|
+
idPrefix: "sprint-",
|
|
46
|
+
governance: "default",
|
|
47
|
+
templates: ["epic", "feature", "task", "bug"],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: "startup-roadmap",
|
|
51
|
+
displayName: "Startup Roadmap",
|
|
52
|
+
description: "Investor-grade milestones, strategic initiatives, and quarterly planning for startups.",
|
|
53
|
+
command: "roadmap-setup",
|
|
54
|
+
idPrefix: "road-",
|
|
55
|
+
governance: "default",
|
|
56
|
+
templates: ["initiative", "feature", "milestone"],
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +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,SAAS;QACrB,SAAS,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;KAClD;CACF,CAAC"}
|
package/manifest.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pm-presets",
|
|
3
|
+
"version": "2026.5.28",
|
|
4
|
+
"description": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
|
|
5
|
+
"author": "@unbraind",
|
|
6
|
+
"entry": "./dist/index.js",
|
|
7
|
+
"priority": 50,
|
|
8
|
+
"capabilities": [
|
|
9
|
+
"commands",
|
|
10
|
+
"schema"
|
|
11
|
+
],
|
|
12
|
+
"pm": {
|
|
13
|
+
"compatibility": "v2"
|
|
14
|
+
},
|
|
15
|
+
"presets": [
|
|
16
|
+
{
|
|
17
|
+
"id": "bug-triage",
|
|
18
|
+
"command": "triage-setup",
|
|
19
|
+
"displayName": "Bug Triage",
|
|
20
|
+
"description": "Strict governance for production incidents, hotfixes, and mandatory root-cause metadata.",
|
|
21
|
+
"idPrefix": "bug-",
|
|
22
|
+
"governance": "strict",
|
|
23
|
+
"templates": ["incident", "hotfix-task", "regression"]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "indie-dev",
|
|
27
|
+
"command": "indie-setup",
|
|
28
|
+
"displayName": "Indie Dev",
|
|
29
|
+
"description": "Minimal-ceremony workspace for solo developers and personal projects.",
|
|
30
|
+
"idPrefix": "indie-",
|
|
31
|
+
"governance": "minimal",
|
|
32
|
+
"templates": ["idea", "task"]
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "open-source",
|
|
36
|
+
"command": "oss-setup",
|
|
37
|
+
"displayName": "Open Source",
|
|
38
|
+
"description": "Issue triage, milestone releases, and contributor-friendly templates for OSS maintainers.",
|
|
39
|
+
"idPrefix": "oss-",
|
|
40
|
+
"governance": "default",
|
|
41
|
+
"templates": ["bug-report", "feature-request", "good-first-issue"]
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "software-sprint",
|
|
45
|
+
"command": "sprint-setup",
|
|
46
|
+
"displayName": "Software Sprint",
|
|
47
|
+
"description": "Sprint-based team workflow with epics, features, tasks, and bugs.",
|
|
48
|
+
"idPrefix": "sprint-",
|
|
49
|
+
"governance": "default",
|
|
50
|
+
"templates": ["epic", "feature", "task", "bug"]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "startup-roadmap",
|
|
54
|
+
"command": "roadmap-setup",
|
|
55
|
+
"displayName": "Startup Roadmap",
|
|
56
|
+
"description": "Investor-grade milestones, strategic initiatives, and quarterly planning for startups.",
|
|
57
|
+
"idPrefix": "road-",
|
|
58
|
+
"governance": "default",
|
|
59
|
+
"templates": ["initiative", "feature", "milestone"]
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pm-presets",
|
|
3
|
+
"version": "2026.5.28",
|
|
4
|
+
"description": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/unbraind/pm-presets.git"
|
|
8
|
+
},
|
|
9
|
+
"bugs": {
|
|
10
|
+
"url": "https://github.com/unbraind/pm-presets/issues"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/unbraind/pm-presets#readme",
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "dist/index.js",
|
|
15
|
+
"types": "dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./registry": {
|
|
22
|
+
"types": "./dist/registry.d.ts",
|
|
23
|
+
"default": "./dist/registry.js"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist/",
|
|
28
|
+
"manifest.json",
|
|
29
|
+
"README.md",
|
|
30
|
+
"CHANGELOG.md"
|
|
31
|
+
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsc",
|
|
34
|
+
"prepack": "npm run build",
|
|
35
|
+
"typecheck": "tsc --noEmit",
|
|
36
|
+
"check": "npm run typecheck",
|
|
37
|
+
"test": "node --test --experimental-strip-types tests/registry.test.ts",
|
|
38
|
+
"audit:prod": "npm audit --omit=dev",
|
|
39
|
+
"pack:dry-run": "npm pack --dry-run",
|
|
40
|
+
"changelog": "pm-changelog --pm-root .agents/pm --mode prepend --output CHANGELOG.md --release-version-from-package --since-previous-tag --until-release-tag --item-url-base https://github.com/unbraind/pm-presets/blob/main/.agents/pm",
|
|
41
|
+
"changelog:full": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-presets/blob/main/.agents/pm",
|
|
42
|
+
"changelog:check": "pm-changelog --pm-root .agents/pm --mode replace --output CHANGELOG.md --all-release-tags --release-version-from-package --item-url-base https://github.com/unbraind/pm-presets/blob/main/.agents/pm --check",
|
|
43
|
+
"release:check": "npm run typecheck && npm run build && npm run audit:prod && npm run pack:dry-run && npm run changelog:check"
|
|
44
|
+
},
|
|
45
|
+
"peerDependencies": {
|
|
46
|
+
"@unbrained/pm-cli": ">=2026.5.24"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"typescript": "^6.0.3",
|
|
50
|
+
"@unbrained/pm-cli": "^2026.5.24",
|
|
51
|
+
"pm-changelog": "^2026.5.25",
|
|
52
|
+
"@types/node": "^25.9.1"
|
|
53
|
+
},
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=22.0.0"
|
|
56
|
+
},
|
|
57
|
+
"author": "@unbraind",
|
|
58
|
+
"license": "MIT",
|
|
59
|
+
"keywords": [
|
|
60
|
+
"bug-triage",
|
|
61
|
+
"indie-dev",
|
|
62
|
+
"open-source",
|
|
63
|
+
"pm-cli",
|
|
64
|
+
"pm-package",
|
|
65
|
+
"pm-preset",
|
|
66
|
+
"pm-presets",
|
|
67
|
+
"preset",
|
|
68
|
+
"software-sprint",
|
|
69
|
+
"startup-roadmap",
|
|
70
|
+
"workspace"
|
|
71
|
+
],
|
|
72
|
+
"pm": {
|
|
73
|
+
"aliases": [
|
|
74
|
+
"presets",
|
|
75
|
+
"bug-triage",
|
|
76
|
+
"indie-dev",
|
|
77
|
+
"open-source",
|
|
78
|
+
"software-sprint",
|
|
79
|
+
"startup-roadmap"
|
|
80
|
+
],
|
|
81
|
+
"extensions": [
|
|
82
|
+
"."
|
|
83
|
+
],
|
|
84
|
+
"catalog": {
|
|
85
|
+
"display_name": "pm Presets",
|
|
86
|
+
"category": "preset",
|
|
87
|
+
"summary": "All 5 official pm-cli workspace presets in one package: bug-triage, indie-dev, open-source, software-sprint, startup-roadmap",
|
|
88
|
+
"tags": [
|
|
89
|
+
"preset",
|
|
90
|
+
"official",
|
|
91
|
+
"bug-triage",
|
|
92
|
+
"indie-dev",
|
|
93
|
+
"open-source",
|
|
94
|
+
"software-sprint",
|
|
95
|
+
"startup-roadmap"
|
|
96
|
+
],
|
|
97
|
+
"links": {
|
|
98
|
+
"docs": "https://github.com/unbraind/pm-presets#readme",
|
|
99
|
+
"npm": "https://www.npmjs.com/package/pm-presets",
|
|
100
|
+
"repository": "https://github.com/unbraind/pm-presets",
|
|
101
|
+
"report": "https://github.com/unbraind/pm-presets/issues"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"docs": [
|
|
105
|
+
"README.md",
|
|
106
|
+
"CHANGELOG.md"
|
|
107
|
+
],
|
|
108
|
+
"examples": [
|
|
109
|
+
"README.md"
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
}
|