Skip to content

docs(spec) scaffold complete spec system + showcase README rewrite#64

Merged
jkeeley2073 merged 1 commit into
mainfrom
Dev-SpecSystemScaffold
May 4, 2026
Merged

docs(spec) scaffold complete spec system + showcase README rewrite#64
jkeeley2073 merged 1 commit into
mainfrom
Dev-SpecSystemScaffold

Conversation

@jkeeley2073
Copy link
Copy Markdown
Contributor

Summary

Establishes the comprehensive spec-doc system that makes the project's "enterprise reference application" goal mechanically checkable. The four load-bearing docs (vision / guardrails / build-spec / quality-spec) canonicalize what was previously scattered across CLAUDE.md and session-spanning memory, and replace scraper_plan_v4.md (Phase-1-only) and parallel_execution_plan.md (now historical) as the project's master plan and quality framework.

The README is rewritten to lead with the showcase positioning instead of "scraper for sternpinball.com" — manufacturer count corrected (10 ISourceScrapers across 8 manufacturers + OPDB), test count updated (507 vs the stale "7 tests pass"), Aspire foundation surfaced, two-tier deploy explained, doc tree linked at the top.

CLAUDE.md and the /local-review skill drop their XML-doc-completeness references per the explicit feedback memory; XML doc comments are out of scope unless a public NuGet package ships.

.markdownlint.json is added at the repo root with MD024: siblings_only (allow phase-template repeated subheadings — every phase legitimately reuses the same ### Scope / ### Exit criteria / etc. structure) and MD013: false (long-line prose is the existing convention across all spec docs and ADRs).

Test Plan

  • Docs-only PR; no code paths affected. Build state unchanged from main.
  • dotnet build PinballWizard.slnx --nologo and dotnet test PinballWizard.slnx are expected to remain green (507 / 507).
  • Markdownlint warnings reviewed and addressed via the project-level config; remaining warnings are intentional pre-existing patterns the config now allows.
  • Spec docs cross-link consistently: every docs/*.md reference resolves; ADR pointers (0012, 0013) are clearly marked as in-flight Phase 2 work, not committed in this PR.

Out of Scope

  • Phase 2 execution. Phase 2 is fully specified in docs/build-spec.md (9 scope items, 18 exit criteria, 8 risks) but no Phase 2 implementation PRs land here. ADR-0012 (Cosmos schema-vs-data-plane) is the natural first follow-up.
  • Phase 3–7+ detail specs. Those phases are scaffolded as placeholders; full detail gets drafted phase-by-phase when each is approached.
  • Strategy Tracker / Dream Game phase specs. Listed as Phase 7+ candidates pointing at the existing concept docs; full phase spec lands when promoted out of the deferred-features index.
  • License decision. README still says "No license file yet; reach out before reusing." Tracked separately.

Checklist

  • CI is green (build + test + coverage + CodeQL + sanitization) — will verify after the workflows run
  • PR title follows the Conventional Commits format
  • If this is a new architectural decision, an ADR has been added — N/A; this PR establishes the spec system that ADRs 0012/0013 will live in. Those ADRs are scoped to Phase 2 and ship in their own PRs.
  • If user-visible behavior changes, README.md and/or docs/ are updated — yes, this PR is the doc update
  • If a memory is now stale, it has been updated or removed — project_pinballwizard.md updated earlier this session to reference the spec docs as canonical; project_phased_build_sequence.md and project_parallel_execution_plan.md flagged as historical
  • No TODO / FIXME / commented-out code committed
  • No new entries in <NoWarn> without justification — N/A; no code

Pre-push self-audit (additive PRs)

N/A for this PR — docs-only, no scraper / options class / extension / additive code surface. Per guardrails.md § "Per-PR gate" and CLAUDE.md § "PR self-audit", "Doc-only PRs and pure dependency bumps may skip" the audit. Identity check still verified:

  • git log -1 --format='%an <%ae>'Jim Keeley <94459922+jkeeley2073@users.noreply.github.com>

🤖 Generated with Claude Code

Establish the comprehensive spec-doc system that makes the project's
"enterprise reference application" goal mechanically checkable, with
guardrails and quality gates that span from per-PR audits through
launch readiness.

Adds:
- docs/vision.md — showcase positioning + prospect journeys + what this
  is NOT + why pinball as the vehicle
- docs/guardrails.md — seven main goals; scope discipline (three-bucket
  triage); decision framework (autonomous-vs-surface table); per-PR /
  per-phase / pre-public-launch gates; risk register with 10 initial
  entries; spec maintenance triggers; decision-log spec; build-time
  and run-time escalation triggers; monthly self-evaluation cadence
- docs/build-spec.md — phased plan with Phase 0/1 retrospectives;
  Phase 2 fully specified (9 scope items, 18 exit criteria, 8 risks);
  Phases 3-7+ scaffolded; comprehensive deferred-features index
- docs/quality-spec.md — every quality gate (current + future) across
  code, tests, review, docs, ops, accessibility, security, cost; the
  ratchet rule (never lower a gate); XML doc completeness explicitly
  out of scope
- docs/decision-log.md — scaffolded with format definition and
  ADR-vs-log threshold
- .markdownlint.json — project-wide MD024 siblings_only (allow phase-
  template repeated subheadings) and MD013 disabled (long-line prose
  is the existing convention)

Updates:
- README.md — showcase-first rewrite with architecture diagram, current
  phase status, doc tree, accurate test/manufacturer counts, two-tier
  deploy explanation pointing at ADR-0012/0013 (in-flight per Phase 2)
- CLAUDE.md — adds Showcase obligations section; tightens locked
  invariants by pointing at the spec docs; explicitly de-scopes XML
  doc comments per feedback memory
- .claude/skills/local-review/SKILL.md — drops XML doc completeness
  check from category #7

The four spec docs (vision/guardrails/build-spec/quality-spec) are
intended to be load-bearing for the project's lifetime; they
canonicalize what was previously scattered across CLAUDE.md and
session-spanning memory. Per guardrails.md spec maintenance, these
docs update in the same PR as the work they describe — never as
follow-up.
@jkeeley2073 jkeeley2073 added the claude-code Generated with Claude Code label May 4, 2026
@jkeeley2073 jkeeley2073 merged commit d28d050 into main May 4, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-code Generated with Claude Code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant