بنقرة واحدة
make-tweakable
Add in-design tweak controls
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Add in-design tweak controls
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Export a selected element from the canvas as PNG, JPEG, OGraf bundle, Lottie, or video. Saves to the project's exports/ folder; the chat renders the result inline as an artifact card.
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at `web/projects/demo/design-canvas.jsx`, and the host-side wiring in `web/src/lib/tweakBridge.ts` plus `mcp/CANVAS_PROTOCOL.md`. Use whenever the diff touches any of those files, or when the user says "fix the canvas", "update DesignCanvas", "tweak the design canvas", "the canvas isn't working in new projects", or anything similar. Without this rule, fixes land in one place and silently miss the other — the demo project tests stale code, or new projects get content that doesn't match what's been verified.
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive the Claude Code agent, and see the canvas render. Before running, gate by inspecting the PR diff for changes that plausibly affect the journey (routes, onboarding, canvas, chat, selectors). On failure, walk a five-step triage to decide "broken feature" vs "stale test" before touching either. Use whenever the user says "run the CUJ", "validate the canonical flow", "ship-readiness check", or before approving any PR.
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen. Use whenever the diff touches `web/src/` (especially `*.module.css`, `index.css`, `styles/themes.css`, `lib/theme.ts`) or any user-facing component on the host app. Opts into the canonical craft rulebook at `atelier/` and layers the host-app-specific posture (two-axis theme×design system, warm-cream + Claude rust, restraint over flourish) on top. NOT for user-generated designs inside the canvas — those use the product skill at `skills/frontend-design/`.
Run AI Atelie's journey suite and inject inline-rendering evidence (per-journey video + screenshot, in a 4-column markdown table) into the current PR's body. Use whenever the user says "post evidence", "run journeys", "update PR with videos", or after `ship-task` opens a PR. Wraps `bun run journeys`; idempotent — re-runs replace the evidence block instead of appending.
Take an AI Atelie task — issue, ticket, or ad-hoc ask — all the way from description to merged-ready PR. Use whenever the user says "implement X and ship it", "work on issue
| name | make-tweakable |
| display | Make tweakable |
| description | Add in-design tweak controls |
| kind | capability |
| body_status | verbatim |
The user can toggle Tweaks on/off from the toolbar. When on, show additional in-page controls that let the user tweak aspects of the design — colors, fonts, spacing, copy, layout variants, feature flags, whatever makes sense. You design the tweaks UI; it lives inside the prototype. Title your panel/window "Tweaks" so the naming matches the toolbar toggle.
Order matters: register the listener before you announce availability. If you post __edit_mode_available first, the host's activate message can land before your handler exists and the toggle silently does nothing.
First, register a message listener on window that handles:
{type: '__activate_edit_mode'} → show your Tweaks panel
{type: '__deactivate_edit_mode'} → hide it
Then — only once that listener is live — call:
window.parent.postMessage({type: '__edit_mode_available'}, '*')
This makes the toolbar toggle appear.
When the user changes a value, apply it live in the page and persist it by calling:
window.parent.postMessage({type: '__edit_mode_set_keys', edits: {fontSize: 18}}, '*')
You can send partial updates — only the keys you include are merged.
Wrap your tweakable defaults in comment markers so the host can rewrite them on disk, like this:
const TWEAK_DEFAULS = /*EDITMODE-BEGIN*/{
"primaryColor": "#D97757",
"fontSize": 16,
"dark": false
}/*EDITMODE-END*/;
The block between the markers must be valid JSON (double-quoted keys and strings). There must be exactly one such block in the root HTML file, inside inline <script>. When you post __edit_mode_set_keys, the host parses the JSON, merges your edits, and writes the file back — so the change survives reload.
data-cc-no-inspect="true" to the panel root and the FAB so the editor's inspector skips them.