Un-Default

io.github.NomadBuilder由 GitHub 帳號 NomadBuilder 發布v0.5.6更新於 Oct 24, 2026

Catch racist, sexist & ableist defaults in AI and human copy. Local rules, no account.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

檢查文案、文件、介面文字與線上頁面中帶有種族、性別與能力歧視的預設表達,並提供更清楚的替代說法。

可以做什麼
Un-Default 會掃描文字中的偏見預設、性別假設、能力歧視比喻以及有紀錄的暗語,說明發現的問題並提供更清楚的替代說法。其 MCP 工具為 un_default_scan、un_default_fix 與 un_default_feedback。比對採用本機開放規則,不需要 AI 模型。它也能掃描路徑、變更檔案與批次 URL,並輸出 JSON 或 SARIF。
適用情境
適合在助理寫完介面文案、文件或行銷文字後,或發布前使用,以找出有問題的預設表達。也適合納入拉取請求檢查與編輯器工作流程,讓文案審查保持一致。
執行需求
以 npm 套件透過 npx 在本機執行,需要 Node.js。未宣告需要帳號、API 金鑰或環境變數。MCP 伺服器以 mcp 子命令啟動。只有在掃描 URL 或啟用選用的匿名 action 回報時才需要網路存取。
安裝前請注意
fix 工具會寫入檔案,建議先用 dry run 預覽。發現結果僅供參考且取決於情境,模糊或引用的比對只作提示。GitHub Action 預設會傳送匿名 action_run 回報,除非關閉 telemetry。掃描 URL 會將這些頁面送給本機工具。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Un-Default,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Un-Default

One thoughtful-language check for every way you build.

Formerly Anti-Default. Same tool — the name shifted so it reads as undoing defaults, not opposing people. Old URLs under darkai.ca/anti-default redirect here. npx anti-default still works as an alias for npx -y anti-default.

Un-Default reviews copy, docs, UI strings, and live pages for racist defaults, sexist assumptions, ableist metaphors, and documented dogwhistles. It explains what it noticed and offers clearer alternatives.

No account. No AI required for matching. Open rules you can tune.

After Claude writes UI copy · Try the web app · Add the Chrome extension · Star on GitHub


After Claude / Cursor writes UI copy

One command — skill + MCP + PR check. This is the habit that sticks:

bash
npx -y anti-default init

That also writes examples/un-default-demo.md and prints a sample scan so you see a finding immediately. Browser demo (shareable): /?demo=1.

Or install the Claude Code plugin from this repo’s marketplace:

bash
claude plugin marketplace add NomadBuilder/un-defaultclaude plugin install un-default@un-default

Paste-ready MCP JSON and Claude Project instructions:

https://darkai.ca/un-default/for-agents/

Directory checklist: docs/PUBLISH-DIRECTORIES.md

Paste MCP config (Cursor · Claude Desktop · Claude Code)

json
{  "mcpServers": {    "un-default": {      "command": "npx",      "args": ["-y", "anti-default", "mcp"]    }  }}
HostWhere it goes
Cursor.cursor/mcp.json (written by init) or Settings → MCP
Claude DesktopSettings → Developer → Edit Config → claude_desktop_config.json (merge, quit, relaunch)
Claude CodePlugin marketplace (above), or .mcp.json via init, or claude mcp add

Tools: un_default_scan · un_default_fix · un_default_feedback


Add it in under a minute

bash
npx -y anti-default .

That is the whole local setup. It prints findings and exits non-zero on clear hits. Ambiguous or quoted matches stay advisory.

To pin it in a team project:

bash
npm install --save-dev anti-default

Want the complete project setup?

bash
npx -y anti-default init

init adds an ignore file, changed-files GitHub workflow, Cursor + Claude skills, .cursor/mcp.json + .mcp.json, Claude/Cursor after-edit hooks, CLAUDE.md instructions, and inclusive-check / inclusive-fix scripts. Existing files are never overwritten. Hooks surface hard findings back to the agent after Edit/Write so Claude keeps checking even when nobody remembers.

AI-copy habit (definition of done)

