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 "marketing" (#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: "marketing",
|
|
version: "1.0.0",
|
|
label: "Marketing",
|
|
description: "Plan and write campaigns: research finds the angle, ideas drafts, claims are checked and edited, and you approve publishing.",
|
|
scope: "org",
|
|
definitions: {
|
|
"chief-marketing-officer": { template: "chief-marketing-officer", sha256: "fb3fe65980a19d9c596451a3b722d0ba9ac819bdec8f65ee91b434e938c2edca" },
|
|
research: { template: "research", sha256: "6c181f0c0fef4730d9edd8dee3b73ee14cf71cb730d42e32b8fb2bb06b20cbe4" },
|
|
ideas: { template: "ideas", sha256: "bdaf8eb8a97606a52ba653dfae04044c18c3ceca3f90e43073b3136db1e5da95" },
|
|
proofreader: { template: "proofreader", sha256: "6df42775fc2185e8ecf0223acaf7fefa7413f7f45bfaded0b0d5b2720d61cca6" },
|
|
"fact-checker": { template: "fact-checker", sha256: "c6e26f27b0b2eb18edf56bd69b9388504652762f7f9bf8e1da02ed4151a4e0ff" },
|
|
},
|
|
hires: [
|
|
{ name: "cmo", definition: "chief-marketing-officer", reason: "leads the campaigns" },
|
|
{ name: "research-1", definition: "research", reason: "finds the angle for each campaign" },
|
|
{ name: "proofreader-1", definition: "proofreader", reason: "edits each draft" },
|
|
],
|
|
board: {
|
|
columns: [
|
|
{ state: "todo", label: "Ideas" },
|
|
{ state: "in-progress", label: "In progress" },
|
|
{ state: "in-review", label: "Approval" },
|
|
{ state: "blocked", label: "Blocked" },
|
|
{ state: "done", label: "Live" },
|
|
],
|
|
layout: "kanban",
|
|
},
|
|
workflows: {
|
|
campaign: {
|
|
description: "One campaign from angle to published.",
|
|
steps: [
|
|
{ id: "angle", title: "Find the angle", roles: ["research"], state: "todo" },
|
|
{ id: "draft", title: "Draft the campaign", roles: ["ideas"], state: "in-progress" },
|
|
{ id: "check", title: "Check the claims", roles: ["fact-checker"], state: "in-review" },
|
|
{ id: "edit", title: "Edit the copy", roles: ["proofreader"], state: "in-review" },
|
|
{ id: "publish", title: "Approve publishing", roles: ["human"], state: "done" },
|
|
],
|
|
},
|
|
},
|
|
skills: ["ms-unslop"],
|
|
};
|
|
}
|