尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Trip-compliance platform: Trip Check (/trip-check) answers "I'm from
⟨nationality⟩, going to ⟨destination⟩, bringing ⟨items⟩ — can I go, for how
long, what do I need, and can I bring it?" across 16 verified destinations
(and growing), built on top of an edge-case-aware Schengen 90/180 calculator,
EES record-correction guides, and an ETIAS launch tracker. Read AGENTS.md
before contributing — the Accuracy Policy (§3) overrides everything else.
Four automated layers, all run by CI on every push (.github/workflows/ci.yml):檢視完整 README ↗Trip-compliance platform: Trip Check (/trip-check) answers "I'm from
⟨nationality⟩, going to ⟨destination⟩, bringing ⟨items⟩ — can I go, for how
long, what do I need, and can I bring it?" across 16 verified destinations
(and growing), built on top of an edge-case-aware Schengen 90/180 calculator,
EES record-correction guides, and an ETIAS launch tracker. Read AGENTS.md
before contributing — the Accuracy Policy (§3) overrides everything else.
/apps/web # Next.js app (App Router, Tailwind v4, next-intl)
/packages/engine # pure-TS Schengen calculation engine + tests
/content # MDX guides (en/, later bg/, tr/, sr/…)
/data # verified rule data (JSON) — the crown jewels
/data/UNVERIFIED # agent-drafted data awaiting primary-source verification
/scripts # data validation (CI gate), source change detection
pnpm install
pnpm dev # run the web app (http://localhost:3000)
pnpm test # unit tests: engine (incl. official EC golden cases) + web
pnpm test:e2e # browser tests: builds, serves, and drives the real UI
pnpm typecheck
pnpm validate:data # Accuracy Policy gate (also runs in CI)
pnpm watch:sources # diff watched official sources, report changes
pnpm build
Four automated layers, all run by CI on every push (.github/workflows/ci.yml):
pnpm --filter @odyssway/engine test) —
61 tests: all four queries, date math (leap years, DST-immunity), presence
edge cases (permits, bilateral, accession dates), a 300-run property test,
and the golden cases: every worked example from the European
Commission's official calculator manual must produce identical results.pnpm --filter web test) — share-URL encoding/decoding
(round-trips, legacy links, malformed input), trip-check resolution, PDF
report lines, and .ics reminder generation.pnpm validate:data) — schema-checks /data, rejects
unverified rows in production and any production reference to UNVERIFIED.pnpm test:e2e) — Playwright drives the real UI
(local Chrome; Chromium in CI): counting, overstay warnings, Ireland
exclusion, Bulgaria's 2024 accession boundary, residence-permit exclusion,
trip planning, share links, reversed-date handling, every route, sitemap,
and a mobile-viewport overflow check.Manual spot-check: pnpm dev, then compare any scenario against the
official EU calculator
— results must match.
The app is a standard Next.js project inside a pnpm workspace; Vercel handles this natively:
git remote add origin … && git push -u origin main).apps/web (Framework: Next.js is auto-detected;
install runs at the workspace root automatically).NEXT_PUBLIC_SITE_URL — the production origin, e.g. https://yourdomain.com
(used by sitemap.xml / robots.txt).NEXT_PUBLIC_PLAUSIBLE_DOMAIN — optional; leave unset to ship without
analytics.main redeploys; CI (typecheck, tests, data gate,
e2e) runs on GitHub Actions in parallel — make Vercel wait on it via
"Ignored Build Step"/checks if you want gating.apps/web/vercel.json skips the build when a push doesn't touch
site inputs (apps/web, packages, content, data, workspace manifests);
any error in that check, such as the previous commit missing from Vercel's
shallow clone, means "build". It also disables deployments for the
source-watch/report and
redesign-and-data-expansion branches. Changes are verified on a local
production build and pushed to main in batches, not one push per change.
Keep Settings → Build & Deployment → Build Machine on Standard.CLI alternative from apps/web: npx vercel login, then npx vercel
(preview) / npx vercel --prod.
(Phase numbers refer to AGENTS.md §12.)
status, planTrip, maxStay, nextEntry), edge-case handling
(residence permits, bilateral basis, per-date accession), and matches every
worked example in the European Commission's official calculator manual
(golden tests). CI runs typecheck + tests + data validation + build./rules/90-180-rule,
the /ees hub + dispute/data-access guides, /etias/status, trust pages,
disclaimers, schema.org, sitemap, Plausible./trip-check
resolves entry eligibility, stay length, required documents, and customs
verdicts for 16 verified destinations (US, GB, CA, Japan, Kenya, South
Africa, Mexico, Thailand, Rwanda, Nigeria, Egypt, India, Turkey, Morocco,
Australia, UAE — plus the Schengen Area) across the full 15-nationality
roster, every fact individually cited. Brazil is next in the queue
(data/UNVERIFIED/destinations.json); the homepage shows a live, computed
coverage count. / is the marketing landing page; /calculator remains
the dedicated Schengen deep-dive..ics download) are live. Email alerts and synced accounts (would need
Supabase + a GDPR review) are still open — see AGENTS.md §12.Owner decision 2026-07-13: source verification, no human review pass.
Every production value must be checked against a primary official source
(EUR-Lex, europa.eu institutions, national authorities) and cited, with
verified_at + verified_by (agent:<model> or a human) and per-claim
_sources. Values supported only by secondary sources, or whose primary
source is unreachable, stay in data/UNVERIFIED/ with
status: "needs_verification" and are excluded from the build.
scripts/validate-data.ts enforces all of this in CI. Details:
data/README.md.