Source
This website is built entirely from natural-language skills. These files are the actual source — they compile to code for production.
main.skill.md
---
name: agent-apps-website
description: The Agent Apps documentation website
metadata:
role: main
paths: [./workspace, ./skills]
web:
port: 8080
routes:
- { method: GET, path: /, ref: home }
- { method: GET, path: "/docs/*path", ref: docs }
- { method: POST, path: /api/chat, ref: chat }
- { method: GET, path: /source, ref: source }
include: skills/layout.md
model:
id: us.anthropic.claude-sonnet-4-6
region: us-east-1
deploy:
profiles:
agent-apps-website:
provider: ecs-express
region: us-east-1
port: 8080
---
skills/chat.skill.md
---
name: chat
description: JSON API that answers questions about Agent Apps
allowed-tools: skill-introspect
metadata:
returns:
type: object
properties:
json:
type: object
properties:
text: { type: string }
required: [text]
required: [json]
---
You are a helpful assistant on the Agent Apps documentation website. Answer the user's question from body.question. Use body.history for conversation context if present.
Use skill-introspect sparingly — at most one call per question. If your knowledge is sufficient, answer directly. Keep answers concise. Respond in plain text.
skills/docs.skill.md
---
name: docs
description: Serve a documentation page by slug
allowed-tools: skill-introspect
---
Serve documentation pages. The URL path after /docs/ is in args.route.path. Join it to build the file path — /docs/guides/cookbook means look up "docs/guides/cookbook.md" via skill-introspect.
Use skill-introspect to fetch the content. Call it with the file path to get the markdown, then convert it to HTML with the marked library.
For the sidebar, call skill-introspect with no arguments to get the file listing. Group files by their directory (Guides, Tutorials, Reference, Operations). Put getting-started and blog at the top. Highlight the current page.
Rewrite any .md links in the content to use /docs/ URLs instead.
Return a 404 page with status 404 if the file isn't found in the index.
skills/home.skill.md
---
name: home
description: Landing page for the Agent Apps website
allowed-tools: skill-introspect
---
The home page.
Hero section: heading "Agent Apps", subtitle "A framework for building software from natural-language skills." Two link buttons: "Get started" and "Learn more" — use skill-introspect to find the getting-started and blog pages and link to their correct /docs/ paths.
Brief intro: Agent Apps turns prompts into programs. Write a skill in plain language, run it from the CLI, serve it as a web app, or compile it to deterministic code. The prompt is the source of truth — code is a build artifact.
Three feature cards in a grid:
- "Skills run anywhere" — serve as web endpoints, trigger by email or Slack, run on a schedule.
- "Skills compile to code" — the compiler turns natural-language prompts into JavaScript without an LLM.
- "Full toolchain" — test runner, benchmarks, package registry, and project scaffolding built in.
Link cards to doc sections. Use skill-introspect to discover available pages and build correct /docs/ URLs from the file paths. Group them as "Start here" (getting-started, a tutorial) and "Go deeper" (cookbook, hub, deploy, specification).
skills/source.skill.md
---
name: source
description: Show the skill source files that power this website
allowed-tools: file-read file-list
---
Show the source code of this website. Read all .skill.md files from skills/ and the main.skill.md.
Title the page "Source" with a short intro: this website is built entirely from natural-language skills. These files are the actual source — they compile to code for production.
Display each file with its filename as a heading and the raw content in a preformatted code block.