coding, creative-writing, marketing, montage and business-management, each a packVersion 1 document pinning whole V2 templates at today's templateHash. expected-lines.json beside each pack records the flagged and credential lines every proposed hire carries against roles/chief-of-staff.json, as the broker computes them. starter-pack-shipped.test.mjs checks each pack loads through SP1 with origin shipped, matches section 7, and that its lines equal expected-lines.json; a template edit refuses the pack until re-pinned. The SP1 test no longer expects an empty shipped listing.
52 lines
2.6 KiB
JavaScript
52 lines
2.6 KiB
JavaScript
// Shipped starter pack "coding" (#1873 SP2). Design: starter-packs-design section 7.
|
|
// Every definition is a whole V2 template pinned by its templateHash, so a template edit refuses
|
|
// this pack (starter-pack-template-changed) until it is re-pinned. expected-lines.json beside this
|
|
// file holds the lines each proposed hire carries against the chief; the shipped-pack test checks it.
|
|
export const interfaceVersion = 1;
|
|
|
|
export function starterPack() {
|
|
return {
|
|
packVersion: 1,
|
|
id: "coding",
|
|
version: "1.0.0",
|
|
label: "Coding",
|
|
description: "A small software team: a pm writes the task, a coder builds it, a reviewer reviews it, and you approve the merge.",
|
|
scope: "org",
|
|
definitions: {
|
|
coder: { template: "coder", sha256: "8d2564179a6322983aff460302e96e735181bb0ed98d8439a0b04df66eb2dbf5" },
|
|
reviewer: { template: "reviewer", sha256: "07dd6d84bbc26acdfe7d62c545ee9373dd1faa0bc98c763eb52e616746a4be51" },
|
|
"security-reviewer": { template: "security-reviewer", sha256: "a17088a4e7b0ef6d310a023c9a83826d32719bfebfcff436260ed07ade3a588f" },
|
|
pm: { template: "pm", sha256: "d0dad787802fdced716b002edb2f7cc395e2ed2f3b5bac8711d7190b07699192" },
|
|
"merge-gate": { template: "merge-gate", sha256: "019667e8f15b6b58c349c4bad439658eae026fa4185828b7cc02da771f25f453" },
|
|
cto: { template: "cto", sha256: "df3777ee1eeddb1df6805b56e56d85cd0d45292493bf61115af912119b1111f6" },
|
|
},
|
|
hires: [
|
|
{ name: "pm-1", definition: "pm", reason: "writes and assigns the tasks" },
|
|
{ name: "coder-1", definition: "coder", reason: "implements each change" },
|
|
{ name: "reviewer-1", definition: "reviewer", reason: "reviews each change before merge" },
|
|
],
|
|
board: {
|
|
columns: [
|
|
{ state: "todo", label: "Backlog" },
|
|
{ state: "in-progress", label: "Building" },
|
|
{ state: "in-review", label: "Review" },
|
|
{ state: "blocked", label: "Blocked" },
|
|
{ state: "done", label: "Merged" },
|
|
],
|
|
layout: "kanban",
|
|
},
|
|
workflows: {
|
|
change: {
|
|
description: "One change from task to merge.",
|
|
steps: [
|
|
{ id: "plan", title: "Write the task", roles: ["pm"], state: "todo" },
|
|
{ id: "build", title: "Implement the change", roles: ["coder"], state: "in-progress" },
|
|
{ id: "review", title: "Review the change", roles: ["reviewer"], state: "in-review" },
|
|
{ id: "merge", title: "Approve the merge", roles: ["human", "merge-gate"], state: "done" },
|
|
],
|
|
},
|
|
},
|
|
skills: ["ms-sdlc", "ms-unslop", "ms-file-read", "ms-file-write", "ms-goal", "ms-communications"],
|
|
};
|
|
}
|