SEO / Portfolio / Public Site
LongTermSoftware.com Live Audit Report
Report summary
Generated UTC: 2026-06-17T01:49:40Z Target: https://longtermsoftware.com/ Audit mode: Non-invasive public-site review. No WordPress login, no live modifications, and no real lead-data submission.
Key topics
- SEO / Portfolio / Public Site
- SEO
- Portfolio
- Public Site
- AI
- UAIX
- UAI
- Agentic Web
- WordPress
Research provenance
For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.
This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.
Full report
On this page
Generated UTC: 2026-06-17T01:49:40Z Target: https://longtermsoftware.com/ Audit mode: Non-invasive public-site review. No WordPress login, no live modifications, and no real lead-data submission.
Scope and evidence note
This report follows the uploaded audit brief and uses the live production site as the source of truth. Evidence was gathered through the web reader, local downloaded public artifacts, PDF extraction/rendering, and search-result checks. Direct browser screenshots, raw curl -I status-code checks, Lighthouse, axe, DevTools network inspection, and keyboard testing could not be completed because the active local container could not resolve longtermsoftware.com with curl or headless Chromium. The failure is preserved in logs/browser-network-limitation.log and referenced below. Findings are separated accordingly.
Evidence reference map
| Evidence key | Reference |
|---|---|
| home_nav_hero | web: turn708196view0 L4-L22, L26-L31, L390-L410 |
| pricing_html | web: turn247632view0 L23-L173; turn247632view1 L175-L203; turn247632view2 L205-L216 |
| contact_html | web: turn247632view3 L15-L83; turn515881view1 L14-L65 |
| services_html | web: turn515881view0 L14-L207; turn171052view0 L15-L64; turn171052view1 L15-L63; turn171052view2 L15-L64; turn171052view3 L15-L65 |
| proof_html | web: turn515881view2 L14-L188; turn254166view1 L14-L52; turn108578view5 L15-L129 |
| resources_html | web: turn254166view2 L14-L61; turn254166view3 L63-L180; turn391058view0 L14-L208 |
| diagnostic_html | web: turn108578view6 L14-L58 |
| machine_html | web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6 |
| index_hygiene | web search: turn234342search0, turn234342search1, turn234342search2; live redirects: turn225787view0, turn225787view2 |
| downloads_pdf | local: pricing-guide.pdf inspected/extracted/rendered; proof-ledger.csv downloaded; proof/service/proposal PDFs downloaded |
| tool_limit | local log: /mnt/data/lts-audit-work/logs/browser-network-limitation.log |
1. Executive Summary
The live site is substantially aligned with the expected public truth. The homepage presents the company as an enterprise software modernization and reviewed-AI consultancy, the primary navigation appears in the required order, the pricing ladder is visible and internally consistent across the HTML page and machine-readable assets, and the contact details match the expected Mike Kappel / mike@ns12.com / (708) 230-2304 / Cicero, IL truth.
The strongest live areas are pricing truth, claim boundaries, machine-readable readiness, and public proof discipline. The site avoids unsupported AI claims and repeatedly distinguishes templates, generated artifacts, and approved outcomes. This is a credible posture for compliance-conscious buyers and AI-agent/vendor-evaluation tools.
The highest-priority issues are not primarily content accuracy issues. They are verification and buyer-flow issues:
- Add real browser/CI evidence for the required screenshots, viewports, Lighthouse, axe, keyboard, and diagnostic network tests.
- Clean stale search-index results for
Hello world!,/projects/, and old resume/recruiter/downloads/snippets. - Reduce overlap between Resources, Downloads, and Docs.
- Make first-touch contact and fit-call flow shorter and more accessible.
- Add diagnostic copy/export and a runtime privacy guard test.
Required Table A. Overall scorecard
| Area | Score / 10 | Evidence | Main recommendation |
|---|---|---|---|
| Homepage / first impression | 8 | Hero and first-screen pricing/contact markers are clear; proof boundary language is present. | Keep first-screen density; simplify later proof-library sections. |
| Header / nav / search | 8 provisional | Expected nav order and fit-call/search are present; responsive behavior unverified. | Add Playwright header tests at all required widths. |
| Pricing truth | 9 | HTML, pricing JSON, llms, and AI manifest agree on core ladder. | Keep Monthly/Annual visually default; test REST endpoints. |
| Contact / fit-call | 8 | Mike Kappel, email, phone, Cicero IL, privacy warning confirmed. | Make short fit call primary; collapse detailed intake. |
| Services UX | 8 | Service ladder includes buyer fit, timelines, deliverables, pricing path, and proof links. | Reduce text density and make proof links more specific. |
| Proof / case studies | 7 | Template/outcome boundaries are explicit; ledger is useful. | Add approved public outcomes when available; strengthen buyer summaries. |
| Resources / downloads | 7 | Resource inventory is broad and useful. | Separate Resources, Downloads, and Docs roles; clean stale SERP snippets. |
| Diagnostic | 7 provisional | Local-only/no-model/no-secrets boundary is explicit. | Add network guard, copy/export, and result CTA tests. |
| Machine-readable readiness | 8 | Manifest, route QA, llms, pricing JSON, proof/service JSON are current and aligned. | Align version fields and verify all endpoints/static utility files. |
| Accessibility | 6 provisional | Skip link and semantic text are present; automated/keyboard/contrast testing unavailable. | Run axe/keyboard/contrast/reflow tests in CI. |
| Responsive UX | 5 unknown | Required screenshots/viewports not captured due tool limitation. | Add CI screenshot catalog and no-horizontal-scroll assertions. |
| SEO / index hygiene | 5 | Live pages are better than indexed snippets, but stale starter/recruiter results remain. | Search Console cleanup and title/meta audit. |
| Performance / technical UX | 5 unknown | Lighthouse unavailable; payload/headers unknown. | Run Lighthouse CI and asset budget checks. |
| Security / privacy | 6 unknown | HTTPS pages loaded in web reader; diagnostic privacy copy strong; headers unverified. | Add non-invasive header/security.txt/diagnostic network tests. |
| Content / messaging | 8 | Positioning is restrained, specialist, and avoids unsupported AI claims. | Make buyer journey more prominent than proof infrastructure. |
2. Current Live State vs Expected Site Truth
| Expected truth | Confirmed live state | Evidence | Result |
|---|---|---|---|
| Primary nav: Services, Proof, Industries, Resources, About, Contact | Confirmed in extracted page header. | web: turn708196view0 L4-L22, L26-L31, L390-L410 | Pass |
| Primary CTA emphasizes a fit call | Fit call appears in header and Book a 20-minute fit call appears in page/footer CTAs. | web: turn708196view0 L4-L22, L26-L31, L390-L410 | Pass |
Contact: Mike Kappel, mike@ns12.com, (708) 230-2304, Cicero, IL | Confirmed on Contact, Fit-call, footer, llms, and AI manifest. | web: turn247632view3 L15-L83; turn515881view1 L14-L65; web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6 | Pass |
| Pricing ladder: $150 / $100 / $80 / $75 with stated commitments | Confirmed on pricing HTML, pricing guide PDF, pricing-ladder JSON, llms, and AI manifest. | web: turn247632view0 L23-L173; turn247632view1 L175-L203; turn247632view2 L205-L216; local: pricing-guide.pdf inspected/extracted/rendered; proof-ledger.csv downloaded; proof/service/proposal PDFs downloaded; web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6 | Pass |
| Retainer hours non-accumulative | Confirmed in pricing HTML, pricing PDF, pricing-ladder JSON, and llms. | web: turn247632view0 L23-L173; turn247632view1 L175-L203; turn247632view2 L205-L216; local: pricing-guide.pdf inspected/extracted/rendered; proof-ledger.csv downloaded; proof/service/proposal PDFs downloaded | Pass |
| Public proof/sample artifacts distinguish templates from approved outcomes | Confirmed on Proof, Case Studies, and Sample Artifacts. | web: turn515881view2 L14-L188; turn254166view1 L14-L52; turn108578view5 L15-L129 | Pass |
| Machine-readable files present and synchronized | Major files confirmed; several utility/static files unverified due tool limits. | web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6 | Mostly pass; add CI checks |
| No unsupported AI/vendor/compliance claims | Explicit boundaries confirmed on home, machine-readable files, and diagnostic. | web: turn708196view0 L4-L22, L26-L31, L390-L410; web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6; web: turn108578view6 L14-L58 | Pass |
3. Screenshot Catalog
No PNG screenshots were captured in this environment. The web reader provided live text evidence, but the screenshot tool available here only supports PDFs, and local Chromium could not resolve the production domain. The next theme-build QA run must capture the following files with a desktop browser or Playwright CI.
| Expected filename | Status | Reason/evidence |
|---|---|---|
| 20260617T014940Z_home_1440x900_above-fold.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_home_1440x900_full-page.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_home_390x844_above-fold.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_home_390x844_full-page.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_header_1366x768_header.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_header_1024x768_header.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_header_768x1024_header.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_header_390x844_header.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_header_320x568_header.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_pricing_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_pricing_390x844_mobile.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_contact_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_contact_390x844_mobile.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_fit-call_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_fit-call_390x844_mobile.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_services_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_services_390x844_mobile.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_proof_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_proof_390x844_mobile.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_resources_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_resources_390x844_mobile.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_diagnostic_390x844_before-input.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_diagnostic_390x844_after-sample-input.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
| 20260617T014940Z_machine-readable-evidence_1440x900_desktop.png | Not captured | Local Chromium/curl DNS failure; web screenshot tool only screenshots PDFs in this environment. |
4. Route and Link QA
Required Table B. Route audit table
| Route | Status | Redirect? | Title | H1 | Key markers found | Issues |
|---|---|---|---|---|---|---|
| / | 200 confirmed by web reader | No | Not exposed by text extraction | Corporate software architecture for systems that cannot drift when AI or modernization changes the stack. | Expected nav; Fit call CTA; $150/hour; $2,000/month; mike@ns12.com; unsupported-claims boundary | Viewport, screenshot, Lighthouse, axe not verified in local browser due DNS constraint. |
| /services/ | 200 confirmed by web reader | No | Not exposed by text extraction | AI Consulting Services | Seven services; buyer fit; timelines; pricing path; proof links; fit-call CTAs | Cards are comprehensive but text-heavy. Need viewport verification for card density. |
| /pricing/ | 200 confirmed by web reader | No | Not exposed by text extraction | Pricing for architecture help, modernization, and AI governance | $150 ad-hoc; $100/monthly; $80/annual; $75 C2C; non-accumulative retainer language; recommended buyer path | Strong truth consistency. Need mobile overflow and visual hierarchy verification. |
| /contact/ | 200 confirmed by web reader | No | Not exposed by text extraction | Contact LongTermSoftware.com | Mike Kappel; mike@ns12.com; (708) 230-2304; Cicero, IL; privacy warning; detailed assessment intake | Detailed intake may be too long for first touch; label/error accessibility not verified. |
| /fit-call/ | 200 confirmed by web reader | No | Not exposed by text extraction | Request a Fit Call | 20-minute fit-call path; direct email/call; short form; privacy warning | Form labels/focus/error states not verified. Confirm short form is visually primary. |
| /proof/ | 200 confirmed by web reader | No | Not exposed by text extraction | Claim-to-Evidence Ledger | Claim ledger; status key; machine-readable evidence links | Useful for procurement/AI readers; needs stronger buyer-readable outcome summaries. |
| /case-studies/ | 200 confirmed by web reader | No | Not exposed by text extraction | Case Study Paths | Public-safe templates; paths for modernization, AI documentation, RAG, reliability | Template-vs-outcome boundary is clear but social proof remains limited. |
| /resources/ | 200 confirmed by web reader | No | Not exposed by text extraction | Resources and buyer enablement | Buyer-stage resource grouping; checklist/download links; diagnostic/sample artifacts | Some duplicate resource cards; docs/downloads/resources overlap. |
| /downloads/ | 200 confirmed by web reader | No | Not exposed by text extraction | Downloads and Buyer Checklists | Pricing guide; proof packet; service one-pagers; proposal packet; proof ledger; event taxonomy | Live page is buyer-facing, but search snippets still show old resume/recruiter signals. |
| /docs/ | 200 confirmed by web reader | No | Not exposed by text extraction | Docs / Long-Term Memory | Resource-style cards and docs links | Content appears substantially duplicated from Resources; purpose of Docs is ambiguous. |
| /process/ | 200 confirmed by web reader | No | Not exposed by text extraction | Process: Assess, Map, Pilot, Integrate, Govern | Delivery sequence; reviewable artifacts; fit-call CTA | Solid process framing; add proof links per phase. |
| /about/ | 200 confirmed by web reader | No | Not exposed by text extraction | About LongTermSoftware.com | LongTermSoftware/MikeKappel/Teleodynamic brand architecture; fit-call CTA | Brand-triad explanation may be too internal for buyer-first About page. |
| /faq/ | Not verified | Unknown | Unknown | Unknown | Expected in route QA contract | Web reader safety restriction prevented direct verification. |
| /industries/ | 200 confirmed by web reader | No | Not exposed by text extraction | Industries and use cases | Industry blocks for regulated/brittle systems | Add industry-specific proof/CTA links. |
| /personas/ | Not verified | Unknown | Unknown | Unknown | Expected in route QA contract | Web reader safety restriction prevented direct verification. |
| /standards-alignment/ | Not verified | Unknown | Unknown | Unknown | Expected in route QA contract | Web reader safety restriction prevented direct verification. |
| /machine-readable-evidence/ | 200 confirmed by web reader | No | Not exposed by text extraction | Machine-Readable Evidence | Read-only/no authority/certification; llms; manifest; route QA; proof/service JSON/CSV | Good AI-agent readiness. Keep human-facing placement subdued. |
| /sample-artifacts/ | 200 confirmed by web reader | No | Not exposed by text extraction | Sample Artifact Library | Templates, not outcomes; approval boundary; service-specific artifacts | Boundary is clear; add approved outcomes only when human-approved. |
| /diagnose-system/ | 200 confirmed by web reader | No | Not exposed by text extraction | Browser-Local System Diagnostic | No data leaves browser; no model call; safe sample input; sample output; fit-call CTA | Network privacy not verified in DevTools; no copy/export result evident in extracted text. |
| /services/ai-and-modernization-assessment/ | 200 confirmed by web reader | No | Not exposed by text extraction | AI and Modernization Assessment | Fit, timeline, deliverables, boundaries, sample artifact | Verify fixed-scope posture does not undercut retainer ladder on mobile cards. |
| /services/net-sql-modernization-blueprint/ | 200 confirmed by web reader | No | Not exposed by text extraction | .NET / SQL Modernization Blueprint | Legacy .NET/SQL focus; parity deliverables; pricing ladder | Good specialist fit; add more direct proof link labels. |
| /services/human-reviewed-ai-workflow-accelerator/ | 200 confirmed by web reader | No | Not exposed by text extraction | Human-Reviewed AI Workflow Accelerator | Review gates; prompt contracts; workflow boundaries | Keep claims non-autonomous; add screenshot-level workflow sample if possible. |
| /services/governed-knowledge-rag-foundation/ | 200 confirmed by web reader | No | Not exposed by text extraction | Governed Knowledge / RAG Foundation | Source boundaries; metadata; trust labels; review states | Add plain-language RAG explanation for non-specialist buyers. |
| /services/ai-reviewer-app-mvp/ | 200 confirmed by web reader | No | Not exposed by text extraction | AI Reviewer App MVP | Package exists in live service schema and route set | Page text not line-inspected; verify detail-page markers visually. |
| /services/ai-evaluation-and-reliability-program/ | 200 confirmed by web reader | No | Not exposed by text extraction | AI Evaluation and Reliability Program | Package exists in live service schema and route set | Page text not line-inspected; verify detail-page markers visually. |
| /services/fractional-ai-modernization-architect/ | 200 confirmed by web reader | No | Not exposed by text extraction | Fractional AI / Modernization Architect | Package exists in live service schema and route set | Confirm C2C/embedded support remains limited availability and not default. |
| /hello-world/ | Redirect confirmed by web reader | Yes -> / | Not exposed by text extraction | Homepage final content | Final page is homepage | Still appears in Google results with starter-content snippet. |
| /projects/ | Redirect confirmed by web reader | Yes -> /proof/ | Not exposed by text extraction | Proof final content | Final page is proof ledger | Still appears in Google results as stale URL. |
| /sample-page/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /projects-and-proof/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /evidence/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /cases/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /ai/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /ai-systems/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /governance/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test. |
| /blog/ | Not verified | Expected | Unknown | Unknown | Expected redirect in route QA contract | Needs CI redirect test and search-index cleanup. |
| /llms.txt | 200 downloaded locally | No | n/a | n/a | Version 1.18.0; generated UTC; pricing; contact; unsupported claim boundary | Matches expected pricing/contact. Verify content-type in CI. |
| /ai-agent-manifest.json | 200 confirmed by web reader | No | n/a | n/a | Version 1.18.0; contact; pricing; routes; boundaries | Good. Add schema validation test. |
| /route-qa-contract.json | 200 confirmed by web reader | No | n/a | n/a | Expected routes, redirects, forbidden dependencies, unsupported claim checks | Extend with viewport, Lighthouse, axe, diagnostic network guards. |
| /downloads/longtermsoftware-pricing-guide.pdf | 200 downloaded locally; PDF inspected | No | PDF metadata title not set | n/a | Pricing ladder; non-accumulative rule; boundaries | PDF likely untagged and uses non-embedded Helvetica; add accessible HTML equivalent/tagged PDF. |
| /downloads/proof-ledger.csv | 200 downloaded locally | No | n/a | n/a | Claim/proof/status/route/boundary rows | Good; add CSV schema test. |
| /wp-json/lts/v1/service-package-schema | 200 confirmed by web reader | No | n/a | n/a | Version 1.18.0; package details; pricing paths | Good. Other REST endpoints not verified by web reader. |
Link and route observations
- No confirmed broken internal link was found from the web-reader extractions.
- Confirmed redirect behavior exists for
/hello-world/to the homepage and/projects/to/proof/, but search results still expose stale URLs/snippets. - Many old aliases and utility files need CI HEAD/GET verification because direct local browser/curl checks were unavailable.
5. Homepage and First Impression Review
Confirmed live strengths
- The hero explains the company quickly: modernization and AI for systems that cannot tolerate behavioral drift.
- The technology fit is explicit: .NET, SQL Server, Web Forms, Classic ASP, VB.NET, and stored-procedure-heavy systems.
- Above-the-fold trust and buyer-path signals are present: ad-hoc entry price, monthly advisory price, and direct contact.
- Unsupported claim boundaries are visible later on the page, including no AGI/consciousness/safety certification/vendor partnership/autonomous production authority claims.
First-impression risk
The first screen is now sales-oriented enough to be credible. The risk is that lower sections still behave like a technical proof library rather than a conversion path. That is not a fatal problem for this brand, but it should be controlled: buyers should move from problem -> proof -> service -> fit call, not problem -> machine-readable proof archive.
Proposed homepage section order
- Hero: pain + fit + CTA + direct proof markers.
- Buyer problem strip: legacy drift, stored procedures, unsafe AI, undocumented rules.
- Entry paths: Ad-hoc, Monthly Advisory, Annual Modernization, limited C2C.
- Service chooser: seven service cards with one-line fit and next CTA.
- Proof ledger preview: 3-4 proof cards, each marked template/outcome/status.
- Browser-local diagnostic: privacy-first triage tool.
- Contact/fit call: short form + direct phone/email.
- Machine-readable evidence: subdued footer-level technical proof.
6. Header, Navigation, and Search Review
Confirmed
- Header navigation text appears as
Services,Proof,Industries,Resources,About,Contact. - Search appears with text equivalent
Search LongTermSoftware.com Search. Fit callis present in the header.- A skip link appears before header content in extracted pages.
Not verified
- Header wrapping at 1366, 1280, 1024, 768, 390, 375, and 320 CSS px.
- Mobile menu open/close behavior.
- Keyboard focus order and Escape behavior.
- Tap-target sizing and focus-visible contrast.
Recommended CSS/header fixes
- Use a container-query or breakpoint where search collapses before nav wraps.
- Keep the fit-call CTA visible until the mobile menu state, then keep it as the first action inside the opened menu.
- Add
aria-label="Primary navigation", a labeled search input, and anaria-expandedmenu button. - Set a route QA assertion:
document.documentElement.scrollWidth <= window.innerWidthfor all required widths.
7. Pricing Page Review
Required Table D. Pricing consistency table
| Source | Ad-hoc | Monthly | Annual | C2C | Non-accumulative language | Mismatch |
|---|---|---|---|---|---|---|
| HTML pricing page | $150/hour; no minimum | $100/hour; 20-hour monthly minimum; $2,000/month | $80/hour; 40-hour monthly minimum; $3,200/month; annual contract | $75/hour; 40 hours/week; six-month minimum; limited availability | Confirmed: unused hours expire/do not roll over/bank/accrue/carry forward unless order form says otherwise | None confirmed |
| pricing-ladder.json | Matches | Matches | Matches | Matches | Matches; reserved monthly capacity language present | None confirmed |
| service-packages.json | Pricing path references flexible entry | Pricing path references monthly advisory | Pricing path references annual modernization | Embedded/fractional package constrained by fit/availability | Not the primary ladder source | No contradiction confirmed; not a full ladder mirror |
| REST pricing | Not verified | Not verified | Not verified | Not verified | Not verified | Web reader safety restriction; add CI GET |
| REST pricing-consistency | Not verified | Not verified | Not verified | Not verified | Not verified | Web reader safety restriction; add CI GET |
| llms.txt | Matches | Matches | Matches | Matches | Matches | None confirmed |
| AI manifest | Matches | Matches | Matches | Matches | Matches | None confirmed |
| FAQ | Not verified | Not verified | Not verified | Not verified | Not verified | Direct FAQ route not accessible through web reader; test in CI |
Assessment
The pricing page is one of the strongest parts of the site. The four-tier ladder is clear, and the non-accumulative retainer language is explicit enough for procurement and AI readers. Monthly Advisory is correctly framed as the practical continuity/default option, Annual Modernization as protected calendar capacity, and Embedded Architect C2C as limited availability rather than the default.
Implementation refinements
- On mobile, keep each card’s tier name, rate, commitment, and CTA visible without excessive scrolling.
- Use consistent CTA labels:
- Ad-hoc:
Request focused architecture help - Monthly:
Discuss monthly advisory fit - Annual:
Discuss modernization capacity - C2C:
Check embedded architect availability - Keep the aria-label more descriptive than the visible CTA where shortening is needed.
8. Contact and Fit-Call Review
Required Table E. Contact consistency table
| Source | Phone | Location | Founder/profile | Mismatch | |
|---|---|---|---|---|---|
| Contact page | mike@ns12.com | (708) 230-2304 | Cicero, IL | Mike Kappel / Principal contact | None confirmed |
| Fit-call page | mike@ns12.com | (708) 230-2304 | Cicero, IL | Mike Kappel | None confirmed |
| Footer | mike@ns12.com | (708) 230-2304 | Cicero, IL | LongTermSoftware.com | None confirmed |
| Schema | Not verified | Not verified | Not verified | Not verified | Needs structured-data extraction test |
| AI manifest | mike@ns12.com | (708) 230-2304 | Cicero, IL | Michael/Mike Kappel | None confirmed |
| llms.txt | mike@ns12.com | (708) 230-2304 | Cicero, IL | Michael Kappel / Mike Kappel | None confirmed |
| REST contact-profile | Not verified | Not verified | Not verified | Not verified | Web reader safety restriction; add CI GET |
Confirmed
- Contact and fit-call pages show Mike Kappel,
mike@ns12.com,(708) 230-2304, and Cicero, IL. - Phone/email actions are present as visible contact options.
- Privacy warning is visible: the site tells users not to paste secrets, private source code, PHI, credentials, or confidential data.
UX issues
- The contact page includes a detailed assessment intake. This is useful but likely too heavy as a default first-touch path.
- Form label/error behavior could not be verified.
- Confirmation path could not be safely tested without submitting data.
Field-level recommendations
| Field / element | Recommendation |
|---|---|
| Name | Required; autocomplete name; accessible error if blank. |
Required; autocomplete email; validate format client and server side. | |
| Company | Optional; autocomplete organization. |
| Role | Optional select or short text; helps qualify CTO/CIO/engineering/procurement. |
| System summary | Optional; include warning: Use sanitized summaries only. |
| Timeline / urgency | Optional select; useful for triage. |
| Budget / engagement path | Optional select aligned to pricing ladder. |
| Submit | Request fit call; disable only during submission; show accessible confirmation. |
9. Services UX Review
| Service | Confirmed live strengths | Issues | Fix |
|---|---|---|---|
| AI and Modernization Assessment | Clear fit, timeline, deliverables, sample artifact, pricing path. | Detail page may still read like fixed-scope service if pricing ladder is below fold. | Keep ladder teaser and start small CTA near top. |
| .NET / SQL Modernization Blueprint | Strong match to legacy .NET/SQL buyer pain. | Needs more direct proof route labels. | Link to parity proof and modernization risk review with specific link text. |
| Human-Reviewed AI Workflow Accelerator | Good review-first positioning and workflow boundary. | Could use clearer visual sample of review states. | Add a small process diagram and screenshot-style sample. |
| Governed Knowledge / RAG Foundation | Strong source-bound and governed knowledge positioning. | RAG term may be opaque to some executives. | Add one sentence: RAG means answers must cite approved sources, not freewheel from memory. |
| AI Reviewer App MVP | Package exists in schema/route set. | Detail-page text not fully inspected line-by-line. | Verify service-card markers and mobile layout in Playwright. |
| AI Evaluation and Reliability Program | Package exists in schema/route set. | Ensure it does not imply safety certification. | Keep evaluation support is not certification boundary visible. |
| Fractional AI / Modernization Architect | Package exists and matches embedded/retainer ladder. | C2C must remain limited availability. | Keep C2C visually secondary to Monthly/Annual. |
Recommended service-card structure
- Service name.
- Buyer problem in one sentence.
- Best fit.
- Timeline.
- Pricing path.
- Deliverables.
- Proof/sample link with explicit status.
- CTA:
Discuss this path.
10. Proof, Case Studies, and Sample Artifacts Review
Proof maturity assessment
The proof system is more mature than typical small consultancy sites. It has a claim-to-evidence ledger, machine-readable assets, status labels, route QA, and explicit unsupported-claim boundaries. That is a differentiator for procurement, technical reviewers, and AI vendor-evaluation tools.
Template-vs-outcome boundary
The boundary is clear: sample artifacts are marked as templates, generated artifacts require human review, and approved client outcomes require approval. This should remain non-negotiable in the next theme package.
Top 5 proof improvements
- Add a
buyer relevanceline to each proof card. - Add
template,generated draft,approved public outcome, ormachine-readable evidencebadges using buyer-friendly text. - Add a short
why this mattersparagraph to each case-study path. - Add one approved outcome or testimonial only after human/client approval.
- Add proof-to-service cross-links so each service card has specific evidence.
Recommended proof-card format
| Field | Example |
|---|---|
| Claim | We preserve legacy behavior during modernization. |
| Evidence type | Public-ready template |
| Status | Template — not a client outcome |
| Buyer relevance | Use this to see how parity risk is mapped before rewriting. |
| Proof route | /proof/legacy-modernization-parity/ |
| Boundary | Client-specific code, data, and metrics require private review. |
11. Resources and Downloads Review
Resource inventory
| Resource | Type | Buyer stage | Issue/Fix |
|---|---|---|---|
| AI Readiness Checklist | PDF + JSON / checklist | Explore | Good entry resource; avoid duplicate card repetition across Resources/Downloads. |
| Browser-Local System Diagnostic | HTML local tool | Diagnose | Add copy/export and network privacy test. |
| Modernization Risk Review | PDF + JSON / checklist | Validate risk | Strong fit for SQL/Web Forms buyers; link it from modernization service detail pages. |
| Proposal Template Packet | PDF + HTML | Share internally | Useful buyer enablement; make template boundary explicit on landing page. |
| Pricing Guide | PDF + HTML/JSON | Budget | Pricing content is correct; improve PDF accessibility. |
| Service One-Pagers | Compare services | Add HTML landing page and service-specific proof links. | |
| Proof Packet | PDF + HTML | Procurement/proof | Good; add approved outcomes when available. |
| Proof Ledger JSON/CSV | Machine-readable evidence | Technical/vendor review | Good; align versioning and schema tests. |
| Service Packages JSON | Machine-readable service schema | AI-agent/vendor review | Good; cross-check pricing paths in CI. |
| Conversion Event Taxonomy | JSON taxonomy only | Measurement planning | Good privacy posture; keep no-runtime analytics statement. |
Observations
- Live Resources and Downloads pages are buyer-facing and useful.
- The current overlap between Resources, Downloads, and Docs creates taxonomy friction.
- Search snippets still suggest old recruiter/resume content on
/downloads/, despite live page content being buyer-facing.
Recommended resource taxonomy
| Section | Purpose | Content |
|---|---|---|
| Resources | Buyer enablement by decision stage | Checklists, diagnostic, explainers, proposal packet. |
| Downloads | File index | PDFs, JSON, CSV, one-pagers, pricing guide. |
| Docs | Technical contract reference | Route QA, schema docs, public memory boundaries, changelog, machine-readable file contracts. |
12. Browser-Local Diagnostic Review
Confirmed from live page text
- It says it runs as local keyword matching.
- It says no data leaves the browser.
- It says no model call is made.
- It warns users not to paste secrets, credentials, source code, PHI, or confidential data.
- It includes example/sample diagnostic text and maps to next steps.
Not verified
- DevTools Network evidence after entering the required safe sample input.
- Whether typed input appears in request bodies, query strings, local storage, analytics, or logs.
- Whether result copy/export is present and usable.
- Whether the result is announced to screen readers.
Recommendations
- Add a
Copy sanitized resultbutton after local analysis. - Add a
Use this in fit-call requestCTA, but do not auto-submit or transmit diagnostic text. - Add a route QA network test:
- Visit
/diagnose-system/. - Enter the safe sample input.
- Click run.
- Assert no POST occurs.
- Assert no request URL/body/header contains diagnostic text fragments.
- Add
aria-live="polite"to the result region. - Track
diagnostic_start,diagnostic_complete_local, anddiagnostic_result_cta_clickwithout raw input.
13. Machine-Readable UX and AI-Agent Readiness
| Asset | Reachability | Version/currentness | Pricing/contact match | Claims boundary | Fix |
|---|---|---|---|---|---|
| /llms.txt | 200 downloaded locally | 1.18.0, generated 2026-06-17T02:25:00Z | Matches | Explicit no AGI/certification/authority/etc. | Add content-type CI check. |
| /ai-agent-manifest.json | 200 via web reader | 1.18.0 | Matches | Explicit | Validate against schema in CI. |
| /route-qa-contract.json | 200 via web reader | 1.18.0, generated UTC present | Contains expected route/claim tests | Forbidden claim checks present | Extend to screenshots/Lighthouse/axe/network. |
| /downloads/pricing-ladder.json | 200 via web reader | 1.18.0 | Pricing matches HTML | Boundary notes present | No mismatch; add schema test. |
| /downloads/service-packages.json | 200 via web reader | 1.18.0 | Package pricing paths consistent | Service boundaries present | Use as service-card data source. |
| /downloads/proof-ledger.json | 200 via web reader | 1.7.0, generated 2026-06-15 | Not a pricing file | Statuses/boundaries present | Clarify version vs data_version. |
| /downloads/proof-ledger.csv | 200 downloaded locally | CSV rows match proof-ledger themes | Not a pricing file | Boundary column present | Add CSV column/schema test. |
| /downloads/conversion-event-taxonomy.json | 200 via web reader | 1.7.0 | n/a | No-runtime analytics statement | Keep privacy-safe implementation. |
| /wp-json/lts/v1/service-package-schema | 200 via web reader | 1.18.0 | Service paths consistent | Service boundaries present | Good; test all REST endpoints. |
| /llms-full.txt, /.well-known/ai-plugin.json, /.well-known/security.txt, /robots.txt, /sitemap.xml | Not verified | Unknown | Unknown | Unknown | Add mandatory utility-file CI checks. |
Exact mismatches
- No content contradiction was confirmed between pricing HTML,
pricing-ladder.json,llms.txt, and AI manifest. - The main mismatch risk is version perception: proof-ledger JSON uses
1.7.0while the site/manifest/route QA assets use1.18.0. That may be valid if it is a data/schema version, but the public files should make that distinction explicit. - Several static utility files and REST endpoints remain unverified in this run and must be tested by CI.
14. Accessibility Review
Required Table F. Accessibility table
| Accessibility Area | Status | Evidence | Risk | Recommendation |
|---|---|---|---|---|
| Skip link | Confirmed present in extracted HTML | Every major page extraction starts with "Skip to content" | Low if focus-visible and target behavior work; not keyboard-tested | Keep skip link first in DOM; ensure it becomes visible on focus and lands on main content. |
| Semantic landmarks | Partially confirmed | Header/nav/footer content is extracted consistently | Unknown landmark role quality without DOM inspection | Use <header>, <nav aria-label="Primary">, <main id="content">, <footer>; add landmark test. |
| Heading hierarchy | Mostly positive in text extraction | Pages expose a clear H1 and section H2s | Repeated card H2s could create long heading lists | Keep one H1 per page; use H3 for card titles under section H2 when appropriate. |
| Primary nav/menu | Content confirmed; operability not verified | Nav order is stable and conventional in extracted content | Mobile menu/keyboard trap cannot be excluded | Add Playwright keyboard tests for menu open/close, Escape, focus return, and no off-screen tab stops. |
| Search | Accessible name likely present, but duplicate text observed | Extraction shows "Search LongTermSoftware.com Search" | Screen readers may hear redundant label/button text | Use a visible/aria label on the input and a distinct submit label; avoid duplicate name text. |
| CTA focus states | Not verified | Local browser could not load site | Keyboard users may lose focus position | Set strong :focus-visible outlines on nav, cards, forms, and CTAs; test against WCAG non-text contrast. |
| Forms | Labels/error states not verified | Contact and fit-call fields appear in extraction; no safe submit was performed | Assistive tech and validation failures may be unclear | Associate every input with <label>; add aria-describedby for help/error; render accessible error summary. |
| Diagnostic input | Textual boundary confirmed; runtime not verified | Diagnostic page says no data leaves browser and no model call | Privacy and accessibility claims depend on JS implementation | Add copy/export button, live-region result announcement, and automated network guard. |
| Link purpose | Generally strong | Download links are mostly descriptive, e.g., "Download Pricing Guide", "View Proof Ledger CSV" | Repeated generic JSON labels can be noisy | Use resource-specific link text and aria-labels, e.g., "View pricing ladder JSON". |
| Images and alt text | Partially positive | Web reader surfaced meaningful image descriptions on Resources/Downloads | Decorative vs informative handling unverified | Use empty alt for decorative art; descriptive alt only where image contributes meaning. |
| Contrast | Not verified | No screenshot/color inspection possible | Unknown WCAG 2.1 AA compliance | Run axe/Lighthouse/Playwright contrast checks and manual review for text and non-text contrast. |
| Reflow at 320px | Not verified | No mobile browser screenshots due DNS limitation | Header/search/CTA/card overflow could block mobile buyers | Add no-horizontal-scroll test at 320, 375, 390, 768, 1024, 1280, 1366, 1440 widths. |
| PDF accessibility | Risk confirmed | Pricing PDF uses ReportLab and non-embedded Helvetica; no form/annotation structure observed | Untagged PDFs and non-embedded fonts reduce accessibility/portability | Provide HTML equivalents for all PDFs; generate tagged PDFs or add PDF/UA workflow if PDFs remain primary. |
Automated findings
No automated axe/Lighthouse/WAVE result is available from this run because local browser access failed. Do not treat the accessibility score as complete.
Manual findings
Manual text extraction suggests good baseline structure: skip links, clear H1s, descriptive CTAs, descriptive download links, and explicit privacy/boundary text. The main remaining risks are interactive: menu, search, form errors, diagnostic result update, focus state, contrast, touch targets, and reflow.
15. Mobile and Responsive UX Review
Required Table C. Viewport table
| Route | Viewport | Header OK | No horizontal scroll | CTA visible | Main issue |
|---|---|---|---|---|---|
| / | 1440x900 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 1366x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 1280x800 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 1024x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 768x1024 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 390x844 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 375x667 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| / | 320x568 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 1440x900 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 1366x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 1280x800 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 1024x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 768x1024 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 390x844 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 375x667 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /pricing/ | 320x568 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 1440x900 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 1366x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 1280x800 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 1024x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 768x1024 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 390x844 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 375x667 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /contact/ | 320x568 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 1440x900 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 1366x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 1280x800 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 1024x768 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 768x1024 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 390x844 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 375x667 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
| /fit-call/ | 320x568 | Not verified; text extraction confirms nav exists | Not verified | Not verified; CTA text exists in HTML extraction | Local Chromium/curl DNS failure prevented viewport rendering; add Playwright screenshot test. |
_The full viewport matrix is included in viewport-audit.csv inside the artifact package._
Required acceptance checks for next run
- Header does not wrap at 1366, 1280, 1024, 768.
- Logo remains visible and proportional.
- Search collapses or reflows before creating overflow.
- CTA remains visible or appears as first item in mobile menu.
- Cards remain readable at 390, 375, and 320 widths.
- No horizontal scroll at 320 CSS px.
- Forms remain usable with zoom and text resize.
16. SEO and Index Hygiene
SEO defect table
| Defect | Evidence | Risk | Recommendation |
|---|---|---|---|
Stale Hello world! result remains indexed | web search: turn234342search0, turn234342search1, turn234342search2; live redirects: turn225787view0, turn225787view2 | Starter-content snippet harms credibility. | Keep redirect or return 410; remove from sitemap; use Search Console removal/recrawl. |
/projects/ remains visible as stale route | web search: turn234342search0, turn234342search1, turn234342search2; live redirects: turn225787view0, turn225787view2 | Search result may bypass current proof taxonomy. | Ensure 301 to /proof/, canonical proof URL, no internal links to old route. |
/downloads/ snippets mention old resume/recruiter content | web search: turn234342search0, turn234342search1, turn234342search2; live redirects: turn225787view0, turn225787view2 | Confuses target audience and buyer intent. | Rewrite title/meta, clear caches, confirm no old content in template, recrawl. |
| Titles/meta not extracted from live HTML reader | Web reader did not expose <title>/meta descriptions | Missing precise title QA. | Add HTML parser test in route QA to capture title, meta description, canonical, robots. |
| Sitemap/robots not verified | Tool limits | Unknown crawl hygiene. | CI GET /robots.txt and /sitemap.xml; compare sitemap to expected routes. |
Recommended title/meta rewrites
| Route | Recommended title | Recommended meta description |
|---|---|---|
/ | `LongTermSoftware.com | .NET, SQL, and Reviewed AI Modernization` |
/pricing/ | `Pricing | LongTermSoftware.com Architecture Help and Modernization Retainers` |
/contact/ | `Contact Mike Kappel | LongTermSoftware.com` |
/services/ | `AI and Modernization Consulting Services | LongTermSoftware.com` |
/proof/ | `Proof Ledger | LongTermSoftware.com` |
/downloads/ | `Downloads and Buyer Checklists | LongTermSoftware.com` |
/docs/ | `Technical Evidence and Public Memory | LongTermSoftware.com` |
17. Performance and Technical UX
Performance summary
Lighthouse and page-weight metrics are unavailable from this run. Do not infer performance scores from text extraction.
Required next-run metrics
| Route | Mode | Required output |
|---|---|---|
/ | mobile + desktop | Performance, Accessibility, Best Practices, SEO, LCP, TBT, CLS, total bytes, largest image, render-blocking resources. |
/pricing/ | mobile | Same metrics plus card layout screenshot. |
/contact/ | mobile | Same metrics plus form usability screenshot. |
/diagnose-system/ | mobile | Same metrics plus JS payload and network privacy checks. |
Likely optimization areas to inspect
- Hero and illustration image dimensions and compression.
- Render-blocking WordPress CSS/JS.
- Font loading and font-display behavior.
- Unused CSS from theme scaffolding.
- Lazy loading for below-the-fold illustrations.
- Cache headers for JSON, CSV, PDFs, images, CSS, and JS.
18. Security and Privacy
Quick-risk table
| Area | Status | Risk | Recommendation |
|---|---|---|---|
| HTTPS | Web reader loaded HTTPS pages | Basic HTTPS reachable, but HSTS not verified | Add header audit for HSTS and redirects. |
| Mixed content | Not verified | Images/scripts could degrade security | Add browser console/network mixed-content test. |
| Security headers | Not verified | Missing CSP/Referrer/Permissions/XCTO unknown | Add non-invasive curl header test. |
| security.txt | Not verified | Security contact may be missing/stale | Validate /.well-known/security.txt status, content type, Contact, Expires. |
| Diagnostic privacy | Copy strong; runtime not verified | Local-only claim must be proven | Add network guard test and avoid analytics payloads. |
| Forms | Not submitted/tested | Spam/nonce/accessibility behavior unknown | Verify nonce, honeypot/rate limit, accessible error handling. |
| Sensitive-data prompts | Strong warning present | Low if warning remains visible | Keep warning on forms and diagnostic. |
| WordPress version leakage | Not verified | Could expose target surface | Add passive HTML/header scan; do not perform invasive testing. |
19. Content and Messaging
Strong copy examples
Corporate software architecture for systems that cannot drift when AI or modernization changes the stack.No data leaves your browser. No model call is made from this page.Retainer hours must be used in the calendar month where they are reserved.Evaluation support is not safety certification.
Weak or risky copy examples
| Current text | Recommended text | Reason |
|---|---|---|
| Corporate software architecture for systems that cannot drift when AI or modernization changes the stack. | Modernize .NET and SQL systems without breaking the behavior the business already relies on. | Keeps the behavioral-drift differentiator but uses simpler buyer-facing language. |
| LongTermSoftware.com helps legacy .NET, SQL Server, Web Forms, Classic ASP, VB.NET, and stored-procedure-heavy systems move forward through behavior-preserving modernization, human-reviewed AI workflows, and source-bound documentation practices. | I help teams preserve legacy behavior, document source-bound decisions, and introduce reviewed AI workflows where the risk is understood. | Shorter above-the-fold subhead; reduces technology list density while preserving fit. |
| generated-needs-human-review | Generated draft — human review required | More understandable to buyers while retaining machine-readable status behind the scenes. |
| Docs / Long-Term Memory | Technical Evidence and Public Memory | Clarifies the purpose of /docs/ and distinguishes it from Resources. |
| MikeKappel.com is the proof library; Teleodynamic.com is the methods and governance layer. | LongTermSoftware is the consulting front door. MikeKappel.com and Teleodynamic.com provide supporting proof and methods; the accountable contact is Mike Kappel. | Reduces brand-architecture confusion and establishes accountability first. |
| No data leaves your browser. No model call is made from this page. Do not paste secrets, credentials, private source code, PHI, or confidential client data. | Runs locally in your browser. Paste only sanitized summaries. This tool does not call an AI model or submit your text to the server. | Slightly clearer privacy claim and user instruction. |
| Start with a short fit call, then scope only what evidence supports. | Start with a 20-minute fit call. Scope only the next useful step after the risk is clear. | Keeps the evidence-led stance and makes the CTA more direct. |
| Reserved capacity | Reserved calendar capacity — unused hours expire at month end unless a signed order form says otherwise. | Plain-English explanation of non-accumulative retainers. |
20. Severity-Ranked Findings
Required Table G. Severity findings table
| # | Issue | Severity | Evidence | Affected users | Business impact | Recommended fix | Estimated effort | Expected UX impact |
|---|---|---|---|---|---|---|---|---|
| 1 | Required screenshot, Lighthouse, axe, curl header, and live viewport checks could not run in the local browser/container because DNS resolution failed. | High | local log: /mnt/data/lts-audit-work/logs/browser-network-limitation.log | All buyers on unverified viewports/devices | Responsive, performance, and accessibility regressions could ship undetected. | Add Playwright/Lighthouse/axe CI in an environment with outbound DNS; keep artifacts in build output. | M | High |
| 2 | Google still shows a stale /hello-world/ starter-content result even though the live URL redirects. | High | web search: turn234342search0, turn234342search1, turn234342search2; live redirects: turn225787view0, turn225787view2 | Search visitors and procurement researchers | WordPress starter-content snippet undermines credibility. | Keep 301 to home or 410 if appropriate; remove from sitemap; request reindex/removal in Search Console; add route QA check. | S | High |
| 3 | Search snippets for /downloads/ still reference old resume/recruiter content. | High | web search: turn234342search0, turn234342search1, turn234342search2; live redirects: turn225787view0, turn225787view2 | Search visitors, vendor evaluators, automated agents | Confuses enterprise consultancy positioning and may reduce trust. | Update title/meta/descriptions; confirm no old content in template; submit URL for recrawl; monitor Search Console. | S-M | High |
| 4 | /docs/ appears to duplicate Resources-style content rather than functioning as a distinct technical documentation hub. | Medium | web: turn254166view4/5; compared with turn254166view2/3 | Technical reviewers and AI agents | Reduces clarity and creates redundant pages. | Rebuild /docs/ around route QA, schema, public memory boundaries, changelog, and file contract docs. | M | Medium |
| 5 | Contact page exposes both direct contact and a detailed assessment intake; first touch may still feel long. | Medium | web: turn247632view3 L15-L83; turn515881view1 L14-L65 | CTOs/CIOs doing quick vendor fit checks | Long forms can suppress qualified first-contact conversion. | Make direct contact + short fit call primary; collapse detailed assessment behind "Add details" progressive disclosure. | S-M | Medium-High |
| 6 | Form label, help text, accessible error, and confirmation behavior were not verified. | Medium | web: turn247632view3 L15-L83; turn515881view1 L14-L65 | Keyboard and assistive technology users; all form users on validation errors | Form abandonment and accessibility risk. | Add label/aria-describedby/error-summary tests; do not submit real leads in tests. | M | Medium |
| 7 | Diagnostic local-only privacy claim is clear in copy, but DevTools network verification was not possible. | Medium | web: turn108578view6 L14-L58; local log: /mnt/data/lts-audit-work/logs/browser-network-limitation.log | Privacy-conscious enterprise buyers | A central privacy claim remains unverified at runtime. | Add network interception test asserting sample input never appears in URL/body/headers and no POST is made. | M | High |
| 8 | Diagnostic result copy/export action is not evident in extracted page text. | Medium | web: turn108578view6 L14-L58 | Buyers who want to share triage output internally | Reduced conversion from diagnostic to fit call. | Add "Copy sanitized result" and "Use this in fit-call request" buttons; track only button events, not pasted text. | S | Medium |
| 9 | Machine-readable versions differ: main site/manifest/route QA report 1.18.0 while proof-ledger JSON reports 1.7.0. | Medium | web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6 | AI agents, procurement reviewers, QA automation | May look stale or inconsistent even if data is valid. | Use explicit schema_version/data_version fields or align versioning across public truth assets. | S | Medium |
| 10 | REST pricing/contact/consistency endpoints were not verified by the web reader. | Medium | web reader safety restrictions on several /wp-json/lts/v1/* routes | AI readers and QA agents relying on JSON truth | Potential mismatch could go unnoticed. | Add CI GET/status/schema/content validation for every public REST endpoint. | S-M | Medium |
| 11 | Header includes logo, six nav links, search, and fit-call CTA; responsive wrapping could not be verified. | Medium | web: turn708196view0 L4-L22, L26-L31, L390-L410; local log: /mnt/data/lts-audit-work/logs/browser-network-limitation.log | Tablet/laptop/mobile users | Header overflow or wrapped CTA can reduce navigation and conversion. | Use CSS container rules and test at 1440,1366,1280,1024,768,390,375,320. | M | High |
| 12 | Homepage is strong above the fold but may still read like a proof/technical library after initial buyer path sections. | Medium | web: turn708196view0 L4-L22, L26-L31, L390-L410 | Executive buyers with limited time | Lower top-of-funnel conversion if sales narrative becomes too dense. | Keep first-screen value; shorten midpage proof sections; move deep machine-readable content lower or to /proof/. | M | Medium |
| 13 | Some extracted card text runs together without visible separators, e.g., proof/status labels adjacent to descriptions. | Medium | web extractions on homepage/resources/cards show concatenated phrases in text stream | Screen reader users, AI readers, skim readers | Reduced comprehension and machine parsing quality. | Add semantic list/card markup, punctuation separators, aria labels, and visually hidden context where needed. | S-M | Medium |
| 14 | Proof and case-study pages clearly mark templates, but approved client outcomes/social proof remain limited. | Medium | web: turn515881view2 L14-L188; turn254166view1 L14-L52; turn108578view5 L15-L129 | Procurement and enterprise buyers needing external validation | May slow trust-building or require more live explanation. | Add approved outcomes only after human/client approval; otherwise add stronger methodology proof and anonymized constraints. | M-L | Medium-High |
| 15 | Machine-readable links are discoverable in the footer; useful for AI agents but potentially distracting to human buyers. | Low | Footer machine-readable section appears across pages | Human buyers browsing footer | Can make site feel more like a technical proof archive than a sales funnel. | Keep the group but visually subordinate it under "Technical evidence" or "For automated reviewers". | S | Low-Medium |
| 16 | Pricing PDF uses non-embedded Helvetica and likely lacks tagged PDF structure. | Medium | local: pricing-guide.pdf inspected/extracted/rendered; proof-ledger.csv downloaded; proof/service/proposal PDFs downloaded | Screen reader users, procurement reviewers downloading PDFs | Accessibility/portability risk in shared documents. | Maintain HTML landing pages; generate tagged PDFs with embedded fonts and metadata. | M | Medium |
| 17 | Resource taxonomy repeats checklist/resource concepts across Resources, Downloads, and Docs. | Medium | web: turn254166view2 L14-L61; turn254166view3 L63-L180; turn391058view0 L14-L208 | Buyers trying to pick the right asset | Choice friction and duplicate internal-link surfaces. | Separate stages: Resources = buyer enablement; Downloads = file index; Docs = technical contracts. | M | Medium |
| 18 | Security headers, HSTS, CSP, X-Frame-Options, caching, compression, and WordPress version exposure were not verifiable from local curl/browser. | Medium | local log: /mnt/data/lts-audit-work/logs/browser-network-limitation.log | All visitors; security reviewers | Potential security/privacy concerns remain unknown. | Add non-invasive header audit script using curl/headers in CI; publish security.txt validation. | S-M | Medium |
| 19 | Performance metrics and payload offenders are unknown because Lighthouse could not run. | Medium | local log: /mnt/data/lts-audit-work/logs/browser-network-limitation.log | Mobile and low-bandwidth visitors | Slow pages can reduce conversion and SEO. | Run Lighthouse CI for home/pricing/contact/diagnostic with budgets for LCP/TBT/CLS/total bytes. | M | High |
| 20 | About page leads with brand architecture; buyer may need a more direct "who is accountable" explanation first. | Low | web: turn391058view2 L15-L33 | Executives evaluating the firm | Potential confusion between LongTermSoftware, MikeKappel, and Teleodynamic. | Lead with principal/accountability and what buyers hire; move brand roles into a proof ecosystem panel. | S | Medium |
| 21 | Industry page is concise but not tightly connected to proof/services per industry. | Low | web: turn108578view1 L15-L60 | Industry-specific buyers | Missed relevance signals for regulated/legacy verticals. | Add per-industry "relevant service" and "proof route" links. | S-M | Low-Medium |
| 22 | FAQ, personas, standards-alignment, llms-full, ai-plugin, robots, sitemap, security.txt were not directly verified in this run. | Medium | web reader safety errors / no direct local DNS | AI agents, crawlers, compliance reviewers | Important utility and trust files may drift without automated testing. | Add mandatory route-qa HEAD/GET checks and publish artifact results. | S-M | Medium |
| 23 | Pricing page is accurate but should make Monthly Advisory or Annual Modernization visually more default than C2C on every viewport. | Low | web: turn247632view0 L23-L173; turn247632view1 L175-L203; turn247632view2 L205-L216 | Buyers choosing engagement model | C2C could attract poor-fit inquiries if visually over-emphasized. | Keep C2C as limited availability; emphasize Monthly as practical default and Annual for protected capacity. | S | Medium |
| 24 | Route QA contract is strong but does not yet cover visual screenshots, accessibility, performance, or diagnostic network privacy. | Medium | web: turn108578view4 L15-L99; turn821510view0 L0-L7; turn821510view1 L0-L7; turn852219view5 L0-L6; turn852219view6 L0-L8; turn852219view7 L0-L8; turn852219view9 L0-L6; turn778395view5 L0-L6 | Theme-build agents and QA reviewers | Future package could pass content checks while failing UX checks. | Extend route-qa-contract.json and tools/route-qa.py with Playwright, axe, Lighthouse, network, and screenshot acceptance criteria. | M-L | High |
21. Implementation Backlog
Required Table H. Implementation backlog
| Backlog item | Priority | Theme files likely affected | Evidence | Acceptance criteria |
|---|---|---|---|---|
| Add Playwright viewport screenshot and no-horizontal-scroll tests for required widths. | P0 | tools/route-qa.py; route-qa-contract.json; assets/css/app.css; header.php | Screenshots/viewport testing unavailable in this run; header is dense with nav/search/CTA. | CI saves named PNGs for each required viewport and fails on horizontal scroll, wrapped header, hidden CTA, or unusable menu. |
| Add Lighthouse CI for home, pricing, contact, diagnostic mobile/desktop. | P0 | tools/lighthouse-ci.js; assets/css/app.css; assets/js/app.js; functions enqueue logic | No lab metrics available due local DNS failure. | Artifacts include JSON/HTML reports with Performance, Accessibility, Best Practices, SEO, LCP, TBT, CLS, byte totals, and largest image. |
| Add axe-core accessibility CI and keyboard smoke tests. | P0 | header.php; inc/forms.php; assets/js/app.js; tools/route-qa.py | Skip link present but focus/menu/form accessibility unverified. | Automated axe run passes critical/serious checks on key routes; keyboard path verifies skip link, menu, search, CTA, forms, and diagnostic. |
| Fix search-index hygiene for /hello-world/, /projects/, and stale /downloads/ snippets. | P0 | inc/schema.php; inc/content.php; redirects; sitemap generator; robots/sitemap settings | Search results still show starter/recruiter/resume snippets. | Old URLs redirect or return intended status, are absent from sitemap, have canonical targets, and Search Console recrawl/removal is requested. |
| Refactor /docs/ into a distinct technical evidence documentation hub. | P1 | templates/virtual-page.php; inc/content.php; docs/*; route-qa-contract.json | /docs/ duplicates Resources-style content. | Docs page explains file contracts, route QA, schema versions, public memory boundaries, changelog, and machine-readable usage without duplicating resource cards. |
| Make contact/fit-call forms progressively disclosed and accessibility-complete. | P1 | inc/forms.php; templates/contact.php or virtual-page.php; assets/js/app.js; assets/css/app.css | Contact page has direct contact plus detailed intake; labels/errors not verified. | Short fit-call form is primary; detailed fields are collapsed; every field has label/help/error; no real test submissions required. |
| Add diagnostic copy/export and network privacy guard. | P1 | assets/js/app.js; templates/virtual-page.php; tools/route-qa.py | Local-only claim confirmed textually; no copy/export evident; network not verified. | Sample input generates local result, copy button works, CTA present, and tests assert no diagnostic text leaves browser. |
| Align machine-readable asset versioning or add schema_version/data_version distinction. | P1 | llms.txt; llms-full.txt; ai-agent-manifest.json; downloads/proof-ledger.json; inc/rest.php | Proof ledger version differs from 1.18.0 site/manifest/route QA. | Every public JSON/text asset exposes coherent version fields and generated_utc; route QA checks consistency. |
| Add public REST endpoint smoke/schema tests. | P1 | inc/rest.php; tools/route-qa.py; route-qa-contract.json | Most /wp-json/lts/v1/* endpoints could not be verified manually. | All public REST endpoints return 200, JSON content type, expected schema fields, current contact/pricing/proof values. |
| Add tagged/accessible PDF workflow or HTML-first equivalents for every PDF download. | P2 | docs/; downloads/ generation scripts; resources page templates | Pricing PDF likely untagged/non-embedded-font risk. | Each PDF has metadata, embedded fonts or safe equivalents, heading/bookmark structure where possible, and an equivalent HTML landing page. |
| Reduce resource/download/docs duplication and clarify taxonomy. | P2 | inc/content.php; templates/virtual-page.php; front-page.php; footer.php | Resources, Downloads, and Docs repeat overlapping cards. | Resources grouped by decision stage; Downloads is a compact file index; Docs is technical contract reference. |
| Add proof-card structure with status, evidence type, route, boundary, buyer relevance, and sample/outcome label. | P2 | templates/virtual-page.php; inc/content.php; assets/css/app.css; downloads/proof-ledger.json | Proof ledger is accurate but could be more buyer-readable. | Every proof card identifies whether it is template, generated-needs-human-review, approved outcome, or machine-readable asset. |
| Harden security/privacy header checks. | P2 | server config; WordPress headers; .well-known/security.txt; tools/route-qa.py | Headers not available due curl DNS failure. | CI reports HTTPS, HSTS, CSP decision, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, security.txt, and no mixed content. |
| Add structured data and schema consistency extraction. | P2 | inc/schema.php; inc/rest.php; tools/route-qa.py | Schema contact source not verified. | Organization/Person/Service schema validates and matches public contact/pricing claims without unsupported claims. |
22. Exact Copy Recommendations
| Current text | Recommended text | Reason |
|---|---|---|
| Corporate software architecture for systems that cannot drift when AI or modernization changes the stack. | Modernize .NET and SQL systems without breaking the behavior the business already relies on. | Keeps the behavioral-drift differentiator but uses simpler buyer-facing language. |
| LongTermSoftware.com helps legacy .NET, SQL Server, Web Forms, Classic ASP, VB.NET, and stored-procedure-heavy systems move forward through behavior-preserving modernization, human-reviewed AI workflows, and source-bound documentation practices. | I help teams preserve legacy behavior, document source-bound decisions, and introduce reviewed AI workflows where the risk is understood. | Shorter above-the-fold subhead; reduces technology list density while preserving fit. |
| generated-needs-human-review | Generated draft — human review required | More understandable to buyers while retaining machine-readable status behind the scenes. |
| Docs / Long-Term Memory | Technical Evidence and Public Memory | Clarifies the purpose of /docs/ and distinguishes it from Resources. |
| MikeKappel.com is the proof library; Teleodynamic.com is the methods and governance layer. | LongTermSoftware is the consulting front door. MikeKappel.com and Teleodynamic.com provide supporting proof and methods; the accountable contact is Mike Kappel. | Reduces brand-architecture confusion and establishes accountability first. |
| No data leaves your browser. No model call is made from this page. Do not paste secrets, credentials, private source code, PHI, or confidential client data. | Runs locally in your browser. Paste only sanitized summaries. This tool does not call an AI model or submit your text to the server. | Slightly clearer privacy claim and user instruction. |
| Start with a short fit call, then scope only what evidence supports. | Start with a 20-minute fit call. Scope only the next useful step after the risk is clear. | Keeps the evidence-led stance and makes the CTA more direct. |
| Reserved capacity | Reserved calendar capacity — unused hours expire at month end unless a signed order form says otherwise. | Plain-English explanation of non-accumulative retainers. |
Additional microcopy:
- Diagnostic empty state:
Paste a sanitized system summary to receive a local triage result. Do not include secrets, credentials, private source code, PHI, or confidential client data. - Diagnostic result disclaimer:
This is a triage aid, not production architecture advice or legal/compliance guidance. - Contact form helper:
A short summary is enough. Use sanitized details only. - C2C card note:
Limited availability; not the default first engagement. - Proof badge labels:
Template — not a client outcomeGenerated draft — human review requiredApproved public outcomeMachine-readable evidence
23. Theme/File Change Recommendations
| File / area | Changes |
|---|---|
header.php | Add accessible nav/search/menu semantics; responsive collapse behavior; focus return; CTA preservation. |
footer.php | Keep direct contact; visually subordinate machine-readable links under a technical evidence heading. |
front-page.php | Preserve strong first screen; simplify midpage proof density; add buyer-path order. |
templates/virtual-page.php | Separate Resources, Downloads, Docs, Proof, Diagnostic page layouts; avoid duplicated card grids. |
inc/forms.php | Add short first-touch form, progressive assessment intake, labels, error summaries, nonce/spam controls. |
inc/schema.php | Validate Organization/Person/Service schema against contact/pricing truth; remove stale starter/meta traces. |
inc/rest.php | Add status/schema tests for all public endpoints; synchronize pricing/contact/proof payloads. |
inc/content.php | Centralize pricing/contact/service/proof truth; add version fields; prevent duplicate resource content. |
inc/enhancements-v*.php | Keep route aliases, SEO cleanup, canonical handling, and no unsupported claims checks. |
assets/css/app.css | Add responsive header/grid rules, no-horizontal-scroll guard, touch target sizes, focus-visible styles, contrast tokens. |
assets/js/app.js | Add diagnostic copy/export, local-only implementation, accessible result updates, menu/search keyboard behavior. |
route-qa-contract.json | Extend contract with viewport, Lighthouse, axe, diagnostic network, utility file, and schema checks. |
tools/route-qa.py | Add Playwright browser run, screenshots, redirect assertions, DOM extraction, schema validation, network privacy test. |
llms.txt, llms-full.txt, ai-agent-manifest.json | Keep pricing/contact/proof synchronized; align versioning; forbid unsupported claims. |
.well-known/ai-plugin.json, .well-known/security.txt | Validate content type, fields, generated/expiration dates, no runtime authority claims. |
.uai/*, docs/* | Document public memory boundaries and technical contracts without suggesting runtime authority. |
24. Tests to Add to Route QA
route_status_matrix: GET every required route, old alias, download, static file, and REST endpoint; record status, final URL, content type, canonical.title_meta_canonical_matrix: parse<title>, meta description, canonical, robots meta, H1.viewport_screenshot_matrix: capture screenshots at 1440, 1366, 1280, 1024, 768, 390, 375, and 320 widths.no_horizontal_scroll: fail ifscrollWidth > innerWidthat any required viewport.header_contract: assert logo visible, nav order stable, CTA accessible, mobile menu works, search has accessible name.pricing_truth_consistency: compare HTML, pricing JSON, REST pricing, pricing consistency, llms, AI manifest, FAQ.contact_truth_consistency: compare contact page, fit-call page, footer, schema, llms, AI manifest, REST contact profile.unsupported_claim_scan: fail on AGI/consciousness/safety certification/vendor partnership/guaranteed compliance/autonomous production authority/unreviewed outcomes.diagnostic_network_privacy: enter safe sample; assert no user text sent in requests and no POST triggered.diagnostic_a11y: result region usesaria-live, buttons keyboard-operable, copy result works.axe_smoke: run axe on home, pricing, contact, fit-call, services, proof, resources, diagnostic.lighthouse_ci: save mobile and desktop JSON/HTML reports for required routes.pdf_accessibility_inventory: verify each PDF has HTML equivalent, title metadata, and a PDF accessibility status marker.download_schema_validation: validate JSON/CSV columns, generated UTC, version fields, and content-type headers.serp_hygiene_manual_check: generate a checklist for Search Console review of stale starter/recruiter snippets.
25. Final Recommendation
Proceed with the next WordPress theme package, but treat the next pass as a QA-hardening and conversion-clarity pass rather than a full positioning rewrite. The site’s public truth is mostly sound. The theme should preserve pricing/contact/proof boundaries and focus on:
- measurable browser evidence,
- stale SEO cleanup,
- shorter first-touch flow,
- stronger diagnostic conversion,
- cleaner resource taxonomy,
- accessibility and performance automation.
Do not add unsupported AI claims, invented client metrics, false partnerships, compliance guarantees, safety certifications, autonomous production authority, or unreviewed production outcome claims.
26. Prompt for the next AI theme-build pass
You are building the next WordPress theme ZIP for LongTermSoftware.com. Use the current live site as source truth and preserve the confirmed public positioning: .NET/SQL modernization, behavior-preserving legacy upgrades, Web Forms, Classic ASP, VB.NET, SQL Server/stored-procedure-heavy systems, human-reviewed AI workflows, source-bound AI documentation, governed knowledge/RAG foundations, AI reviewer applications, AI evaluation/reliability, and systems that cannot tolerate behavioral drift or unsupported AI claims.
Top implementation priorities:
1. Add Playwright route QA for all required desktop/tablet/mobile viewports: 1440x900, 1366x768, 1280x800, 1024x768, 768x1024, 390x844, 375x667, 320x568.
2. Generate named screenshots for home, header, pricing, contact, fit-call, services, proof, resources, diagnostic before/after, and machine-readable evidence.
3. Add Lighthouse CI for home mobile/desktop, pricing mobile, contact mobile, and diagnostic mobile. Save JSON/HTML reports.
4. Add axe-core and keyboard tests for skip link, nav/menu, search, CTA focus states, forms, diagnostic, and reflow.
5. Clean SEO/index hygiene: remove starter-content /hello-world/ exposure, stale /projects/ index, and old resume/recruiter /downloads/ snippets.
6. Refactor /docs/ into a distinct technical evidence/public memory hub, not a Resources duplicate.
7. Preserve pricing truth exactly: $150/hour ad-hoc no minimum; $100/hour monthly advisory, 20-hour monthly minimum, $2,000/month; $80/hour annual modernization, 40-hour monthly minimum, $3,200/month, annual contract; $75/hour embedded architect C2C, 40 hours/week, six-month minimum, limited availability.
8. Preserve non-accumulative retainer language: unused hours do not roll over, accrue, bank, or carry forward unless a signed order form says otherwise.
9. Preserve contact truth exactly: Mike Kappel / Michael Kappel, mike@ns12.com, (708) 230-2304, Cicero, IL.
10. Improve diagnostic conversion: local-only network guard, copy-result button, result CTA, aria-live result region, and analytics events that never capture pasted text.
Likely files to change: header.php, footer.php, front-page.php, templates/virtual-page.php, inc/forms.php, inc/schema.php, inc/rest.php, inc/content.php, inc/enhancements-v*.php, assets/css/app.css, assets/js/app.js, route-qa-contract.json, tools/route-qa.py, llms.txt, llms-full.txt, ai-agent-manifest.json, .well-known/ai-plugin.json, .well-known/security.txt, .uai/*, docs/*.
Claims not to make: AGI, consciousness, safety certification, formal vendor partnership, guaranteed compliance, autonomous production authority, unreviewed production outcomes, unsupported client metrics, automatic repository writes, hosted UAIX importer behavior, or runtime authority from machine-readable files.
Acceptance criteria:
- Every required route returns expected status/final URL/content type/canonical/title/H1/markers.
- All pricing/contact sources match HTML, REST, llms, AI manifest, and downloadable JSON/PDF/CSV assets.
- Header does not wrap or create horizontal scroll at required widths.
- Mobile menu, search, forms, CTAs, and diagnostic are keyboard-operable and accessible.
- Lighthouse/axe artifacts are saved.
- Diagnostic sample input is never sent over the network.
- Search-index cleanup plan is documented for Search Console.
- Public proof/sample artifacts clearly distinguish templates, generated drafts requiring human review, machine-readable evidence, and approved client outcomes.
Final response requirements for the theme-build agent:
- Provide the theme ZIP.
- Provide route-qa output, screenshot catalog, Lighthouse reports, axe findings, and exact changed files.
- State any items requiring WordPress admin, analytics/Search Console/server access, or human approval.