Skip to content

CI Infrastructure Remediation: Jest, ESLint, and Validation Configuration #2760

Open

Description

@ashleyshaw

Summary

This issue tracks remediation of pre-existing CI infrastructure failures identified during Phase 5 Goal 4 implementation (PR #2692). These issues are unrelated to Phase 5 Goal 4 and require separate infrastructure work.

Pre-existing Failures

Test Suite Configuration

  • Jest ESM/CommonJS module conflicts requiring configuration fixes
  • Missing test fixture directories referenced in tests
  • Module resolution errors in test environment

Linting Configuration

  • ESLint undefined globals (URL, fetch) in certain files
  • TypeScript type declaration resolution issues
  • Node.js global APIs not properly declared

Validation Infrastructure

  • Frontmatter schema validation warnings across repository files
  • README structure validation issues at repository level

Scope

Fix all CI check failures by addressing:

  1. Jest configuration for ESM/CommonJS handling
  2. ESLint globals configuration for Node.js APIs
  3. TypeScript configuration and type resolution
  4. Frontmatter schema standardization

Success Criteria

  • All test suite checks pass (Jest configuration)
  • Linting checks pass (ESLint globals and TypeScript fixes)
  • Validation checks pass (Frontmatter and README validation)
  • CI pipeline reports green across all checks

Related Work


Created to track Phase 5 infrastructure remediation work

Activity

  1. linear-code commented on Sep 4, 2026

    @linear-code
  2. github-actions commented on Sep 4, 2026

    @github-actions
    Contributor

    ⚠️ This issue does not follow a required issue template.

    Missing required section(s): Definition of Ready (DoR), Definition of Done (DoD)

    The issue will remain open and flagged until the body is corrected.
    Please update the issue with one of the official templates:

    If this was opened by automation, update the automation to preserve the template sections before creating the issue.

  3. ashleyshaw commented on Sep 4, 2026

    @ashleyshaw
    MemberAuthor

    Project Documentation & Planning

    This supplementary CI infrastructure hardening task is now fully documented in the Phase 5 Goal 4 active project:

    Related Documentation

    Implementation Plan

    The CI hardening task is broken down into 5 phases (~9 hours total effort):

    1. Jest Configuration (2h) — ESM/CommonJS support
    2. ESLint Configuration (2h) — Node.js globals
    3. TypeScript Configuration (2h) — Type declaration fixes
    4. Frontmatter Standardisation (2h) — Schema consistency
    5. Verification & Documentation (1h) — Final validation

    See CI_HARDENING.md for complete implementation details, success criteria, and interdependencies.


    🤖 Generated with Claude Code

    https://claude.ai/code/session_01KXvNViVb3zeXoFYyz6QygR


    Generated by Claude Code

  4. added this to the v1.1 milestone on Sep 4, 2026
  5. self-assigned this
    on Sep 4, 2026
  6. github-actions commented on Sep 8, 2026

    @github-actions
    Contributor

    ⚠️ Bare Labels Detected

    This issue has labels that are not in the canonical taxonomy:

    • migrate:priority:normal
    • migrate:status:needs-triage
    • migrate:status:needs-more-info

    Valid Canonical Labels

    Please use labels with a prefix from the canonical taxonomy:

    • Type: type:bug, type:feature, type:task, type:documentation, etc.
    • Status: status:needs-triage, status:in-progress, status:done, etc.
    • Priority: priority:critical, priority:high, priority:normal, priority:low
    • Area: area:ci, area:docs, area:labels, area:security, etc.
    • Meta: meta:needs-changelog, meta:duplicate, meta:blocked, etc.

    For the complete list, see .github/labels.yml.

  7. eleshar commented on Oct 1, 2026

    @eleshar
    Contributor

    Partial status update on item 2 of this issue's scope ("Linting checks pass (ESLint globals and TypeScript fixes)").

    The umbrella items are still open, but the mechanism behind the linting failures is now identified and being fixed, so this no longer needs to be treated as unknown.

    ESLint was not running in CI at all. git grep -n "lint:js" -- .github/workflows returns exactly one hit, in archived/2026-09-11/testing/testing.yml. The archived 2026-09-11 testing workflow carried the lint step; archiving the workflow archived the step, and no replacement was written. Sixteen active workflows, none invoking ESLint.

    That accounts for the reported symptoms without needing a separate root cause per symptom:

    Symptom reported here What is actually happening
    ESLint undefined globals (URL, fetch) Mostly fixed already. eslint.config.cjs declares both in nodeGlobals, and the figma globals in the agent-script block. The residual 110 no-undef errors are a different set — mostly under agents/**/figma*/scripts/*.js.
    TypeScript declaration resolution 25 no-undef and 15 @typescript-eslint/* errors, all in .ts files. Small and enumerable.
    Node.js global APIs not declared nodeGlobals covers process, Buffer, __dirname, __filename, timers, AbortController, URL, URLSearchParams, fetch, TextEncoder/TextDecoder.

    Now tracked separately

    Leaving this umbrella open is right: Jest config and the validation-infrastructure items here are untouched by that work. Flagging only that the linting item now has a root cause and an owner, and that the previous "ESLint errors are 0" assumption is not sound — see the correction on #1238.

    Not proposing any change of state here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Fields

Priority

None yet

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions