Perform an evidence-based production-readiness audit.
Adapt the audit to the application's actual stack, architecture, audience, business model, jurisdictions, indexing intent, and operational risk. Do not recommend controls or technologies that are not relevant to the application.
Do not modify application code, dependencies, database schemas, CI/CD, deployment configuration, Dockerfiles, infrastructure, or remote services during the audit. Updating TODO.md is the only default file mutation.
Step 1: Establish Scope
Before evaluating readiness:
- Read
AGENTS.md, README.md, TODO.md, and relevant project configuration.
- Identify application entry points, services, datastores, external providers, and deployment targets.
- Inspect package manifests, lockfiles, environment examples, migrations, and existing verification scripts.
- Determine which parts of the application are intended to be production-ready.
- Identify production claims in documentation and compare them with implemented behavior.
- Ask a focused question when missing environment, audience, jurisdiction, or deployment information materially affects the audit.
- State what was reviewed and what was not reviewed.
Determine whether the application is public or private, what data and commercial activities it supports, its audience and known jurisdictions, its use of non-essential tracking, its indexing intent, and whether it represents a local business or publishes third-party content requiring attribution.
Apply every check according to this profile. Classify irrelevant controls as NOT APPLICABLE and unavailable evidence as UNVERIFIED. Do not convert optional best practices into release blockers.
Do not infer legal obligations solely from the technology stack. The audit may identify missing disclosures, inconsistent behavior, or technical consent defects, but it must not claim that legal language is legally sufficient. Recommend qualified legal review where jurisdiction-specific interpretation is required.
For large repositories, prioritize:
- Authentication and authorization
- External input and API boundaries
- Durable state and database lifecycle
- Payments and other irreversible side effects
- Background jobs, queues, caching, and concurrency
- Secrets and environment configuration
- Error handling and recovery
- Build, startup, shutdown, and deployment paths
- Critical user journeys
- Public routes with privacy, accessibility, or indexing implications
Step 2: Run Relevant Verification
Discover and run existing project commands where applicable:
- Tests
- Linting
- Type checking
- Production build
- Backend tests
- Static analysis
- Dependency or security checks already configured by the project
Run focused checks first and broader checks when warranted.
Do not install dependencies, change package versions, bypass security controls, or alter configuration merely to make verification pass without explicit approval.
Report every check as:
PASS: Completed successfully
FAIL: Completed and found a problem
BLOCKED: Could not run because of a specific prerequisite
NOT RUN: Intentionally omitted, with the reason
Distinguish failures introduced by current work from apparently pre-existing failures when evidence permits.
A successful build or test suite is useful evidence, but is not sufficient by itself to declare the application production-ready.
Runtime verification
When the application can run locally without external mutation, inspect
representative routes and critical journeys. Prefer rendered or runtime evidence
for status codes, redirects, metadata, indexing, storage, consent, accessibility,
links, assets, and user-visible states.
Do not verify browser-dependent behavior from source presence alone. When runtime inspection is unavailable, classify materially important browser-dependent requirements as UNVERIFIED; do not create separate unverified entries for low-risk polish.
Step 3: Evaluate Readiness
Evaluate only applicable categories.
Use these checklists as investigation prompts, not as a requirement to enumerate every item in the report. Report all findings and material unverified areas, but summarize verified and not-applicable controls unless individual evidence is important to the verdict.
A. Correctness and release integrity
Check for:
- Critical user journeys covered by behavior-focused tests
- Failing tests, lint errors, type errors, or production build failures
- Placeholder, demo, stubbed, or incomplete behavior presented as complete
- Inconsistent API contracts or unvalidated external responses
- Environment-specific behavior missing from verification
- Documentation claims that do not match implemented behavior
- Broken critical journeys, navigation, forms, or state transitions
B. Security and technical privacy
Check for:
- Authentication and authorization at trusted server or database boundaries
- Missing object-level, tenant-level, or role-level access checks
- Server-side validation of untrusted input
- SQL injection, cross-site scripting, CSRF, SSRF, path traversal, open redirects, and unsafe file handling where applicable
- Secrets exposed to browser bundles, logs, fixtures, source control, or error output
- Overly permissive CORS, cookies, session settings, redirects, or security headers
- Missing or weakened PostgreSQL privileges, Row Level Security, or service-role boundaries
- Abuse controls for expensive, privileged, or public endpoints
- Personal-data collection beyond what the represented journey requires
- Sensitive information sent unnecessarily to third parties
- Private or sensitive routes exposed through indexing, metadata, caches, logs, or errors
Do not claim a dependency vulnerability based only on age or apparent version. Use configured scanners, authoritative advisories, or other concrete evidence.
Never print secret values during the audit.
C. Data integrity and recovery
Check for:
- Safe, forward-only schema migration practices
- Compatibility between schemas, application types, queries, and RPC contracts
- Transactional and concurrency-safe state transitions
- Idempotency for retried writes, jobs, webhooks, payments, and notifications
- Defined handling for partial failure and interrupted operations
- Backup, restore, rollback, and recovery expectations appropriate to the data
- Retention, archival, deletion, and privacy behavior
- Cache invalidation and stale-data behavior
- Safe handling of destructive or irreversible operations
Never apply migrations or mutate remote data during the audit.
D. Reliability and failure handling
Check for:
- Startup validation for required configuration
- Timeouts, cancellation, bounded retries, and backoff where appropriate
- Graceful shutdown and resource cleanup
- Queue, worker, scheduler, and webhook recovery
- Duplicate processing and race-condition risks
- External provider failure handling
- Visible error states rather than silent failure
- Health and readiness signals appropriate to the deployment model
Retries must not hide permanent failures or create duplicate side effects.
E. Observability and operations
Check for:
- Actionable structured logging without secret or private-data leakage
- Error reporting with enough context to diagnose failures
- Metrics for critical availability and business flows
- Health checks, readiness checks, or equivalent platform signals
- Runbooks or recovery procedures for important failure modes
- Clear environment configuration and deployment prerequisites
- Release, rollback, and recovery procedures appropriate to the application
Match recommendations to likely operational risk. Do not require enterprise-scale observability for a small personal application.
F. Performance and scalability
Check for:
- N+1 queries and unnecessary repeated network calls
- Unbounded queries, loops, queues, retained objects, or background work
- Missing pagination or limits on potentially large datasets
- Blocking operations in latency-sensitive or concurrent paths
- Cache behavior that threatens correctness or creates uncontrolled cost
- Frontend bundle, rendering, and request waterfalls on critical paths
- Stateful assumptions incompatible with the intended deployment model
Treat performance concerns as findings only when supported by code-path evidence, measurements, or a clear scaling bound. Do not prescribe caching or architectural complexity without an identified need.
G. Frontend behavior and user experience
Check for:
- Responsive behavior on supported viewport sizes
- Loading, empty, success, error, disabled, and offline states where applicable
- Recovery from failed requests and stale data
- Hydration, server/client boundary, and rendering problems
- Layout shifts or blocked interactions on critical journeys
- Clear feedback for submissions and irreversible actions
- Browser compatibility required by the application's stated support
- Graceful handling of failed images, embeds, and external resources
Preserve the existing design system unless a redesign is requested.
H. Configuration and dependency hygiene
Check for:
- Reproducible dependency installation through lockfiles
- Supported runtime versions documented or enforced
- Environment examples that list names without real secrets
- Fail-fast validation for required environment variables
- Separation of public and server-only configuration
- Unused, obsolete, or risky dependencies when supported by evidence
- Debug settings, test credentials, or development behavior enabled in production paths
Do not add or update dependencies during the audit.
I. Legal, consent, and public trust surfaces
Where applicable, check for:
- Policies and disclosures appropriate to the observed data processing and business model, linked from relevant user surfaces
- Policy identity, dates, contact details, and claims consistent with implemented behavior and external providers
- Terms acceptance separated from optional marketing or purpose-specific consent
- Consent that is informed, unbundled, unselected by default, recorded when required, and as easy to withdraw as to grant
- Non-essential storage, analytics, advertising, personalization, and session replay blocked until required consent
- Cookie disclosures and controls matching actual storage and network activity
- Account deletion, export, preferences, unsubscribe, and suppression behavior matching represented functionality
- Appropriate identity, licensing, attribution, and provenance for public content, claims, testimonials, media, and third-party assets
J. Accessibility and inclusive interaction
Evaluate public pages and critical user journeys against the application's stated accessibility standard, or use WCAG 2.2 Level AA as the default technical target.
Check where applicable:
- Structure: language, titles, landmarks, headings, and semantic HTML
- Content: alternative text, decorative images, captions, and media equivalents
- Forms and controls: accessible names, labels, instructions, consent, states, validation, and actionable errors
- Interaction: keyboard access, focus order, visible focus, skip navigation, and focus management
- Components: correct roles, states, relationships, and announcements for dynamic interfaces
- Presentation: contrast, zoom, reflow, target size, reduced motion, and non-color indicators
- Critical journeys: accessible authentication and manual keyboard verification in addition to automated checks
K. Public-site integrity, SEO, and discoverability
For public-facing routes, check applicable site-integrity controls. Apply SEO and indexing controls only to pages intended to be indexed:
- Page identity: descriptive titles, primary headings, descriptions, language, social metadata, and absence of placeholder content
- URL identity: canonical URLs, redirects, duplicate handling, and correct status codes
- Indexing: robots directives, authentication boundaries,
robots.txt, and a sitemap containing canonical indexable URLs
- Navigation: crawlable internal links, no important orphan pages, descriptive link text, breadcrumbs where useful, and a genuine custom 404 response
- Assets and delivery: favicon, application icons, content types, encoding, viewport configuration, and missing-resource behavior
- Structured data: valid schema aligned with visible content, including local business data only for actual local or service-area businesses
- Internationalization: correct locale, language, and alternate-language metadata
- Trust and safety: valid attribution links and error pages without secrets, private data, stack traces, or inappropriate internal details
Do not treat robots.txt as access control. Sensitive routes must remain protected even when crawling is disallowed.
Do not require every route in the sitemap. Exclude private, redirected, duplicate, non-canonical, error, parameter-only, and noindex routes.
Do not report absent SEO features as defects for internal, authenticated-only, temporary, or intentionally non-indexed applications.
Step 4: Classify Evidence
Classify each evaluated item as:
VERIFIED: Evidence supports that the requirement is satisfied
FINDING: Evidence shows a concrete deficiency or material risk
UNVERIFIED: Readiness depends on unavailable information or testing
NOT APPLICABLE: The requirement does not apply
Every finding must include:
- Severity
- Category
- Evidence with a file and line reference, command result, route, or configuration reference
- Affected behavior
- Production impact
- Concrete remediation
- Verification criteria for considering it resolved
For route-level findings, include:
- The affected URL or route pattern
- Whether it is public, authenticated, indexable, or intentionally excluded
- Source evidence and, where available, rendered or HTTP evidence
- Whether the issue affects a shared layout, a route group, or one page
Policy presence alone is not verification. Compare policy claims with observed code, configuration, storage, network requests, forms, providers, and account behavior.
Prefer runtime or rendered evidence for generated metadata, status codes, redirects, structured data, consent behavior, and browser storage.
Do not present hypothetical concerns as confirmed defects. Label uncertainty explicitly.
Step 5: Assign Severity
Critical
A demonstrated vulnerability, data-loss risk, authorization bypass, secret exposure, or failure that makes production operation unsafe.
High
A likely production incident, major reliability failure, broken critical journey, unrecoverable operational gap, or serious security weakness.
Medium
A meaningful but non-blocking deficiency in resilience, observability, performance, accessibility, privacy implementation, public-site integrity, or operational readiness.
Low
Minor hardening, polish, metadata, discoverability, or documentation work with limited production impact.
UNVERIFIED is an evidence classification, not a severity. Record why the evidence is unavailable, the potential production impact, how to verify it, and whether the missing evidence blocks the verdict.
Apply severity contextually:
- Do not automatically assign Critical severity to privacy or consent findings. Base severity on demonstrated data, audience, jurisdiction, and regulatory risk.
- Treat inaccessible authentication, checkout, essential forms, or account controls more severely than isolated presentation defects.
- Treat indexing of private or sensitive content as a security or privacy issue rather than merely SEO.
- Treat ordinary favicon, metadata, breadcrumb, sitemap, internal-link, and structured-data defects as Medium or Low unless they break a critical journey or expose protected content.
- Missing legal text is not automatically High. Consider actual data processing, commercial activity, audience, and launch context.
- Use
UNVERIFIED rather than asserting noncompliance when jurisdiction or legal applicability is unknown.
- Do not inflate severity to make the report appear thorough.
Step 6: Update TODO.md
Updating TODO.md is the only default file mutation allowed during the audit.
Do not modify TODO.md when no unresolved findings, status changes, or material unverified blockers need to be recorded.
When an update is required, invoke update-docs and follow its canonical TODO.md structure.
- Add confirmed unresolved findings not already represented.
- Record material unverified release blockers when additional evidence is required.
- Include severity, category, affected file or route, and verification criteria where practical.
- Merge duplicate findings.
- Update stale entries when repository evidence shows they are inaccurate.
- Move verified resolutions to the Completed section.
- Preserve historical entries.
- Do not include secrets, private personal data, transient command output, or speculative findings.
Step 7: Produce the Report
Use this structure:
Production Readiness Verdict
Choose one:
READY: No known release blockers remain and all critical boundaries were verified
READY WITH CONDITIONS: No demonstrated critical blocker remains, but listed conditions or unverified areas must be accepted
NOT READY: One or more Critical or High release blockers remain
INDETERMINATE: Critical evidence was unavailable, so readiness cannot be established
Apply verdicts in this order:
- Use
INDETERMINATE when evidence for a critical boundary is unavailable.
- Otherwise, use
NOT READY when a Critical or High release blocker remains.
- Otherwise, use
READY WITH CONDITIONS for material non-critical conditions or
unverified areas.
- Use
READY only when no known blockers or material conditions remain and all
critical boundaries were verified.
Include a brief rationale.
Scope
State:
- What was reviewed
- What was not reviewed
- Which categories were not applicable
- Material assumptions about environment, audience, jurisdiction, or deployment
Verification Results
List every command or runtime check with:
PASS
FAIL
BLOCKED
NOT RUN
Release Blockers
List Critical and High findings in priority order.
Other Findings
List Medium and Low findings in priority order.
Unverified Areas
List missing evidence, why it matters, and how to verify it.
Verified Strengths
Briefly identify important controls that were actually verified. Do not pad this section with generic praise.
TODO.md Changes
Summarize items added, updated, moved, or marked stale.
Recommended Next Action
Name the single most important next action.
End by asking whether the user wants the findings implemented. Do not begin implementation until the user approves it.
Behavior Rules
- Be evidence-based and specific.
- Review production-critical paths end to end.
- Prioritize security, data integrity, recovery, and critical journeys before public-site polish.
- Match recommendations to the application's actual scale and risk.
- Do not confuse best practices with release blockers.
- Do not claim readiness when critical evidence is missing.
- Do not deploy, push, publish, communicate externally, or mutate remote services.
- Do not modify application code, dependencies, schemas, infrastructure, or configuration during the audit.
- Updating or creating
TODO.md is the sole default mutation.
- Ask before implementing any remediation.
1---2name: production-ready3description: Audit a web application for production readiness across correctness, security, privacy, data integrity, reliability, observability, performance, accessibility, public-site integrity, SEO, and operations. Use when the user asks whether an app is ready to ship, deploy, launch, or run in production. Update or create TODO.md with unresolved findings, but ask before modifying application code or infrastructure.4---56Perform an evidence-based production-readiness audit.78Adapt the audit to the application's actual stack, architecture, audience, business model, jurisdictions, indexing intent, and operational risk. Do not recommend controls or technologies that are not relevant to the application.910Do not modify application code, dependencies, database schemas, CI/CD, deployment configuration, Dockerfiles, infrastructure, or remote services during the audit. Updating `TODO.md` is the only default file mutation.1112## Step 1: Establish Scope1314Before evaluating readiness:1516- Read `AGENTS.md`, `README.md`, `TODO.md`, and relevant project configuration.17- Identify application entry points, services, datastores, external providers, and deployment targets.18- Inspect package manifests, lockfiles, environment examples, migrations, and existing verification scripts.19- Determine which parts of the application are intended to be production-ready.20- Identify production claims in documentation and compare them with implemented behavior.21- Ask a focused question when missing environment, audience, jurisdiction, or deployment information materially affects the audit.22- State what was reviewed and what was not reviewed.2324Determine whether the application is public or private, what data and commercial activities it supports, its audience and known jurisdictions, its use of non-essential tracking, its indexing intent, and whether it represents a local business or publishes third-party content requiring attribution.2526Apply every check according to this profile. Classify irrelevant controls as `NOT APPLICABLE` and unavailable evidence as `UNVERIFIED`. Do not convert optional best practices into release blockers.2728Do not infer legal obligations solely from the technology stack. The audit may identify missing disclosures, inconsistent behavior, or technical consent defects, but it must not claim that legal language is legally sufficient. Recommend qualified legal review where jurisdiction-specific interpretation is required.2930For large repositories, prioritize:31321. Authentication and authorization332. External input and API boundaries343. Durable state and database lifecycle354. Payments and other irreversible side effects365. Background jobs, queues, caching, and concurrency376. Secrets and environment configuration387. Error handling and recovery398. Build, startup, shutdown, and deployment paths409. Critical user journeys4110. Public routes with privacy, accessibility, or indexing implications4243## Step 2: Run Relevant Verification4445Discover and run existing project commands where applicable:4647- Tests48- Linting49- Type checking50- Production build51- Backend tests52- Static analysis53- Dependency or security checks already configured by the project5455Run focused checks first and broader checks when warranted.5657Do not install dependencies, change package versions, bypass security controls, or alter configuration merely to make verification pass without explicit approval.5859Report every check as:6061- `PASS`: Completed successfully62- `FAIL`: Completed and found a problem63- `BLOCKED`: Could not run because of a specific prerequisite64- `NOT RUN`: Intentionally omitted, with the reason6566Distinguish failures introduced by current work from apparently pre-existing failures when evidence permits.6768A successful build or test suite is useful evidence, but is not sufficient by itself to declare the application production-ready.6970### Runtime verification7172When the application can run locally without external mutation, inspect73representative routes and critical journeys. Prefer rendered or runtime evidence74for status codes, redirects, metadata, indexing, storage, consent, accessibility,75links, assets, and user-visible states.7677Do not verify browser-dependent behavior from source presence alone. When runtime inspection is unavailable, classify materially important browser-dependent requirements as `UNVERIFIED`; do not create separate unverified entries for low-risk polish.7879## Step 3: Evaluate Readiness8081Evaluate only applicable categories.8283Use these checklists as investigation prompts, not as a requirement to enumerate every item in the report. Report all findings and material unverified areas, but summarize verified and not-applicable controls unless individual evidence is important to the verdict.8485### A. Correctness and release integrity8687Check for:8889- Critical user journeys covered by behavior-focused tests90- Failing tests, lint errors, type errors, or production build failures91- Placeholder, demo, stubbed, or incomplete behavior presented as complete92- Inconsistent API contracts or unvalidated external responses93- Environment-specific behavior missing from verification94- Documentation claims that do not match implemented behavior95- Broken critical journeys, navigation, forms, or state transitions9697### B. Security and technical privacy9899Check for:100101- Authentication and authorization at trusted server or database boundaries102- Missing object-level, tenant-level, or role-level access checks103- Server-side validation of untrusted input104- SQL injection, cross-site scripting, CSRF, SSRF, path traversal, open redirects, and unsafe file handling where applicable105- Secrets exposed to browser bundles, logs, fixtures, source control, or error output106- Overly permissive CORS, cookies, session settings, redirects, or security headers107- Missing or weakened PostgreSQL privileges, Row Level Security, or service-role boundaries108- Abuse controls for expensive, privileged, or public endpoints109- Personal-data collection beyond what the represented journey requires110- Sensitive information sent unnecessarily to third parties111- Private or sensitive routes exposed through indexing, metadata, caches, logs, or errors112113Do not claim a dependency vulnerability based only on age or apparent version. Use configured scanners, authoritative advisories, or other concrete evidence.114115Never print secret values during the audit.116117### C. Data integrity and recovery118119Check for:120121- Safe, forward-only schema migration practices122- Compatibility between schemas, application types, queries, and RPC contracts123- Transactional and concurrency-safe state transitions124- Idempotency for retried writes, jobs, webhooks, payments, and notifications125- Defined handling for partial failure and interrupted operations126- Backup, restore, rollback, and recovery expectations appropriate to the data127- Retention, archival, deletion, and privacy behavior128- Cache invalidation and stale-data behavior129- Safe handling of destructive or irreversible operations130131Never apply migrations or mutate remote data during the audit.132133### D. Reliability and failure handling134135Check for:136137- Startup validation for required configuration138- Timeouts, cancellation, bounded retries, and backoff where appropriate139- Graceful shutdown and resource cleanup140- Queue, worker, scheduler, and webhook recovery141- Duplicate processing and race-condition risks142- External provider failure handling143- Visible error states rather than silent failure144- Health and readiness signals appropriate to the deployment model145146Retries must not hide permanent failures or create duplicate side effects.147148### E. Observability and operations149150Check for:151152- Actionable structured logging without secret or private-data leakage153- Error reporting with enough context to diagnose failures154- Metrics for critical availability and business flows155- Health checks, readiness checks, or equivalent platform signals156- Runbooks or recovery procedures for important failure modes157- Clear environment configuration and deployment prerequisites158- Release, rollback, and recovery procedures appropriate to the application159160Match recommendations to likely operational risk. Do not require enterprise-scale observability for a small personal application.161162### F. Performance and scalability163164Check for:165166- N+1 queries and unnecessary repeated network calls167- Unbounded queries, loops, queues, retained objects, or background work168- Missing pagination or limits on potentially large datasets169- Blocking operations in latency-sensitive or concurrent paths170- Cache behavior that threatens correctness or creates uncontrolled cost171- Frontend bundle, rendering, and request waterfalls on critical paths172- Stateful assumptions incompatible with the intended deployment model173174Treat performance concerns as findings only when supported by code-path evidence, measurements, or a clear scaling bound. Do not prescribe caching or architectural complexity without an identified need.175176### G. Frontend behavior and user experience177178Check for:179180- Responsive behavior on supported viewport sizes181- Loading, empty, success, error, disabled, and offline states where applicable182- Recovery from failed requests and stale data183- Hydration, server/client boundary, and rendering problems184- Layout shifts or blocked interactions on critical journeys185- Clear feedback for submissions and irreversible actions186- Browser compatibility required by the application's stated support187- Graceful handling of failed images, embeds, and external resources188189Preserve the existing design system unless a redesign is requested.190191### H. Configuration and dependency hygiene192193Check for:194195- Reproducible dependency installation through lockfiles196- Supported runtime versions documented or enforced197- Environment examples that list names without real secrets198- Fail-fast validation for required environment variables199- Separation of public and server-only configuration200- Unused, obsolete, or risky dependencies when supported by evidence201- Debug settings, test credentials, or development behavior enabled in production paths202203Do not add or update dependencies during the audit.204205### I. Legal, consent, and public trust surfaces206207Where applicable, check for:208209- Policies and disclosures appropriate to the observed data processing and business model, linked from relevant user surfaces210- Policy identity, dates, contact details, and claims consistent with implemented behavior and external providers211- Terms acceptance separated from optional marketing or purpose-specific consent212- Consent that is informed, unbundled, unselected by default, recorded when required, and as easy to withdraw as to grant213- Non-essential storage, analytics, advertising, personalization, and session replay blocked until required consent214- Cookie disclosures and controls matching actual storage and network activity215- Account deletion, export, preferences, unsubscribe, and suppression behavior matching represented functionality216- Appropriate identity, licensing, attribution, and provenance for public content, claims, testimonials, media, and third-party assets217218### J. Accessibility and inclusive interaction219220Evaluate public pages and critical user journeys against the application's stated accessibility standard, or use WCAG 2.2 Level AA as the default technical target.221222Check where applicable:223224- Structure: language, titles, landmarks, headings, and semantic HTML225- Content: alternative text, decorative images, captions, and media equivalents226- Forms and controls: accessible names, labels, instructions, consent, states, validation, and actionable errors227- Interaction: keyboard access, focus order, visible focus, skip navigation, and focus management228- Components: correct roles, states, relationships, and announcements for dynamic interfaces229- Presentation: contrast, zoom, reflow, target size, reduced motion, and non-color indicators230- Critical journeys: accessible authentication and manual keyboard verification in addition to automated checks231232### K. Public-site integrity, SEO, and discoverability233234For public-facing routes, check applicable site-integrity controls. Apply SEO and indexing controls only to pages intended to be indexed:235236- Page identity: descriptive titles, primary headings, descriptions, language, social metadata, and absence of placeholder content237- URL identity: canonical URLs, redirects, duplicate handling, and correct status codes238- Indexing: robots directives, authentication boundaries, `robots.txt`, and a sitemap containing canonical indexable URLs239- Navigation: crawlable internal links, no important orphan pages, descriptive link text, breadcrumbs where useful, and a genuine custom 404 response240- Assets and delivery: favicon, application icons, content types, encoding, viewport configuration, and missing-resource behavior241- Structured data: valid schema aligned with visible content, including local business data only for actual local or service-area businesses242- Internationalization: correct locale, language, and alternate-language metadata243- Trust and safety: valid attribution links and error pages without secrets, private data, stack traces, or inappropriate internal details244245Do not treat `robots.txt` as access control. Sensitive routes must remain protected even when crawling is disallowed.246247Do not require every route in the sitemap. Exclude private, redirected, duplicate, non-canonical, error, parameter-only, and `noindex` routes.248249Do not report absent SEO features as defects for internal, authenticated-only, temporary, or intentionally non-indexed applications.250251## Step 4: Classify Evidence252253Classify each evaluated item as:254255- `VERIFIED`: Evidence supports that the requirement is satisfied256- `FINDING`: Evidence shows a concrete deficiency or material risk257- `UNVERIFIED`: Readiness depends on unavailable information or testing258- `NOT APPLICABLE`: The requirement does not apply259260Every finding must include:261262- Severity263- Category264- Evidence with a file and line reference, command result, route, or configuration reference265- Affected behavior266- Production impact267- Concrete remediation268- Verification criteria for considering it resolved269270For route-level findings, include:271272- The affected URL or route pattern273- Whether it is public, authenticated, indexable, or intentionally excluded274- Source evidence and, where available, rendered or HTTP evidence275- Whether the issue affects a shared layout, a route group, or one page276277Policy presence alone is not verification. Compare policy claims with observed code, configuration, storage, network requests, forms, providers, and account behavior.278279Prefer runtime or rendered evidence for generated metadata, status codes, redirects, structured data, consent behavior, and browser storage.280281Do not present hypothetical concerns as confirmed defects. Label uncertainty explicitly.282283## Step 5: Assign Severity284285### Critical286287A demonstrated vulnerability, data-loss risk, authorization bypass, secret exposure, or failure that makes production operation unsafe.288289### High290291A likely production incident, major reliability failure, broken critical journey, unrecoverable operational gap, or serious security weakness.292293### Medium294295A meaningful but non-blocking deficiency in resilience, observability, performance, accessibility, privacy implementation, public-site integrity, or operational readiness.296297### Low298299Minor hardening, polish, metadata, discoverability, or documentation work with limited production impact.300301`UNVERIFIED` is an evidence classification, not a severity. Record why the evidence is unavailable, the potential production impact, how to verify it, and whether the missing evidence blocks the verdict.302303Apply severity contextually:304305- Do not automatically assign Critical severity to privacy or consent findings. Base severity on demonstrated data, audience, jurisdiction, and regulatory risk.306- Treat inaccessible authentication, checkout, essential forms, or account controls more severely than isolated presentation defects.307- Treat indexing of private or sensitive content as a security or privacy issue rather than merely SEO.308- Treat ordinary favicon, metadata, breadcrumb, sitemap, internal-link, and structured-data defects as Medium or Low unless they break a critical journey or expose protected content.309- Missing legal text is not automatically High. Consider actual data processing, commercial activity, audience, and launch context.310- Use `UNVERIFIED` rather than asserting noncompliance when jurisdiction or legal applicability is unknown.311- Do not inflate severity to make the report appear thorough.312313## Step 6: Update TODO.md314315Updating `TODO.md` is the only default file mutation allowed during the audit.316317Do not modify `TODO.md` when no unresolved findings, status changes, or material unverified blockers need to be recorded.318319When an update is required, invoke `update-docs` and follow its canonical `TODO.md` structure.320321- Add confirmed unresolved findings not already represented.322- Record material unverified release blockers when additional evidence is required.323- Include severity, category, affected file or route, and verification criteria where practical.324- Merge duplicate findings.325- Update stale entries when repository evidence shows they are inaccurate.326- Move verified resolutions to the Completed section.327- Preserve historical entries.328- Do not include secrets, private personal data, transient command output, or speculative findings.329330## Step 7: Produce the Report331332Use this structure:333334### Production Readiness Verdict335336Choose one:337338- `READY`: No known release blockers remain and all critical boundaries were verified339- `READY WITH CONDITIONS`: No demonstrated critical blocker remains, but listed conditions or unverified areas must be accepted340- `NOT READY`: One or more Critical or High release blockers remain341- `INDETERMINATE`: Critical evidence was unavailable, so readiness cannot be established342343Apply verdicts in this order:3443451. Use `INDETERMINATE` when evidence for a critical boundary is unavailable.3462. Otherwise, use `NOT READY` when a Critical or High release blocker remains.3473. Otherwise, use `READY WITH CONDITIONS` for material non-critical conditions or348 unverified areas.3494. Use `READY` only when no known blockers or material conditions remain and all350 critical boundaries were verified.351352Include a brief rationale.353354### Scope355356State:357358- What was reviewed359- What was not reviewed360- Which categories were not applicable361- Material assumptions about environment, audience, jurisdiction, or deployment362363### Verification Results364365List every command or runtime check with:366367- `PASS`368- `FAIL`369- `BLOCKED`370- `NOT RUN`371372### Release Blockers373374List Critical and High findings in priority order.375376### Other Findings377378List Medium and Low findings in priority order.379380### Unverified Areas381382List missing evidence, why it matters, and how to verify it.383384### Verified Strengths385386Briefly identify important controls that were actually verified. Do not pad this section with generic praise.387388### TODO.md Changes389390Summarize items added, updated, moved, or marked stale.391392### Recommended Next Action393394Name the single most important next action.395396End by asking whether the user wants the findings implemented. Do not begin implementation until the user approves it.397398## Behavior Rules399400- Be evidence-based and specific.401- Review production-critical paths end to end.402- Prioritize security, data integrity, recovery, and critical journeys before public-site polish.403- Match recommendations to the application's actual scale and risk.404- Do not confuse best practices with release blockers.405- Do not claim readiness when critical evidence is missing.406- Do not deploy, push, publish, communicate externally, or mutate remote services.407- Do not modify application code, dependencies, schemas, infrastructure, or configuration during the audit.408- Updating or creating `TODO.md` is the sole default mutation.409- Ask before implementing any remediation.