尚未检测到更新。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