SEO / Portfolio / Public Site

Recursive Improvement Prompt — v9.0.8 Corporate Runtime QA and Visual Refinement Pass

Report summary

This prompt continues the MikeKappel.com WordPress theme implementation loop from the corrected v9.0.7 package.

Status
Research archive item
Category
SEO / Portfolio / Public Site
Length
551 words
Reading time
3 minutes
Report type
evaluation

Key topics

  • SEO / Portfolio / Public Site
  • SEO
  • Portfolio
  • Public Site
  • AI
  • UAIX
  • UAI
  • WordPress
  • .NET

Research provenance

Archive status
Research archive item
Content identity
sha256:44aa92737d9cce4f50dd194170965f2007975a00e8f1e29ceddcb0838fd7291f

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

This prompt continues the MikeKappel.com WordPress theme implementation loop from the corrected v9.0.7 package.

Non-negotiable recursive-delivery rule:

Every completed pass must deliver both:

  1. A standalone next recursive improvement prompt file.
  2. The full contents of that next prompt pasted in the final response under a clearly labeled section.

Do not rely only on a ZIP, report, summary, screenshot, or artifact list. Do not omit the full next prompt.


0. Source package and target package

Start from:

/mnt/data/mikekappel-enterprise-ai-prod-theme-v9.0.7.zip

Create:

/mnt/data/mikekappel-enterprise-ai-prod-theme-v9.0.8.zip

Mission: make v9.0.8 a Corporate Runtime QA and Visual Refinement Pass.

v9.0.7 was a screenshot-driven visual reset. It replaced the washed-out beige/white look, cramped contact-heavy header, oversized identity card/photo treatment, low-contrast card text, and non-corporate visual rhythm with a light corporate boardroom palette, navy header/footer, white card system, blue/teal action colors, liquid container sizing, compact identity card treatment, stronger focus states, and responsive card/table wrapping.

v9.0.8 must preserve that corporate direction, validate it in the most realistic runtime/browser environment available, and make only targeted refinements discovered by QA. Do not revert to the earlier beige editorial style. Do not redesign from scratch unless the v9.0.7 package demonstrably fails runtime QA.


1. Baseline and orientation rules

Use a fresh working directory. Do not modify the baseline ZIP.

Recommended paths:

WORK=/mnt/data/work_v908
THEME=/mnt/data/work_v908/mikekappel-enterprise-ai-prod-theme
FINAL=/mnt/data/mikekappel-enterprise-ai-prod-theme-v9.0.8.zip

Before editing, read:

AGENTS.md
README.md
.uai/readme.human
.uai/identity.uai
.uai/world-context.uai
.uai/totem.uai
.uai/taboo.uai
.uai/short-term-memory.uai
.uai/long-term-memory.uai
.uai/coding-standards.uai
.uai/public-facing-language-guard.uai
.uai/navigation-compact-menus.uai
route-qa-contract.json
research-dashboard.json
runtime-health.json
research-utility-noindex-inventory.json
case-studies.json
assets/data/case-studies.json
evidence-map.json
assets/data/evidence-map.json
llms.txt
llms-full.txt
.well-known/ai-agent.json
.well-known/openapi.json
api/openapi-3.1.json
api/public-route-index.json
api/documentation-map.json
docs/v9.0.7-corporate-liquid-design-overhaul.md
mk-v9.0.7-change-summary.md if available beside the ZIP
mk-v9.0.7-validation-report.md if available beside the ZIP
mk-v9.0.7-live-render-qa.md if available beside the ZIP
mk-v9.0.7-corporate-design-notes.md if available beside the ZIP
mk-v9.0.7-visual-accessibility-notes.md if available beside the ZIP
mk-v9.0.7-runtime-deployment-checklist.md if available beside the ZIP

Treat v9.0.7 as the authoritative package baseline.


2. Preserve v9.0.7 outcomes

Do not revert:

