chore: keep the fixture generator scripts and the replay-sample bot
scripts/fixtures/ holds the scripts that produced the 2026-11-11 fixtures, with a README on running them safely into a copy. Run in order they reproduce the content of every fixture they touch. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
This commit is contained in:
1 parent
1e3cea5eac
commit
5062838604
17 files changed
+432
-3
No files matched your search
+2
-1
@@ -17,6 +17,7 @@ The course is complete and green. It teaches functional programming by building
|
||||
| `<track>/src`, `<track>/solutions`, tests | Stubs, finished code, tests, for `js`, `scala`, `fsharp`. Same file names in `src` and `solutions`. |
|
||||
| `fixtures/` | Shared JSON test cases, read by all three tracks. |
|
||||
| `e2e/`, `scripts/e2e.sh` | Playwright end-to-end tests (maintainers only; the tracks have no dependencies). |
|
||||
| `scripts/fixtures/` | The small scripts that generated the 2026-11-11 fixtures, the bot behind the replay sample, and a README saying how to use them safely. |
|
||||
| `scripts/` | `verify.sh`, `check-stubs.sh`, `check-progression.sh`, `typecheck-js.sh`, `mutate.mjs` (+ `mutate-allow.txt`), `smoke.mjs`, `check-links.mjs`, `serve.mjs`. |
|
||||
| `docs/contract.md` | **The canonical contract**: data shapes, every module's rules, constants, pinned values, fixture inventory, required checks. |
|
||||
| `docs/superpowers/specs/` | `2026-10-28-…-design.md` (original design), `2026-11-11-audit-pass.md`, `2026-11-11-course-extensions.md` (twelve items, with the rules every builder followed). |
|
||||
@@ -43,7 +44,7 @@ Environment on the machine this was built on: Node 24; `scala-cli` at `~/.local/
|
||||
## How a change is made here
|
||||
|
||||
1. **Decide the behaviour** and write it into `docs/contract.md` (and a spec under `docs/superpowers/specs/` if it is more than a fix).
|
||||
2. **JavaScript first**: stub with its doc comment, solution, tests, fixtures (generated from the JS solution with a throwaway script, then read by hand), course text.
|
||||
2. **JavaScript first**: stub with its doc comment, solution, tests, fixtures (generated from the JS solution with a small script — see `scripts/fixtures/README.md` — then read by hand), course text.
|
||||
3. **Port to Scala and F#**, touching only that track's directory. Use the same seeds and run counts so pinned values match; if a pinned value differs, the draw order differs — find out why before changing a test.
|
||||
4. **Run every check above** for every track you touched, and the e2e suite for anything a page shows.
|
||||
5. **Record** what you decided in the build log.
|
||||
|
||||
+1
-1
@@ -157,7 +157,7 @@ A second, independent IO: `Pure | Effect(op, k) | FlatMap(io, f)`. `flatMap` onl
|
||||
|
||||
## Fixtures
|
||||
|
||||
Format: `{function, cases: [{name, args, expected}]}`; names are kebab-case sentences. Generated from the JS solutions with throwaway scripts and then read by hand; formatting is `JSON.stringify(x, null, 2)` plus a newline.
|
||||
Format: `{function, cases: [{name, args, expected}]}`; names are kebab-case sentences. Generated from the JS solutions with small scripts (those of 2026-11-11 are kept in `scripts/fixtures/`, with a README) and then read by hand; formatting is `JSON.stringify(x, null, 2)` plus a newline.
|
||||
|
||||
| File | Function | Cases |
|
||||
|---|---|---|
|
||||
|
||||
@@ -137,3 +137,4 @@ Owner approved eleven extensions; spec: `docs/superpowers/specs/2026-11-11-cours
|
||||
- Specs: `specs/2026-11-11-audit-pass.md` (written after the fact) and `specs/2026-11-11-course-extensions.md` (twelve items, marked as built).
|
||||
- Committed on branch `audit-and-extensions` (`edd57f0`), merged into `main` (`c67d81b`) and pushed to origin on the owner's instruction.
|
||||
- `docs/HANDOFF.md` is the starting point for the next maintainer; `notes/2026-11-11-session-log.md` records the day.
|
||||
- The fixture generator scripts and the replay-sample bot, first treated as throwaway, were saved to `scripts/fixtures/` with a README. Run in order into a copy of the fixtures they reproduce every file's content (checked 2026-11-11; `m13-life-update.json` differs in formatting only).
|
||||
Reference in new issue
Block a user