agentic/code/frameworks/security-engineering/skills/confusable-unicode-audit/SKILL.md
Detect bidi controls, zero-width characters, mixed-script identifiers, and homoglyph risks in source and release metadata
npx skillsauth add jmagly/aiwg confusable-unicode-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detect Trojan Source and homoglyph risks in source files, dependency names, and release metadata. This enforces no-confusable-unicode and maps curl Practice 8 into an AIWG control.
Legitimate non-ASCII is declared in .aiwg/security/confusable-unicode-allowlist.yaml:
version: 1
allow:
- path: "docs/i18n/**"
reason: "localized documentation"
- identifier: "naive_bayes"
codepoints: ["U+00EF"]
reason: "historical exported API spelling"
Reports show file, line, column, Unicode code point, character name, and remediation. Bidi and zero-width controls are always HIGH severity.
agentic/code/frameworks/security-engineering/rules/no-confusable-unicode.mddata-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.