writeonce/docs/stories/porch
shoney.arickathil 01df75245f docs(porch): give the framework its own story track, iterations 1-8
- docs/stories/porch/ — a TRACK folder, not a status folder: status still
  lives only in frontmatter. Adds `track: porch` so a query over
  docs/stories/ can tell a porch 3 from a language 3
- 00-story.md carries the sequence, the dependency graph, and a table of
  what the track explicitly does NOT own (binding -> 29, cache -> 18,
  proxy -> 38, metrics -> 30, TLS/templates -> doctrine)
- eight iterations, each with phases, per-phase tasks, Given/When/Then
  criteria, out-of-scope and the forks a spec must settle:
  1 store-backed middleware (limiter + idempotency — needs nothing new,
    first on purpose so the store pattern is proven cheaply)
  2 randomness + cookies (phase A is language-track: a CSPRNG builtin;
    `Resp.headers` being a map cannot emit two Set-Cookie lines)
  3 sessions   4 CSRF   5 routing/response ergonomics (independent)
  6 streaming core (the seam 7 and 8 wait on; chunked-request refusal
    must survive)   7 SSE + compression   8 static + lifecycle hooks
- language iteration 39 -> status: hold, retitled superseded, with a row
  mapping each of its goals to the porch iteration that took it. Kept, not
  deleted: the Fiber study cites it and its randomness argument is what
  this track is built on
- board gains a porch section; board-views gains porch and both-track
  Dataview queries; porch README and the Fiber study §7 point at the track
- no code blocks in any story (plans carry concept and actions in words);
  linkcheck 0 broken / 0 anchors

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-26 20:17:33 +02:00
..
00-story.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
01-store-backed-middleware.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
02-randomness-and-cookies.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
03-sessions.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
04-csrf.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
05-routing-response-ergonomics.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
06-streaming-core.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
07-sse-and-compression.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00
08-static-and-lifecycle.md docs(porch): give the framework its own story track, iterations 1-8 2026-08-26 20:17:33 +02:00