尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
See where tickets happen. Understand why. Fight yours.
A UK driver tool combining historical PCN enforcement intelligence with PCN
document analysis, deadline tracking, evidence management and evidence-based
challenge drafting.
PCNWatch provides information and document-preparation tools. It does not
provide legal advice and does not guarantee that a challenge will succeed.
Read docs/architecture.md for the full assessment,
including what is verified, what is built but unexercised, and what needs a human
before launch.檢視完整 README ↗See where tickets happen. Understand why. Fight yours.
A UK driver tool combining historical PCN enforcement intelligence with PCN document analysis, deadline tracking, evidence management and evidence-based challenge drafting.
PCNWatch provides information and document-preparation tools. It does not provide legal advice and does not guarantee that a challenge will succeed.
| Build | Passing |
| Lint | Clean |
| Unit tests | 255 passing |
| Browser tests | 57 passing (Playwright, desktop + mobile) |
| Database tests | 3 suites against real PostgreSQL 16 + PostGIS 3.4 |
| Enforcement map coverage | Camden only — and only once data has been ingested |
| Live Camden ingestion | Not yet run — egress to Camden's host is blocked in the build environment. Pipeline proven end to end against real PostgreSQL + PostGIS, including aggregates, scoring and the map. See docs/camden-ingestion.md |
| Legal review of encoded rules | Outstanding. All rules marked PENDING_LEGAL_REVIEW |
Read docs/architecture.md for the full assessment,
including what is verified, what is built but unexercised, and what needs a human
before launch.
npm install
cp .env.example .env.local # optional — the app builds without credentials
npm run dev
Everything public works without credentials, stating explicitly where data is unavailable rather than showing placeholders.
| Command | Does |
|---|---|
npm run dev | Development server |
npm run build | Production build |
npm run typecheck | TypeScript, no emit |
npm run lint | ESLint |
npm test | Vitest |
npm run test:e2e | Playwright critical flows against a production build |
npm run db:test | Rebuild the database from migrations and run the SQL suites |
npm run verify | typecheck + lint + test + build |
npm run db:setup | Create a local PostGIS database with migrations and seed applied |
npm run camden:probe | Inspect the live Camden dataset's real schema before ingesting |
npm run ingest:camden -- --dry-run | Validate the Camden source without writing |
npm run ingest:camden | Ingest, rebuild aggregates, recompute scores, print a full report |
npm run camden:trace | Prove displayed figures trace back to source rows |
# Requires PostgreSQL with PostGIS.
PGHOST=/tmp PGPORT=5433 npm run db:test
scripts/db-test.sh drops and recreates a scratch database, applies the local
Supabase shim (supabase/test/00_supabase_shim.sql — never applied to a real
Supabase project), applies every migration in order, and runs the SQL test suites.
Against a real Supabase project, apply supabase/migrations/*.sql in order and
skip the shim.
See docs/architecture.md.
docs/architecture.md — assessment, schema, credentials, assumptions, honest statusdocs/ticket-activity-score.md — the scoring model, why the proposed weighting was changeddocs/camden-ingestion.md — the runbook for getting real Camden data in