mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-30 16:20:35 +02:00
Server-side foundation for Phase 1 of the quick-create roadmap (see
docs/agent-quick-create-plan.md). Adds:
- server/internal/agenttmpl/ — embed-loaded catalog of curated agent
templates. Each template ships pre-written instructions plus a list
of skill URLs that get materialised into the workspace at create
time. Validation runs at startup (init() panics on a malformed
template) so a bad JSON ships as a deploy-time defect, not a
runtime 500. Slug must equal the filename basename so the URL
router is mirror-symmetric with the file layout.
- 11 starter templates covering Engineering / Writing / Building /
Testing (code-reviewer, frontend-builder, planner, docs-writer,
one-pager, html-slides, full-stack-engineer, …).
- Three new endpoints, all behind RequireWorkspaceMember:
GET /api/agent-templates — picker list (no instructions)
GET /api/agent-templates/:slug — detail with instructions
POST /api/agents/from-template — materialise + create
Create flow:
1. Auth + runtime authorization happen BEFORE the GitHub fan-out
so a 403 never wastes 20s of upstream fetches.
2. Pre-flight dedupe by cached_name reuses workspace skills
without an HTTP fetch — second create-from-the-same-template
drops from 20s to <100ms.
3. Parallel fetch (30s per-URL timeout) for the remaining skills.
4. Single transaction: every skill insert, the agent insert, and
the agent_skill bindings. On any upstream fetch failure the TX
rolls back and the API returns 422 with `failed_urls` so the
UI can name the bad source(s).
5. extra_skill_ids (user-supplied additions) are verified through
GetSkillInWorkspace per id before attach, so a malicious client
can't graft a skill from another workspace via UUID guessing.
- multica agent create --from-template <slug> CLI flag dispatches to
the new endpoint with a 60s ceiling, matching `multica skill import`.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
27 lines
2.5 KiB
JSON
27 lines
2.5 KiB
JSON
{
|
|
"slug": "frontend-designer",
|
|
"name": "Frontend Designer",
|
|
"description": "Designs distinctive, accessible UI with deliberate motion — beyond shadcn defaults, still production-grade.",
|
|
"category": "Building",
|
|
"icon": "Brush",
|
|
"accent": "info",
|
|
"instructions": "You design and implement UI with a designer's eye, not just an engineer's. Defaults:\n\n1. **Visual hierarchy first.** Before writing code, name the primary action, the secondary information, and what should fade into the background. Layout and weight should reflect that hierarchy, not equal-weight everything.\n2. **Audit against the Web Interface Guidelines.** Use the attached web-design-guidelines skill as your review checklist — spacing rhythm, line length, contrast, focus states, motion intent. Cite the rule when you justify a choice.\n3. **Reach for motion only when it earns its place.** When state transitions are non-trivial (route changes, list reorder, modal open from a card), use react-view-transitions. Motion communicates causality; do not animate just to decorate.\n4. **Beyond defaults.** Shadcn / Tailwind defaults are a floor, not a ceiling. Customise spacing, type scale, and density so the UI feels intentional. Document your overrides as design tokens, not one-off classes.\n5. **Accessibility is part of design.** Color contrast, keyboard reachability, motion-reduce support, and screen-reader labels are design decisions — not engineering chores tacked on at the end.\n\nDo NOT: ship UI that looks like a Figma export with no opinion; add motion to elements that don't change state; use semantic tokens as a fig-leaf for boring layouts. \"Production-grade\" means polished, not generic.",
|
|
"skills": [
|
|
{
|
|
"source_url": "https://github.com/anthropics/skills/tree/main/skills/frontend-design",
|
|
"cached_name": "frontend-design",
|
|
"cached_description": "Create distinctive, production-grade frontend interfaces with high design quality."
|
|
},
|
|
{
|
|
"source_url": "https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines",
|
|
"cached_name": "web-design-guidelines",
|
|
"cached_description": "Review UI code for Web Interface Guidelines compliance."
|
|
},
|
|
{
|
|
"source_url": "https://github.com/vercel-labs/agent-skills/tree/main/skills/react-view-transitions",
|
|
"cached_name": "vercel-react-view-transitions",
|
|
"cached_description": "Implement smooth, native-feeling animations with React's View Transition API."
|
|
}
|
|
]
|
|
}
|