尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Checks UI copy for Tembusu Bank, a fictional bank, before it goes to compliance review. It flags personal data, style-guide breaks, risky phrasing and missing disclosures, and produces a report for a person to review. It never approves anything. When the reviewer asks, it drafts a revision from their decisions, and code checks that draft before they see it.
Never paste real customer data. Use placeholders such as
{name},{nric},{phone}or{email}. Everything in this repo is invented.
Open the live demo at copy-precheck.vercel.app. There's nothing to install.
To start again with different copy, select the Copy pre-check logo at the top of the page.
Good to know:
Copy is checked in three layers, in this order:
All rules live in one file, content/rules.yaml. The checker reads it, and the style guide is generated from it, so the two can never disagree.
Needs Node.js 22 or later.
npm install
npm test # run the test set and all other tests
npm run check -- "Earn 2.5% interest. Act now!" --context promo-banner
To run the AI checks too, copy .env.example to .env.local, add an Anthropic API key (create a project-only key with a spend limit), and add --ai:
npm run check -- "Watch your savings grow without lifting a finger." --context promo-banner --ai
.env.local is ignored by git. Never commit a real key.
| Command | What it does |
|---|---|
npm run check -- "copy" [options] | Checks one piece of copy. Add --help for options. Exits with 1 if there's an open blocker. |
npm test | Runs every sample in the test set, plus the engine and validation tests. |
npm run guide | Rebuilds content/style-guide.md from rules.yaml. Run it after changing a rule. |
npm run typecheck | Checks the TypeScript. |
npm run dev | Starts the web page at http://localhost:3000. Reads the API key from .env.local. |
check options:
--context, -c: where the copy appears (button, error, confirmation, promo-banner, rate-card, help-text, notification, email-snippet). Some rules only apply in certain places; without a context, every rule runs.--override, -o: release one personal-data match you've checked isn't personal data, e.g. --override "PD-002|+65 6123 4567|Published overseas line". Name the exact text: any other match from the same rule stays blocked. Repeat the option for more than one.--ai: also run the AI checks with Claude. Needs ANTHROPIC_API_KEY. Each check costs well under a cent.--verbose, -v: also list every rule and whether it ran.--json: print the full report as JSON.The page opens with a form: paste copy (or pick a sample from the test set), choose where it appears, and check it. The results show the copy with flagged words highlighted, then each finding grouped by severity, with why it matters and what to do. Reviewers mark each finding Fix or Dismiss, and override a personal-data match with a reason (the AI checks then run). Once every finding is decided, "Draft a revision" starts the review and rewrite loop above.
Above the results, Edit copy lets the reviewer change the words themselves; the edit is checked as the next round, dismissals carry over, and the report records it as "edited by hand". Clicking the logo in the header starts a new check with different copy, and asks first (offering the report) when there are rounds to lose. Copy text copies the latest version of the copy; Download report saves the full review, every round included, as Markdown.
The check runs on the server, so the API key never reaches the browser. Copy is capped at 1,500 characters, and AI checks have a best-effort rate limit; the real cost cap is the spend limit on the key.
npm run eval measures the checker against the test set and runs the review and rewrite loop on sample emails, with the real model (about US$0.50 a run). Results, and what they show, are in eval/: on the latest run, the code layers matched all 39 samples, the AI checks matched the test set in 92 of 93 runs, the model ignored both prompt-injection samples, and every finding marked Fix was fixed by the draft.
content/rules.yaml. The field reference is at the top of the file.content/test-set.yaml, including a near-miss that should not be flagged.npm run guide, then npm test.If the rules file has a mistake, such as a misspelled severity, a missing field or a broken pattern, the checker stops with a message saying where, rather than skipping the rule.
content/ Rules, test set and style guide (edit these, not code, to change rules)
src/engine/ The checker: loading, validation and the three layers (AI layer in src/engine/ai/,
review and rewrite loop in src/engine/revise/)
src/models/ Connection to Claude (swap this to use a different model)
src/cli/ The `npm run check` command
src/guide/ Generates the style guide from the rules
src/app/ Web page (Next.js)
scripts/ `npm run guide`
tests/ Automated tests