Repository Analysis

thedaviddias/Front-End-Checklist

🗂 The essential checklist for modern web development, for humans and AI agents

1.1 Likely human-written View on GitHub
1.1
Adjusted Score
1.1
Raw Score
100%
Time Factor
2026-05-30
Last Push
72,750
Stars
MDX
Language
183,057
Lines of Code
1405
Files
135
Pattern Hits
2026-05-31
Scan Date

Score History

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

CRITICAL 0HIGH 3MEDIUM 24LOW 108

Pattern Findings

135 matches across 8 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers80 hits · 83 pts
SeverityFileLineSnippet
LOWscripts/generate/generate-readme.ts174function buildPriorityImageReferences(
LOWscripts/generate/generate-readme.ts271export function buildRulesCatalogMarkdown(rules: RuleEntry[]): string {
LOWscripts/generate/generate-readme.ts317export function buildReadmeCatalogMarkdown(rules: RuleEntry[]): string {
LOWscripts/lib/rule-structure.ts190export function isCanonicalVerificationHeading(text: string): boolean {
LOWscripts/lib/rule-structure.ts194export function isVerificationAliasHeading(text: string): boolean {
LOWscripts/lib/rule-structure.ts198export function hasVerificationLikeSection(body: string): boolean {
LOWscripts/lib/rule-structure.ts434function getVerificationSectionRaw(body: string): string | null {
LOWscripts/lib/rule-structure.ts602export function normalizeRuleStructureBody(body: string): RuleStructureNormalization {
LOWscripts/lib/rule-inline-links.ts157function detectFormulaicMetadataParagraph(text: string): boolean {
LOWscripts/lib/rule-inline-links.ts525export function buildExternalLinkCandidates(input: ExternalLinkCandidateInput): CandidateLink[] {
LOWscripts/lib/rule-inline-links.ts622export function buildInternalLinkCandidates(input: InternalLinkCandidateInput): CandidateLink[] {
LOWscripts/lib/rule-support-data.ts97export function getProjectSupportedBrowsers(cwd = process.cwd()): string[] {
LOWscripts/validation/check-directory-structure.js115function validateComponentStructure(componentsDir) {
LOWscripts/validation/check-directory-structure.js179function validateDirectoryStructure() {
LOWscripts/validation/check-file-complexity.js155function estimateCognitiveComplexity(content) {
LOWpackages/auth/src/profile.ts162function getNonNegativeIntegerProperty(source: unknown, key: string): number | undefined {
LOWpackages/emails/emails/transactional-starter.tsx78export function TransactionalStarterEmail({
LOWpackages/emails/src/server.ts79export function createResendContactProperties(kind: ResendContactKind): ResendContactProperties {
LOWpackages/emails/src/server.ts92export function createResendContactPayload(
LOWpackages/mcp/src/server-resources.ts22function buildChecklistResourceUri(slug: string): string {
LOWpackages/mcp/src/server.ts56function withDefaultTransportHeaders(request: Request, parsedBody?: unknown): Request {
LOWpackages/mcp/src/tools/get-workflow.ts47export function buildGetWorkflowDefinition(checklists: CuratedChecklist[]) {
LOWpackages/mcp/src/tools/get-checklist-rules.ts54export function buildGetChecklistRulesDefinition(checklists: CuratedChecklist[]) {
LOWpackages/mcp/src/tools/review-code.ts127function formatFormControlForIssue(tagName: string, inputType: string): string {
LOWpackages/mcp/src/tools/review-code.ts180function isLikelyFrameworkDocumentShell(code: string): boolean {
LOWpackages/mcp/src/tools/review-code.ts190function isLikelyMetadataDrivenSource(code: string): boolean {
LOWpackages/mcp/src/tools/review-code.ts202function isLikelyAsyncReactComponentSource(code: string): boolean {
LOWpackages/mcp/src/tools/review-code.ts210function shouldSuppressIssueForSourceContext(code: string, ruleSlug: string): boolean {
LOWpackages/mcp/src/utils/mdx-to-markdown.ts124function removeUnhandledComponents(content: string): string {
LOWpackages/storage/src/indexeddb-storage.ts11export async function initializeStorageDatabase(): Promise<IDBPDatabase<FECDatabase> | null> {
LOWpackages/storage/src/storage-helpers.ts21export function shouldSuppressStorageErrors(): boolean {
LOWpackages/storage/src/storage-helpers.ts86export function collectProjectLocalStorage(): Record<string, unknown> {
LOWpackages/seo/src/structured-data.ts26export function generateWebsiteStructuredData(): StructuredData {
LOWpackages/seo/src/structured-data.ts49export function generateRuleStructuredData(rule: Rule): StructuredData {
LOWpackages/seo/src/structured-data.ts84export function generateBreadcrumbStructuredData(
LOWpackages/seo/src/structured-data.ts105export function generateFAQStructuredData(
LOW…design-system/src/motion/reduced-motion-preference.tsx33function getServerReducedMotionSnapshot() {
LOW…design-system/src/motion/reduced-motion-preference.tsx42export function useReducedMotionPreference() {
LOWskills/javascript-inline/references/rule.md140function initializeInputValidation() {
LOWskills/webpagetest/references/rule.md808async function performanceRegressionCheck(url) {
LOWskills/audio-descriptions/references/rule.md118function VideoWithDescriptionChoice({ standardSrc, extendedSrc }: {
LOWskills/css-critical/references/rule.md476function measureCriticalCSSPerformance() {
LOWskills/css-critical/references/rule.md513function initializeCriticalCSSTest() {
LOWskills/javascript-minification/references/rule.md615function measureJavaScriptPerformance() {
LOWskills/back-forward-cache/references/rule.md67function toggleUnsavedChangesProtection(isDirty) {
LOWapps/web/next.config.js5function buildContentSecurityPolicy() {
LOWapps/web/app/(site)/page.tsx102function normalizeChecklistDifficulty(value: string | undefined): ChecklistDifficulty {
LOWapps/web/app/(site)/(account)/layout.tsx29async function AuthenticatedAccountLayout({ children }: AccountLayoutProps) {
LOWapps/web/app/(site)/lists/[id]/page-client.tsx51function UserChecklistDetailContent() {
LOWapps/web/app/(site)/list/[publicId]/page.tsx41async function SharedChecklistPageContent({ params }: PageProps) {
LOWapps/web/app/api/mcp/route.ts96function extractToolNamesFromRequest(body: unknown): string[] {
LOWapps/web/app/api/rules/[ruleId]/feedback/route.ts23function emptyRuleFeedbackResponse(): RuleFeedbackResponse {
LOWapps/web/app/api/rules/[ruleId]/feedback/route.ts39function isMissingRuleFeedbackTableError(
LOWapps/web/app/api/rules/[ruleId]/feedback/route.ts100async function buildRuleFeedbackResponse(
LOWapps/web/components/homepage/features-bento.tsx31function subscribeToMobileViewport(onStoreChange: () => void) {
LOWapps/web/components/homepage/features-bento.tsx41function getMobileViewportSnapshot() {
LOWapps/web/components/homepage/features-bento.tsx49function getServerViewportSnapshot() {
LOWapps/web/components/homepage/sponsors-bubbles.tsx87function calculateCirclePackPositions(
LOWapps/web/hooks/use-rule-feedback.ts32function isRuleCredibilityDecision(value: unknown): value is RuleCredibilityDecision {
LOWapps/web/hooks/use-rule-feedback.ts54function parseRuleFeedbackResponse(value: unknown): RuleFeedbackResponse {
20 more matches not shown…
Decorative Section Separators22 hits · 66 pts
SeverityFileLineSnippet
MEDIUMpackages/config/src/routes.ts9// ── Site & service base URLs ────────────────────────────────────────────────
MEDIUMpackages/config/src/routes.ts14// ── GitHub ──────────────────────────────────────────────────────────────────
MEDIUMpackages/config/src/routes.ts34// ── Social / author ─────────────────────────────────────────────────────────
MEDIUMpackages/config/src/routes.ts43// ── Internal route segments ─────────────────────────────────────────────────
MEDIUMpackages/config/src/routes.ts65// ── Route builders ──────────────────────────────────────────────────────────
MEDIUMpackages/config/src/routes.ts148// ── Absolute URL builders (for SEO, sitemap, llms.txt, etc.) ────────────────
MEDIUMpackages/config/src/routes.ts158// ── User-Agent string (used by crawler and audit-url tool) ──────────────────
MEDIUMpackages/mcp/tests/unit/review-code-detection.test.ts148// ─── TRUE POSITIVE tests — bad HTML MUST trigger the rule ───────────────────
MEDIUMpackages/mcp/tests/unit/review-code-detection.test.ts583 // ── AST-based structural checks (node-html-parser) ──────────────────────────
MEDIUMpackages/mcp/tests/unit/review-code-detection.test.ts625// ─── TRUE NEGATIVE tests — good HTML MUST NOT trigger the rule ──────────────
MEDIUMpackages/mcp/tests/unit/review-code-detection.test.ts952// ─── Coverage summary ────────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/tool-performance.test.ts21// ─── Test data ────────────────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/tool-performance.test.ts110// ─── Benchmark helper ─────────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/tool-performance.test.ts134// ─── Performance budget assertions ────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/tool-performance.test.ts146// ─── Tests ────────────────────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/false-positive-audit.test.ts141// ─── Exemplary HTML page ─────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/false-positive-audit.test.ts220// ─── Exemplary CSS ────────────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/false-positive-audit.test.ts266// ─── Exemplary JavaScript ─────────────────────────────────────────────────────
MEDIUMpackages/mcp/tests/unit/false-positive-audit.test.ts312// ─── FALSE POSITIVE tests ─────────────────────────────────────────────────────
MEDIUMskills/service-worker/references/rule.md81// ─── Install: pre-cache static assets ────────────────────────────────────────
MEDIUMskills/service-worker/references/rule.md91// ─── Activate: remove old caches ─────────────────────────────────────────────
MEDIUMskills/service-worker/references/rule.md109// ─── Fetch: serve from cache, fall back to network ───────────────────────────
Fake / Example Data24 hits · 24 pts
SeverityFileLineSnippet
LOW…ges/design-system/src/__tests__/design-system.test.tsx183 <Input type="email" defaultValue="user@example.com" />
LOW…ges/design-system/src/__tests__/design-system.test.tsx188 expect(screen.getByDisplayValue('user@example.com').getAttribute('type')).toBe('email')
LOWskills/srcset/references/rule.md50 alt="Jane Doe"
LOWskills/contract-testing/references/rule.md84 name: string('Jane Doe'),
LOWskills/contract-testing/references/rule.md98 expect(user.name).toBe('Jane Doe')
LOWskills/contract-testing/references/rule.md147 email: string('user@example.com'),
LOWskills/contract-testing/references/rule.md261 await db.seed({ users: [{ id: 42, name: 'Jane Doe', email: 'jane@example.com', role: 'admin' }] })
LOWskills/svg-inline/references/rule.md58 alt="Acme Corp"
LOWskills/link-checker/references/rule.md930 alerts: 'admin@example.com'
LOWskills/link-checker/references/rule.md946 defaultTo: 'admin@example.com'
LOWskills/mock-best-practices/references/rule.md88 expect(validateEmail('test@test.com')).toBe(true)
LOWskills/mock-best-practices/references/rule.md93 expect(validateEmail('test@test.com')).toBe(true)
LOWskills/author-byline/references/rule.md17 <img src="/images/authors/jane-doe.jpg" alt="Jane Doe" width="40" height="40" style="border-radius: 50%;">
LOWskills/alt-text/references/rule.md77<img src="logo.svg" alt="Acme Corp">
LOWskills/e2e-testing/references/rule.md18 await page.fill('[data-testid="email"]', 'user@example.com')
LOWskills/e2e-testing/references/rule.md56 cy.login('user@example.com', 'password')
LOWskills/e2e-testing/references/rule.md70 cy.get('#address').type('123 Main St')
LOWskills/e2e-testing/references/rule.md124 await loginPage.login('user@example.com', 'password')
LOWskills/local-business/references/rule.md25 "streetAddress": "123 Main Street",
LOWskills/local-business/references/rule.md106 streetAddress: '123 Main St',
LOWskills/article/references/rule.md23 "name": "Jane Doe",
LOWskills/test-coverage/references/rule.md117 expect(isValidEmail('user@example.com')).toBe(true)
LOWskills/test-coverage/references/rule.md125 isValidEmail('test@test.com')
LOWskills/nap-consistency/SKILL.md26Search the site for all instances of the business name, street address, and phone number. Compare each occurrence for ex
Synthetic Comment Markers3 hits · 20 pts
SeverityFileLineSnippet
HIGHREADME.md415- [ ] [Audit and refine AI-generated content](https://frontendchecklist.io/rules/seo/ai-content) ![Medium][medium_img]:
HIGHskills/ai-content/SKILL.md13# Audit and refine AI-generated content
HIGHskills/ai-content/references/rule.md1# Audit and refine AI-generated content
Overly Generic Function Names3 hits · 3 pts
SeverityFileLineSnippet
LOWpackages/mcp/tests/unit/review-code-detection.test.ts256 const js = 'async function getData() { const data = await fetch("/api"); return data.json(); }'
LOWpackages/mcp/tests/unit/review-code-detection.test.ts696 'async function getData() { try { const data = await fetch("/api"); return data.json(); } catch(e) { console.error
LOWpackages/mcp/tests/unit/false-positive-audit.test.ts282function getData() {
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMpackages/design-system/src/motion/marquee.tsx16 // Triple items for seamless loop
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
MEDIUMapps/web/data/mentions.json279 "content": "Check the 🔥 Front-End Checklist Application 🔥 for modern websites and meticulous developers! With more
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOW.github/workflows/pr.yml75 # Check if commits follow conventional commits