Bray Sailing Club's published results — from HalSail since 2025, and from
the club's own website before that — ingested as published into the bsc
workspace of
Sail Scoring (app ADR-010): shown exactly as
the club published them and never re-scored.
| Path | What it is |
|---|---|
sources/series.json |
The curated series list — the only hand-written input. |
sources/halsail.com/Result/_Boat/ |
One results fragment per HalSail page, verbatim. |
sources/halsail.com/Result/Public/ |
One series page shell, which carries the club's whole HalSail catalog. |
sources/results.braysailingclub.ie/ |
The 2022–2024 cruiser results (Sail100), standings and race pages, verbatim. |
sources/www.braysailingclub.ie/uploads/ |
Results files the club uploaded to its website: the 2021 cruisers (Sail100) and the 2024 dinghies (Sailwave). |
as-published.config.json |
Emitted from the two above; the input to the app's archive-generate. Committed, and CI checks it is current. |
scripts/ |
Capture, catalog listing and config emission. |
CLARIFICATIONS.md |
Every judgement call made about the published data. |
pnpm install
pnpm capture # fetch every page listed in sources/series.json
pnpm capture --refresh # re-fetch everything
pnpm catalog # list the club's HalSail classes and series
pnpm emit-as-published # series list + captures → as-published.config.json
pnpm typecheck
sources/series.jsonlists each as-published series and the pages it is made of: HalSail pages by HalSailseriesId, older pages by the URL the club's results index links.pnpm capturefetches each HalSail page's results fragment fromhalsail.com/Result/_Boat/{seriesId}— the part ofhalsail.com/Result/Public/{seriesId}that the browser loads after the page shell — and each older page from the club's website, with the race pages a Sail100 page links.pnpm emit-as-publishedreads every capture through the app's parsers, checks each page still carries the title recorded for it, dates each series from the races it published, and writesas-published.config.json.- In the app checkout,
pnpm archive-generate ../bray-archive/as-published.config.jsonbuilds one ingest document per series intoas-published/(not committed). - CI pushes those documents to the
bscworkspace withpnpm cli as-published pushon every push tomain— see.github/workflows/as-published.yml.
The published pages land at /p/bsc/<season>/<event>[/<page>], e.g.
/p/bsc/2026/cruisers/overall or /p/bsc/2026/keelboat-regatta.
pnpm cataloglists every HalSail class and series the club has, marking the ones already archived.- Add an entry to
sources/series.json: a permanentkey, theseasonandslugits URL is built from, a displayname, and its pages. A page'stitleis HalSail's caption for it as captured, or a club page's heading — runpnpm emit-as-publishedwith a guess and it will tell you the real one. A Sail100 page takesracesto carry its race pages; a Sailwave page with several classes lists them assections. pnpm capture, thenpnpm emit-as-published, and commit the series list, the captures and the config together.
A series still being sailed changes under its capture: re-run
pnpm capture --refresh and review the diff before committing it.
Everything the club publishes, 2021–2026: 28 series, 65 pages. What the
club's results pages link to but this archive does not carry, and why, is in
CLARIFICATIONS.md.
| Season | Source | Series |
|---|---|---|
| 2026 | HalSail | Cruisers (Overall, Saturday, Weekday, Coastal, Holiday, Sunday, Instructor Races); Keelboat Regatta; Single Handed Race; Summer Dinghy Series; Midsummer Twilight, Junior and Murdoch regattas |
| 2025-26 | HalSail | Winter Series |
| 2025 | HalSail | Cruisers (Overall, Saturday, Weekday, Coastal, Holiday, Sunday, Instructor Race); Single Handed Race; Sunday Dinghy Series; Midsummer, Junior and Murdoch regattas |
| 2024-25 | HalSail | Winter Series |
| 2024 | Sail100, Sailwave | Cruisers (Overall, Saturday, Weekday, Coastal, Holiday, Sunday); Keelboat Regatta; Sunday Dinghy Series; Midsummer, Murdoch and Junior regattas |
| 2023-24 | Sailwave | Winter Series |
| 2023 | Sail100 | Cruisers (Overall, Saturday, Weekday, Coastal, Holiday); Single Handed Race |
| 2022 | Sail100 | Cruisers (Overall, Saturday, Weekday, Coastal, Holiday); Keelboat Regatta; Single Handed Race |
| 2021 | Sail100 | Cruisers (Overall, Saturday, Weekday, Coastal), standings only |
No competitor-identity manifest yet.
This repo assumes the sibling app checkout exists at ../sailscoring. It
reuses the app's HalSail, Sail100 and Sailwave parsers, capture decoder and
id derivation by relative import (../sailscoring/lib/archive-kit/…) rather than forking
them. The as-published toolkit (parsers, generator, ingest client) stays in
the app; this repo contributes config and captures, not code, to the ingest.
- Code —
scripts/: MIT. - Normalised data & docs —
sources/series.json,as-published.config.json,README.md,SOURCES.md,CLARIFICATIONS.md: CC0 1.0. These are extractions of published facts (series names, dates, structure), and facts are not copyrightable. - Source pages — the verbatim captures under
sources/halsail.com/,sources/results.braysailingclub.ie/andsources/www.braysailingclub.ie/: not covered by either license. These are results published by Bray Sailing Club (on its website, and hosted by HalSail), included only for reproducibility. All rights remain with their owners.