@mutmutco/claude-plugin 4.5.204 → 4.5.206
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/cli/dist/main.cjs
CHANGED
|
@@ -1603,7 +1603,8 @@ __export(index_exports, {
|
|
|
1603
1603
|
registryClientDeps: () => registryClientDeps,
|
|
1604
1604
|
repoSlug: () => repoSlug,
|
|
1605
1605
|
suggestCommandPath: () => suggestCommandPath,
|
|
1606
|
-
unknownCommandCandidates: () => unknownCommandCandidates
|
|
1606
|
+
unknownCommandCandidates: () => unknownCommandCandidates,
|
|
1607
|
+
unknownCommandTail: () => unknownCommandTail
|
|
1607
1608
|
});
|
|
1608
1609
|
module.exports = __toCommonJS(index_exports);
|
|
1609
1610
|
|
|
@@ -6238,6 +6239,39 @@ function localTrainSyncBannerLine(result) {
|
|
|
6238
6239
|
}
|
|
6239
6240
|
|
|
6240
6241
|
// src/parse-error-hints.ts
|
|
6242
|
+
init_error_codes();
|
|
6243
|
+
function unknownCommandTail(argv, unknownToken) {
|
|
6244
|
+
if (unknownToken === void 0) return [];
|
|
6245
|
+
const firstFlag = argv.findIndex((t) => t.startsWith("-"));
|
|
6246
|
+
const leading = argv.slice(0, firstFlag < 0 ? argv.length : firstFlag);
|
|
6247
|
+
const idx = leading.indexOf(unknownToken);
|
|
6248
|
+
return idx < 0 ? [] : leading.slice(idx + 1);
|
|
6249
|
+
}
|
|
6250
|
+
function suggestCommandPath(token, paths, tail = []) {
|
|
6251
|
+
const all = [...paths];
|
|
6252
|
+
const leafOf = (p) => p.slice(p.lastIndexOf(" ") + 1);
|
|
6253
|
+
const exact = all.filter((p) => leafOf(p) === token);
|
|
6254
|
+
if (exact.length === 1) return exact[0];
|
|
6255
|
+
if (exact.length > 1) return void 0;
|
|
6256
|
+
const leaves = /* @__PURE__ */ new Map();
|
|
6257
|
+
for (const p of all) {
|
|
6258
|
+
const leaf = leafOf(p);
|
|
6259
|
+
leaves.set(leaf, [...leaves.get(leaf) ?? [], p]);
|
|
6260
|
+
}
|
|
6261
|
+
const near = didYouMean(token, leaves.keys());
|
|
6262
|
+
const hits = near ? leaves.get(near) ?? [] : [];
|
|
6263
|
+
if (hits.length !== 1) return void 0;
|
|
6264
|
+
const candidate = hits[0];
|
|
6265
|
+
const subcommandTail = tail.filter((t) => !/^\d+$/.test(t));
|
|
6266
|
+
if (subcommandTail.length > 0) {
|
|
6267
|
+
const continued = `${candidate} ${subcommandTail.join(" ")}`;
|
|
6268
|
+
const resolves = all.some(
|
|
6269
|
+
(p) => p === continued || p.startsWith(`${continued} `) || !candidate.includes(" ") && (p.endsWith(` ${continued}`) || p.includes(` ${continued} `))
|
|
6270
|
+
);
|
|
6271
|
+
if (!resolves) return void 0;
|
|
6272
|
+
}
|
|
6273
|
+
return candidate;
|
|
6274
|
+
}
|
|
6241
6275
|
var TARGET_SELECTOR_FLAGS = /* @__PURE__ */ new Set(["--repo", "--ref", "--target", "--project", "--issue", "--number"]);
|
|
6242
6276
|
function targetFlagValueFromArgv(flag, argv) {
|
|
6243
6277
|
const i = argv.indexOf(flag);
|
|
@@ -19309,10 +19343,10 @@ var rollout_plan_default = {
|
|
|
19309
19343
|
note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
|
|
19310
19344
|
},
|
|
19311
19345
|
baseline: {
|
|
19312
|
-
version: "4.5.
|
|
19313
|
-
tag: "v4.5.
|
|
19314
|
-
commit: "
|
|
19315
|
-
npm: "@mutmutco/cli@4.5.
|
|
19346
|
+
version: "4.5.206",
|
|
19347
|
+
tag: "v4.5.206",
|
|
19348
|
+
commit: "8031f7a9a4a8",
|
|
19349
|
+
npm: "@mutmutco/cli@4.5.206"
|
|
19316
19350
|
},
|
|
19317
19351
|
exitCriterion: "fleet-n-of-n",
|
|
19318
19352
|
hubOnlyShortcut: "forbidden",
|
|
@@ -19329,14 +19363,14 @@ var rollout_plan_default = {
|
|
|
19329
19363
|
repo: "mutmutco/mmi-hub",
|
|
19330
19364
|
role: "canary",
|
|
19331
19365
|
schedule: "train",
|
|
19332
|
-
v3Target: "v4.5.
|
|
19366
|
+
v3Target: "v4.5.206"
|
|
19333
19367
|
}
|
|
19334
19368
|
],
|
|
19335
19369
|
rollbackTrigger: "Any red inside the post-contract soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a pre-v4 client admitted instead of receiving actionable HTTP 426, or npm consumer install/doctor failure on the v4-only dist.",
|
|
19336
19370
|
rollback: {
|
|
19337
19371
|
independent: true,
|
|
19338
|
-
mechanism: "npm dist-tag latest -> 4.5.
|
|
19339
|
-
v3Target: "v4.5.
|
|
19372
|
+
mechanism: "npm dist-tag latest -> 4.5.206 and redeploy the Hub Lambda from tag v4.5.206 (8031f7a9a4a8); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
|
|
19373
|
+
v3Target: "v4.5.206 (@mutmutco/cli@4.5.206, tag commit 8031f7a9a4a8 \u2014 last known-good release carrying the repo-index v4-only contract)"
|
|
19340
19374
|
}
|
|
19341
19375
|
},
|
|
19342
19376
|
{
|
|
@@ -57964,21 +57998,6 @@ function allCommandPaths() {
|
|
|
57964
57998
|
cachedCommandPaths = acc;
|
|
57965
57999
|
return cachedCommandPaths;
|
|
57966
58000
|
}
|
|
57967
|
-
function suggestCommandPath(token, paths) {
|
|
57968
|
-
const all = [...paths];
|
|
57969
|
-
const leafOf = (p) => p.slice(p.lastIndexOf(" ") + 1);
|
|
57970
|
-
const exact = all.filter((p) => leafOf(p) === token);
|
|
57971
|
-
if (exact.length === 1) return exact[0];
|
|
57972
|
-
if (exact.length > 1) return void 0;
|
|
57973
|
-
const leaves = /* @__PURE__ */ new Map();
|
|
57974
|
-
for (const p of all) {
|
|
57975
|
-
const leaf = leafOf(p);
|
|
57976
|
-
leaves.set(leaf, [...leaves.get(leaf) ?? [], p]);
|
|
57977
|
-
}
|
|
57978
|
-
const near = didYouMean(token, leaves.keys());
|
|
57979
|
-
const hits = near ? leaves.get(near) ?? [] : [];
|
|
57980
|
-
return hits.length === 1 ? hits[0] : void 0;
|
|
57981
|
-
}
|
|
57982
58001
|
function argvWantsJson3() {
|
|
57983
58002
|
return process.argv.some((a) => a === "--json" || a.startsWith("--json="));
|
|
57984
58003
|
}
|
|
@@ -58058,7 +58077,8 @@ function resolveParseHint() {
|
|
|
58058
58077
|
const guide = unknownCommandDomainGuide(parentPath, lastUnknownCommand);
|
|
58059
58078
|
if (guide) return `(${guide.hint}. ${DISCOVERY_HINT})`;
|
|
58060
58079
|
const candidates = unknownCommandCandidates(parent, allCommandPaths());
|
|
58061
|
-
const
|
|
58080
|
+
const tail = unknownCommandTail(process.argv.slice(2), lastUnknownCommand);
|
|
58081
|
+
const path3 = lastUnknownCommand ? suggestCommandPath(lastUnknownCommand, candidates, tail) : void 0;
|
|
58062
58082
|
const canonical = path3 ? canonicalPathFor(path3) ?? path3 : void 0;
|
|
58063
58083
|
if (canonical) return `(did you mean \`mmi-cli ${canonical}\`? ${DISCOVERY_HINT})`;
|
|
58064
58084
|
return parent ? `(${DISCOVERY_HINT})` : STALE_HINT;
|
|
@@ -58113,7 +58133,11 @@ function envelopeAwareWriteErr(str2) {
|
|
|
58113
58133
|
pendingHumanParseError = void 0;
|
|
58114
58134
|
return;
|
|
58115
58135
|
}
|
|
58116
|
-
const
|
|
58136
|
+
const resolvedHint = resolveParseHint();
|
|
58137
|
+
if (lastParseErrorKind === "unknown-command" && (resolvedHint === STALE_HINT || resolvedHint === `(${DISCOVERY_HINT})`)) {
|
|
58138
|
+
pendingHumanParseError = pendingHumanParseError?.replace(/\n\(Did you mean [^)]+\?\)/g, "");
|
|
58139
|
+
}
|
|
58140
|
+
const hint = str2.replace(PARSE_HINT_SENTINEL, resolvedHint);
|
|
58117
58141
|
if (lastParseErrorKind === "bad-arguments") {
|
|
58118
58142
|
process.stderr.write(hint);
|
|
58119
58143
|
if (pendingHumanParseError) process.stderr.write(pendingHumanParseError);
|
|
@@ -59418,5 +59442,6 @@ program2.parseAsync(process.argv).then(() => finishCliRun()).catch((e) => failGr
|
|
|
59418
59442
|
registryClientDeps,
|
|
59419
59443
|
repoSlug,
|
|
59420
59444
|
suggestCommandPath,
|
|
59421
|
-
unknownCommandCandidates
|
|
59445
|
+
unknownCommandCandidates,
|
|
59446
|
+
unknownCommandTail
|
|
59422
59447
|
});
|
package/cli/package.json
CHANGED
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ The server exposes `/health` and `/module.js`. Register the module's bundle URL,
|
|
|
21
21
|
|
|
22
22
|
## The MM Open Design System Bible (owner, 2026-10-25; Hub#8837 / Hub#8839)
|
|
23
23
|
|
|
24
|
-
The bible for the MM open design system; every agent doing UI, design or MM Artifact work in this module treats it as second nature. Part 1 is how the system is built and used; Part 2 is how agents improve it when it fails them; Part 3 governs A/B choosing architecture and viewer behavior.
|
|
24
|
+
The bible for the MM open design system; every agent doing UI, design or MM Artifact work in this module treats it as second nature. Part 1 is how the system is built and used; Part 2 is how agents improve it when it fails them; Part 3 governs A/B choosing architecture and viewer behavior; Part 4 makes design-spec requests a visual A/B choice before any kit change.
|
|
25
25
|
|
|
26
26
|
### Part 1 — The five pillars (owner, 2026-10-25; Hub#8837)
|
|
27
27
|
|
|
@@ -42,7 +42,7 @@ Four owner decisions (2026-10-25T15:35:52Z):
|
|
|
42
42
|
|
|
43
43
|
Craft essentials (owner, 2026-10-25; Hub#8839):
|
|
44
44
|
|
|
45
|
-
- **
|
|
45
|
+
- **Sleek translucent glass cards and zero GPU usage — never color-washed (`2026-10-25T16:21:19.344Z`).** Cards use sleek, modern translucent glass material (neutral translucent surface with a crisp glass rim, `--card-tint-dark: 0%`, `--card-tint-light: 0%`) rather than color-washed card fills in any theme, and zero GPU-compositing blur or shadow (`--card-blur: none`, `--card-blur-frost: none`, `--frost-see-blur: 0px`, `--glass-blur: none`, `--card-shadow-dark: none`; never `backdrop-filter: blur(...)`). Module tones (`blue`, `coral`, `teal`, `purple`, `terracotta`, `green`, `pink`, `lime`, `cyan`, `magenta`, `fuchsia`) belong on `Badge`, `Mark`, `Checkbox` (`lead`), and card `icon`/`mark` accents (`edge="bite"`).
|
|
46
46
|
- **Surface modes.** After `impeccable context --target <path>`, `DESIGN.md` and `reference/craft-floor.md`, choose the surface mode (`Operate`, `Read`, `Persuade` or `Experience`) and load the matching playbooks (`shape`, `distill`, `typeset`, `layout`, `colorize`, `clarify`, `polish`, `harden`, `adapt`) before writing markup.
|
|
47
47
|
- **Restraint and hierarchy.** Group related items into section `Card`s (`heading: 2` under the page `<h1>`), keep main-column rows concise (`Cluster` with `fill` = `Checkbox` plus one trailing action), and put multi-line inspector detail in the right-hand `HelperCard` as `Stack` + `Text` — never `DataList`, which clips multi-line prose.
|
|
48
48
|
- **Verify SSR pre-rendered HTML.** `impeccable detect --json` is blind on an unrendered `<div id="root"></div>` file; verify the output of `review.mjs <folder> --standalone --open`, which pre-renders into `#root`. An empty `#root`, missing fonts or an unrendered detector run is a failure, not a pass.
|
|
@@ -86,6 +86,54 @@ Settled owner ruling: present clear, distinct choices in the existing MM Artifac
|
|
|
86
86
|
viewer zoom controls must keep the outer A/B selector shell, question bar and controls at a fixed
|
|
87
87
|
1:1 UI size.
|
|
88
88
|
|
|
89
|
+
### Part 4 — Visual A/B Choice via Designer Subagent Before Kit Implementation — Never Prose Specs (owner ruling 2026-10-25T16:29:46.339Z, #8844, #8846, #8848)
|
|
90
|
+
|
|
91
|
+
Settled owner ruling (verbatim): "You should use a designer to create a couple card designs with my
|
|
92
|
+
specifications and then let me choose then build the complete spec into the design system, replacing
|
|
93
|
+
any other card available atomically. That's the proper way to do it. Learn from this mistake of yours,
|
|
94
|
+
requests like this should follow this structure, not prose guide."
|
|
95
|
+
|
|
96
|
+
1. **Never reply with a prose specification in chat or jump straight to kit implementation.**
|
|
97
|
+
When the owner asks to "design the spec for X and add it to the design system" (for example, The One
|
|
98
|
+
Card), writing a markdown or prose spec in chat violates Principle 7 ("Choices for Jervaise go only
|
|
99
|
+
on the A/B canvas"). Building one guessed design straight into the kit skips the owner's choice.
|
|
100
|
+
2. **Always follow the visual spec pipeline:**
|
|
101
|
+
- **Phase 0 — Inspiration via Better Design MCP (`https://better-design.com/api/mcp`) and 21st.dev MCP (`https://21st.dev/api/mcp`) (owner ruling 2026-10-25T16:48:00Z, #8848).**
|
|
102
|
+
Before building visual A/B boards, query the two owner-selected prebuilt design inspiration MCP
|
|
103
|
+
servers — **Better Design MCP** (`https://better-design.com/api/mcp`) and **21st.dev MCP**
|
|
104
|
+
(`https://21st.dev/api/mcp`, verbatim selection: `"21st.dev MCP Better Design MCP"`) — alongside
|
|
105
|
+
front-loaded Impeccable to study high-craft reference patterns, layout proportions, and interaction
|
|
106
|
+
details. Always translate inspired patterns into zero-GPU `@mutmutco/mmwork-ds` tokens
|
|
107
|
+
(`--card-blur: none`, `--card-tint-dark: 0%`, `--card-tint-light: 0%`, sleek translucent glass
|
|
108
|
+
cards) and Atomic Design layers; never copy raw third-party CSS/HTML or GPU-heavy effects.
|
|
109
|
+
`MM-Inspo` is strictly a customer/tenant module inside the MM-Work suite, never an internal tool
|
|
110
|
+
for designing the MM-Work app or its design system.
|
|
111
|
+
- **Stage 1 — a designer subagent builds visual A/B alternatives on an MM Artifact canvas.**
|
|
112
|
+
Dispatch a `designer` subagent with front-loaded Impeccable (`impeccable context`, `craft-floor`,
|
|
113
|
+
`distill`, `typeset`, `layout`, `colorize`, `polish`) to create 2–3 genuinely distinct visual
|
|
114
|
+
designs that honor every constraint in the owner's brief: Option A, Option B and optionally
|
|
115
|
+
Option C, each its own full-resolution `1440x900` live HTML board in one MM Artifact A/B canvas
|
|
116
|
+
(Part 3 rules: content-only `Ctrl + Mousewheel` zoom, 1:1 or side-by-side live comparison). Open
|
|
117
|
+
the verified canvas in the browser automatically with
|
|
118
|
+
`node artifacts/review/review.mjs <folder> --standalone --open`. Spawn a dedicated, fresh
|
|
119
|
+
`designer` subagent for each distinct design task (item 3); never reuse a busy designer seat.
|
|
120
|
+
- **Stage 2 — the owner chooses visually on the A/B canvas.** Wait while the owner inspects the
|
|
121
|
+
live HTML alternatives, zooms into details and picks the preferred design or asks for
|
|
122
|
+
adjustments. Record the canvas choice ID and the owner-decision reference.
|
|
123
|
+
- **Stage 3 — atomic replacement in the kit source.** Only AFTER the owner picks on the A/B canvas,
|
|
124
|
+
build the chosen design into the source folder of packages/mmwork-ds in mutmutco/MM-Work,
|
|
125
|
+
**atomically replacing** every other legacy or competing variant of that piece across the design
|
|
126
|
+
system, publish it to `Canlı belgeler` / MM-Work, and propagate it to all 10 suite modules.
|
|
127
|
+
3. **One dedicated `designer` subagent per distinct design task — never overload a designer seat
|
|
128
|
+
(owner ruling 2026-10-25T16:33:00Z, #8846).**
|
|
129
|
+
Settled owner ruling (verbatim): "The lead designer sent the card building to the same designer
|
|
130
|
+
agent, overloading it. I don't think it was a wise idea. Please learn from this."
|
|
131
|
+
Spawn a separate, fresh `designer` subagent in its own isolated lane for each distinct design task
|
|
132
|
+
or visual A/B canvas (for example, a theme A/B exploration vs. a unified Card spec A/B). Never steer
|
|
133
|
+
or queue a second unrelated design task onto an active `designer` seat: overloading one
|
|
134
|
+
`designer` subagent serializes work that should run in parallel, bloats its context window, and
|
|
135
|
+
degrades craft quality.
|
|
136
|
+
|
|
89
137
|
## Mandatory Impeccable workflow (owner, 2026-10-25; Hub#8814 / MM-Work#7629)
|
|
90
138
|
|
|
91
139
|
UI and design verification uses `@mutmutco/mmwork-ds` (`mmwork-check-ui`) plus Impeccable on every design task: inspect the toolkit for applicable capabilities, work directly on the live app, and use our own MM Artifacts A/B canvas only when an owner A/B choice is needed. Functional journeys, where separately permitted, stay opt-in `workflow_dispatch`-only and never act as design checks.
|
|
@@ -39,7 +39,7 @@ Functional browser journeys remain opt-in `workflow_dispatch`-only, never design
|
|
|
39
39
|
This is the bible for the MM open design system: every agent doing UI, design, document or MM
|
|
40
40
|
Artifact work reads it first and treats it as second nature. Part 1 says how the system is built and
|
|
41
41
|
used; Part 2 says how agents improve it when it fails them; Part 3 governs A/B choosing architecture
|
|
42
|
-
and viewer behavior.
|
|
42
|
+
and viewer behavior; Part 4 makes design-spec requests a visual A/B choice before any kit change.
|
|
43
43
|
|
|
44
44
|
### Part 1 — The five pillars of the MM Open Design System
|
|
45
45
|
|
|
@@ -103,11 +103,14 @@ Impeccable **v4.7.0 / engine v0.1.16** details:
|
|
|
103
103
|
|
|
104
104
|
Craft essentials every agent applies (owner, 2026-10-25, #8839):
|
|
105
105
|
|
|
106
|
-
- **
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
106
|
+
- **Sleek translucent glass cards and zero GPU usage — never color-washed
|
|
107
|
+
(`2026-10-25T16:21:19.344Z`).** Cards use sleek, modern translucent glass material (neutral
|
|
108
|
+
translucent surface with a crisp glass rim, `--card-tint-dark: 0%`, `--card-tint-light: 0%`)
|
|
109
|
+
rather than color-washed card fills in any theme, and zero GPU-compositing blur or shadow
|
|
110
|
+
(`--card-blur: none`, `--card-blur-frost: none`, `--frost-see-blur: 0px`, `--glass-blur: none`,
|
|
111
|
+
`--card-shadow-dark: none`; never `backdrop-filter: blur(...)`). Module tones (`blue`, `coral`,
|
|
112
|
+
`teal`, `purple`, `terracotta`, `green`, `pink`, `lime`, `cyan`, `magenta`, `fuchsia`)
|
|
113
|
+
belong on `Badge`, `Mark`, `Checkbox` (`lead`), and card `icon`/`mark` accents (`edge="bite"`).
|
|
111
114
|
- **Front-loaded Impeccable v4.7.0, in front of creation.** Run `impeccable context --target <path>`,
|
|
112
115
|
read `DESIGN.md` and `reference/craft-floor.md`, choose the surface mode (`Operate`, `Read`,
|
|
113
116
|
`Persuade` or `Experience`) and load the matching playbooks (`shape`, `distill`, `typeset`,
|
|
@@ -178,6 +181,54 @@ Settled owner ruling: present clear, distinct choices in the existing MM Artifac
|
|
|
178
181
|
viewer zoom controls must keep the outer A/B selector shell, question bar and controls at a fixed
|
|
179
182
|
1:1 UI size.
|
|
180
183
|
|
|
184
|
+
### Part 4 — Visual A/B Choice via Designer Subagent Before Kit Implementation — Never Prose Specs (owner ruling 2026-10-25T16:29:46.339Z, #8844, #8846, #8848)
|
|
185
|
+
|
|
186
|
+
Settled owner ruling (verbatim): "You should use a designer to create a couple card designs with my
|
|
187
|
+
specifications and then let me choose then build the complete spec into the design system, replacing
|
|
188
|
+
any other card available atomically. That's the proper way to do it. Learn from this mistake of yours,
|
|
189
|
+
requests like this should follow this structure, not prose guide."
|
|
190
|
+
|
|
191
|
+
1. **Never reply with a prose specification in chat or jump straight to kit implementation.**
|
|
192
|
+
When the owner asks to "design the spec for X and add it to the design system" (for example, The One
|
|
193
|
+
Card), writing a markdown or prose spec in chat violates Principle 7 ("Choices for Jervaise go only
|
|
194
|
+
on the A/B canvas"). Building one guessed design straight into the kit skips the owner's choice.
|
|
195
|
+
2. **Always follow the visual spec pipeline:**
|
|
196
|
+
- **Phase 0 — Inspiration via Better Design MCP (`https://better-design.com/api/mcp`) and 21st.dev MCP (`https://21st.dev/api/mcp`) (owner ruling 2026-10-25T16:48:00Z, #8848).**
|
|
197
|
+
Before building visual A/B boards, query the two owner-selected prebuilt design inspiration MCP
|
|
198
|
+
servers — **Better Design MCP** (`https://better-design.com/api/mcp`) and **21st.dev MCP**
|
|
199
|
+
(`https://21st.dev/api/mcp`, verbatim selection: `"21st.dev MCP Better Design MCP"`) — alongside
|
|
200
|
+
front-loaded Impeccable to study high-craft reference patterns, layout proportions, and interaction
|
|
201
|
+
details. Always translate inspired patterns into zero-GPU `@mutmutco/mmwork-ds` tokens
|
|
202
|
+
(`--card-blur: none`, `--card-tint-dark: 0%`, `--card-tint-light: 0%`, sleek translucent glass
|
|
203
|
+
cards) and Atomic Design layers; never copy raw third-party CSS/HTML or GPU-heavy effects.
|
|
204
|
+
`MM-Inspo` is strictly a customer/tenant module inside the MM-Work suite, never an internal tool
|
|
205
|
+
for designing the MM-Work app or its design system.
|
|
206
|
+
- **Stage 1 — a designer subagent builds visual A/B alternatives on an MM Artifact canvas.**
|
|
207
|
+
Dispatch a `designer` subagent with front-loaded Impeccable (`impeccable context`, `craft-floor`,
|
|
208
|
+
`distill`, `typeset`, `layout`, `colorize`, `polish`) to create 2–3 genuinely distinct visual
|
|
209
|
+
designs that honor every constraint in the owner's brief: Option A, Option B and optionally
|
|
210
|
+
Option C, each its own full-resolution `1440x900` live HTML board in one MM Artifact A/B canvas
|
|
211
|
+
(Part 3 rules: content-only `Ctrl + Mousewheel` zoom, 1:1 or side-by-side live comparison). Open
|
|
212
|
+
the verified canvas in the browser automatically with
|
|
213
|
+
`node artifacts/review/review.mjs <folder> --standalone --open`. Spawn a dedicated, fresh
|
|
214
|
+
`designer` subagent for each distinct design task (item 3); never reuse a busy designer seat.
|
|
215
|
+
- **Stage 2 — the owner chooses visually on the A/B canvas.** Wait while the owner inspects the
|
|
216
|
+
live HTML alternatives, zooms into details and picks the preferred design or asks for
|
|
217
|
+
adjustments. Record the canvas choice ID and the owner-decision reference.
|
|
218
|
+
- **Stage 3 — atomic replacement in the kit source.** Only AFTER the owner picks on the A/B canvas,
|
|
219
|
+
build the chosen design into the source folder of packages/mmwork-ds in mutmutco/MM-Work,
|
|
220
|
+
**atomically replacing** every other legacy or competing variant of that piece across the design
|
|
221
|
+
system, publish it to `Canlı belgeler` / MM-Work, and propagate it to all 10 suite modules.
|
|
222
|
+
3. **One dedicated `designer` subagent per distinct design task — never overload a designer seat
|
|
223
|
+
(owner ruling 2026-10-25T16:33:00Z, #8846).**
|
|
224
|
+
Settled owner ruling (verbatim): "The lead designer sent the card building to the same designer
|
|
225
|
+
agent, overloading it. I don't think it was a wise idea. Please learn from this."
|
|
226
|
+
Spawn a separate, fresh `designer` subagent in its own isolated lane for each distinct design task
|
|
227
|
+
or visual A/B canvas (for example, a theme A/B exploration vs. a unified Card spec A/B). Never steer
|
|
228
|
+
or queue a second unrelated design task onto an active `designer` seat: overloading one
|
|
229
|
+
`designer` subagent serializes work that should run in parallel, bloats its context window, and
|
|
230
|
+
degrades craft quality.
|
|
231
|
+
|
|
181
232
|
## Documentation preflight
|
|
182
233
|
|
|
183
234
|
Before each push or PR, follow this order:
|