typescript-quality-enforcer
Skill2 starsChanged 12 days agoMITView on GitHub
JavaScript/TypeScript only. Strengthen type safety and lint discipline in .ts/.tsx/.js code. Use for TS/JS type-safety audits, unsafe assertion or `any`/`unknown` cleanup, strictness migration, or adopting the bundled chara-lint Oxlint rules. Not for Python, Go, Rust, Dart, or other languages.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- cmdr-chara/codex-toolkitword for word, first seen Oct 31, 2026
Other versions1 project uses a version of this.
Word for word · 1
- cmdr-chara/codex-toolkit★ 2100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- bin/AGENTS.mdAGENTS.md
- evaluations/AGENTS.mdAGENTS.md
- orchestration/AGENTS.mdAGENTS.md
- scripts/AGENTS.mdAGENTS.md
- skills/AGENTS.mdAGENTS.md
- skills/llms.txtllms.txt
- bug-finderSkill
- codebase-evolution-controllerSkill
- codebase-improvement-plannerSkill
- completion-proofSkill
- content-provenance-hygieneSkill
- cpp-engineeringSkill
- debugging-investigatorSkill
- delegate-with-mission-cardsSkill
- documentation-synchronizerSkill
- expo-react-native-builderSkill
- flutter-production-builderSkill
- go-engineeringSkill
- kotlin-engineeringSkill
- mobile-architecture-directorSkill
- multi-agent-work-coordinatorSkill
- optimize-codebase-performanceSkill
- product-design-directorSkill
- production-web-builderSkill
- python-engineeringSkill
- repository-intelligenceSkill
- review-and-refactor-codeSkill
- rust-engineeringSkill
- screenshot-to-interfaceSkill
- security-reviewSkill
- swift-engineeringSkill
- toolchain-preflightSkill
- verification-and-releaseSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 5 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Use this skill only when the target code is JavaScript or TypeScript (.ts, .tsx, .mts, .cts, .js, .jsx, .mjs, .cjs), for:
- Distinctive: line 17
Do not trigger for:
- Distinctive: line 32
Treat heuristic matches as leads that require parser/manual confirmation.
- Very specific: line 38
Never make lint pass through laundering: replacing one unsafe cast with another, widening any, blanket suppressions, broader ignores, or …
- Distinctive: line 39
Never overwrite an existing plugin directory.
- Very specific: line 45
Choose a staged policy: Read references/adoption-strategy.md.
- Very specific: line 48
Install only when approved: Run node skills/typescript-quality-enforcer/scripts/install.mjs [target-dir] (default tools/oxlint/chara-lint), …
- Very specific: line 49
Remediate by invariant: Use references/violation-remediation.md.
- Distinctive: line 51
Refresh volatile claims: Check current primary sources (TypeScript release notes, Oxlint JS-plugin docs) before version-, runtime-, or …
- Distinctive: line 63
Stop after an evidence-backed proposal when approval is absent.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
TypeScript Quality Enforcer
Strengthen type evidence and lint policy in JavaScript/TypeScript code without hiding diagnostics or turning a quality audit into an uncontrolled rewrite.
Trigger boundary
Use this skill only when the target code is JavaScript or TypeScript (.ts, .tsx, .mts, .cts, .js, .jsx, .mjs, .cjs), for:
- type-safety audits and staged compiler-strictness work;
- adopting the bundled chara-lint Oxlint plugin, or migrating an earlier lint-plugin copy to it;
- systematic cleanup of unsafe assertions, broad
any/unknowncontracts, suppressions, module mocking, or weak boundary parsing.
Do not trigger for:
- other languages (Python, Go, Rust, Dart, Kotlin, Swift, and so on), even for "type safety" or "lint" requests. Use the platform builder or
review-and-refactor-code; - generic code quality, style, or formatting with no type-evidence question;
- a concrete runtime bug, a measured performance bottleneck, an ordinary bounded refactor, a toolchain migration, or a final release decision.
Required inputs
Resolve scope, working-tree state, manifests/lockfiles, the installed TypeScript and Oxlint versions, tsconfig/lint configuration, existing checks and CI enforcement, generated/vendor boundaries, and approval state.
For a breadth-first inventory, run:
python skills/typescript-quality-enforcer/scripts/typescript_quality_inventory.py . --format markdownTreat heuristic matches as leads that require parser/manual confirmation.
Safety baseline
- Preserve uncommitted user work.
- Audit first. Do not install chara-lint, change policy, or remediate broad source sets without an approved stage.
- Never make lint pass through laundering: replacing one unsafe cast with another, widening
any, blanket suppressions, broader ignores, or weakened compiler options. - Never overwrite an existing plugin directory; migrate a differing copy through a reviewed diff.
Workflow
- Establish the baseline. Measure existing typecheck/lint state and enforcement. Separate pre-existing failures from target findings.
- Build the evidence ledger. Confirm representative findings and classify them by invariant, boundary, and remediation cost.
- Choose a staged policy. Read
references/adoption-strategy.md. Prefer the smallest rule/strictness stage that creates durable signal without flooding the repository. - Handle strictness deliberately. For
strict,noUncheckedIndexedAccess,exactOptionalPropertyTypes, and related migration work, readreferences/strictness-migration.mdinstead of flipping every flag at once. - Stop for approval. Report the proposed stage and mark it
AWAITING_APPROVALbefore installation, policy changes, or broad remediation. - Install only when approved. Run
node skills/typescript-quality-enforcer/scripts/install.mjs [target-dir](defaulttools/oxlint/chara-lint), then enable the approved rules throughjsPluginsasassets/chara-lint/README.mdshows. The installer refuses to overwrite an existing directory. - Remediate by invariant. Use
references/violation-remediation.md. Prefer narrowing, explicit boundaries, and contract repair over silencing. - Verify recurrence prevention. Re-run targeted typecheck/lint/tests and confirm CI or repository policy will catch the same class again.
- Refresh volatile claims. Check current primary sources (TypeScript release notes, Oxlint JS-plugin docs) before version-, runtime-, or ecosystem-sensitive recommendations.
Handoffs and interaction boundaries
Hand structural dependency-seam work to review-and-refactor-code, migrations to codebase-evolution-controller, runtime failures to debugging-investigator, measured hotspots to optimize-codebase-performance, security-first findings to security-review, and final ship judgment to verification-and-release.
Failure handling
If diagnostics are dominated by generated/vendor code or unclear ownership, narrow scope or use repository intelligence. If a proposed rule produces low-signal noise, reduce the stage or use the rule's documented options rather than weakening the rule after adoption. If the installed Oxlint cannot load JS plugins, report the version gap instead of substituting another tool silently. Keep unverified findings labeled as such.
Stop conditions
Stop after an evidence-backed proposal when approval is absent. After approval, stop when the bounded stage is remediated, relevant checks pass, enforcement is durable, and remaining exceptions are explicit.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

