Bygga
Type the product name from the box. Bygga shows every assembly step in 3D, with the parts, screws and tools for each one, and reads it out loud.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗slotscout.ca · Check any spot in British Columbia, rule by rule, before you shoot.
Drop a pin or paste coordinates anywhere in BC and SlotScout shows whether recreational target shooting is restricted there, with the law, the source and the date behind every answer. It never shows green unless every check passed on current data.
This repository builds the site described in BC Shoot Check: Product Requirements (October 18, 2026) and Addendum A, Text-to-Map and Browser Capture, branded as SlotScout. Claude Code sessions start from CLAUDE.md (hard rules); the monthly steps are in RUNBOOK.md.
packages/engine Shared evaluation engine: rule catalogue, coordinate parser, fall-zone compass,
seasonal periods, road notice parser and verdict precedence. Used by the API, app and pipeline.
packages/pipeline Text-to-map pipeline CLI (Addendum A): pull, split, queue, extract, build, validate,
review-packet, test, report, monthly, release. approve and signoff are for people only.
apps/api Check API (Fastify). Reads live official data and runs the engine. Also serves the web app.
apps/web The website (React + MapLibre): map, spot report, spot finder, rule and source pages.
sources/ registry.yaml: every source with owner, URL, method, cadence and freshness limit.
config.toml Pipeline settings (model, thresholds, validation limits). Secrets live only in .env.
inbox/ Files a person drops in by hand (BC Laws copies until API permission arrives).
raw/<YYYY-MM>/ Every pulled file with its SHA-256; GIS layers keep counts and content hashes in manifest.json.
queue/ One task per text unit; answers/run1 and run2 hold the two independent extractions.
prompts/, schema/ Versioned extraction prompts and JSON schemas.
rules/ Built rule features (one file per rule ID), the road notice store and bylaw rule lists.
review/<YYYY-MM>/ Review packets for a person (index.html), decisions and sign-off.
releases/<YYYY-MM>/ Release packages; publishable only after approvals and legal sign-off.
reports/ Change reports, test reports, monthly reports, run logs, status.json.
data/ Release pointer, Wildlife Act coverage, bylaw register, bylaw sites, aliases, regression set.
scripts/ Regression gate, bylaw register and sitemap builders.
docs/ Digitising guide.
The engine is the same code for a single pin, the spot finder and (later) the colour map, so they can never disagree (PRD 8).
Requires Node 22.
npm install
npm run dev # API on :8787 and the web app on :5173 (proxying /v1 to the API)
Open http://localhost:5173. Other commands:
npm test # engine and API tests, including the no-false-green suite
npm run typecheck
npm run build # apps/api/dist/server.mjs and apps/web/dist
npm start # production server on :8787, serving the API and the built site
npm run validate:data # schema checks for registers and rules (make validate)
npm run regression # release gate against live data: fails on any false green
npm run pipeline -- status # the pipeline CLI (see RUNBOOK.md)
npm run register:bylaws # refresh the bylaw register from official boundaries
npm run sitemap # regenerate apps/web/public/sitemap.xml
docker compose up -d web # site and API on http://localhost:8787
docker compose run --rm ingest make monthly # the monthly pipeline (Playwright + Chromium)
docker compose run --rm ingest make status
Both services bind-mount this repository: the site reads rules/, sources/, data/ and reports/ as the pipeline writes them (it reloads within a minute), and everything the pipeline produces lands in the repository so it can be committed and traced. Settings are in .env.example; behind a TLS-inspecting proxy set HTTPS_PROXY and EXTRA_CA_CERTS (a CA bundle mounted into the container), and build with --build-arg HTTPS_PROXY=... --secret id=extra_ca,src=<ca.crt>.
make pull split queue extract build validate review-packet test report # or: make monthly
make release # candidate until signed off
config.toml extractor): api when ANTHROPIC_API_KEY is in .env (Claude API, structured JSON output, server-side refusal fallbacks), agent (Claude Code reads the queue and a fresh subagent does the second run), manual (a person fills the same answer files).bclaws.api_confirmed); until then a person saves copies into inbox/bclaws/.RUNBOOK.md).GET /v1/check?lat=49.41474&lon=-121.7547&type=shotgun_shot&fz=250 gathers, in parallel:
The engine then evaluates every rule in the catalogue (F1 to F6, W1 to W13, P1 to P9, L1 to L4, I1 to I3, O1 to O4, S1 to S7), applies freshness limits from the source register, finds the safe throw directions, and returns the verdict, the 12 green lights and the full checklist. Responses are cached per layer (15 minutes for wildfire layers, hours for the rest), and coordinates are never logged.
Other endpoints: POST /v1/check/batch (up to 100 points), GET /v1/finder, /v1/rules, /v1/rules/{id}, /v1/releases, /v1/sources, /v1/coverage, /v1/pipeline-status, /v1/search, /v1/map-layers, /v1/tiles/{layer}/{z}/{x}/{y}.png, POST /v1/reports. Public and rate-limited to 60 requests per minute per IP.
Working now, against live data:
Still to do before a region can turn green (PRD 13):
reports/ for the latest hand-off report.data/bylaws.json); each bylaw must be found, digitised and reviewed. The register is built from the official boundary layers, which currently hold 160 municipalities and 159 electoral areas; make validate reports the difference until a person identifies the jurisdiction concerned.Contains information licensed under the Open Government Licence – British Columbia and the Open Government Licence – Canada. BC Laws text is never crawled automatically (BC Laws' robots.txt disallows it); a person saves the monthly consolidation into inbox/ until the King's Printer confirms API use in writing. The language model receives public legal text only, never user data. Base maps and imagery are provided by their owners under their own terms.