Naming conventions, metadata structure, storage organization, integration patterns, and quality standards for operational evidence on AI Execution Lab.
Evidence is what separates documented failures from useful operational records. A failure report without evidence is a claim. A failure report with a build log, a screenshot of the error state, and a commit reference is a verifiable record. This document defines how evidence is stored, named, typed, and integrated into MDX content on this platform.
Every evidence file follows a single naming pattern:
/public/evidence/[content-slug]/[NNN]-[descriptor]-[YYYY-MM-DD].[ext]
Breakdown:
[content-slug] — the exact slug of the content piece this evidence belongs to (matches the MDX filename without .mdx)[NNN] — zero-padded sequence number, starting at 01. Order reflects chronological sequence within the incident or narrative, not importance.[descriptor] — lowercase, hyphenated, specific. Describes what is shown, not a generic label.[YYYY-MM-DD] — the date the screenshot was taken or the log was captured. This is not the content publication date.[ext] — png for screenshots, txt for logs, svg for diagrams.Examples by evidence type:
| Evidence Type | Example Path |
|---|---|
| Vercel build failure screenshot | /public/evidence/edge-runtime-deployment-failure/01-vercel-build-log-edge-crypto-error-2026-05-10.png |
| Browser devtools network tab | /public/evidence/server-module-client-bundle/02-chrome-network-tab-module-not-found-2026-05-14.png |
| GA4 realtime tracking view | /public/evidence/ga4-cross-domain-tracking-gap/01-ga4-realtime-two-sessions-before-fix-2026-04-20.png |
| Terminal output with error | /public/evidence/environment-variable-missing-production/01-vercel-function-log-undefined-key-2026-04-05.txt |
| Architecture diagram | /public/evidence/knowledge-graph-architecture/01-node-relationship-diagram-2026-05-01.svg |
ℹWhy the date is in the filename, not just the folder
Evidence files are sometimes reused across content pieces or referenced in multiple places. Having the capture date in the filename means the file is self-describing when referenced in isolation — in a PR diff, in a log, or in a link shared outside the platform context.
What makes a good descriptor:
vercel-build-output over screenshotga4-realtime-view, chrome-network-tab, next-build-error-outputimage1, not error, not beforebefore-[descriptor] and after-[descriptor] with the same base descriptorBrowser screenshots, dashboard states, error messages captured in a GUI, rendered page states.
Use for: Vercel dashboard, GA4 reports, browser devtools console, rendered component states (both broken and fixed), GitHub Pages settings, error overlays.
File extension: png
Example path: /public/evidence/next-mdx-remote-v6-blockjs/03-live-platform-homepage-production-2026-05-12.png
Command output, build logs, error traces captured from the command line or a terminal emulator.
Use for: next build output, curl command results, npm/node command output, Git operation output.
File extension: txt
Example path: /public/evidence/server-module-client-bundle/01-next-build-module-not-found-error-2026-05-14.txt
GA4 or Plausible screenshots showing metrics, reports, or realtime data. Must include a visible date range.
Use for: GA4 Realtime showing session counts, Acquisition report showing direct traffic anomaly, Search Console performance data.
File extension: png
Example path: /public/evidence/ga4-cross-domain-tracking-gap/02-ga4-acquisition-direct-traffic-inflated-2026-04-20.png
Vercel build output, GitHub Actions workflow logs. Distinct from terminal output in that these come from CI/CD systems, not local commands.
Use for: Vercel deployment success/failure records, GitHub Actions run logs, build pipeline output.
File extension: txt for raw logs, png for dashboard screenshots of log output.
Example path: /public/evidence/edge-runtime-deployment-failure/01-vercel-deployment-edge-crypto-error-2026-05-10.txt
next build TypeScript output, compilation errors, warning output captured from the build process.
Use for: TypeScript error output, compilation warnings, static generation output, bundle size reports.
File extension: txt
Example path: /public/evidence/server-module-client-bundle/01-next-build-fs-module-import-trace-2026-05-14.txt
Browser devtools screenshots showing a debugging session in progress: network requests, console output, application state inspection.
Use for: Chrome DevTools Network tab showing failed requests, Console tab showing errors, Application tab showing cookie or storage state.
File extension: png
Example path: /public/evidence/wordpress-rest-api-auth-failure/01-curl-401-response-url-encoded-password-2026-04-28.png
SVG diagrams showing system architecture, component relationships, data flow.
Use for: module dependency graphs, deployment architecture diagrams, data flow diagrams.
File extension: svg
Example path: /public/evidence/execution-artifacts-architecture/01-artifact-storage-system-diagram-2026-05-01.svg
Paired screenshots showing state before and after a change. The pair must be filed as two separate evidence files using before- and after- descriptors with matching base names.
Use for: dashboard states before and after a fix, rendered component output before and after, deployment status before and after resolution.
File extension: png
Example files:
/public/evidence/next-mdx-remote-v6-blockjs/01-vercel-build-failure-next-mdx-remote-2026-05-12.png/public/evidence/next-mdx-remote-v6-blockjs/02-vercel-production-deployments-ready-2026-05-12.pngEvidence files live under /public/evidence/. One subdirectory per content piece. The subdirectory name must match the content slug exactly.
/public/evidence/
edge-runtime-deployment-failure/
01-vercel-build-log-edge-crypto-error-2026-05-10.png
02-vercel-deployment-fixed-2026-05-10.png
next-mdx-remote-v6-blockjs/
01-vercel-build-failure-next-mdx-remote-2026-05-12.png
02-vercel-production-deployments-ready-2026-05-12.png
03-live-platform-homepage-production-2026-05-12.png
server-module-client-bundle/
01-next-build-fs-module-import-trace-2026-05-14.txt
Rules:
edge-runtime-deployment-failure not edge-runtime or EdgeRuntime./public/evidence/[failure-slug]/./public/evidence/[case-study-slug]/./public/evidence/[doc-slug]/.⚠Slug matching is not optional
The content slug and the evidence subdirectory must match exactly. MDX components that reference evidence paths use the slug to construct the path. A mismatch results in broken images or 404s that are easy to miss on dark backgrounds.
Standards are per evidence type. Meeting these standards is a pre-publication requirement, not a preference.
.txt), not as a screenshot of a terminal window. Plain text is searchable, copyable, and renders cleanly in the TerminalBlock component.The platform provides six components for evidence display. The table maps evidence types to the correct component.
| Evidence Type | Component | Notes |
|---|---|---|
| Screenshot (single) | EvidenceBlock with type="screenshot" | Wrap  in EvidenceBlock |
| Screenshot collection | Gallery | Pass array of {src, alt, caption} |
| Before/after pair | BeforeAfter | Requires both files before use |
| Deployment/build log | DeploymentLog | Structured log with level-coded entries |
| Terminal output | TerminalBlock (code block) | Use ```bash or ```text fence |
| Commit reference | ExecutionEvidence | Links to commit, shows date and repo |
| Any type with metadata | EvidenceBlock | Wrapper with type badge, date, context |
EvidenceBlock is the wrapper component for any evidence item that needs a metadata header — type badge, capture date, and context description. Use it when a screenshot or log needs to be clearly attributed within a longer document.
<EvidenceBlock
type="screenshot"
title="Vercel build output — edge crypto error"
date="2026-05-10"
context="Build failure immediately after adding edge runtime export to opengraph-image.tsx"
commitRef="fix: remove edge runtime from opengraph-image"
quality="verified"
>

</EvidenceBlock>
Valid type values for EvidenceBlock: screenshot, terminal, analytics, deployment-log, build-log, debugging, architecture, before-after, search-console.
Gallery renders a lightbox-enabled image grid. Use for three or more related screenshots from a single incident.
<Gallery images={[
{
src: "/evidence/next-mdx-remote-v6-blockjs/01-vercel-build-failure-next-mdx-remote-2026-05-12.png",
alt: "Vercel build log showing next-mdx-remote v6 upgrade deployment — post-deploy component rendering failure",
caption: "01 — Vercel build output during next-mdx-remote v6 incident"
},
{
src: "/evidence/next-mdx-remote-v6-blockjs/02-vercel-production-deployments-ready-2026-05-12.png",
alt: "Vercel production deployments dashboard — all deployments in Ready state after fix",
caption: "02 — All production deployments restored after blockJS: false fix"
}
]} />
BeforeAfter renders a side-by-side or slider comparison. Requires both screenshot files to exist before the component is used in content.
<BeforeAfter
before="/evidence/next-mdx-remote-v6-blockjs/01-vercel-build-failure-next-mdx-remote-2026-05-12.png"
after="/evidence/next-mdx-remote-v6-blockjs/02-vercel-production-deployments-ready-2026-05-12.png"
beforeLabel="Build Failure"
afterLabel="All Deployments Ready"
height={420}
/>
ExecutionEvidence links content to a specific commit and renders a metadata footer showing commit reference, date, and repository. Use in every failure report where a fix was committed.
<ExecutionEvidence
commitRef="fix: remove edge runtime from opengraph-image"
date="2026-05-10"
repo="ai-execution-lab"
context="Fix deployed to production — confirmed working in Vercel dashboard"
/>
ExecutionEvidence component present with commit reference and date/public/evidence/[failure-slug]/ with correct naming conventionOperationalTimeline references evidence files where available (screenshot path or commit ref in relevant timeline steps)/public/evidence/[case-study-slug]/⬡Evidence is part of the content, not decoration
A failure report without evidence is reconstructed from memory and carries implicit uncertainty. Evidence — specifically, a build log with an error trace and a screenshot of the resolved dashboard — establishes that the failure is documented from the actual event, not inferred after the fact. When a future operator hits the same failure, they need to know the resolution was verified in production, not just proposed as a fix. The evidence is what carries that verification.
The most frequent pre-publication evidence issues:
/public/evidence/ doesn't match the MDX file slug exactly. Check for _ vs -, case mismatches, or abbreviated names..txt.