WordPress remains server-rendered.
JavaScript remains progressive enhancement.
Top navigation remains no more than seven visible primary choices.
Homepage remains hero-first and not a dense link directory.
Hero headline remains aligned with corporate enterprise modernization for .NET, SQL Server, TypeScript, and AI.
Resume PDF CTA remains visible.
Contact email remains mike@ns12.com.
Location remains source-backed from package/resume/contact artifacts; Cicero, IL remains the package-backed value unless Mike supplies a newer source.
The corporate light-boardroom palette remains: navy header/footer, light page background, white surfaces, blue/teal CTAs, dark ink, controlled shadows, and strong contrast.
The earlier pale beige/washed-out panel treatment does not return.
The profile/identity card remains compact and corporate; do not reintroduce an oversized portrait/sidebar that dominates the first viewport.
Header contact clutter remains suppressed or substantially simplified; direct contact remains available through /contacts/ and CTAs.
The liquid layout remains wide but controlled with no horizontal overflow.
Signal metrics remain separated with readable label/value spacing.
Case studies keep problem, constraint, architecture strategy, implementation evidence, validation method, current status, known limitation, and related-route structure.
Evidence Map -> llms-full.txt -> route/discovery JSON review path remains available.
llms.txt, llms-full.txt, .well-known manifests, OpenAPI, agents metadata, route index, documentation map, architecture status, route governance, quality gates, roadmap status, and site-search index remain available.
Machine-readable discovery states that WordPress is the runtime, JavaScript is progressive enhancement, and discovery does not grant permission for probing, private-data extraction, form automation, unknown-route crawling, or tool execution.
Route QA/data mirrors remain byte-identical where expected.
Private helper data remains PHP-guarded under inc/private-data/.
Compact-navigation CSS parity for .nav-row-v900 remains present.
Focus, contrast, touch-target, reduced-motion, table stacking, endpoint-grid wrapping, and overflow guards remain present.
OpenAPI discovery lists the same fourteen REST endpoints as route QA.
.well-known/openapi.json mirrors api/openapi-3.1.json.
.uai/totem.uai and .uai/taboo.uai remain generated-needs-review unless Mike supplies exact approved wording.

3. Primary v9.0.8 objectives

3.1 Prove deployed/runtime package parity before any live QA claim

If a deployed or local WordPress runtime is available, verify at least:

/route-qa-contract.json reports version 9.0.8
/research-dashboard.json reports version 9.0.8
/runtime-health.json reports version 9.0.8 if exposed as a static file
/wp-json/mk/v1/runtime-health reports version 9.0.8 where REST is available
/llms.txt reports version 9.0.8
/.well-known/openapi.json reports OpenAPI info.version 9.0.8

If any tested runtime reports an older version, document deployment drift and do not claim installed runtime QA for v9.0.8.

3.2 Validate the corporate visual reset on actual pages

Use an installed WordPress runtime if available. If not, use component fixtures based on actual package CSS, header markup, and front-page structure.

Validate at least:

/
/career/
/experience/
/case-studies/
/evidence-map/
/research-dashboard/
/research-search/
/report-reader/
/reports/
/resume/
/portfolio-review-guide/
/contacts/
/llms.txt
/llms-full.txt
/.well-known/ai-agent.json
/.well-known/openapi.json
/api/openapi-3.1.json
/api/public-route-index.json
/api/documentation-map.json
/route-qa-contract.json
/research-dashboard.json
/runtime-health.json
/sitemap.xml
/robots.txt

Specific visual checks:

Homepage first viewport looks corporate, not washed-out or beige.
Header is compact, readable, and does not crowd the hero.
Header contact details do not create clutter.
Primary nav is readable on navy and has visible focus/active states.
Hero headline has corporate weight without awkward wrapping at desktop, tablet, and phone widths.
Hero metrics do not concatenate text such as “20+years”.
Identity card does not dominate the first viewport.
Buttons have a clear primary/secondary hierarchy.
Cards use consistent white surfaces, borders, radii, and shadows.
Section spacing feels liquid and consistent.
Tables and endpoint grids wrap without horizontal overflow.
Long route/code labels wrap cleanly.
Research/dashboard pages remain readable under the light corporate palette.
Command palette remains usable and does not visually conflict with the new palette.
Footer remains corporate navy and readable.

3.3 Responsive navigation and liquid layout QA

Use these viewport sizes at minimum:

390x844
430x932
761x768
820x768
980x768
1180x768
1366x560
1366x768
1600x900

Check:

Compact menu opens/closes.
Escape closes menus/disclosures.
Outside click closes menus where intended.
Link click closes compact menu where intended.
Focus returns to visible menu toggle where intended.
aria-expanded, aria-hidden, inert, data-state, and descendant tab-stop fallback remain synchronized.
Header/dropdown z-index keeps panels above cards.
Body scroll behavior remains usable.
No horizontal overflow occurs.
Grid cards reflow without leaving isolated one-word columns.
Hero profile/identity card stacks below copy on tablet/phone.
Desktop layout uses available width without becoming too stretched.

3.4 Visual accessibility residual pass

Do not claim WCAG certification. Perform a focused accessibility review:

Text contrast on header, footer, hero, cards, buttons, status chips, tables, endpoint grids, and route/code labels.
Body text is at least 16px.
Line length is controlled for prose.
Focus states are visible on links, buttons, summaries, form fields, cards, command palette items, and copy buttons.
Icons/SVGs are decorative aria-hidden or meaningfully labelled.
Motion respects prefers-reduced-motion.
Touch targets are large enough on phone widths.
Zoom to 200% does not break essential navigation where testable.

3.5 Validate actual WordPress REST responses where runtime exists

If WordPress is available, validate these endpoint responses:

/wp-json/mk/v1/runtime-health
/wp-json/mk/v1/route-qa-contract
/wp-json/mk/v1/report-search
/wp-json/mk/v1/reports-search
/wp-json/mk/v1/reports
/wp-json/mk/v1/report-reader-index
/wp-json/mk/v1/report-stale-index
/wp-json/mk/v1/research-search
/wp-json/mk/v1/research-dashboard
/wp-json/mk/v1/research-search-performance
/wp-json/mk/v1/research-search-shards
/wp-json/mk/v1/profile
/wp-json/mk/v1/resume
/wp-json/mk/v1/evidence-map

Expected:

Each response returns valid JSON.
Runtime REST endpoint count remains 14 unless intentionally changed and documented.
Runtime route count remains 14 unless intentionally changed and documented.
OpenAPI path list and route QA apiRoutes remain aligned.
Static artifact count remains 32 unless intentionally changed and documented.
Private helper artifact count remains 4 unless intentionally changed and documented.
Private helper indexes are not exposed as public JSON.
Search query inputs are normalized, bounded, and sanitized.

3.6 Noindex, robots, and discovery boundary QA

Verify with headers/meta/source where possible:

/docs/ remains public curated Architecture Notes.
/docs/ appears in sitemap.xml.
/reports/ remains noindex Research Archive.
/report-reader/, /research-search/, /research-dashboard/, /route-qa-contract.json, /research-dashboard.json, and utility JSON mirrors remain noindex/noarchive/nosnippet or disallowed/omitted as intended.
robots.txt disallows utility/research surfaces but does not expose private helper data.
Private helper artifacts remain PHP-guarded under inc/private-data/.
Private helper indexes are not mirrored to public JSON or public route indexes.
llms.txt and llms-full.txt do not imply permission for probing, crawling unknown routes, execution, form automation, credential testing, or private-data extraction.

3.7 Source-boundary and claim tightening

Review active case-study, evidence, and homepage copy.

Rules:

Do not invent client names, dates, metrics, confidential architecture, endorsements, certifications, or production outcomes.
Do not claim WCAG/SOC2/ISO/UAIX/runtime-safety certification without formal evidence.
Each selected case study should retain a validation method and a not-claimed boundary.
Each case study should link to evidence-map, resume, docs, llms-full, or route JSON where source-backed.
Keep case-study and homepage prose concise and visually scannable.

3.8 Metadata update

Set current version to:

9.0.8

Inspect and update current-version surfaces:

style.css
functions.php
theme.json
README.md
AGENTS.md
docs/**/*.md
route-qa-contract.json
assets/data/route-qa-contract.json
research-dashboard.json
assets/data/research-dashboard.json
runtime-health.json
research-utility-noindex-inventory.json
assets/data/research-utility-noindex-inventory.json
uai-memory-manifest.json
assets/data/uai-memory-manifest.json
uai-memory-system.json
assets/data/uai-memory-system.json
case-studies.json
assets/data/case-studies.json
evidence-map.json
assets/data/evidence-map.json
llms.txt
llms-full.txt
.well-known/*.json
api/**/*.json
.uai/**/*.uai
.uai/**/*.json
.uai/exports/*.txt

Prior v9.0.7 references may remain only in changelog/history/report context.


4. Hard constraints

Do not:

Convert the site into a client-only SPA.
Convert the site into Angular, React, Next.js, Flask, FastAPI, Python WSGI, or a static-only generator.
Add a production Node server.
Add Composer/npm/build-runtime dependencies.
Add database migrations.
Add network probing, private-network scans, external uptime polling, shell execution, credential checks, uploads, analytics, ads, CRM, payment capture, email capture, or automatic deployment behavior.
Add secrets, credentials, tokens, private client data, private source code, or deployment-specific values.
Fabricate biography, job history, client names, metrics, endorsements, certifications, legal claims, security audits, or compliance claims.
Move PHP-guarded private helper data into public JSON.
Expose private/default-hidden retrieval boundaries in public UI copy.
Delete raw reports unless Mike explicitly requests deletion.
Add heavy animation libraries or stock image dependencies.
Add unverified portraits, logos, phone numbers, LinkedIn URLs, or client imagery.
Claim WCAG/SOC2/ISO/UAIX/runtime-safety certification without formal evidence.
Treat stale public deployment output as current-package validation.
Revert to the earlier beige/pale washed-out theme.
Reintroduce a contact-heavy cramped header.
Make the portrait/identity card dominate the first viewport.

5. Validation requirements

Run from the extracted theme root:

php -l functions.php
find . -type f -name '*.php' -print0 | sort -z | xargs -0 -n1 php -l

python3 - <<'JSON_CHECK'
import json
from pathlib import Path
failures=[]
count=0
for path in sorted(Path('.').rglob('*.json')):
    try:
        json.loads(path.read_text(encoding='utf-8'))
        count += 1
    except Exception as exc:
        failures.append((str(path), str(exc)))
if failures:
    for path, exc in failures:
        print(f'JSON FAIL: {path}: {exc}')
    raise SystemExit(1)
print('json_files', count)
JSON_CHECK

python3 - <<'JSONLD_CHECK'
import json
from pathlib import Path
failures=[]
count=0
for path in sorted(Path('.').rglob('*.jsonld')):
    try:
        json.loads(path.read_text(encoding='utf-8'))
        count += 1
    except Exception as exc:
        failures.append((str(path), str(exc)))
if failures:
    for path, exc in failures:
        print(f'JSONLD FAIL: {path}: {exc}')
    raise SystemExit(1)
print('jsonld_files', count)
JSONLD_CHECK

node --check assets/js/site.js

Mirror checks:

cmp -s route-qa-contract.json assets/data/route-qa-contract.json
cmp -s research-dashboard.json assets/data/research-dashboard.json
cmp -s uai-memory-manifest.json assets/data/uai-memory-manifest.json
cmp -s uai-memory-system.json assets/data/uai-memory-system.json
cmp -s research-utility-noindex-inventory.json assets/data/research-utility-noindex-inventory.json
cmp -s navigation-groups.json assets/data/navigation-groups.json
cmp -s case-studies.json assets/data/case-studies.json
cmp -s evidence-map.json assets/data/evidence-map.json
cmp -s .well-known/openapi.json api/openapi-3.1.json

Content and claim scans:

grep -R "current version.*9\.0\.7\|version is 9\.0\.7" -n . || true
grep -R "current version.*8\.8\|share version 8\.8\|version is 8\.8" -n . || true
grep -R "WCAG certified\|SOC 2 certified\|ISO certified\|formal UAIX certification\|runtime safety certification\|guaranteed production" -n . || true
grep -R "lorem ipsum\|TODO\|FIXME\|placeholder" -ni . || true
grep -R "documentation\.\.NET\|modernization\.SQL\|Power BI/DAX\.TypeScript\|app\.LongTerm\|software\.CI/CD\|engagement\.Angular/RxJS\|AI\.NET\|C#ASP.NET\|20\+years" -n front-page.php header.php footer.php templates inc/content.php assets/js/site.js style.css || true

Also verify:

Route count remains 14 unless intentionally changed and documented.
API route count remains 14 unless intentionally changed and documented.
OpenAPI path count remains 14 unless intentionally changed and documented.
Static artifact count remains 32 unless intentionally changed and documented.
Private helper artifact count remains 4 unless intentionally changed and documented.
Research Dashboard active/retired/stale/error counts remain 59 / 121 / 9 / 0 unless intentionally changed and documented.
Case studies remain at least 3 source-grounded records with deep evidence fields; v9.0.7 had 6.
Resume PDF and DOCX exist.
.uai/totem.uai and .uai/taboo.uai remain generated-needs-review.

Package checks:

unzip -tq /mnt/data/mikekappel-enterprise-ai-prod-theme-v9.0.8.zip
python3 - <<'ZIP_CHECK'
import zipfile
from pathlib import Path
zip_path = Path('/mnt/data/mikekappel-enterprise-ai-prod-theme-v9.0.8.zip')
with zipfile.ZipFile(zip_path) as z:
    names = [n for n in z.namelist() if n and not n.endswith('/')]
    roots = sorted({n.split('/')[0] for n in names})
    bad = z.testzip()
    blocked = [n for n in names if any(part in n for part in ['__MACOSX','node_modules/','vendor/','.git/']) or n.endswith('~')]
print('roots', roots)
print('bad', bad)
print('blocked_entries', len(blocked))
if roots != ['mikekappel-enterprise-ai-prod-theme']:
    raise SystemExit('ZIP root check failed')
if bad is not None:
    raise SystemExit(f'Bad ZIP member: {bad}')
if blocked:
    raise SystemExit('Blocked entries present')
ZIP_CHECK

6. Browser/component QA

Use installed WordPress runtime if available. If unavailable, use static/component fixtures and document the limitation.

Viewport matrix:

1600x900
1366x768
1366x560
1180x768
980x768
820x768
761x768
430x932
390x844

Check:

Homepage first viewport corporate visual hierarchy
Navy header readability and compactness
No header contact clutter
Hero headline wrapping
Hero metric spacing, especially no “20+years” concatenation
Compact identity card and photo/portrait behavior
Corporate button hierarchy
Audience router card rhythm
About/skills card grid
Modernization flow diagram
Contact CTA panel
Portfolio Review Guide runtime proof panel and REST contract grid
Evidence Map runtime parity guidance
Case-study UX proof panel
Research Search text-first filter guidance
Contacts direct-contact-first panel
Reports Architecture Notes vs Research Archive distinction
Header/menu open, close, Escape, outside-click, link-click, focus return
No horizontal overflow
Responsive table stacking and data-label behavior
Endpoint grid wrapping
Card wrapping
llms.txt and JSON route readability
Reduced-motion behavior where possible

Do not claim installed WordPress runtime QA unless a real runtime was used and proven to be running v9.0.8.


7. Required deliverables

Produce:

/mnt/data/mikekappel-enterprise-ai-prod-theme-v9.0.8.zip
/mnt/data/mk-v9.0.8-change-summary.md
/mnt/data/mk-v9.0.8-validation-report.md
/mnt/data/mk-v9.0.8-live-render-qa.md
/mnt/data/mk-v9.0.10-next-prompt.md

Also produce if meaningful:

/mnt/data/mk-v9.0.8-corporate-design-notes.md
/mnt/data/mk-v9.0.8-visual-accessibility-notes.md
/mnt/data/mk-v9.0.8-runtime-deployment-checklist.md
/mnt/data/mk-v9.0.8-rest-response-qa.md

8. Report requirements

mk-v9.0.8-change-summary.md

Include:

baseline package
output package
files changed
corporate visual findings and fixes
homepage/hero findings and fixes
navigation/header findings and fixes
responsive/liquid layout findings and fixes
visual/accessibility changes
REST/runtime findings and fixes
noindex/header findings and fixes
case-study/evidence source-boundary changes
machine-readable review path changes
metadata/version changes
.uai bookkeeping changes
known limitations

mk-v9.0.8-validation-report.md

Include:

PHP lint result
JS syntax result
JSON parse result
JSON-LD parse result
mirror checks
route count
API count
OpenAPI path count
static artifact count
private helper count
Research Dashboard counts
case-study deep-field count
resume PDF/DOCX presence
uai totem/taboo state
stale version grep review
forbidden claim grep review
placeholder grep review
run-together text grep review
corporate visual checks
ZIP integrity
single-root ZIP validation
SHA-256
what was not run and why

mk-v9.0.8-live-render-qa.md

Include:

tested environment
runtime version proof or deployment-drift caveat
routes/components tested
viewport matrix
homepage first viewport observations
header/nav observations
corporate palette observations
hero/identity-card observations
metric spacing observations
responsive layout observations
REST response observations
noindex/header observations
career/experience/case-study/evidence/search/contact/report UX observations
keyboard/focus behavior
no-horizontal-overflow status
responsive table status
endpoint grid wrapping
contrast observations
reduced-motion handling
not-run items and why

mk-v9.0.10-next-prompt.md

Must be a complete recursive continuation prompt. Do not omit it. Paste the full contents in the final response.


9. Final response format

Respond with exactly these sections:

## v9.0.8 status summary

## Artifacts

## SHA-256

## Validation summary

## Browser/render QA summary

## Known limitations

## Next recommended pass

## Full recursive next prompt

Under Artifacts, link every required deliverable.

Under Full recursive next prompt, paste the complete contents of mk-v9.0.10-next-prompt.md.

Do not over-claim validation. State exactly what ran and what did not run.