deploy-verify
Deploy Verify
Product — Single-agent orchestration. Single-pass post-deploy health check using bash and optional browser automation.
Core Question: "Is the deployed version working correctly in production?"
Critical Gates — Read First
- This is a health check, not QA. Check critical paths work — don't audit every page.
- Compare against baseline when available. New errors that weren't in the baseline are regressions. Pre-existing errors are not.
- Evidence for every finding. "The page is broken" without a screenshot, error message, or status code is not a finding.
- Stop at first BROKEN signal. If the main page doesn't load, don't continue checking sub-pages.
Inputs Required
- A production URL to verify
- (Optional) A baseline from a prior run (
.agents/deploy-verify-baseline.json)
Output
.agents/deploy-verify-report.md.agents/deploy-verify-baseline.json(updated baseline for future comparisons)
Chain Position
Previous: ship (recommended) | Next: none
Execution
1. Pre-Flight
Determine what to verify:
- Read
.agents/ship-report.mdif it exists — extract what was changed and the PR URL - If the user provided a URL, use it
- If no URL provided, check
.agents/ship-report.mdfor a production URL or ask the user
2. Primary Health Check
Check the production URL for basic health:
# Check HTTP status
curl -s -o /dev/null -w "%{http_code}" <URL>
# Check response time
curl -s -o /dev/null -w "%{time_total}" <URL>
| Check | HEALTHY | DEGRADED | BROKEN |
|---|---|---|---|
| HTTP status | 200 | 3xx (redirect loop?) | 4xx, 5xx |
| Response time | <3s | 3-10s | >10s or timeout |
| Page content | Contains expected content | Partially loaded | Empty or error page |
3. Console Error Check (if browser available)
If agent-browser or similar browser automation is available:
- Navigate to the URL
- Capture console errors
- Compare against baseline (if exists) — only NEW errors are findings
- Take a screenshot as evidence
If no browser is available, skip this step and note it in the report.
4. Critical Path Verification
Based on what was shipped (from .agents/ship-report.md), verify the specific features that changed:
- If an API endpoint was modified, hit it and verify the response shape
- If a page was modified, verify it renders
- If auth was changed, verify login still works (if possible without credentials)
Keep this focused — verify 2-3 critical paths, not exhaustive QA.
5. Baseline Comparison
If .agents/deploy-verify-baseline.json exists from a prior run:
- Compare current console errors against baseline — flag only NEW errors
- Compare response times — flag regressions >2x baseline
- Compare HTTP status — flag any status change
6. Update Baseline
If the deployment is HEALTHY, save the current state as the new baseline:
{
"url": "<URL>",
"date": "<ISO date>",
"http_status": 200,
"response_time_ms": 450,
"console_errors": ["<any pre-existing errors>"],
"screenshot": "<path if taken>"
}
Save to .agents/deploy-verify-baseline.json.
7. Write Report
Write to .agents/deploy-verify-report.md:
---
skill: deploy-verify
version: 1
date: {{today}}
status: {{HEALTHY | DEGRADED | BROKEN}}
---
# Deploy Verification Report
**URL**: {{url}}
**Date**: {{date}}
**Verdict**: {{HEALTHY | DEGRADED | BROKEN}}
## Health Checks
| Check | Result | Evidence |
|-------|--------|----------|
| HTTP status | {{status code}} | — |
| Response time | {{time}}ms | {{comparison to baseline if available}} |
| Page content | {{loaded / partial / error}} | — |
| Console errors | {{count}} new ({{count}} pre-existing) | {{error messages}} |
## Critical Paths Verified
| Path | Result | Evidence |
|------|--------|----------|
| {{path}} | {{OK / FAILED}} | {{detail}} |
## Regressions (compared to baseline)
{{List of new issues not present in baseline, or "No baseline available" or "No regressions found"}}
## Recommendation
{{If BROKEN: "Investigate immediately. Consider rolling back." + defer to problem-analysis}}
{{If DEGRADED: "Monitor closely. Non-critical issues found."}}
{{If HEALTHY: "Deployment verified. Baseline updated."}}
Edge Cases
- No browser available: Skip console error check and screenshots. Note in report.
- URL requires authentication: Note that authenticated paths could not be verified. Report on public paths only.
- URL is not reachable: Report BROKEN with "Connection refused" or "DNS resolution failed."
- No baseline exists: This is the first run. Everything is reported without comparison. Save current state as baseline.
- Existing report: Rename to
deploy-verify-report.v[N].mdand create new.
Output Files
| File | Description |
|---|---|
.agents/deploy-verify-report.md |
Health check results with evidence |
.agents/deploy-verify-baseline.json |
Baseline state for future comparisons |
Next Step
If DEGRADED or BROKEN: investigate and fix. If HEALTHY: deployment is confirmed. Run attribution to verify marketing tracking is intact.
More from hungv47/product-skills
user-flow
Maps multi-step in-product flows — screens, decisions, transitions, platform-native touchpoints (dock, menu bar, widgets, notifications, Live Activity, etc.), edge cases, and error states for features or user journeys. Produces `.agents/product/flow/<flow-name>.md` (one file per flow) plus an auto-generated `index.md` when ≥2 flows exist. Not for visual brand design (use brand-system) or single-page conversion (use lp-optimization). For technical architecture, see system-architecture. For task decomposition, see task-breakdown.
10system-architecture
Designs technical blueprints — tech stack selection, database schema, API design, file structure, and deployment plan for a defined product or feature. Produces `architecture/system-architecture.md`. Not for unclear requirements (use discover) or task decomposition (use task-breakdown). For user journey mapping, see user-flow. For code quality after building, see fresh-eyes.
10technical-writer
Generates documentation from a codebase — READMEs, API references, setup guides, runbooks, architecture docs, and ship logs with consistent structure and terminology. Produces documentation files in the project. Ship log mode writes a plain-language product snapshot to research/product-context.md so agents and humans know what the app does. Not for specifying what to build (use discover) or restructuring code (use code-cleanup). For shipping and PRs, see ship. For task decomposition, see task-breakdown.
9code-cleanup
Audits and refactors existing code for readability, maintainability, and dead code removal without changing behavior. Produces `.agents/cleanup-report.md` and applies fixes in-place. Not for diagnosing business problems (use diagnose) or writing documentation (use docs-writing). For writing missing docs after cleanup, see docs-writing.
8ship
Automated pre-merge pipeline — runs tests, checks review gate, organizes commits, generates PR with structured body. Produces `.agents/ship-report.md`. Not for code review (use review-chain) or task decomposition (use task-breakdown). For code cleanup before shipping, see code-cleanup. For post-deploy health check, see deploy-verify.
6docs-writing
Generates documentation from a codebase — READMEs, API references, setup guides, runbooks, architecture docs, and ship logs with consistent structure and terminology. Produces documentation files in the project. Ship log mode writes a plain-language product snapshot to research/product-context.md so agents and humans know what the app does. Not for specifying what to build (use discover) or restructuring code (use code-cleanup). For task decomposition, see task-breakdown.
1