{"accessibilityQa":{"compactMenuToggleFocusableDataState":true,"compactMenuToggleVisibleFocusGuard":true,"compactMenuToggleVisibleFocusReturnGuard":true,"compactNavigationDocumentFocusInFallback":true,"compactNavigationFocusInGuard":true,"compactNavigationFocusStateDataAttribute":true,"compactNavigationFocusStateGuard":true,"compactNavigationLayerStateMarker":true,"compactNavigationStackStateMarker":true,"compactNavigationTabindexFallback":true,"compactNavigationVisibleFocusReturn":true,"compactNavigationVisibleToggleFocusReturnOutcome":true,"desktopDropdownLayerMarkers":["data-desktop-menu-layer-state","data-header-menu-z-index-state","data-nav-panel-z-index-state"],"desktopDropdownZIndexRegressionGuard":true,"desktopGroupedMenuNoUnnecessaryLaptopScrollbar":true,"desktopGroupedMenuScrollbarStateMarker":true,"desktopGroupedMenuShortViewportScrollProtection":true,"desktopGroupedMenuViewportFitStateMarker":true,"groupedDisclosurePanelFocusState":true,"groupedDisclosurePanelTabStopFallback":true,"initialHeaderDataStateMarkup":true,"navigationDisclosureAriaExpandedSync":true,"navigationDisclosurePanelAriaHiddenSync":true,"navigationDisclosurePanelFocusRedirectMarker":true,"navigationDisclosurePanelInertSync":true,"navigationDisclosurePanelTabindexFallback":true,"phoneTabletHeaderLayerGuard":true,"phoneTabletHeaderStackingGuard":true,"v902CompactNavRowClassParity":true,"v902FocusContrastTouchTargetGuards":true,"v902NoHorizontalOverflowGuard":true},"apiParameterContract":{"limit":"1-100","reportSearchModes":["all","any","exact","phrase"],"researchModes":["all","any"],"source":"documented source label or all","type":"documented source type or all"},"apiRoutes":[{"expectation":"Returns low-risk runtime smoke health.","path":"/wp-json/mk/v1/runtime-health"},{"expectation":"Returns this QA contract JSON.","path":"/wp-json/mk/v1/route-qa-contract"},{"expectation":"Server-side report search honors default retrieval scope and accepted exact-query behavior.","path":"/wp-json/mk/v1/report-search"},{"expectation":"Filtered report search response for simple clients and AI assistants.","path":"/wp-json/mk/v1/reports-search"},{"expectation":"Default report manifest remains scoped to default-visible records.","path":"/wp-json/mk/v1/reports"},{"expectation":"Reader index API returns default-visible records unless server-side query context permits otherwise.","path":"/wp-json/mk/v1/report-reader-index"},{"expectation":"Returns stale/recheck records for noindex review utilities.","path":"/wp-json/mk/v1/report-stale-index"},{"expectation":"Research search API validates q, source, type, mode, and limit before returning bounded results.","path":"/wp-json/mk/v1/research-search"},{"expectation":"Returns admin-free QA dashboard JSON.","path":"/wp-json/mk/v1/research-dashboard"},{"expectation":"Returns search performance profile.","path":"/wp-json/mk/v1/research-search-performance"},{"expectation":"Returns search shard manifest.","path":"/wp-json/mk/v1/research-search-shards"},{"expectation":"Returns public profile data only.","path":"/wp-json/mk/v1/profile"},{"expectation":"Returns resume download metadata.","path":"/wp-json/mk/v1/resume"},{"expectation":"Returns evidence map data.","path":"/wp-json/mk/v1/evidence-map"}],"auditFindings":{"browserQaBlockedByPolicy":"Component QA completed; installed WordPress runtime QA remains unavailable/deployment-dependent.","browserQaCarryForward":"If no deployed or local WordPress runtime is available, record that limitation and run static/package plus component-level checks only.","compactNavigationFocusReturn":"Escape close returns focus to the compact toggle only while the compact toggle is visible or the compact viewport is active.","compactNavigationFocusReturnOutcome":"Focus-return attempts mark requested, success, suppressed, or desktop outcomes on the compact menu toggle.","compactNavigationFocusStateMarkers":"Compact navigation exposes data-compact-nav-focus-state and data-compact-toggle-focusable for package and browser QA.","compactNavigationStackLayerState":"Phone/tablet compact navigation exposes stack and layer state markers for route-card overlay QA.","contractMirrorRequirement":"Root route QA contract and asset mirror must remain byte-identical.","desktopDropdownViewportFit":"v8.8.43 keeps desktop grouped dropdown panels scrollbar-free on normal laptop-height viewports when visible entries fit, while preserving overflow protection for short viewports.","directAttachedMarkdownImport20260607":"Imported two direct Markdown uploads into /reports/ and refreshed public/private report and research search indexes.","directAttachedMarkdownImport20260607v8848":{"duplicatesSkipped":2,"files":["localendpoint-totem-update-strategy-detail.md","c-sharp-desktop-app-architecture-testing.md","localendpoint-totem-update-strategy.md"],"uniqueImported":3},"generatedUtc":"2026-06-09T22:45:00Z","groupedDisclosureInertSync":"Grouped disclosure panels mirror closed state through aria-hidden, inert, and data-state values.","groupedDisclosureTabStopFallback":"Closed grouped disclosure panels remove descendant tab stops as an inert fallback and restore them when opened.","localStaticChromiumComponentQa":"v9.0.15 Playwright/Chromium component fixture succeeded against package style.css and assets/js/site.js. Installed WordPress runtime QA remains not completed because no version-proven WordPress runtime was available.","navigationDisclosurePanelFocusRedirect":"Hidden grouped panels mark redirect-to-summary outcomes when accidental focus enters suppressed content.","packageExtractionSmokeCheck":"The release must extract cleanly with standard command-line unzip and contain one top-level theme directory.","publicIndexBoundary":"Public static indexes remain default-visible only; private helper records stay PHP-guarded.","reportArchiveUpdate":"v8.8.43 imports 26 new unique raw Markdown reports from ReportsUpdate-20260607.zip and leaves one identical existing report unduplicated.","restEndpointAlias":"restEndpoints mirrors apiRoutes for validation collectors that use REST-specific naming.","runtimeScope":"WordPress server-rendered routes with progressive JavaScript enhancement.","uaixCoreArtifactCatalogHotfix":{"notes":["CLI-only operational patch utility retained in theme ops directory.","Standalone v8.8.46 hotfix ZIP remains the correct external plugin handoff artifact until live plugin source is patched.","No public route, REST endpoint, AJAX hook, or theme self-apply hook is introduced."],"status":"ops-kit-retained","version":"9.0.15"},"v8844Audit":"v8.8.47 verifies the two v8.8.43 direct Markdown imports, ReportsUpdate-20260607 imports, public/private index split, and desktop dropdown viewport-fit behavior remain intact.","v8858DeployedSiteSamplingBoundary":"External deployed-site fetches were non-authoritative for this package because live pages still appeared to expose older pre-v8.8.56 dashboard/breadcrumb/text issues.","v8858NoindexInventoryHardening":"Static robots.txt is aligned with dynamic robots utility disallows, research-utility-noindex-inventory includes public UAI safety utility JSON, and assets/data noindex matching includes dashboard and noindex-inventory mirrors.","v9000MajorRelease":"Major visual, homepage, navigation, evidence/research, and AI review path pass; static artifact count intentionally changes to include new public machine-readable discovery files.","v902RuntimeQaBoundary":"Installed WordPress/browser QA is still deployment-dependent; package-level static and component checks record what actually ran.","v902VisualAccessibilityHardening":"Added CSS guards for focus visibility, link/body contrast, 44px interactive controls, no-horizontal-overflow containment, reduced-motion, and v9 compact-navigation row parity.","v905RuntimeDeploymentDrift":"Public deployment must report 9.0.15 before live behavior is treated as current; public sampling during this pass reported an older package and is documented as drift.","v905UxEvidenceClosure":"v9.0.15 preserves v9.0.4 UX evidence sections, adds dashboard runtime-parity probes, strengthens Role Matcher accessible help association, and records package-local QA boundaries.","v906DeploymentDriftBoundary":"Public deployed output must report 9.0.15 before it is treated as current-package runtime QA.","v906RestContractOpenApiParity":"v9.0.15 expands OpenAPI discovery to all 14 WordPress REST endpoints declared in apiRoutes; runtime response validation remains deployment-dependent.","version":"9.0.15","visibleToggleFocusReturnGuard":"Focus return to the compact menu toggle checks viewport state, hidden state, inert state, computed display, visibility, and bounds before focusing.","wordpressRuntimeBrowserQa":"Not completed in this package environment because no local WordPress runtime was available.","v9014StructuredFluidity":"Dense Corporate Command Layout design system implemented from current explicit user brief.","v9015DenseCorporateCorrection":"v9.0.15 replaces the v9.0.14 desktop side rail and oversized type/spacing with a compact top command navigation, smaller fluid type, denser cards, and reduced hero whitespace."},"checks":["PHP lint all PHP files","JavaScript syntax check for assets/js/site.js","JSON parse all public JSON files","PHP-guarded private helper JSON parse","ZIP integrity check","resume PDF and DOCX presence","docs active index count and retired-reference exclusion","report stale index count and research-search stale exclusion","REST research-search source/type/mode parameter parity","default retrieval boundary with accepted exact query behavior","public generated-file scrub for default-hidden topic terms","route render hardening CSS presence","noindex and sitemap exclusion checks",".uai front-door presence and approval-state checks","runtime health static artifact count equals route QA contract static artifact count","tablet compact navigation visibility check for 761px through 980px","route QA root and asset mirror byte-compare check","runtime health REST endpoint count equals route QA contract REST endpoint count","responsive QA viewport matrix includes 390, 761, 820, 980, and 1366","clean command-line unzip extraction smoke check","clean command-line ZIP extraction smoke check","responsive QA viewport matrix includes 390, 761, 820, 980, and 1366px","compact navigation aria-hidden synchronization check","clean command-line unzip extraction into fresh directory","post-rezip local static Chromium fixture when stable browser runner is available","compact navigation viewport-state data attribute parity","responsive QA breakpoint matrix includes 390, 761, 820, 980, and 1366","compact navigation inert synchronization check","compact navigation focus return when closing from inside the menu","route QA and runtime-health parity retained after v8.8.38 audit","compact navigation disclosure aria-expanded synchronization check","header grouped menu summary state reset after Escape, outside click, link click, and desktop resize","compact navigation focus-state data attribute check","compact menu visible-toggle focus-return guard check","grouped disclosure panel descendant tab-stop fallback check","initial header data-state markup check","compact navigation visible-toggle focus-state guard check","compact navigation document focusin fallback check","grouped disclosure panel focus-state and tab-stop fallback check","phone/tablet header stacking guard check","compact navigation stack-state and layer-state markers are present","compact navigation visible-toggle focus-return outcome markers are present","hidden grouped-panel focus redirect markers are present","phone/tablet header layer guard is present","UAIX launch-baseline identity and world-context files present","UAI package model and file deck exports present","UAI manifest root and asset mirror byte-compare check","UAI long-term memory pointer refreshed","desktop grouped dropdown viewport-fit marker check","desktop grouped dropdown no-unnecessary-laptop-scrollbar check","v8.8.43 report update import, default-visible split, and private helper refresh","UAIX Core hotfix ops files retained","UAIX Core hotfix patcher remains CLI-only","UAIX Core hotfix has no web self-apply route","v8.8.51 direct import retention audit","v8.8.51 UAIX Core CLI-only hotfix boundary audit","v8.8.51 inherited WordPress block-surface contrast retention audit","v8.8.52 recurring header dropdown z-index regression guard","v8.8.52 hostile page-content z-index component QA fixture","v8.8.52 UAI navigation memory no-regression note","v9.0.9 machine-readable discovery files are present and routed by the WordPress static route handler","v9.0.9 Portfolio Review Guide runtime-parity proof panel present","v9.0.9 UX evidence checklist present","v9.0.9 Role Matcher aria-describedby help/privacy association present","v9.0.9 package-local Chromium component QA passed","v9.0.9 live deployment drift recorded without claiming runtime QA","v9.0.9 Research Dashboard runtime-parity probe panel present","v9.0.9 UX evidence data markers present on career/experience/case-study/evidence/search pages",{"id":"v906-openapi-rest-contract-parity","status":"pass","summary":"OpenAPI discovery lists the same fourteen REST endpoints as route QA apiRoutes; runtime responses remain deployment-dependent."}],"creativePortfolio":{"label":"MichaelJosephKappel.com Photography Portfolio","purpose":"Photography, visual creativity, composition, public media archive, and identity context only; not a software delivery claim.","url":"https://michaeljosephkappel.com/"},"currentResearchIntake":{"duplicateMarkdownSkipped":3,"importedMarkdownCount":27,"intakeVersion":"v9.0.15","promotionBoundary":"review-only; no imported evaluation promoted to public proof without Mike approval","screenshotBundleCount":1,"sourceZip":"none; direct uploaded evaluation markdown plus screenshots.zip","v9010UiAiEvaluationImportedMarkdownCount":1,"validatedByPackageVersion":"9.0.15"},"discovery":{"headers":"Static research, dashboard, shard, and route QA JSON responses include X-Robots-Tag noindex/noarchive/nosnippet.","robots":"Robots output disallows research archive, utility JSON, dashboard, and route QA contract surfaces.","sitemap":"Public sitemap excludes research archive, research reader/search utilities, QA dashboard, and route QA contract."},"docs":{"activeCount":59,"activeRetiredReferenceExpectation":0,"curationBoundary":"Only reviewed Architecture Notes belong in active docs indexes.","retiredCount":121},"generatedUtc":"2026-06-09T22:50:00Z","generated_utc":"2026-06-09T22:45:00Z","indexingPolicy":"noindex-noarchive-nosnippet","lastPackageAuditVersion":"9.0.15","openApiRestContract":{"openApiMatchesRouteQaApiRoutes":true,"openApiPathCount":14,"privateHelperBoundary":"Private helper indexes remain PHP-guarded under inc/private-data/ and are not public REST routes.","routeQaApiRouteCount":14,"runtimeValidationRequired":"Installed WordPress REST responses must be validated only after runtime-health or route JSON reports 9.0.15."},"packageAudit":{"lastPackageAuditVersion":"9.0.15","packageAuditVersion":"9.0.15","sourceEvaluationIntake":"v9.0.15 imports one UI/UX and AI-interoperability evaluation plus screenshot bundle as raw noindex Research Archive material.","updatedUtc":"2026-06-09T22:45:00Z","v8848Audit":"v8.8.48 imports three new direct Markdown reports, skips two identical duplicate uploads, and preserves public/private report-search boundaries.","v8850Audit":"v8.8.51 verifies v8.8.48 direct Markdown imports, duplicate upload handling, inherited block-surface contrast repair, UAIX Core CLI-only hotfix boundary, and public/private report-search separation.","v8852Audit":"v8.8.52 fixes recurring grouped-menu z-index regression and persists the no-regression rule in UAI navigation memory while retaining reports, public/private indexes, block-surface contrast, and UAIX Core CLI-only hotfix boundaries.","v902Audit":"Runtime-QA closure pass keeps v9 design stable and hardens compact-navigation CSS parity, accessibility contrast/touch-target/focus guards, and truthful runtime QA boundaries.","v904Audit":"Integrated uploaded UI/UX review findings into package-local scannability, semantic timeline, responsive table, research/evidence guidance, and visual accessibility refinements while keeping installed runtime QA deployment-dependent.","version":"9.0.15"},"packageAuditNotes":["v9.0.9 installed-runtime and UX-evidence closure pass preserves v9 design while adding runtime-parity guidance and progressive responsive table labels.","v9.0.9 installed WordPress QA remains deployment-dependent; package-local component QA is not presented as live runtime proof.","v9.0.9 OpenAPI, route QA, and static package metadata align around the same fourteen REST endpoints; installed REST response validation remains deployment-dependent."],"packageAuditVersion":"9.0.15","privateHelperArtifacts":[{"expectedCount":585,"path":"/inc/private-data/report-private-search-index.json.php"},{"expectedCount":585,"path":"/inc/private-data/report-private-reader-index.json.php"},{"expectedCount":780,"path":"/inc/private-data/research-private-search-index.json.php"},{"expectedRole":"server-read configuration","path":"/inc/private-data/research-boundary-config.json.php"}],"purpose":"Static route, API, artifact, docs, discovery, and memory QA contract for reviewer and deployment smoke checks.","queryContract":{"reportSearch":{"allowedModes":["all","any","exact","phrase"],"fallbackMode":"all","searchScope":"default-visible records unless server query context allows private helper restoration"},"researchSearch":{"allowedModes":["all","any"],"fallbackMode":"all","searchScope":"default-visible records unless server query context allows private helper restoration"}},"reports":{"boundary":"Reports remain research archive material until promoted through review.","defaultVisibleReaderCount":513,"defaultVisibleReportCount":513,"directAttachedMarkdownImportCount":5,"lastArchiveUpdate":"research-new-file-20260609-v908-intake-validated-v909","privateHelperReaderCount":585,"privateHelperReportCount":585,"rawMarkdownCountExcludingReadme":594,"rawMarkdownCountIncludingReadme":595,"staleCount":9,"v8844Audit":"Verified v8.8.43 direct Markdown imports and ReportsUpdate-20260607 imports remain searchable in noindex report/research indexes.","v8848DirectMarkdownImportCount":3,"v8848DuplicateUploadsSkipped":2,"v8850Audit":"Verified v8.8.48 direct imports and duplicate skips remain reflected in noindex report/research indexes.","v9010ScreenshotBundleCount":1,"v9010UiAiEvaluationImportedMarkdownCount":1,"v908DuplicateMarkdownImportsSkipped":3,"v908ImportBatch":"Research-new-file-20260609.zip","v908ImportedMarkdownCount":27},"researchArchive":{"defaultVisibleReportCount":513,"privateHelperReportCount":585,"v9010UiAiEvaluationImportedMarkdownCount":1,"v908DuplicateMarkdownImportsSkipped":3,"v908ImportedMarkdownCount":27},"researchSearch":{"browserIndexBoundary":"Public browser indexes use the default-visible set.","defaultHiddenRecordsRetainedServerSide":72,"defaultVisibleCount":708,"fullIndexRecords":708,"metadataCount":708,"metadataRecords":708,"privateHelperCount":780,"restParameterContract":{"limit":"1-100","mode":["all","any"],"q":"bounded sanitized string","source":"documented source label or all","type":"documented source type or all"},"shardSourceRecords":708,"staleRecordExpectation":0,"v8844Audit":"Verified public/default-visible records and PHP-guarded private helper records remain separated.","v8850Audit":"Verified public/default-visible research indexes remain separated from PHP-guarded private helper records after v8.8.48 imports.","v9010UiAiEvaluationRawReportRecords":1,"v908ImportedRawReportRecords":27},"resources":{"compactNavigationA11yState":"assets/js/site.js#syncNavigationVisibilityState","compactNavigationDocumentFocusInFallback":"assets/js/site.js#document.focusin","compactNavigationFocusRedirect":"assets/js/site.js#redirectSuppressedNavigationFocus","compactNavigationFocusReturnOutcome":"assets/js/site.js#setCompactToggleFocusReturnState","compactNavigationFocusState":"assets/js/site.js#setCompactNavigationHiddenState","compactNavigationHeaderStackState":"header.php#site-header[data-phone-tablet-nav-stack]","compactNavigationLayerState":"assets/js/site.js#syncHeaderStackingState","extractSmokeCheck":"standard command-line unzip into a fresh directory","navPanelFocusFallback":"assets/js/site.js#setNavPanelDescendantFocusState","navigationDisclosurePanelFocusRedirect":"assets/js/site.js#redirectSuppressedNavigationFocus","phoneTabletHeaderLayerGuard":"style.css#v8.8.38-compact-navigation-layer-state-and-focus-return-outcome-audit-guard","researchDashboardAssetMirror":"/assets/data/research-dashboard.json","researchDashboardJson":"/research-dashboard.json","researchSearchApi":"/wp-json/mk/v1/research-search","routeQaContractApi":"/wp-json/mk/v1/route-qa-contract","routeQaContractAssetMirror":"/assets/data/route-qa-contract.json","routeQaContractJson":"/route-qa-contract.json","runtimeHealth":"/runtime-health.json","runtimeHealthApi":"/wp-json/mk/v1/runtime-health","uaiFileDeck":"/.uai/exports/file-deck.json","uaiMemoryManifest":"/uai-memory-manifest.json","uaiMemoryManifestAssetMirror":"/assets/data/uai-memory-manifest.json","uaiPackageModel":"/.uai/exports/package-model.json","uaixCoreHotfixOps":{"expectedFiles":["README.md","patch-uaix-core-artifact-catalog.php","build-schema-route-url-method.php.txt"],"path":"ops/uaix-core-artifact-catalog-hotfix/","scope":"operational handoff only; no web self-patching endpoint","sourceIncident":"External uaix-core plugin missing build_schema_route_url() helper observed in ErrorNotifier.","themeOwnershipBoundary":"Theme package carries a CLI-only patch utility; external plugin runtime must be patched separately."}},"responsiveQa":{"auditScope":"package-local Playwright/Chromium component fixture plus static source checks; installed WordPress browser QA deferred until v9.0.15 is deployed or loaded in a full runtime","breakpoints":[390,761,820,980,1366],"expectation":"Compact navigation, route QA cards, research cards, dashboard cards, and long text surfaces do not create horizontal overflow.","hostileContentZIndexFixture":true,"lastPackageAuditUtc":"2026-06-09T02:33:30Z","lastPackageAuditVersion":"9.0.15","localPlaywrightComponentQaPassed":true,"localPlaywrightComponentQaSummary":"Static component fixture using package style.css and assets/js/site.js passed no-horizontal-overflow, desktop disclosure sync, compact menu open, Escape close with focus return, and link-click close.","localPlaywrightComponentQaViewports":["1366x768","1366x560","980x768","820x768","761x768","390x844"],"navigationAssertions":["compact navigation synchronizes aria-hidden with viewport state","compact menu toggle remains visible from 761px through 980px","desktop navigation removes compact hidden state at 981px and wider","compact menu disclosure summaries synchronize aria-expanded with details open state","Escape, outside-click, link-click, and desktop-resize reset disclosure aria-expanded values","compact navigation synchronizes inert with aria-hidden while closed","compact navigation restores focus state when Escape closes the menu","Escape from desktop grouped disclosure does not move focus to the hidden compact menu toggle","grouped disclosure panels synchronize inert with aria-hidden while closed","closed compact navigation removes descendant tab stops as an inert fallback","compact navigation exposes focus-state data markers for closed/open/desktop QA","closed compact navigation redirects accidental descendant focus back to the visible compact toggle","grouped disclosure panels suppress descendant tab stops while hidden as an inert fallback","initial server markup carries closed/desktop data-state values before JavaScript synchronizes runtime state","compact navigation exposes focus-state and visible-toggle focusability data markers","document focusin fallback returns accidental hidden compact-nav focus to the visible toggle","grouped disclosure panels expose focus-state and tab-stop fallback data markers","phone/tablet header stacking keeps open compact panels above route cards","compact navigation stack-state and layer-state markers stay synchronized with phone/tablet menu state","compact toggle records focus-return outcomes after Escape and focusin redirects","hidden grouped panels record focus redirect outcomes while remaining inert","desktop grouped menu panels expose viewport-fit and scrollbar-state markers without unnecessary laptop-height internal scrollbars","ReportsUpdate-20260607 raw Markdown import keeps default-visible and private report indexes separated","v8.8.47 audit retains v8.8.43 direct Markdown imports in searchable noindex reports and indexes"],"v902CompactNavParity":{"currentHeaderRowClass":"nav-row-v900","fix":"CSS now explicitly covers generic .nav-row and .nav-row-v900 for the 761px-980px compact-navigation window.","legacyGuardClass":"nav-row-v8823","status":"package-hardening-complete; runtime-validation-required","viewports":[390,761,820,980,1366]},"v905Targets":"390, 761, 820, 980, 1366 viewport checks remain required for installed runtime; component fixture covers representative navigation/table behavior.","viewports":[{"height":900,"name":"phone","width":390},{"height":1024,"name":"tablet lower boundary","width":761},{"height":1180,"name":"tablet","width":820},{"height":1180,"name":"tablet upper boundary","width":980},{"height":900,"name":"desktop","width":1366}]},"restEndpoints":[{"expectation":"Returns low-risk runtime smoke health.","path":"/wp-json/mk/v1/runtime-health"},{"expectation":"Returns this QA contract JSON.","path":"/wp-json/mk/v1/route-qa-contract"},{"expectation":"Server-side report search honors default retrieval scope and accepted exact-query behavior.","path":"/wp-json/mk/v1/report-search"},{"expectation":"Filtered report search response for simple clients and AI assistants.","path":"/wp-json/mk/v1/reports-search"},{"expectation":"Default report manifest remains scoped to default-visible records.","path":"/wp-json/mk/v1/reports"},{"expectation":"Reader index API returns default-visible records unless server-side query context permits otherwise.","path":"/wp-json/mk/v1/report-reader-index"},{"expectation":"Returns stale/recheck records for noindex review utilities.","path":"/wp-json/mk/v1/report-stale-index"},{"expectation":"Research search API validates q, source, type, mode, and limit before returning bounded results.","path":"/wp-json/mk/v1/research-search"},{"expectation":"Returns admin-free QA dashboard JSON.","path":"/wp-json/mk/v1/research-dashboard"},{"expectation":"Returns search performance profile.","path":"/wp-json/mk/v1/research-search-performance"},{"expectation":"Returns search shard manifest.","path":"/wp-json/mk/v1/research-search-shards"},{"expectation":"Returns public profile data only.","path":"/wp-json/mk/v1/profile"},{"expectation":"Returns resume download metadata.","path":"/wp-json/mk/v1/resume"},{"expectation":"Returns evidence map data.","path":"/wp-json/mk/v1/evidence-map"}],"routeQaSelfCheck":{"apiRouteCount":14,"browserQaBlockedByPolicy":false,"browserQaBoundary":"Installed WordPress runtime QA is not claimed for v9.0.15. Public deployed sampling showed older 9.0.3 machine-readable files, so it was treated as deployment drift only. Package-local Playwright/Chromium component QA passed.","cleanCommandLineUnzipCheck":true,"cleanZipExtractionRequired":true,"compactMenuToggleFocusableDataState":true,"compactMenuToggleVisibleFocusGuard":true,"compactMenuToggleVisibleFocusReturnGuard":true,"compactNavigationDocumentFocusInFallback":true,"compactNavigationFocusInGuard":true,"compactNavigationFocusReturn":true,"compactNavigationFocusStateDataAttribute":true,"compactNavigationFocusStateGuard":true,"compactNavigationLayerStateMarker":true,"compactNavigationStackStateMarker":true,"compactNavigationTabindexFallback":true,"compactNavigationVisibleFocusReturn":true,"compactNavigationVisibleToggleFocusReturnOutcome":true,"declaredStaticArtifactCount":32,"groupedDisclosurePanelFocusState":true,"groupedDisclosurePanelTabStopFallback":true,"headerDisclosureResetParity":true,"initialHeaderDataStateMarkup":true,"lastPackageAuditUtc":"2026-06-09T16:55:00Z","lastPackageAuditVersion":"9.0.15","localStaticChromiumComponentQaAttempted":true,"localStaticChromiumComponentQaPassed":true,"navigationAriaHiddenSync":true,"navigationDisclosureAriaExpandedSync":true,"navigationDisclosurePanelAriaHiddenSync":true,"navigationDisclosurePanelFocusRedirectMarker":true,"navigationDisclosurePanelInertSync":true,"navigationDisclosurePanelTabindexFallback":true,"navigationInertSync":true,"packageAuditVersion":"9.0.15","packageExtractSmokeRequired":true,"phoneTabletHeaderLayerGuard":true,"phoneTabletHeaderStackingGuard":true,"postRezipBrowserQaCompleted":true,"postRezipBrowserQaRequired":false,"privateHelperArtifactCount":4,"responsiveQaBreakpoints":[390,761,820,980,1366],"responsiveQaViewportWidths":[390,761,820,980,1366],"responsiveQaViewports":[390,761,820,980,1366],"restEndpointCount":14,"routeCount":14,"runtimeHealthRestEndpointParity":true,"runtimeHealthStaticArtifactParity":true,"runtimeParityProofRequired":true,"singleTopLevelDirectoryRequired":"mikekappel-enterprise-ai-prod-theme/","staticArtifactCount":32,"tabletNavigationAuditWindow":"761px-980px","uaixCoreHotfixOpsFileCount":3,"uxEvidenceChecklistPresent":true,"v9000MachineReadableDiscovery":"Added llms.txt, llms-full.txt, .well-known AI/OpenAPI discovery, and /api route/documentation/status manifests for the major-version review path.","v905InstalledRuntimeVersionProofRequired":true,"v905UxEvidenceChecklistPresent":true,"version":"9.0.15","wordpressRuntimeBrowserQaCompleted":false,"zipExtractionSmokeCheckRequired":true},"routes":[{"expectation":"Primary portfolio page renders server HTML and keeps AI / .NET / SQL / TypeScript stack framing.","path":"/"},{"expectation":"Career story uses verified professional context and does not add unverified claims.","path":"/career/"},{"expectation":"Experience page preserves user-confirmed Angular work at Info724 and LongTerm Software.","path":"/experience/"},{"expectation":"Architecture Notes list active curated documents only.","expectedActiveCount":59,"expectedRetiredCount":121,"path":"/docs/"},{"expectation":"Research archive remains noindex/noarchive/nosnippet and default-visible set is scoped.","expectedDefaultVisibleCount":513,"expectedRawReportCount":585,"path":"/reports/"},{"expectation":"Reader uses default-visible index unless accepted server-side query context allows additional rows.","expectedDefaultVisibleCount":513,"path":"/report-reader/"},{"expectation":"Cross-source research search uses default-visible public index, REST hydration, source/type/mode parameter bounds, and preserved source labels.","expectedDefaultVisibleCount":708,"path":"/research-search/"},{"expectation":"Admin-free QA dashboard reports docs, stale reports, research search, and .uai front-door checks.","path":"/research-dashboard/"},{"expectation":"Static QA contract is routable, mirrored, noindex, and aligned to package counts.","path":"/route-qa-contract.json"},{"expectation":"Clean public resume route keeps PDF/DOCX download assets available without unverified claims.","path":"/resume/"},{"expectation":"Reviewer guide preserves the intended human reading path.","path":"/portfolio-review-guide/"},{"expectation":"Evidence map connects resume language to proof surfaces without promoting raw reports as claims.","path":"/evidence-map/"},{"expectation":"Public sitemap excludes research utilities, report archive, dashboard, and route QA utilities.","path":"/sitemap.xml"},{"expectation":"Robots output disallows research and utility routes while leaving public portfolio routes crawlable.","path":"/robots.txt"}],"runtime":{"clientBoundary":"Enhancement JavaScript only; not a client-only SPA","dependencyBoundary":"No package-manager runtime dependency is required for production rendering.","minimumPhpCompatibilityTarget":"7.4+","packageVersion":"9.0.15","platform":"WordPress theme with server-rendered pages and static JSON artifacts"},"sourceStatus":"admin-free-route-qa-contract","staticArtifacts":[{"expectedCount":59,"path":"/docs/index.json"},{"expectedCount":513,"path":"/reports/index.json"},{"expectedCount":513,"path":"/reports/search-index.json"},{"expectedCount":513,"path":"/reports/reader-index.json"},{"expectedCount":513,"path":"/reports/related-index.json"},{"expectedCount":9,"path":"/reports/stale-index.json"},{"expectedCount":708,"path":"/research-search-index.json"},{"aliasOf":"/research-search-index.json","expectedCount":708,"path":"/research-search.json"},{"expectedCount":708,"path":"/research-search-metadata.json"},{"path":"/research-search-performance.json"},{"expectedShardFiles":13,"path":"/research-search-shards/*.json"},{"expectedDirectAttachedMarkdownImportCount":5,"expectedV8848DirectMarkdownImportCount":3,"expectedV8848DuplicateUploadsSkipped":2,"expectedV9010ScreenshotBundleCount":1,"expectedV9010UiAiEvaluationImportedMarkdownCount":1,"expectedV908DuplicateMarkdownUploadsSkipped":3,"expectedV908ImportedMarkdownCount":27,"path":"/research-dashboard.json"},{"expectation":"Asset mirror for the admin-free research dashboard remains valid JSON and default-visible only.","expectedDirectAttachedMarkdownImportCount":5,"expectedV8848DirectMarkdownImportCount":3,"expectedV8848DuplicateUploadsSkipped":2,"expectedV9010ScreenshotBundleCount":1,"expectedV9010UiAiEvaluationImportedMarkdownCount":1,"expectedV908DuplicateMarkdownUploadsSkipped":3,"expectedV908ImportedMarkdownCount":27,"path":"/assets/data/research-dashboard.json"},{"path":"/route-qa-contract.json"},{"path":"/assets/data/route-qa-contract.json"},{"path":"/sitemap.xml"},{"expectedCount":25,"path":"/sitemap-routes.json"},{"path":"/runtime-health.json"},{"path":"/deployment-error-recovery.json"},{"path":"/llms.txt","purpose":"Concise AI and LLM review manifest"},{"path":"/llms-full.txt","purpose":"Full AI review guide and route order"},{"path":"/.well-known/ai-agent.json","purpose":"Public AI agent review manifest"},{"path":"/.well-known/openapi.json","purpose":"OpenAPI discovery pointer"},{"path":"/api/openapi-3.1.json","purpose":"Public OpenAPI 3.1 route description"},{"path":"/api/agents.json","purpose":"Agent use and boundary guidance"},{"path":"/api/public-route-index.json","purpose":"Public route and review-path index"},{"path":"/api/documentation-map.json","purpose":"Docs, research, case-study, and machine-readable route map"},{"path":"/api/architecture/status.json","purpose":"Production architecture status and runtime boundary"},{"path":"/api/architecture/route-governance.json","purpose":"Route family and indexing boundary map"},{"path":"/api/quality-gates/status.json","purpose":"Validation gate status manifest"},{"path":"/api/roadmap/status.json","purpose":"Release and next-pass status"},{"path":"/api/site-search/index.json","purpose":"Search surface and privacy summary"}],"uai":{"approvalBoundary":".uai/totem.uai and .uai/taboo.uai remain generated-needs-review unless explicitly promoted by Mike.","fileDeckExport":".uai/exports/file-deck.json","folderRule":{"activeMemory":".uai/","archives":".uai/archives/","exports":".uai/exports/"},"frontDoorFiles":[".uai/identity.uai",".uai/world-context.uai",".uai/totem.uai",".uai/taboo.uai",".uai/short-term-memory.uai",".uai/coding-standards.uai"],"launchBaselineFiles":[".uai/identity.uai",".uai/world-context.uai",".uai/totem.uai",".uai/taboo.uai",".uai/short-term-memory.uai",".uai/coding-standards.uai"],"longTermMemory":".uai/long-term-memory.uai","manifestExport":".uai/exports/manifest.json","packageModelExport":".uai/exports/package-model.json","uaixWizardReference":"https://uaix.org/en-us/tools/ai-memory-package-wizard/"},"updatedUtc":"2026-06-09T22:50:00Z","version":"9.0.15","designSystem":{"name":"Dense Corporate Command Layout","source":"user correction after v9.0.14 screenshot review","symbol":"assets/img/michael-kappel-symbol.png","navigation":"compact sticky top header","styleNotes":["reduced whitespace","smaller typography","no desktop side rail","dense corporate cards"]}}
