Skip to content

Simplify and harden Launchpad architecture - #27

Merged
programmable-banking-community merged 4 commits into
mainfrom
squad/architecture-hardening
Nov 9, 2026
Merged

programmable-banking-community merged 4 commits into
mainfrom
squad/architecture-hardening

Conversation

@programmable-banking-community

@programmable-banking-community programmable-banking-community commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Simplifies Launchpad and makes its product rules testable, while keeping it static, credential-free and mock-first.

  • Removed scaffolds: artifacts/api-server, artifacts/mockup-sandbox and lib/{db,api-spec,api-zod,api-client-react}. None of them is used by the site, its tests, its build or its tooling.
  • Demo registration (FR-11/P1-6): a kit without a demo is now a type error and a test failure. There is no fallback demo.
  • Kits 1–6: each now has one shared pure engine used by both the browser demo and the downloaded script, like kits 7–9. Parity tests check the two agree.
  • Card Guard: the script is renamed card-guard.mjs, and amounts use the en-ZA format in both places.
  • Status footer: the copy comes from one place and uses the approved wording from the guardrails doc. The sandbox and production-keys wording is removed.
  • Tests: all 12 architectural rules (invariants) have an automated test. Axe accessibility checks now also run at 320px and on the 404 page, containment checks cover all 9 kits, and unit tests are blocked from making network calls.
  • CI: every deterministic gate runs on pull requests. Runners use Ubuntu 24.04, Node comes from .nvmrc, and browser tests run in the Playwright v1.64.1 container. The network-dependent API and source reviews run on a schedule only.
  • Docs: updated to describe what is actually implemented.

Closes #

Type of change

  • Kit content or new kit
  • Website feature or fix
  • Documentation
  • Tooling or CI
  • Other (describe below)

Checklist

  • I ran the relevant tests (see CONTRIBUTING.md) and they pass (except the responsive suite: see the notes below)
  • No secrets, credentials, tokens or real account or customer data are included
  • Mock data is fictional and dry-run only. No code calls a live bank API
  • Attribution, licence status and source-review date are verified for any community-inspired content
  • Documentation is updated where the change affects it
  • Screenshots are attached for UI changes, at mobile and desktop widths (the screenshot baselines will be regenerated in the CI container)

Notes for reviewers

These were run locally on macOS with Node 25.9:

Command Result
pnpm install --frozen-lockfile passed
pnpm run typecheck passed
pnpm --dir scripts run test:offline 94/94 and 8/8 passed
test:social 9/9 passed
Build at / and at the subpath both passed
test:static 159 passed, 1 skipped
test:responsive (CI, pinned container) passed; baselines regenerated in the container

The 23 responsive failures were screenshot-only. The baselines were regenerated in the pinned container and committed. shell-focus had a stale #root header selector, fixed by using the banner role. All 5 required checks pass.

artifacts/starter-kits/build/generate-learning-source.mjs is no longer referenced. Deleting it was blocked by the organisation's content exclusion policy, so a maintainer needs to remove it by hand.

- Remove unused api-server, mockup-sandbox and lib/* scaffolds
- Fail-loud typed demo registry (KitSlug), no fallback demo
- Shared pure engines for kits 1-6 with browser/download parity tests
- Single engine-source generator with stale-output check
- Single status wording; guardrails-approved copy
- Architectural invariant, a11y (320px, 404) and containment tests
- CI: all deterministic gates on PRs, pinned runners/Node/Playwright container
- Docs aligned to the implemented architecture

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… selector

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rdening

# Conflicts:
#	artifacts/api-server/package.json
#	pnpm-lock.yaml
@programmable-banking-community
programmable-banking-community merged commit f191b61 into main Nov 9, 2026
5 checks passed
@programmable-banking-community
programmable-banking-community deleted the squad/architecture-hardening branch November 9, 2026 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant