{"service":"layout","version":"0.0.1","baseUrl":"https://layout.platphormnews.com","endpoints":[{"path":"/api/v1/templates","methods":["GET"],"description":"List real public layout templates","boundary":"public-safe"},{"path":"/api/v1/templates/{slug}","methods":["GET"],"description":"Fetch one template","boundary":"public-safe"},{"path":"/api/v1/layouts","methods":["GET","POST"],"description":"Ephemeral server layout drafts and local-first creation","boundary":"public-safe"},{"path":"/api/v1/layouts/{id}","methods":["GET","PUT"],"description":"Ephemeral layout lookup/update when available","boundary":"public-safe"},{"path":"/api/v1/layouts/preview","methods":["POST"],"description":"Generate deterministic responsive preview data","boundary":"public-safe"},{"path":"/api/v1/layouts/score","methods":["POST"],"description":"Run deterministic Layout score","boundary":"public-safe"},{"path":"/api/v1/layouts/export","methods":["POST"],"description":"Export JSON, HTML/CSS, React/Tailwind, Markdown, design spec JSON, or report output","boundary":"public-safe"},{"path":"/api/v1/viewport/check","methods":["POST"],"description":"Check one viewport for overflow and tap-target risk","boundary":"public-safe"},{"path":"/api/v1/grid/analyze","methods":["POST"],"description":"Analyze grid and region structure","boundary":"public-safe"},{"path":"/api/v1/accessibility/check","methods":["POST"],"description":"Run deterministic accessibility hints","boundary":"public-safe"},{"path":"/api/v1/responsive/check","methods":["POST"],"description":"Check configured breakpoints","boundary":"public-safe"},{"path":"/api/v1/audit/url","methods":["POST"],"description":"Audit URL with deterministic layout checks and explicit degraded remote inspection state","boundary":"public-safe"},{"path":"/api/v1/audit/config","methods":["POST"],"description":"Audit layout config with deterministic findings","boundary":"public-safe"},{"path":"/api/v1/reports/layout","methods":["POST"],"description":"Create a degraded local report summary","boundary":"future-protected"},{"path":"/api/v1/integrations/status","methods":["GET"],"description":"List Layout integration configuration/degraded state","boundary":"public-safe"},{"path":"/api/v1/integrations/phorm","methods":["POST"],"description":"Future protected Phorm handoff scaffold","boundary":"future-protected"},{"path":"/api/v1/integrations/browserops","methods":["POST"],"description":"Future protected BrowserOps layout check scaffold","boundary":"future-protected"},{"path":"/api/v1/integrations/docs","methods":["POST"],"description":"Future protected Docs report scaffold","boundary":"future-protected"},{"path":"/api/v1/integrations/decks","methods":["POST"],"description":"Future protected Deck summary scaffold","boundary":"future-protected"},{"path":"/api/v1/integrations/sheets","methods":["POST"],"description":"Future protected Sheets report scaffold","boundary":"future-protected"},{"path":"/api/v1/integrations/insights","methods":["POST"],"description":"Future protected Insights scoring handoff scaffold","boundary":"future-protected"},{"path":"/api/indexnow","methods":["GET","POST"],"description":"Future protected IndexNow status/submission endpoint","boundary":"future-protected"},{"path":"/api/mcp","methods":["GET","POST"],"description":"Layout MCP JSON-RPC endpoint","boundary":"public-safe"},{"path":"/api/health","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/api/v1/health","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/api/docs","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/openapi.yaml","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/openapi.json","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/llms.txt","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/llms-full.txt","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/llms-index.json","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/robots.txt","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/sitemap.xml","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/sitemap-main.xml","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/sitemap-index.xml","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/rss.xml","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/feed.xml","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/manifest.webmanifest","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/.well-known/mcp.json","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/.well-known/agents.json","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/.well-known/ai-plugin.json","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/.well-known/security.txt","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/.well-known/trust.json","methods":["GET"],"description":"Discovery route","boundary":"public-safe"},{"path":"/api/mcp","methods":["GET"],"description":"Discovery route","boundary":"public-safe"}],"authPolicy":{"boundary":"future-protected","requireApiKey":false,"acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"keyName":"PLATPHORM_API_KEY","message":"Public-safe Phase 2 access is open. PLATPHORM_API_KEY support is scaffolded for future protected actions."},"publicAccess":{"enabled":true,"statement":"Public-safe Layout functionality is open by default in Phase 2."},"layoutBuilder":{"publicSafe":true,"storage":"browser-local IndexedDB for non-sensitive drafts; server persistence is degraded unless DATABASE_URL is configured","viewports":["narrow","mobile","tablet","desktop","wide"]},"templates":{"count":15,"slugs":["article-brief","dashboard-command","card-grid","form-flow","docs-layout","gallery-wall","landing-system","news-feed","faq-knowledge","product-service","status-page","api-docs","mcp-capability","network-directory","report-page"],"active":15},"responsiveChecks":["overflow","tap-target-size","heading-hierarchy","landmark-presence","grid-consistency","spacing","alignment","density","readability","mobile-usability","route-readiness","platform-integration","breakpoint-coverage","image-alt","form-labels","semantic-regions","navigation-clarity","footer-discovery-presence","faq-breadcrumb-hints","public-protected-label-presence","trace-api-mcp-discovery-link-presence"],"scoring":{"deterministic":true,"modelAssisted":false,"checks":["overflow","tap-target-size","heading-hierarchy","landmark-presence","grid-consistency","spacing","alignment","density","readability","mobile-usability","route-readiness","platform-integration","breakpoint-coverage","image-alt","form-labels","semantic-regions","navigation-clarity","footer-discovery-presence","faq-breadcrumb-hints","public-protected-label-presence","trace-api-mcp-discovery-link-presence"]},"audits":{"deterministic":true,"urlAudit":"public-safe degraded remote DOM inspection; deterministic config/template scoring is active","configAudit":"active"},"exports":["json","html-css","react-tailwind","markdown","design-spec-json","report","spec"],"integrations":[{"key":"phorm","name":"Phorm","url":"https://phorm.platphormnews.com","status":"degraded","publicSafe":true,"boundary":"future-protected","message":"Phorm handoff is scaffolded and reports degraded until a server endpoint is configured."},{"key":"browserops","name":"BrowserOps","url":"https://browserops.platphormnews.com","status":"degraded","publicSafe":true,"boundary":"future-protected","message":"BrowserOps execution is future protected and degraded until an endpoint is configured."},{"key":"docs","name":"Docs","url":"https://docs.platphormnews.com","status":"degraded","publicSafe":true,"boundary":"future-protected","message":"Docs report generation is scaffolded and degraded without a backend endpoint."},{"key":"decks","name":"Decks","url":"https://decks.platphormnews.com","status":"degraded","publicSafe":true,"boundary":"future-protected","message":"Deck summary generation is scaffolded and degraded without a backend endpoint."},{"key":"sheets","name":"Sheets","url":"https://sheets.platphormnews.com","status":"degraded","publicSafe":true,"boundary":"future-protected","message":"Sheets reporting is scaffolded and degraded without a backend endpoint."},{"key":"insights","name":"Insights","url":"https://insights.platphormnews.com","status":"degraded","publicSafe":true,"boundary":"future-protected","message":"Insights ranking/scoring handoff is scaffolded and degraded without a backend endpoint."},{"key":"trace","name":"Trace","url":"https://trace.platphormnews.com","status":"configured","publicSafe":true,"boundary":"public-safe","message":"Trace headers and public trace links are emitted for Layout operations. Server-side export is scaffolded."}],"modelScaffolding":{"configured":false,"provider":"unconfigured","gatewayReady":false,"status":"degraded","message":"No server-side model provider is configured. Layout guidance uses deterministic checks only."},"tools":["list_layout_templates","get_layout_template","create_layout","preview_layout","score_layout","audit_layout_url","audit_layout_config","analyze_grid","check_responsive_layout","check_accessibility_layout","export_layout_json","export_layout_html_css","export_layout_react_tailwind","export_layout_spec","export_layout_markdown","export_layout_design_spec_json","export_layout_report","send_to_phorm","run_browserops_layout_check","get_health","get_info","get_route_compliance","get_discovery_compliance","create_docs_report","create_sheet_report","create_deck_summary","send_to_insights"],"resources":["layout://templates","layout://template/{slug}","layout://layouts","layout://layout/{id}","layout://examples","layout://audits/{id}","layout://standards","layout://scores/{id}","layout://faq","layout://openapi","layout://llms","layout://trust-policy"],"prompts":["generate_responsive_layout","improve_page_layout","analyze_layout_issues","create_dashboard_layout","create_article_layout","create_card_grid_layout","create_form_layout","create_platphorm_standard_layout","explain_layout_score","create_layout_export_plan","human_machine_layout_handoff"],"trustedDomains":["*.platphormnews.com"],"routeStandard":{"expectedCount":44,"implementedCount":44,"missing":[],"degraded":["Server-side persistence is degraded without DATABASE_URL; browser local drafts are active.","Model suggestions are degraded unless a server-only model provider is configured.","Protected execution integrations are scaffolded and open only as public-safe degraded reports unless PLATPHORM_REQUIRE_API_KEY is enabled."],"score":100,"routes":["/api/health","/api/v1/health","/api/docs","/openapi.yaml","/openapi.json","/llms.txt","/llms-full.txt","/llms-index.json","/robots.txt","/sitemap.xml","/sitemap-main.xml","/sitemap-index.xml","/rss.xml","/feed.xml","/manifest.webmanifest","/.well-known/mcp.json","/.well-known/agents.json","/.well-known/ai-plugin.json","/.well-known/security.txt","/.well-known/trust.json","/api/mcp","/api/v1/templates","/api/v1/templates/{slug}","/api/v1/layouts","/api/v1/layouts/{id}","/api/v1/layouts/preview","/api/v1/layouts/score","/api/v1/layouts/export","/api/v1/viewport/check","/api/v1/grid/analyze","/api/v1/accessibility/check","/api/v1/responsive/check","/api/v1/audit/url","/api/v1/audit/config","/api/v1/reports/layout","/api/v1/integrations/status","/api/v1/integrations/phorm","/api/v1/integrations/browserops","/api/v1/integrations/docs","/api/v1/integrations/decks","/api/v1/integrations/sheets","/api/v1/integrations/insights","/api/indexnow","/api/mcp"]},"discoveryCompliance":{"status":"healthy","files":["/api/health","/api/docs","/openapi.yaml","/openapi.json","/llms.txt","/llms-full.txt","/llms-index.json","/robots.txt","/sitemap.xml","/sitemap-main.xml","/sitemap-index.xml","/rss.xml","/feed.xml","/manifest.webmanifest","/.well-known/mcp.json","/.well-known/agents.json","/.well-known/ai-plugin.json","/.well-known/security.txt","/.well-known/trust.json","/api/mcp"],"noDeadSitemapLinks":true,"canonicalSources":["https://platphormnews.com/api/network/graph","https://base.platphormnews.com/sitemap-index.xml"]},"trustPolicy":"https://layout.platphormnews.com/.well-known/trust.json","updatedAt":"2026-05-25T08:33:57.281Z"}