Spaces:
Running
Running
Download library.json from willykeenan/contextlib: direct link, hf CLI and curl.
- Browser
- Download file 20.6 kB
-
https://huggingface.co/spaces/willykeenan/contextlib/resolve/main/library.json
- Command line
-
hf download hf://spaces/willykeenan/contextlib/library.json
-
curl -L -o library.json https://huggingface.co/spaces/willykeenan/contextlib/resolve/main/library.json
20.6 kB
| { | |
| "format": "contextlib/1", | |
| "library": { | |
| "created": "2026-09-01T12:00:00Z", | |
| "format": "contextlib/1", | |
| "library_id": "3f1a0c8e-9b24-4d6a-8e71-2c0b5d4a91f0" | |
| }, | |
| "projects": [ | |
| { | |
| "brief": "# Lighthouse App\n\n**Purpose:** Harbor dashboard that coordinates lamp status, fog signals, and vessel traffic for a fictional headland light.\n\n**Generated:** 2026-09-26T16:14:46Z\n\n## Current decisions\n\n- **Use keeper logs as the lamp-status source of truth** — Decision: Lamp status on the harbor board is taken from keeper logs, not from AIS.\n\n## Open requirements\n\n- **Fog-signal schedule must work unplugged** — Requirement: The fog-signal schedule can be read and updated with the SSD unplugged and with no network.\n- **Show live lamp character on the harbor board** — Requirement: The harbor board shows the current lamp character (for example Fl W 15s), the time it was signed, and wh...\n\n## Key facts\n\n- Fact: Mean tidal range at the headland is 3.2 metres.\n- Fact: The headland lamp character is Fl W 15s — a white flash every 15 seconds.\n\n## Recent returns\n\n- **Keeper trial 20 Sep 2026** — Return: First keeper trial, 20 September 2026.\n\n## Review due\n\n0 records due on or before 2026-09-26.\nNext review 2026-10-14.\n\n## Glossary (short)\n\n- **character** — The published flash pattern of a light, written in the light-list notation (for example Fl W 15s).\n- **watch** — A four-hour keeper shift. The harbor board groups log lines by watch.\n", | |
| "meta": { | |
| "created": "2026-09-01T12:00:00Z", | |
| "name": "Lighthouse App", | |
| "owners": [ | |
| "mara" | |
| ], | |
| "purpose": "Harbor dashboard that coordinates lamp status, fog signals, and vessel traffic for a fictional headland light.", | |
| "review_defaults": { | |
| "brief-note": 30, | |
| "decision": 180, | |
| "fact": 30, | |
| "glossary": 365, | |
| "lesson": 365, | |
| "requirement": null, | |
| "return": null, | |
| "source": 90 | |
| }, | |
| "slug": "lighthouse-app" | |
| }, | |
| "records": [ | |
| { | |
| "body": "**Note:** Week of 21 September — lamp board is live; fog form is the open gap.\n\n**Load in brief:** Harbor masters should see the two current requirements and the keeper-trial return.\n\n**Review:** Revisit after the next fog, or by 2026-10-21.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "a956bf83ef17fa5288ee5d75f5fe1cb2750c7615c6c4951818e9d0bad8b39a0c", | |
| "created": "2026-09-21T09:30:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "project:BRIEF.md" | |
| }, | |
| { | |
| "ref": "project:returns/2026-09-20_keeper-trial-20-sep-2026_e5f7.md" | |
| } | |
| ], | |
| "id": "note-20260921-a7b8", | |
| "project": "lighthouse-app", | |
| "review_by": "2026-10-21", | |
| "scope": { | |
| "lane": "brief", | |
| "team": "harbor-master" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "brief", | |
| "weekly" | |
| ], | |
| "title": "Week of 21 Sep briefing", | |
| "type": "brief-note" | |
| }, | |
| "path": "notes/2026-09-21_week-of-21-sep-briefing_a7b8.md", | |
| "supersession_chain": [ | |
| "note-20260921-a7b8" | |
| ] | |
| }, | |
| { | |
| "body": "**Return:** First keeper trial, 20 September 2026.\n\n**User outcome:** Two keepers ran a full watch using the local library on an SSD. Lamp status stayed current. Fog events were logged on paper when the hut Wi-Fi dropped.\n\n**Remaining gaps:** Fog form still posted to the WAN first; offline queue was a prototype.\n\n**Next actor:** keepers, to trial the offline form on the next fog.\n", | |
| "meta": { | |
| "author": "service:capture", | |
| "body_sha256": "158a7071f26531af7cede68aff3554820e0e28f164d806352d7ab6f1d9285d25", | |
| "created": "2026-09-20T22:00:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "ssd:exports/keeper-trial.zip" | |
| }, | |
| { | |
| "ref": "room:harbor#12" | |
| }, | |
| { | |
| "ref": "note:two keepers, one full watch, SSD in the hut" | |
| } | |
| ], | |
| "id": "ret-20260920-e5f7", | |
| "project": "lighthouse-app", | |
| "review_by": null, | |
| "scope": { | |
| "lane": "trial", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "trial", | |
| "keepers", | |
| "ssd" | |
| ], | |
| "title": "Keeper trial 20 Sep 2026", | |
| "type": "return" | |
| }, | |
| "path": "returns/2026-09-20_keeper-trial-20-sep-2026_e5f7.md", | |
| "supersession_chain": [ | |
| "ret-20260920-e5f7" | |
| ] | |
| }, | |
| { | |
| "body": "**Lesson:** Fog-log forms that require a network round-trip get skipped. Offline-first forms get filled.\n\n**Context:** During the 20 Sep keeper trial, three fog events were missing from the server log and present in the paper book.\n\n**What to do:** Write records to local files; sync when the link is back. Never block a keeper on HTTP.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "d8ddd1d4d3bc81ffb4d2c01cdc6b277a6f44f4be76e7c6ed3e834451abdc6dbf", | |
| "created": "2026-09-20T21:10:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "project:returns/2026-09-20_keeper-trial-20-sep-2026_e5f7.md" | |
| }, | |
| { | |
| "ref": "note:three fog events in the paper book, missing from the WAN log" | |
| } | |
| ], | |
| "id": "les-20260920-56ef", | |
| "project": "lighthouse-app", | |
| "review_by": "2027-09-20", | |
| "scope": { | |
| "lane": "fog-signal", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "fog", | |
| "offline", | |
| "forms" | |
| ], | |
| "title": "Offline-first forms beat networked fog logs", | |
| "type": "lesson" | |
| }, | |
| "path": "lessons/2026-09-20_offline-first-forms-beat-networked-fog-logs_56ef.md", | |
| "supersession_chain": [ | |
| "les-20260920-56ef" | |
| ] | |
| }, | |
| { | |
| "body": "**Fact:** Mean tidal range at the headland is 3.2 metres.\n\n**How we know:** Harbour authority tide tables for 2026, station Headland Steps.\n\n**How to verify:** Compare a spring-tide high/low pair against 3.2 m ± 0.2 m.\n", | |
| "meta": { | |
| "author": "claude:harbor-trial", | |
| "body_sha256": "885875ea7956fe4c6712549c39eb73dd9c8dd3dcb7276f180291bd18cabb3b26", | |
| "created": "2026-09-14T18:20:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "note:Harbour authority tide tables 2026, station Headland Steps" | |
| }, | |
| { | |
| "ref": "url:https://www.iala.int/" | |
| } | |
| ], | |
| "id": "fact-20260914-34cd", | |
| "project": "lighthouse-app", | |
| "review_by": "2026-10-14", | |
| "scope": { | |
| "lane": "tides", | |
| "team": "harbor-master" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "tide", | |
| "headland" | |
| ], | |
| "title": "Mean tidal range at the headland is 3.2 metres", | |
| "type": "fact" | |
| }, | |
| "path": "facts/2026-09-14_mean-tidal-range-at-the-headland-is-3-2-metres_34cd.md", | |
| "supersession_chain": [ | |
| "fact-20260914-34cd" | |
| ] | |
| }, | |
| { | |
| "body": "**Fact:** The headland lamp character is Fl W 15s — a white flash every 15 seconds.\n\n**How we know:** Signed keeper log 2026-09-14 and the published light list.\n\n**How to verify:** A 60-second observation contains four flashes.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "94802d454528eac4765ce48e005f0b0db98544097b703518d126c9e87e1d5ab8", | |
| "created": "2026-09-14T18:05:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "note:signed keeper log 2026-09-14 watch 2" | |
| }, | |
| { | |
| "ref": "url:https://www.iala.int/" | |
| } | |
| ], | |
| "id": "fact-20260914-12ab", | |
| "project": "lighthouse-app", | |
| "review_by": "2026-10-14", | |
| "scope": { | |
| "lane": "harbor-board", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "lamp", | |
| "character" | |
| ], | |
| "title": "Lamp character is Fl W 15s", | |
| "type": "fact" | |
| }, | |
| "path": "facts/2026-09-14_lamp-character-is-fl-w-15s_12ab.md", | |
| "supersession_chain": [ | |
| "fact-20260914-12ab" | |
| ] | |
| }, | |
| { | |
| "body": "**Requirement:** The fog-signal schedule can be read and updated with the SSD unplugged and with no network.\n\n**Why:** Fog does not wait for a WAN. Keepers already work from the hut with a local clone of the library.\n\n**Acceptance:** `ctxlib brief lighthouse-app` and the fog panel both load from local files. An update written offline syncs later with `ctxlib sync`.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "07bd91d04a7fdf28b5227669657a06f76816591fd687918f8fc596366c8e6c26", | |
| "created": "2026-09-13T08:40:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "note:hut Wi-Fi drops in fog" | |
| }, | |
| { | |
| "ref": "ssd:exports/keeper-trial.zip" | |
| }, | |
| { | |
| "ref": "room:harbor#4" | |
| } | |
| ], | |
| "id": "req-20260913-789a", | |
| "project": "lighthouse-app", | |
| "review_by": null, | |
| "scope": { | |
| "lane": "fog-signal", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "fog", | |
| "offline", | |
| "ssd" | |
| ], | |
| "title": "Fog-signal schedule must work unplugged", | |
| "type": "requirement" | |
| }, | |
| "path": "requirements/2026-09-13_fog-signal-schedule-must-work-unplugged_789a.md", | |
| "supersession_chain": [ | |
| "req-20260913-789a" | |
| ] | |
| }, | |
| { | |
| "body": "**Term:** watch\n\n**Meaning:** A four-hour keeper shift. The harbor board groups log lines by watch.\n\n**Do not confuse with:** A vessel-traffic watch officer, which is a different roster.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "7cddf40411e99810e085f22606246e8161655ef69e883ddc9d9ea80cac389b00", | |
| "created": "2026-09-12T11:05:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "note:four-hour keeper shift on the headland roster" | |
| }, | |
| { | |
| "ref": "project:GLOSSARY.md" | |
| } | |
| ], | |
| "id": "glo-20260912-90b2", | |
| "project": "lighthouse-app", | |
| "review_by": "2027-09-12", | |
| "scope": { | |
| "lane": "roster", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "glossary", | |
| "roster" | |
| ], | |
| "title": "watch", | |
| "type": "glossary" | |
| }, | |
| "path": "glossary/2026-09-12_watch_90b2.md", | |
| "supersession_chain": [ | |
| "glo-20260912-90b2" | |
| ] | |
| }, | |
| { | |
| "body": "**Term:** character\n\n**Meaning:** The published flash pattern of a light, written in the light-list notation (for example Fl W 15s).\n\n**Do not confuse with:** The AIS aid-to-navigation type, which names the structure, not the flash pattern.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "405ea183ec43bbfda3e1a8d818958eb1a6d061fbfad818745893c6f1e4a4938e", | |
| "created": "2026-09-12T11:00:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "url:https://www.iala.int/" | |
| }, | |
| { | |
| "ref": "note:light-list notation Fl W 15s" | |
| } | |
| ], | |
| "id": "glo-20260912-78a1", | |
| "project": "lighthouse-app", | |
| "review_by": "2027-09-12", | |
| "scope": { | |
| "lane": "harbor-board", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "glossary", | |
| "lamp" | |
| ], | |
| "title": "character", | |
| "type": "glossary" | |
| }, | |
| "path": "glossary/2026-09-12_character_78a1.md", | |
| "supersession_chain": [ | |
| "glo-20260912-78a1" | |
| ] | |
| }, | |
| { | |
| "body": "**Requirement:** The harbor board shows the current lamp character (for example Fl W 15s), the time it was signed, and whether it is stale.\n\n**Why:** A harbor master glancing at the wall must know what the light is doing without opening the log.\n\n**Acceptance:** A signed log line appears on the board. A log older than 15 minutes shows a stale badge. The character string matches the glossary term.\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "9fe726fcc9a05e428d8a37ba1f0c15f8aa0460b8b71cbe4912e924b88fa704dd", | |
| "created": "2026-09-12T10:15:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "project:decisions/2026-09-12_use-keeper-logs-as-the-lamp-status-source-of-truth_a1b2.md" | |
| }, | |
| { | |
| "ref": "note:harbor master wall glance in under two seconds" | |
| } | |
| ], | |
| "id": "req-20260912-e5f6", | |
| "project": "lighthouse-app", | |
| "review_by": null, | |
| "scope": { | |
| "lane": "harbor-board", | |
| "team": "harbor-master" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "lamp", | |
| "board", | |
| "character" | |
| ], | |
| "title": "Show live lamp character on the harbor board", | |
| "type": "requirement" | |
| }, | |
| "path": "requirements/2026-09-12_show-live-lamp-character-on-the-harbor-board_e5f6.md", | |
| "supersession_chain": [ | |
| "req-20260912-e5f6" | |
| ] | |
| }, | |
| { | |
| "body": "**Decision:** Lamp status on the harbor board is taken from keeper logs, not from AIS.\n\n**Why:** AIS reports the ship, not the light. Keepers already record the character, eclipse, and outages in the log. The board must show what the light is doing, even when a vessel's transponder is dark.\n\n**Consequences:** The keeper log is a first-class input. AIS remains a traffic overlay. If the log is late, the board shows the last signed character and a stale badge.\n\n**How to verify:** With AIS off, posting a keeper log line updates the lamp panel within one refresh.\n", | |
| "meta": { | |
| "approved_by": "mara — \"files first, the light is what the keeper signed\"", | |
| "author": "mara", | |
| "body_sha256": "b8c437f51c86f2c028a51cb213f5ef7017f4565368b55a2467b2da155523c799", | |
| "created": "2026-09-12T09:00:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "note:keeper log 2026-09-12" | |
| }, | |
| { | |
| "ref": "url:https://www.iala.int/" | |
| }, | |
| { | |
| "ref": "project:BRIEF.md" | |
| } | |
| ], | |
| "id": "dec-20260912-a1b2", | |
| "project": "lighthouse-app", | |
| "review_by": "2027-03-11", | |
| "scope": { | |
| "lane": "harbor-board", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [ | |
| "dec-20260905-c0de" | |
| ], | |
| "tags": [ | |
| "lamp", | |
| "keeper-log", | |
| "ais" | |
| ], | |
| "title": "Use keeper logs as the lamp-status source of truth", | |
| "type": "decision" | |
| }, | |
| "path": "decisions/2026-09-12_use-keeper-logs-as-the-lamp-status-source-of-truth_a1b2.md", | |
| "supersession_chain": [ | |
| "dec-20260905-c0de", | |
| "dec-20260912-a1b2" | |
| ] | |
| }, | |
| { | |
| "body": "**Source:** IALA NAVGUIDE — Aids to Navigation Manual.\n\n**What we take from it:** Light-character notation, fog-signal categories, and the rule that the published character is the one mariners will look for.\n\n**Locator:** url:https://www.iala.int/\n", | |
| "meta": { | |
| "author": "mara", | |
| "body_sha256": "3336149cd4c37aa684954549572e596f6c2dba496aa69d415fc9c91146cfbcfe", | |
| "created": "2026-09-10T13:00:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "url:https://www.iala.int/" | |
| }, | |
| { | |
| "ref": "note:NAVGUIDE Aids to Navigation Manual" | |
| } | |
| ], | |
| "id": "src-20260910-c3d4", | |
| "project": "lighthouse-app", | |
| "review_by": "2026-12-09", | |
| "scope": { | |
| "lane": "references", | |
| "team": "harbor-master" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "current", | |
| "superseded_by": null, | |
| "supersedes": [], | |
| "tags": [ | |
| "iala", | |
| "character", | |
| "fog" | |
| ], | |
| "title": "IALA Maritime Buoyage System", | |
| "type": "source" | |
| }, | |
| "path": "sources/2026-09-10_iala-maritime-buoyage-system_c3d4.md", | |
| "supersession_chain": [ | |
| "src-20260910-c3d4" | |
| ] | |
| }, | |
| { | |
| "body": "**Decision:** Poll AIS every five seconds and treat the nearest aid-to-navigation report as lamp status.\n\n**Why:** We wanted a live feed without waiting on keepers.\n\n**Consequences:** The board lied whenever AIS lagged or an AtoN transponder was offline.\n\n**How to verify:** (superseded — see dec-20260912-a1b2)\n", | |
| "meta": { | |
| "author": "codex:lighthouse-1", | |
| "body_sha256": "389bcf3c92bdf74fcb0cb5c25d5b0d78d76418263daa4d54ca17bacff7e519e6", | |
| "created": "2026-09-05T16:20:00Z", | |
| "evidence": [ | |
| { | |
| "ref": "note:early prototype treated AtoN reports as the lamp" | |
| }, | |
| { | |
| "ref": "url:https://www.iala.int/" | |
| } | |
| ], | |
| "id": "dec-20260905-c0de", | |
| "project": "lighthouse-app", | |
| "review_by": "2027-03-04", | |
| "scope": { | |
| "lane": "harbor-board", | |
| "team": "keepers" | |
| }, | |
| "sensitivity": "normal", | |
| "status": "superseded", | |
| "superseded_by": "dec-20260912-a1b2", | |
| "supersedes": [], | |
| "tags": [ | |
| "lamp", | |
| "ais" | |
| ], | |
| "title": "Poll AIS every five seconds for lamp status", | |
| "type": "decision" | |
| }, | |
| "path": "decisions/superseded/2026-09-05_poll-ais-every-five-seconds-for-lamp-status_c0de.md", | |
| "supersession_chain": [ | |
| "dec-20260905-c0de", | |
| "dec-20260912-a1b2" | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| } | |