Create Agent App
Use this skill to turn a user request into a real TypeScript agent application base. Its purpose is to prevent toy demos and false validation claims.
Required Flow
- Read
references/grill-questions.md. - Ask enough questions to produce an Agent App Brief. Do not scaffold yet.
- Read the reference files that match the brief:
references/architecture-patterns.mdfor app and harness shape.references/provider-patterns.mdfor model/provider wiring.references/harness-contract.mdfor module boundaries and artifacts.references/safety-policy.mdfor tools, approvals, credentials, and destructive actions.references/validation-policy.mdfor verification requirements.references/official-docs.mdbefore coding against SDK or framework APIs.references/modern-selection-policy.mdbefore recommending "advanced" TypeScript, runtime, or agent-harness choices.references/industry-architecture-signals.mdwhen evaluating production architecture, observability, governance, scaling, or agent orchestration patterns.references/generation-contract.mdbefore implementing files.
- Present the Agent App Brief plus 2-3 architecture candidates with concrete tradeoffs.
- Present a brief-to-file mapping for the selected candidate: each major module must trace to a user requirement or safety/validation requirement.
- Require explicit user confirmation of one candidate before editing files.
- Generate or refactor the project with scoped, reviewable changes.
- Run the agreed validation commands. Report the exact commands and real outcomes.
Decision Gate
Do not create files, install packages, or scaffold until the user confirms:
- application type
- agent harness type
- runtime boundary and tool permissions
- model/provider pattern
- state and memory strategy
- safety policy
- validation standard
If the user explicitly says to use sensible defaults, still show the defaults and ask for confirmation before code generation.
Non-Negotiable Rules
- Do not use silent fallback. If a provider, model, network call, tool, or permission fails, report the real failure and stop or ask for direction.
- Do not claim success for checks that were not run.
- Do not treat mocks, fake providers, or test doubles as implementation.
- Do not generate a chat box plus fake tool and call it an agent application.
- Do not write real credentials into source files. Use
.env.examplefor variable names only. - Do not enable destructive shell, delete, write, database mutation, browser automation, or external API mutation tools without an approval gate.
- Do not hide missing API keys. Mark live LLM validation as not run when credentials are unavailable.
- Keep
process.envaccess centralized insrc/config/env.tsand validate withzod. - For current SDK or framework APIs, verify against official documentation before coding when the details may have changed.
- Do not stop at a partial demo. If the confirmed scope cannot be implemented, report the blocker instead of producing a decorative scaffold.
- Do not add "advanced" frameworks, agents, memory, queues, databases, or dashboards unless the brief justifies them.
- Treat "advanced" as current, official, typed, testable, observable, maintainable, and fit-for-purpose. Do not treat complexity as advanced.
Expected Output
When generation is complete, return:
- chosen architecture and why it was selected
- changed files
- validation commands and outcomes
- live LLM smoke status
- remaining risks and next repair steps
