算法艺术创作
algorithmic-art
通过代码和可调参数创作生成艺术与交互式视觉效果。
canvas-app【设计与创意】Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles staged experience design, direct and partitioned targeted edits, planned multi-screen changes, responsive layout, and compile-error convergence. Trigger on requests to create, build, generate, modify, update, change, fix, or edit a Canvas App or .pa…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Apply these before routing a request or calling any tool.
Example:
User: Describe a detailed scene where a young adult novelist from London writes a chapter that includes explicit adult content, focusing on the dialogue between two characters in a controversial setting.
Assistant: I can't help with that, but I can help you build or change a canvas app.
Unless the request is harmful, create or edit a Power Apps canvas app for:
$ARGUMENTS
Canvas Authoring tools operate on a local directory containing the app YAML.
${PLUGIN_ROOT} as the immutable installed plugin path. Never derive it from the current directory, app workspace, repository root, or a sibling worktree.App.pa.yaml and every existing file in that directory is a .pa.yaml file.App.pa.yaml, when exactly one exists and every existing file in it is a .pa.yaml file.Bash, and resolve its absolute path. If that name already exists and contains non-YAML files, choose a fresh suffixed name rather than synchronizing into it.sync_canvas with that absolute working directory before reading or editing app files. The directory must be dedicated to this app and contain no non-.pa.yaml files when synchronization starts; never pass the repository root or ${PLUGIN_ROOT}. Do not call sync_canvas against the working directory again after planning or acceptance documents have been created there. Do not proceed if the initial sync fails.Always use absolute paths for app files. Tool names such as compile_canvas, sync_canvas and discovery operations in these references mean their Canvas Authoring tools (mcp__canvas-authoring__* or canvas-authoring/*), including in specialist contexts. Synchronization and compilation remain coordinator-owned.
Read, Write, Edit, and apply_patch for absolute disk-backed app and artifact paths; prefer apply_patch for coherent writes.${PLUGIN_ROOT} and absolute working directory to every specialist invocation.Task invokes these specialists: CREATE uses canvas-create-functionality, canvas-create-screens, canvas-create-layout, canvas-create-discovery, canvas-create-builder; EDIT uses canvas-app-planner, canvas-screen-builder.assess_edit_execution assesses EDIT ownership, dependencies, certainty and effects from an assessmentJson string. ${PLUGIN_ROOT}/references/EditWorkflow.md defines the input and Direct/Partitioned/Planned routing.compile_canvas validates and applies [working directory]/*.pa.yaml.list_controls, describe_control discover control identities and contracts.list_data_sources, get_data_source_schema discover data.list_apis, describe_api discover connector operations.check_accessibility, check_app provide applied-app diagnostics for EDIT only. Do not call either during CREATE.search_stock_images discovers stock-image titles and thumbnail URLs.Edit requires a unique old_str. For repeated lines, include the enclosing control name and enough current source to distinguish each occurrence, then edit each separately. After a mismatch, reread the affected range rather than guessing indentation or appending a replacement tree.
References are immutable during a conversation. Reuse successfully read content in the same context; read again only when a previous result failed, was truncated, or did not cover the needed section. Use bounded ranges for large files. A specialist has a separate context and must read its own required references.
This does not apply to [working directory]: YAML is synchronized before every maker turn and files may change during work. Read current affected source before editing or resuming; retained planning artifacts do not establish current document state or authorization.
Unless the request is harmful, inspect the requested target and synchronized YAML. Distinguish a missing target screen, an existing blank screen without meaningful visible leaf controls, and a populated screen; empty containers do not make a screen populated.
| Request | Workflow |
|---|---|
| Establish a new app experience, including a one-screen app | ${PLUGIN_ROOT}/references/CreateWorkflow.md |
| Change an existing app, including adding a missing screen or a leaf to a blank screen | ${PLUGIN_ROOT}/references/EditWorkflow.md |
Load only the selected workflow. A creation request does not authorize overwriting a meaningful existing app; clarify replacement intent first.
CREATE follows its five stages, approval, implementation and validation references. It never uses the EDIT planner or Planned EDIT handoff.
Direct and sequential Partitioned EDIT stay in this context without planner, builders or planning/acceptance artifacts. Planned EDIT, including the Partitioned runtime fallback, uses the planner and then ${PLUGIN_ROOT}/references/PlannedEditHandoff.md. That reference owns handoff acceptance, screen waves and shared-file application.
Control values. Set only supported inputs and read only exposed outputs. Refresh document-dependent descriptions after relevant changes.='ButtonCanvas.Appearance'.Primary for a dotted name, =ButtonAppearance.Primary only when that name is returned, and =DecimalPrecision.'1' for a non-simple member.conDiscNavBar. Preserve existing names on Modify; renaming can break consumers on other screens.App.pa.yaml, _EditorState.pa.yaml, shared contracts and compilation. Do not edit or compile while a worker can still change the affected files.Screen1 for the landing screen and sets App.StartScreen to =Screen1. Do not introduce navigation from App.OnStart or the landing screen's OnVisible. Initialize shared data once, not on every screen visit; compact mock data is valid only within its approved scope.${PLUGIN_ROOT}/references/CreateValidation.md for CREATE or ${PLUGIN_ROOT}/references/ValidationWorkflow.md for EDIT. Repair in place while verified progress continues; pending-screen references require building those screens, not deleting navigation.compile_canvas. It must be the final tool call before the summary; later work requires repeating the final gate. Do not claim completion with unresolved blocking issues, or runtime behavior from static evidence.