bash
npx -y anti-default fix .          # safe 1:1 autofixes onlynpx -y anti-default .              # remaining findings

Agents should not mark UI/docs work done until hard findings are cleared or explicitly marked fine in context. Soft/coded hits stay advisory.

bash
# Preview autofixes without writingnpx -y anti-default fix . --dry-run
# Intentional language — suppress locally + share structured feedbacknpx -y anti-default feedback --kind fine_in_context \  --rule guys-generic --match "guys" --context "…snippet…" \  --note "Quoted lyric" --open-issue

MCP server

bash
npx -y anti-default mcp

See for-agents for host-specific paste steps.

Scan the way you work

bash
# Pathsnpx -y anti-default ./src ./docs README.md
# CI formatsnpx -y anti-default . --format json  -o report.jsonnpx -y anti-default . --format sarif -o results.sarif
# Batch URLs — no Review UInpx -y anti-default --urls https://example.com https://example.com/aboutnpx -y anti-default --urls-file urls.txt --format json
# Only files changed in this branchnpx -y anti-default . --changed-from origin/main
# Keep existing findings quiet; report only new onesnpx -y anti-default baseline .

Ignore what doesn’t matter

Commit a .undefaultignore so day-two noise doesn’t drown the team (example):

node_modules/vendor/*.min.jsrule:guys          # turn off one rule for this repo

GitHub Action

Keep racist, sexist & ableist defaults out of the PR loop. This scans only changed files, fails on clear new findings, and leaves a checklist comment:

yaml
# .github/workflows/un-default.ymlname: Un-Defaulton: [pull_request]permissions:  contents: read  pull-requests: write  security-events: write
jobs:  scan:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4        with:          fetch-depth: 0      - uses: NomadBuilder/un-default@v1        with:          changed-from: ${{ github.event.pull_request.base.sha }}          format: json          comment-on-pr: "true"          # telemetry: false   # opt out of anonymous action_run pings

Prefer SARIF for Code Scanning? Set format: sarif and output-file: un-default.sarif. Full inputs: action.yml.

Anonymous Action pings (no repo name or findings) feed public totals at darkai.ca/un-default/usage. Badge:

markdown
![Un-Default CI runs](https://darkai.ca/un-default/api/badge/action_run.svg)

Agent skill

npx -y anti-default init installs .cursor/skills/un-default/SKILL.md — the definition-of-done workflow for AI-generated copy: fix → scan → ask or feedback → re-scan.

Source: skills/un-default/SKILL.md · feedback model: feedback/README.md


Use it as a library

The npm package has no runtime dependencies and exposes the same analyzer used by the CLI and web app:

ts
import { analyzeText, LANGUAGE_RULES } from "anti-default";
const result = analyzeText("Welcome, you guys.");console.log(result.findings);

Chrome extension

Same rules as the app — on the page you’re already looking at.

Add to Chrome →

Runs offline from a bundled rule list. No tracking. No AI calls.
Dev / unpacked: npm run extension:pack → Load unpacked → extension/ · details in extension/README.md

Web app — try, learn, tune

darkai.ca/un-default

  • Review — paste, upload, or scan a URL; export Markdown, CSV, or a checklist
  • Swap — turn one phrase into clearer alternatives
  • Dogwhistles — learn what a phrase can signal and when context matters
  • Rules — tune the open rule catalog for your project
bash
npm install && npm run dev   # localhost:3000

Why teams reach for it

  • Before publish — catch defaults in marketing, docs, and product copy
  • In the PR — Action + SARIF/JSON so machines and humans both get a signal
  • On the live page — extension for writers who never open a terminal
  • Without a lecture — suggestions are invitations; context always wins

Every suggestion cites the style guides and references behind it → /sources


Customize & self-host

  • Tune in the UI: /rules · edit code: src/lib/rules.ts
  • Practice corpus: npm run corpus
  • Static export: npm run build → out/
    Subpath (DarkAI): STATIC_EXPORT=true BASE_PATH=/un-default npm run build

Production lives at darkai.ca/un-default and is also vendored in DarkAI.

License

MIT

來源:README.md,提交 8d707ee

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.5.6最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分