@rubytech/create-maxy-code 0.1.326 → 0.1.327
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/package.json +1 -1
- package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.js +9 -2
- package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.js.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.d.ts +1 -1
- package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.d.ts.map +1 -1
- package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.js +11 -1
- package/payload/platform/plugins/admin/mcp/dist/content-producer-authoring-skills.js.map +1 -1
- package/payload/platform/templates/specialists/agents/content-producer.md +1 -1
- package/payload/premium-plugins/management-consulting/PLUGIN.md +2 -0
- package/payload/premium-plugins/management-consulting/skills/decision-memo/SKILL.md +9 -0
- package/payload/premium-plugins/management-consulting/skills/narrative-builder/SKILL.md +9 -0
- package/payload/premium-plugins/management-consulting/skills/pitch-deck/SKILL.md +2 -2
- package/payload/premium-plugins/writer-craft/skills/voice-mirror/SKILL.md +4 -2
package/package.json
CHANGED
package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.js
CHANGED
|
@@ -27,8 +27,15 @@ describe("isAdminSeat", () => {
|
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
29
|
describe("CONTENT_PRODUCER_AUTHORING_SKILLS", () => {
|
|
30
|
-
it("is
|
|
31
|
-
expect([...CONTENT_PRODUCER_AUTHORING_SKILLS].sort()).toEqual([
|
|
30
|
+
it("is the render/publish authoring skills plus the consulting prose deliverables", () => {
|
|
31
|
+
expect([...CONTENT_PRODUCER_AUTHORING_SKILLS].sort()).toEqual([
|
|
32
|
+
"a4-print-documents",
|
|
33
|
+
"decision-memo",
|
|
34
|
+
"narrative-builder",
|
|
35
|
+
"pitch-deck",
|
|
36
|
+
"professional-document",
|
|
37
|
+
"publish-site",
|
|
38
|
+
].sort());
|
|
32
39
|
});
|
|
33
40
|
it("excludes admin-invoked skills (unzip-attachment, deck-pages)", () => {
|
|
34
41
|
// unzip-attachment SKILL.md: "Invoked by the admin agent directly".
|
package/payload/platform/plugins/admin/mcp/dist/__tests__/admin-authoring-skill-gate.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-authoring-skill-gate.test.js","sourceRoot":"","sources":["../../src/__tests__/admin-authoring-skill-gate.test.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,EAAE;AACF,mEAAmE;AACnE,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,gEAAgE;AAChE,oEAAoE;AACpE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iCAAiC,EACjC,WAAW,EACX,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,KAAK,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AAClE,MAAM,gBAAgB,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC;AAC7F,MAAM,MAAM,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;AAEpE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB;IACzF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,CAAC,CAAC,GAAG,iCAAiC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAC3D,
|
|
1
|
+
{"version":3,"file":"admin-authoring-skill-gate.test.js","sourceRoot":"","sources":["../../src/__tests__/admin-authoring-skill-gate.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CONTENT_PRODUCER_AUTHORING_SKILL_SLUGS: readonly ["professional-document", "a4-print-documents", "publish-site"];
|
|
1
|
+
export declare const CONTENT_PRODUCER_AUTHORING_SKILL_SLUGS: readonly ["professional-document", "a4-print-documents", "publish-site", "decision-memo", "narrative-builder", "pitch-deck"];
|
|
2
2
|
//# sourceMappingURL=content-producer-authoring-skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-producer-authoring-skills.d.ts","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"content-producer-authoring-skills.d.ts","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,sCAAsC,8HAOzC,CAAC"}
|
|
@@ -5,15 +5,25 @@
|
|
|
5
5
|
// per line and do not reformat to multi-slug lines without updating that parser
|
|
6
6
|
// (platform/scripts/lib/admin-skills-bootstrap.sh).
|
|
7
7
|
//
|
|
8
|
-
// These
|
|
8
|
+
// These skills are content-producer-owned: the admin seat must dispatch
|
|
9
9
|
// content-producer (Agent tool, subagent_type content-producer) rather than
|
|
10
10
|
// load or author them from its own seat. Each carries the same membership in
|
|
11
11
|
// its SKILL.md "Invoked from specialists:content-producer" declaration, so the
|
|
12
12
|
// generator's declaration scan already excludes them; this list is the gate's
|
|
13
13
|
// compiled-in guard against a declaration regression.
|
|
14
|
+
//
|
|
15
|
+
// The first three are the original render/publish/print authoring skills. The
|
|
16
|
+
// last three are the management-consulting prose deliverables: their output is
|
|
17
|
+
// finished external-facing prose, so they compose on content-producer (the
|
|
18
|
+
// authoring seat, which carries plainly + prose-craft + voice-retrieve-
|
|
19
|
+
// conditioning). The 19 management-consulting analysis-framework skills stay
|
|
20
|
+
// admin-run and are not listed here.
|
|
14
21
|
export const CONTENT_PRODUCER_AUTHORING_SKILL_SLUGS = [
|
|
15
22
|
"professional-document",
|
|
16
23
|
"a4-print-documents",
|
|
17
24
|
"publish-site",
|
|
25
|
+
"decision-memo",
|
|
26
|
+
"narrative-builder",
|
|
27
|
+
"pitch-deck",
|
|
18
28
|
];
|
|
19
29
|
//# sourceMappingURL=content-producer-authoring-skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-producer-authoring-skills.js","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"content-producer-authoring-skills.js","sourceRoot":"","sources":["../src/content-producer-authoring-skills.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,+EAA+E;AAC/E,8EAA8E;AAC9E,sDAAsD;AACtD,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,2EAA2E;AAC3E,wEAAwE;AACxE,6EAA6E;AAC7E,qCAAqC;AACrC,MAAM,CAAC,MAAM,sCAAsC,GAAG;IACpD,uBAAuB;IACvB,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,YAAY;CACJ,CAAC"}
|
|
@@ -3,7 +3,7 @@ name: content-producer
|
|
|
3
3
|
description: "Author professional business documents (proposal, report, brief, memo, plan, case study, brochure), render PDFs, generate images, and publish static websites. Delegate when the operator asks for a written document, a PDF render, a generated image, or to publish a prepared website."
|
|
4
4
|
summary: "Produces visual output from your graph: generates images, renders pages to PDF, and hosts static websites you upload as a zip."
|
|
5
5
|
model: claude-opus-4-8[1m]
|
|
6
|
-
tools: Bash, Read, Edit, Write, MultiEdit, Skill, mcp__plugin_memory_memory__memory-search, mcp__plugin_replicate_replicate__image-generate, mcp__plugin_browser_browser__browser-render, mcp__plugin_browser_browser__browser-navigate, mcp__plugin_browser_browser__browser-evaluate, mcp__plugin_browser_browser__browser-resize, mcp__plugin_browser_browser__browser-screenshot, mcp__plugin_browser_browser__browser-pdf-save, mcp__plugin_admin_admin__plugin-read, mcp__plugin_admin_admin__public-hostname, mcp__plugin_admin_admin__publish-site
|
|
6
|
+
tools: Bash, Read, Edit, Write, MultiEdit, Skill, mcp__plugin_memory_memory__memory-search, mcp__plugin_writer-craft_writer-craft__voice-retrieve-conditioning, mcp__plugin_replicate_replicate__image-generate, mcp__plugin_browser_browser__browser-render, mcp__plugin_browser_browser__browser-navigate, mcp__plugin_browser_browser__browser-evaluate, mcp__plugin_browser_browser__browser-resize, mcp__plugin_browser_browser__browser-screenshot, mcp__plugin_browser_browser__browser-pdf-save, mcp__plugin_admin_admin__plugin-read, mcp__plugin_admin_admin__public-hostname, mcp__plugin_admin_admin__publish-site
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# Content Producer
|
|
@@ -67,6 +67,8 @@ The method is McKinsey-inspired in the public sense of the term — crisp framin
|
|
|
67
67
|
| `decision-memo` | An executive needs a clear written recommendation, not a deck |
|
|
68
68
|
| `pitch-deck` | The engagement needs a deck: a new-business or credentials pitch, a client findings or recommendation deck, or a thought-leadership deck — each in the operator's own voice |
|
|
69
69
|
|
|
70
|
+
`decision-memo`, `narrative-builder`, and `pitch-deck` produce finished external-facing prose, so they are composed by `specialists:content-producer` (the authoring seat, which carries `plainly`, `prose-craft`, and `voice-retrieve-conditioning`). The admin seat delegates them from the first point rather than drafting them inline. The other skills run on the admin seat as analysis frameworks.
|
|
71
|
+
|
|
70
72
|
## When to Activate
|
|
71
73
|
|
|
72
74
|
The user is doing client-engagement or in-house strategy work and wants to:
|
|
@@ -5,6 +5,8 @@ description: Produces concise executive decision memos with recommendation, cont
|
|
|
5
5
|
|
|
6
6
|
# Decision Memo
|
|
7
7
|
|
|
8
|
+
Invoked from `specialists:content-producer`. A decision memo is finished external-facing prose, so it composes on the content-producer seat (which carries `plainly` and `voice-retrieve-conditioning`). The admin seat delegates it from the first point: the admin is refused this skill and dispatches content-producer (Agent tool, `subagent_type: content-producer`).
|
|
9
|
+
|
|
8
10
|
## When To Use
|
|
9
11
|
|
|
10
12
|
Use this skill when the user needs a written recommendation that helps executives make a decision without a long deck.
|
|
@@ -17,6 +19,13 @@ Write answer-first. Give the decision-maker the recommendation, why it is right,
|
|
|
17
19
|
|
|
18
20
|
A finished memo rests on a clear read of its audience, the decision in front of them, and the action required. It carries the recommendation and the strongest evidence for it, the options that were considered and why they lost, and the risks, mitigations, economics, and next steps that follow. The draft stays concise and survives a stress-test against the objections an executive will raise. The order in which you assemble these is yours to judge; what the memo must contain is not.
|
|
19
21
|
|
|
22
|
+
## Prose pipeline (runs before any memo prose is drafted)
|
|
23
|
+
|
|
24
|
+
The memo goes out under the business name, so its prose runs through plain English and the house voice before the first sentence.
|
|
25
|
+
|
|
26
|
+
1. **Plain English.** The first prose action is `skill-load skillName=plainly`. Apply it to every line: the recommendation, the options table, the body. Recursive plain English, no consulting jargon.
|
|
27
|
+
2. **Voice mirror (hard gate).** Before drafting, call `voice-retrieve-conditioning` with `format: "article"`, `length: "long"`, `scope: "org"`, and `topic` set to the decision's domain. The tool emits its own `[voice-retrieve] …` line. Gate on `status`: on **`ok`**, condition every line on the returned style card and exemplars, then draft. On **`no-data` | `error`**, stop and emit no fabricated prose: tell the operator the voice is not established and offer to establish it (the voice-mirror skill) or to supply the prose for the skill to structure and plainly-polish. Emit `[decision-memo] voice-gate status=<ok|no-data|error> action=<conditioned|stopped|operator-prose>`.
|
|
28
|
+
|
|
20
29
|
## Output Format
|
|
21
30
|
|
|
22
31
|
```markdown
|
|
@@ -5,6 +5,8 @@ description: Builds executive strategy narratives using Pyramid Principle, SCQA,
|
|
|
5
5
|
|
|
6
6
|
# Narrative Builder
|
|
7
7
|
|
|
8
|
+
Invoked from `specialists:content-producer`. An executive narrative is finished external-facing prose (headlines and storyline that go in front of a board), so it composes on the content-producer seat (which carries `plainly` and `voice-retrieve-conditioning`). The admin seat delegates it from the first point: the admin is refused this skill and dispatches content-producer (Agent tool, `subagent_type: content-producer`).
|
|
9
|
+
|
|
8
10
|
## When To Use
|
|
9
11
|
|
|
10
12
|
Use this skill when the recommendation is mostly known but the story needs to land quickly with executives, boards, investors, or leadership teams.
|
|
@@ -22,6 +24,13 @@ Lead with the answer, structure support in a pyramid, and anticipate the questio
|
|
|
22
24
|
5. Prepare hostile questions and answers.
|
|
23
25
|
6. Produce an executive-ready narrative outline.
|
|
24
26
|
|
|
27
|
+
## Prose pipeline (runs before any narrative prose is drafted)
|
|
28
|
+
|
|
29
|
+
The narrative goes out under the business name, so its headlines and body run through plain English and the house voice before the first line.
|
|
30
|
+
|
|
31
|
+
1. **Plain English.** The first prose action is `skill-load skillName=plainly`. Apply it to every headline and the body. Recursive plain English, no consulting jargon.
|
|
32
|
+
2. **Voice mirror (hard gate).** Before drafting, call `voice-retrieve-conditioning` with `format: "article"`, `length: "long"`, `scope: "org"`, and `topic` set to the recommendation's domain. The tool emits its own `[voice-retrieve] …` line. Gate on `status`: on **`ok`**, condition every headline and line on the returned style card and exemplars, then draft. On **`no-data` | `error`**, stop and emit no fabricated prose: tell the operator the voice is not established and offer to establish it (the voice-mirror skill) or to supply the prose for the skill to structure and plainly-polish. Emit `[narrative-builder] voice-gate status=<ok|no-data|error> action=<conditioned|stopped|operator-prose>`.
|
|
33
|
+
|
|
25
34
|
## Output Format
|
|
26
35
|
|
|
27
36
|
```markdown
|
|
@@ -24,7 +24,7 @@ Pick the mode from the brief. All three live in this one skill.
|
|
|
24
24
|
|
|
25
25
|
## Where this runs
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Invoked from `specialists:content-producer`. The admin seat delegates the deck from the first point: it is refused this skill and dispatches content-producer (Agent tool, `subagent_type: content-producer`). Everything then happens on the one seat. content-producer carries `voice-retrieve-conditioning`, loads `plainly`, and holds the render tools, so the method, the voice gate, the prose, and the render all run together: it calls `voice-retrieve-conditioning` directly, gates inline (below), composes the slides, and renders through `slides:deck-system`, exporting the PDF via the existing path. There is no separate render brief and no admin-seat composition.
|
|
28
28
|
|
|
29
29
|
## The method (all three modes)
|
|
30
30
|
|
|
@@ -118,7 +118,7 @@ The deck composes the outputs of the other consulting skills. Numbers come from
|
|
|
118
118
|
|
|
119
119
|
## Render handoff
|
|
120
120
|
|
|
121
|
-
When `slides` is enabled, the render path is `slides:deck-system`: it carries 25 HTML components, the design tokens, the themes, and the PDF export.
|
|
121
|
+
When `slides` is enabled, the render path is `slides:deck-system`: it carries 25 HTML components, the design tokens, the themes, and the PDF export. content-producer renders the composed slides through `deck-system` on the same seat; the PDF exports via the existing path. There is no new renderer.
|
|
122
122
|
|
|
123
123
|
When `slides` is not enabled, say so and fall back to the always-present `admin:deck-pages` format spec for a slide-based PDF. Never return a blank turn because a dependency is absent.
|
|
124
124
|
|
|
@@ -17,9 +17,11 @@ The skill is built on five deterministic MCP tools served by the `writer-craft`
|
|
|
17
17
|
| `voice-record-feedback` | When the operator edits an agent draft, write a `:VoiceEdit {originalText, editedText, intent, occurredAt, format}-[:FEEDBACK_FOR]->(:VoiceProfile {format})` node. The `intent` field is a Haiku-summarised diff. |
|
|
18
18
|
| `voice-ingest-session-text` | Write operator turns from the current session as `:Message {format:'text', authorshipMode:'human-only'}` corpus nodes. The agent reads its own operator turns from context and passes them as `turns`. Deduplicates via `contentHash`. Invoked on demand when the operator asks to capture this session's voice. |
|
|
19
19
|
|
|
20
|
-
## Surface — admin
|
|
20
|
+
## Surface — establishment is admin-only; conditioning is shared with the drafting seat
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
The four **establishment** tools (`voice-tag-content`, `voice-distil-profile`, `voice-ingest-session-text`, `voice-record-feedback`) are admin-allowlisted and exist only on the admin agent's tool surface. No specialist carries them, by design: `format` and `authorshipMode` are editorial choices the operator makes, so building and curating a voice profile is an operator-interactive admin flow, not a step a specialist runs unattended.
|
|
23
|
+
|
|
24
|
+
`voice-retrieve-conditioning` is different. It is the **drafting-time** conditioning tool: a drafting skill calls it to pull the style card and exemplars and condition its prose. It is on the admin surface and is also carried by `specialists:content-producer` (the authoring seat, which holds `plainly` and `prose-craft`), so voice-conditioned drafting can run on whichever seat composes the prose. The consulting prose deliverables (`decision-memo`, `narrative-builder`, `pitch-deck`) compose on content-producer and condition there. The split that holds: the operator curates voice with the four establishment tools on the admin seat; any drafting seat only retrieves it.
|
|
23
25
|
|
|
24
26
|
This matters most right after an ingest. When a specialist (the librarian) files a document and the operator then asks to tag it — "mark that as me / human-only / marketing-copy" — the tagging is yours to run, not the specialist's. The specialist cannot call `voice-tag-content` and will hand back the created node's identifier instead. Take that id and run `voice-tag-content` here. If the id is not in context (a later turn, the librarian's return scrolled off), fall back to the unknown-authorship query in the backfill flow below to find the just-filed node. Never route the tag back into a specialist; a specialist reporting "voice-tag-content is not in my tools" is the boundary working as intended, not a failure to escalate.
|
|
25
27
|
|