build-giselle-agent
Build and Update Giselle Sandbox Agent
Use this skill to help developers ship agent products that are legible, file-oriented, and easy to evolve.
The current quality bar is:
- OpenClaw-like UX on Vercel
- visible files, workspace state, and artifacts
- snapshot-based continuity
- updates that land as normal file diffs
Read in this order
Read only what you need.
reference/current-capabilities.mdreference/build-quickstart.mdreference/build-recipes.mdreference/snippets.md- If the user is modifying an existing app, also read
reference/update-playbook.md
Workflow
1. Determine the job shape
Figure out whether the user wants one of these:
- a new app
- an update to an existing agent app
- a docs or positioning refresh around an existing app
If the user already named an example or product shape, do not ask broad discovery questions again. Move straight to the closest recipe.
2. Intake only what is necessary
When details are missing, ask only the minimum needed to build the right thing:
- App pattern
Choices:
workspace-report,agent-inbox,browser-tool, or a custom variation - Agent runtime
Choices:
codexorgemini - Surface
Choices:
web-onlyorweb + Slack - File expectations Clarify whether artifact downloads or visible file lists are required
- Scope Clarify whether this is a fresh build or a diff-first update
If a reasonable default is obvious from the repo context, use it and keep going.
Before generating code, make sure the developer knows how to get the cloud API key:
- Create an account at
https://studio.giselles.ai - Open the API key management page in Studio and issue a new API key
- Add it to
.env.localasGISELLE_AGENT_API_KEY=<your-api-key>
The default Cloud API is studio.giselles.ai, so no extra base URL is needed unless the user is self-hosting.
3. Build from a recipe, not from scratch
Prefer one of the concrete recipes in reference/build-recipes.md:
workspace-report: best when the product story is files, artifacts, and downloadsagent-inbox: best when the product story is a real chat app surfacebrowser-tool: best when the product story is explicit DOM interaction
The recipe should drive the implementation shape. Do not invent a new structure unless the user's request truly does not fit any recipe.
4. Required implementation pieces
For any new app, make sure the result includes the core runtime wiring:
defineAgent(...)inlib/agent.tswithGiselleAgent(...)innext.config.ts- a chat route that uses
giselle({ agent })with AI SDK streaming - a UI that makes the runtime understandable to the end user
Use reference/snippets.md for canonical patterns instead of re-deriving them.
5. Preserve the product story
The app should make these ideas clear when relevant:
- Files created by the agent are real outputs, not just implied chat state.
- Working inputs belong in the workspace; user-facing deliverables belong in
./artifacts/. - The runtime is a real sandbox, not an invisible black box.
- Snapshots preserve continuity after sandbox expiration.
For workspace-report style apps, artifact UX should default to runtime-discovered
artifact events from the chat stream. If the user should be able to download
agent-created artifacts, read the artifact parts from streamed chat messages and
prefer provider-emitted download_url when present.
Use these files as the canonical implementation reference for artifact download flow:
examples/workspace-report-demo/app/chat-panel.tsxpackages/giselle-provider/src/ndjson-mapper.ts
If the current request would produce a chat-only experience with no visible file or artifact story, call that out and propose the smallest improvement that fixes it.
6. When browser tools are involved
If the agent needs to inspect or manipulate the DOM:
- use
@giselles-ai/browser-tool - wire
useBrowserToolHandler() - add predictable
data-browser-tool-idvalues - describe those UI structures precisely in
agentMd
Do not add browser-tool complexity to apps that do not need it.
7. Updating an existing app
When the user asks to evolve an existing agent app:
- Inspect the current files and summarize the baseline briefly.
- Pick the smallest diff that accomplishes the requested change.
- Preserve the existing product shape unless the user wants a larger redesign.
- Keep workspace/artifact visibility intact while expanding capabilities.
- Verify with build, typecheck, and any targeted tests that fit the scope.
Read reference/update-playbook.md before making non-trivial updates.
8. Output contract
Always return:
- Which files changed
- Why those changes exist
- What verification was run
- What the next safe iteration would be
Important rules
- Prefer the repo's current docs and examples over stale memory.
- Do not default to a spreadsheet app. Choose the recipe that best matches the user's product story.
- Treat artifact download and file visibility as first-class product features, not optional afterthoughts, when the use case depends on trust and inspectability.
- Keep
SKILL.mdprocedural and lean. Put details in references.
More from giselles-ai/agent-container
agent-browser
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
2writing-task-plans
Writes structured task plans (epics with phased sub-tasks) in the tasks/ directory. Use when asked to plan, break down, or write tasks for a feature, migration, or refactor.
1writing-narrative-pages
Guides marketing page composition using humanistic narrative principles. Use when writing, reviewing, or structuring marketing pages, landing pages, or product story pages.
1