Categories
Agent Tooling (71)
- .agents/skills/agent-browser/references/authentication.md
- .agents/skills/agent-browser/references/commands.md
- .agents/skills/agent-browser/references/profiling.md
- .agents/skills/agent-browser/references/proxy-support.md
- .agents/skills/agent-browser/references/session-management.md
- .agents/skills/agent-browser/references/snapshot-refs.md
- .agents/skills/agent-browser/references/video-recording.md
- .agents/skills/agent-browser/SKILL.md
- .agents/skills/aspire-deployment/references/aws.md
- .agents/skills/aspire-deployment/references/azure.md
- .agents/skills/aspire-deployment/references/cicd.md
- .agents/skills/aspire-deployment/references/docker-compose.md
- .agents/skills/aspire-deployment/references/javascript.md
- .agents/skills/aspire-deployment/references/kubernetes.md
- .agents/skills/aspire-deployment/references/preflight.md
- .agents/skills/aspire-deployment/SKILL.md
- .agents/skills/aspire-monitoring/references/diagnostics-bridge.md
- .agents/skills/aspire-monitoring/references/monitoring.md
- .agents/skills/aspire-monitoring/references/playwright-handoff.md
- .agents/skills/aspire-monitoring/SKILL.md
- .agents/skills/aspire-orchestration/references/agent-workflows.md
- .agents/skills/aspire-orchestration/references/app-commands.md
- .agents/skills/aspire-orchestration/references/detection.md
- .agents/skills/aspire-orchestration/references/resource-management.md
- .agents/skills/aspire-orchestration/references/safety-guardrails.md
- .agents/skills/aspire-orchestration/SKILL.md
- .agents/skills/aspire/references/aspire-13-3-breaking-changes.md
- .agents/skills/aspire/SKILL.md
- .agents/skills/aspireify/references/apphost-wiring.md
- .agents/skills/aspireify/references/csharp-authoring.md
- .agents/skills/aspireify/references/docker-compose.md
- .agents/skills/aspireify/references/full-solution-apphosts.md
- .agents/skills/aspireify/references/javascript-apps.md
- .agents/skills/aspireify/references/opentelemetry.md
- .agents/skills/aspireify/references/scan-and-propose.md
- .agents/skills/aspireify/references/service-defaults.md
- .agents/skills/aspireify/references/typescript-authoring.md
- .agents/skills/aspireify/references/validation.md
- .agents/skills/aspireify/SKILL.md
- .agents/skills/caveman-compress/README.md
- .agents/skills/caveman-compress/SECURITY.md
- .agents/skills/caveman-compress/SKILL.md
- .agents/skills/caveman-help/README.md
- .agents/skills/caveman-help/SKILL.md
- .agents/skills/caveman-stats/README.md
- .agents/skills/caveman-stats/SKILL.md
- .agents/skills/caveman/README.md
- .agents/skills/caveman/SKILL.md
- .agents/skills/csharp-developer/SKILL.md
- .agents/skills/dotnet-inspect/SKILL.md
- .agents/skills/efcore-data-layer/SKILL.md
- .agents/skills/git/SKILL.md
- .agents/skills/microsoft-code-reference/SKILL.md
- .agents/skills/microsoft-docs/SKILL.md
- .agents/skills/microsoft-skill-creator/references/skill-templates.md
- .agents/skills/microsoft-skill-creator/SKILL.md
- .agents/skills/skill-creator/references/output-patterns.md
- .agents/skills/skill-creator/references/workflows.md
- .agents/skills/skill-creator/SKILL.md
- .agents/skills/tunit-testing/references/aspire-integration.md
- .agents/skills/tunit-testing/references/aspnetcore-integration.md
- .agents/skills/tunit-testing/references/assertions.md
- .agents/skills/tunit-testing/references/data-driven.md
- .agents/skills/tunit-testing/references/infrastructure-and-troubleshooting.md
- .agents/skills/tunit-testing/references/lifecycle-hooks.md
- .agents/skills/tunit-testing/SKILL.md
- AGENTS.md
- backend/AGENTS.md
- backend/tests/AGENTS.md
- Front/AGENT.md
- opencode.jsonc
Validation
End-to-end validation after editing the AppHost. Goal: confirm the wired graph starts cleanly, every resource reaches a healthy state, and aspire describe returns the expected shape. After a clean validation, aspireify self-deactivates and hands off to aspire-orchestration.
Flow
# 1. Start the AppHost in the background, JSON output for parsing
aspire start --non-interactive --format Json
# 2. Wait for each declared resource (use displayName from aspire ps)
aspire ps --format Json --include-hidden # also lists hidden resources
aspire wait <displayName> # repeat per resource
# 3. Sanity-check the resource graph
aspire describe --format Json --include-hidden
# 4. Stop cleanly
aspire stopWhy --non-interactive
Agents must always pass --non-interactive to aspire start (and other commands) to suppress prompts and spinners. Without it the command can hang waiting for input.
Why --format Json
Structured output for parsing. Note: aspire start can interleave human-readable lines with JSON in some scenarios (#15843). Strip non-JSON lines before parsing.
Why --include-hidden
aspire ps and aspire describe filter hidden resources (proxies, helper containers, migration jobs) by default. During validation use --include-hidden so you don't miss anything that aspire start actually started.
Why aspire wait not curl loops
aspire wait <name> blocks until the resource reports healthy via the AppHost's own health model. Hand-rolled curl loops race with startup and don't see container-internal health.
Resource-name gotcha (#15842):aspire waitrejects thenamefield — passdisplayNamefromaspire ps --format Jsoninstead.
Recovery
| Symptom | Action |
|---|---|
| Build error in resource | Fix code; re-run aspire start |
| File-lock error during edit | Hand off to aspire-orchestration → aspire stop → retry edit |
| Port conflict on start | aspire stop (clears prior instance) → aspire start |
Resource missing from aspire ps | Re-run with --include-hidden; if still missing, AppHost edit is wrong |
aspire wait rejects name | Pull displayName from aspire ps --format Json |
Mixed JSON output from aspire start | Strip non-JSON lines before parsing |
| Container-backed resource fails | Confirm Docker / Podman is running; re-run aspire doctor |
| TS AppHost change had no effect | You probably edited .aspire/modules/. Edit apphost.ts only |
Hand-off Criteria
Aspireify deactivates when all of these hold:
aspire start --non-interactiveexits 0 (or stays healthy in background mode)aspire waitreturns success for every declared, non-hidden resourceaspire describe --format Jsonshows the proposed graph (resources, references, endpoints)aspire stopcleans up without errors
When done, announce:
✅ AppHost wired and validated:
- Resources: pg, cache, api, worker, web
- References: api → pg + cache; worker → pg; web → api
- All resources reached healthy state.
Handing off to aspire-orchestration for day-to-day start/stop/wait.
Aspireify is done.Optional: Pre-Deploy Smoke Check
If the user plans to deploy next, suggest:
aspire publish --list-steps
aspire deploy --list-stepsThen route them to aspire-deployment for the actual aspire deploy / aspire publish / aspire destroy workflow.