View on GitHub

Lightspeed Core Stack

Lightspeed Core Stack

How to organize PoC output

When a spike includes a proof-of-concept, the validation results should be structured so that reviewers can quickly understand what was tested and what was found. This guide is intentionally principles-first, not prescriptive about filenames — different PoC shapes warrant different artifacts. Use the ones that fit; ignore the ones that don’t.

Where it goes

Place results in docs/design/<feature>/poc-results/. The directory is expected to be removed before the spike PR is merged (see howto-run-a-spike.md, step 10); reviewers read it during review and the spike doc preserves the salient findings.

Principles

  1. A reviewer reading nothing but a top-level report should grasp the essentials. Whatever you call this file (README.md, 01-poc-report.md, summary.txt — pick what fits), it must be the first thing a reviewer opens, and it must stand alone.

  2. Order files by usefulness for the human reviewer, not by the order you produced them. If naming conventions help (numeric prefixes, descriptive names), use them — but don’t reorder for the sake of uniformity.

  3. Separate human-readable summary from machine-readable raw data. A summary that interleaves prose findings with 50KB of raw JSON is unreviewable.

  4. Plain text where humans read; structured formats where machines read. Markdown / .txt for prose; .json / .yaml / .csv for data.

  5. Show, don’t just claim. When a PoC proves “X works”, include evidence: command output, response payload, before/after diff, screenshot, etc.

  6. Cross-reference the spike doc. Each significant finding in the spike doc’s “PoC results” or “Findings discovered during the PoC” section should link back to a specific file in poc-results/.

Two common PoC shapes

Code PoC (mechanism validation)

The PoC is code that demonstrates a mechanism end-to-end (e.g., a synthesizer that produces a config file consumed by a downstream service).

Typical artifacts:

Data / experimental PoC

The PoC runs a controlled experiment and produces measurements (e.g., quality of summarization across N queries with thresholds at {3, 5, 10}).

Typical artifacts:

What a good top-level report contains

Whatever its filename, it should include:

Multiple PoC runs

If the PoC was run multiple times with different parameters, give each run its own descriptive sub-directory:

poc-results/
├── README.md             # one report for the whole spike
├── run-5-queries/
└── run-50-queries/

Avoid timestamp-named sub-directories — they don’t tell a reader what varied between runs.

Removed before merge

PoC results are removed from the branch before the spike PR is merged. They serve their purpose during review and persist in git history (or a tag, if explicitly preserved). The spike doc’s “PoC results” and “Findings discovered during the PoC” sections capture what survives the merge.