视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
turn-into-app【文档与办公】Turns a thread, skill, spreadsheet, or Claude/ChatGPT project into a polished, visual Agent-Native app: populated domain screens with the in-app agent working behind contextual controls. Use when a user invokes `/turn-into-app`, or asks to turn a workflow, skill, spreadsheet, or project into an app, UI, workbench, or dashboard, including from Claude …
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
/turn-into-app, or asks to turn a workflow, skill, spreadsheet, or project
into an app, UI, workbench, or dashboard, including from Claude or ChatGPT
on the web.
metadata:
visibility: exportedGive a proven workflow the face of an app and the brain of an agent. The first screen shows the user's world, populated. Controls on those objects hand work to the in-app agent, the object shows it is working, and the result lands back in the UI. A form under a stepper bar is the failure to prevent.
start-workspace-app-creation or
create_workspace_app on this path.npm,
pnpm, or npx, edit files, or start a server there, and never invent a
Builder branch URL: report what Dispatch returned./turn-into-app /some-skill), read that skill and package
it immediately, even at the start of a thread. A supplied path or attachment
is the source.Project context counts only when the host puts it in the current context. The MCP connector does not read hidden project chats, private URLs, account settings, or credentials. Never claim private access, invent an importer, add fake OAuth, or scrape a logged-in page; ask for an export.
Read the spreadsheet guide before working a workbook. The boundaries:
Decide and proceed. Take the source's recommended option, otherwise the most conventional default, and record it as an assumption. Never ask about visuals, copy, layout, template, or integrations.
Ask once, with your recommended interpretation, only when:
Headless means no question tool and no live chat (claude -p, codex exec,
a harness, a scheduled or delegated run, a prompt saying nobody can answer);
when unsure, assume headless. Interactive: ask with the question tool, or end
your message with the question and your recommendation. Headless: never end
the turn on a question. For reasons 1 and 2, print it with your
recommendation, record the assumption in the brief, and keep building (stop
and report only when nothing is identifiable); for reason 3, skip the blocked
step (no write, deploy, or guessed workspace), finish the rest, and report it
as pending. Confirmation happens in the conversation; the generated app never
opens on a mapping or setup screen.
Copy this checklist and keep it current. Pace: aim for about 45 minutes; note
the start time (date), and if 35 minutes have passed when the review starts,
run one pass and list the open criteria.
- [ ] 0 Host classified, source picked
- [ ] 1 Source read, brief drafted
- [ ] 2 Design decided, brief posted with App design
- [ ] 3 Real scaffold, onboarding config, local sign-in
- [ ] 4 Actions, domain surface, sample data, agent moments, agent instructions
- [ ] 5 Running; screenshots reviewed and refined (two passes by default)
- [ ] 6 Typecheck, doctor, build; final report with evidence labels
Read the whole source (a large workbook or export in bounded chunks), then fill in the source-brief template; it has a reading recipe per source type. It names the job, at most three agent moments, the invariants, data hazards, source of truth, and assumptions. Never turn a one-off answer, private data, or an unverified result into product behavior.
Read the UI direction guide now. Decide these and add them to the brief under App design:
app.homePath), domain navigation, chat kept as its own destination, panes
that fill the viewport, and the header title as the only page title.Source steps become states of objects (Draft, Checked, Approved), never a stepper, numbered tabs, or a wizard. Chrome stays quiet: no eyebrow, subtitle, repeated title, or stat strip over visible data. Post the brief once, with its App design, before the first scaffold command, as a checkpoint, and continue without waiting.
Before the first command, say once what the run executes (install, scaffold, checks, a dev server, a headless browser), so permission prompts do not read as trouble.
Choose a short slug and never overwrite an existing app. For a standalone app, run from the directory that should contain it (the app is its own git repository; say so when it sits inside another checkout):
npx --yes @agent-native/core@latest create <slug> --standalone --template chat
cd <slug>
pnpm install
Inside an existing Agent-Native workspace (a parent package.json has
agent-native.workspaceCore; create beneath it delegates to add-app), run
from the workspace root:
pnpm exec agent-native add-app <slug> --template chat
Read the generated AGENTS.md, and its build-an-app skill when the scaffold
ships one. Where that guidance skips the design record, screenshots, or build,
leaves DESIGN.md alone, says not to set AUTH_DISABLED, or says to stop the
dev server, this skill's steps win for this run. Use another first-party
template only when it materially fits.
If a scaffold or install step fails, times out (no output for 5 minutes), or is denied, the app does not exist yet. Retry once where a retry could help, then stop and report the exact command, the failure, and what is on disk. Never hand-build the app in another stack, edit a pinned dependency version to force an install, or continue in a half-created directory; a workaround the user requests is named in the report.
Then save the brief as docs/brief.md, append the domain surface's design to
DESIGN.md (UI direction guide, section 4), and follow
the run and deploy guide to set
onboarding.firstRun in agent-native.json (the shared Use Builder.io /
Custom keys setup; never a second credential form or a hardcoded key) and
AUTH_DISABLED=1 in the ignored .env before the first screenshot (loopback
only, never committed or deployed).
defineAction files in actions/. The UI calls
them with useActionQuery and useActionMutation from
@agent-native/core/client/hooks; the agent calls the same actions. No
/api/* route for app data and no LLM call from the browser.@agent-native/core/local-artifacts, per the scaffold's storing-data
skill), SQL holds only an index, and the app is local-only. Files a thread's
run happened to write are examples, not the source of truth.sendToAgentChat from @agent-native/core/client/agent-chat with
openSidebar: true, chatTarget: "local", ids and a bounded summary in
context, and submit: true (false when the user should edit the prompt
first). The object shows its working state at once, never stays busy without
a run behind it, and receives the result through an action, with attribution
and Accept, Edit, Retry (UI direction guide, section 7). Follow-ups stay in
the same thread; no second prompt box. Label deterministic controls plainly,
and never use sparkle, wand, magic, or robot icons.AGENTS.md, the
system prompt, and the display name (UI direction guide, section 5).AgentSidebar with one AgentKit
controller and transport: no legacy AssistantChat, no second stream owner.A spreadsheet becomes a live workbench, not a sheet clone (spreadsheet guide, section 5).
Start the dev server as the run and deploy guide says (detached, log and PID in
.tmp/, polled until it answers 200), then follow
the review loop:
/ (desktop and phone, light and dark, then the main agent control
clicked). It must land on the domain route; a sign-in card or a restarting
server is not a pass./ off
the domain route, an empty or form-only first viewport, scaffold tokens,
clipped text, raw markdown, sideways scroll, console errors) overrides the
mean.Screenshots stay in the app's .tmp/ui-review/out/.
Exercise the real path, not only the files: / opens the domain route with
sample data; every AI-labeled control opens the sidebar with its bounded
prompt (with a provider, the result lands and persists; without one, the
object does not stay busy, and say so); actions persist (read the row back);
application state updates.
Run pnpm typecheck and pnpm agent-native:doctor (plain pnpm doctor is
pnpm's own command), then stop the dev server, remove AUTH_DISABLED from
.env, and run pnpm build. Fix a non-zero exit or a doctor finding; the
"production configuration errors" block printed with exit 0 is the deploy
checklist, not a defect (run and deploy guide). Deploy only when the user
asked or the provider is already configured. Leave the dev server running
(start it again after the build) or stop it as that guide says, and report
which. Label evidence separately:
locally running, locally verified, build-ready, deployed, and live-verified
are different states.
Keep it demo-short. The first line is the verdict ("Built X in <dir>;
locally verified, not deployed"). Then: the app directory, local URL, and
server state (PID and stop command); the archetype, the direction, and what
each control does (agent handoff or local action); absolute paths of the final
screenshots, rubric scores, and open criteria; the verification, with evidence
labels, and what the review click left behind; a deployment URL only if it is
real, and one precise pending step if any; what changed from the brief
(assumptions, gaps in the source, choices where it was silent).
Report what exists, not what was intended. Never claim the app exists without a path and a verification result. If the scaffold never completed, a step was worked around, or the app is not the real Agent-Native scaffold, that is the headline, and the build is not complete.
turn-into-skill packages a workflow that needs no UI. Design skills, if
installed, join in step 5.