feat: upgrade project infra for AI agent maintainability#394
Merged
feat: upgrade project infra for AI agent maintainability#394
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR upgrades the repo’s developer/CI/release infrastructure to support an AI-agent-friendly workflow by standardizing linting, adding changesets-based versioning/changelog management, strengthening pre-commit automation, and tightening CI.
Changes:
- Add Changesets configuration + CI enforcement workflow, and introduce
CHANGELOG.md. - Properly wire up Husky + lint-staged + TypeScript typechecking in pre-commit, and simplify ESLint config to a single flat config.
- Improve CI workflows (pnpm caching; enforce a minimum Jest coverage threshold; integrate changeset versioning into publish flow).
Reviewed changes
Copilot reviewed 11 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Adds @changesets/cli and related dependency graph updates. |
| package.json | Adds changesets/typecheck scripts; updates lint-staged; removes legacy eslintConfig/husky hook config. |
| docs/develop.md | Replaces minimal dev notes with a comprehensive development/release guide. |
| CHANGELOG.md | Introduces Changesets-managed changelog file. |
| .husky/pre-commit | Adds pre-commit actions (lint-staged + typecheck). |
| .github/workflows/test.yml | Runs Jest with coverage + a global minimum threshold. |
| .github/workflows/publish.yml | Runs changeset version during tagged publishes (see comment re: tag/source drift). |
| .github/workflows/node.js.yml | Adds pnpm/action-setup and pnpm-store caching; uses frozen lockfile installs. |
| .github/workflows/changeset-check.yml | Adds CI gate requiring a changeset on PRs to master/develop. |
| .eslintrc.js | Removes legacy ESLint config file in favor of eslint.config.mjs. |
| .changeset/config.json | Adds Changesets config (baseBranch currently set to master). |
| .changeset/README.md | Adds Changesets’ generated README. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
aea22a5 to
7c28e18
Compare
- Fix husky v9 pre-commit hooks (was broken: v4 config with v9 install) - lint-staged now runs ESLint + Prettier on .ts files - typecheck (tsc --noEmit) runs on every commit - Clean up redundant ESLint configs (delete .eslintrc.js, remove eslintConfig from package.json) - Keep eslint.config.mjs as single source of truth - Set up @changesets/cli for automated changelog management - Add changeset-check.yml CI workflow (hard blocks PRs without changeset) - Integrate changeset version into publish workflow - Add CHANGELOG.md - Expand docs/develop.md into comprehensive dev guide - Local setup, code architecture, branch management, PR workflow - Changesets usage, release process, testing conventions - Add coverage threshold (10% min) to test CI - Fix lint CI workflow: add pnpm store caching (was missing) - Add scripts: typecheck, prepare, test:ci, changeset, version-packages, release
7c28e18 to
4140dd1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrade project infrastructure to support AI-agent-driven development workflow.
Changes
Pre-commit hooks (fixed & strengthened)
.husky/dir, v4-style config silently ignored) — now properly set uplint-stagedexpanded: ESLint + Prettier on.tsfiles, Prettier on template/account filestsc --noEmit) added to pre-commitESLint cleanup
.eslintrc.js(legacy config alongside flat config)eslintConfigfrom package.jsoneslint.config.mjsChangesets for changelog management
@changesets/cli, initialized.changeset/configchangeset-check.yml: blocks PRs without a changeset filechangeset versioninto publish workflowCHANGELOG.mdDocumentation overhaul
docs/develop.mdfrom ~40 lines to comprehensive dev guideCI improvements
New scripts
typecheck,prepare,test:ci,changeset,version-packages,releaseNote
This PR itself doesn't include a changeset since it's setting up the changeset infrastructure. Future PRs will be required to include one.