eq-frontend-standards

Enforces a canonical TypeScript frontend standard covering lint rules, gates, structure, and CI.

Updated Aug 3, 2026
One-click install
npx skills add https://github.com/everquint/frontend-skills --skill eq-frontend-standards-everquint
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: eq-frontend-standards
Source: https://github.com/everquint/frontend-skills/tree/main/skills/engineering/eq-frontend-standards
Command: npx skills add https://github.com/everquint/frontend-skills --skill eq-frontend-standards-everquint

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Frontend repos drift into inconsistent lint configs, formatting, file structure, and git/CI gates, and teams often derive standards from whatever the existing code already does. This Skill provides one fixed TypeScript frontend standard plus scripts to measure violations, migrate repos onto it, and keep them current as the standard evolves. ## Core Features & Use Cases - Repo auditing and migration: Profile a repo's stack, measure per-rule violation counts with oxlint, and follow a migration ladder (zero-violation rules to error, AI-assisted fix PRs, or an ESLint suppressions branch for large debt). - Greenfield scaffolding: Run init-greenfield.mjs to land formatter, lint configs, git hooks, CI gates, agent policy files, and vendored skills in a new repo without overwriting existing files. - Structure and drift checks: check-structure.mjs enforces kebab-case naming, hooks-folder purity, component barrels, test placement, style-selector collisions, git case drift, and stale doc paths; standard-check.mjs gates repos on the recorded standard version in CI. - Use Case: When adopting the standard in a mature repo, run measure-rules.mjs to get per-rule counts, enable zero-violation rules at error immediately, and wire pre-commit, pre-push, and commit-msg hooks with matching CI jobs. ## Quick Start Ask the agent to audit this repository against the frontend standard and report the measured violation counts and migration path.

Frequently Asked Questions about eq-frontend-standards

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate an existing repo to a new lint standard?

Measure per-rule violation counts first with measure-rules.mjs, then set zero-violation rules to error immediately. Repos with roughly 300 or fewer remaining violations get one AI-assisted fix PR; larger debt stays on ESLint with a suppressions baseline until oxlint supports suppressions.

How do I set up lint and formatting for a new TypeScript React project?

Run init-greenfield.mjs, which lands oxfmt formatting config, oxlint fast and strict configs, git hooks, CI gates, and agent policy files without overwriting existing files. Then install dependencies and run format, lint, typecheck, and build to verify.

Does oxlint support type-aware rules like no-floating-promises?

Yes, but only when run with the --type-aware flag and the oxlint-tsgolint devDependency; otherwise type-aware rules are silently skipped with exit 0. The strict config pins all 23 type-aware rules by name and CI asserts on the rule count.

Why does tsc -b need the --force flag in git hooks?

Without --force, the .tsbuildinfo cache goes stale and produces phantom errors and false passes. A hook that emits false failures gets bypassed with --no-verify, so correctness outweighs the few seconds --force costs.

When should a lint rule be parked instead of fixed?

Parking is allowed only inside a fix branch for rules whose fixes are genuinely risky to batch, recorded in a marked PARKED block with the measured count and date. Correctness rules like no-floating-promises are never parked because they close the bug class the migration exists to fix.

Can this standard work with Cursor, Codex, or other AI coding hosts?

Yes, adapt-hosts.mjs generates each host's own hook configuration from the .claude/ source and reports what each host cannot enforce. Hosts without blocking hooks, like Zed, rely on pattern-based denials plus CI as the real gate.