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.