Files
jason.woltje 1f2a726d19 feat(plugins): the five shipped starter packs (#1873 SP2)
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.
2026-11-12 16:06:08 -06:00

52 lines
2.6 KiB
JavaScript

// Shipped starter pack "creative-writing" (#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: "creative-writing",
version: "1.0.0",
label: "Creative writing",
description: "Write a book or a series: ideas outlines, you or a companion draft, continuity checks and a proofreader edits.",
scope: "org",
definitions: {
ideas: { template: "ideas", sha256: "bdaf8eb8a97606a52ba653dfae04044c18c3ceca3f90e43073b3136db1e5da95" },
research: { template: "research", sha256: "6c181f0c0fef4730d9edd8dee3b73ee14cf71cb730d42e32b8fb2bb06b20cbe4" },
proofreader: { template: "proofreader", sha256: "6df42775fc2185e8ecf0223acaf7fefa7413f7f45bfaded0b0d5b2720d61cca6" },
"fact-checker": { template: "fact-checker", sha256: "c6e26f27b0b2eb18edf56bd69b9388504652762f7f9bf8e1da02ed4151a4e0ff" },
continuity: { template: "continuity", sha256: "8ce4abfc894733a12b8cce7d1029178896dc2043971db897554483aeb7467951" },
companion: { template: "companion", sha256: "4030f46528680ddf038386c42dce4eb66ad7e41d4670694d87b65a44ab2d1f81" },
},
hires: [
{ name: "ideas-1", definition: "ideas", reason: "outlines each chapter" },
{ name: "proofreader-1", definition: "proofreader", reason: "edits each draft" },
{ name: "continuity-1", definition: "continuity", reason: "checks each draft against the story so far" },
],
board: {
columns: [
{ state: "todo", label: "Ideas" },
{ state: "in-progress", label: "Drafting" },
{ state: "in-review", label: "Editing" },
{ state: "blocked", label: "On hold" },
{ state: "done", label: "Finished" },
],
layout: "kanban",
},
workflows: {
chapter: {
description: "One chapter from outline to edited draft.",
steps: [
{ id: "outline", title: "Outline the chapter", roles: ["ideas"], state: "todo" },
{ id: "draft", title: "Draft the chapter", roles: ["human", "companion"], state: "in-progress" },
{ id: "continuity", title: "Check continuity", roles: ["continuity"], state: "in-review" },
{ id: "edit", title: "Edit the draft", roles: ["proofreader"], state: "in-review" },
],
},
},
skills: ["ms-unslop"],
};
}