Skip to content

feat: add a11y skills agent#1387

Merged
tyler-dane merged 5 commits intomainfrom
feat/a11y-skills
Dec 22, 2025
Merged

feat: add a11y skills agent#1387
tyler-dane merged 5 commits intomainfrom
feat/a11y-skills

Conversation

@tyler-dane
Copy link
Copy Markdown
Contributor

@tyler-dane tyler-dane commented Dec 22, 2025

Closes #1388

- Introduced a new SKILL.md file outlining the Accessibility Change Audit process.
- The document provides an overview, usage scenarios, a checklist for auditing UI changes, and minimal fix patterns to enhance accessibility in UI components.
- Aimed at improving semantic structure, catching accessibility regressions, and increasing test reliability.
- Enhanced the description to include accessibility audits and flaky UI tests.
- Clarified prerequisites and instructions for conducting audits.
- Introduced a diff-first approach for evaluating UI changes.
- Expanded the audit checklist and output format for better clarity and usability.
…ing guidelines

- Added new SKILL.md files for `claude-a11y-audit` and `codex-a11y-audit`, providing detailed descriptions for accessibility audits.
- Updated the existing `accessibility-change-audit` SKILL.md to rename it to `a11y-audit` for consistency and clarity.
- Adjusted .gitignore to exclude specific settings files.
Copilot AI review requested due to automatic review settings December 22, 2025 23:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new accessibility (a11y) audit skill for reviewing UI changes. The skill provides comprehensive guidelines for catching accessibility regressions in code reviews, focusing on semantics, keyboard navigation, ARIA correctness, and test reliability.

Key Changes:

  • Creates a canonical accessibility audit skill with detailed checklists and fix patterns
  • Establishes a shared skill architecture with pointer files for different AI assistants
  • Modifies .gitignore to track .claude/skills/ directory while still ignoring local settings

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.

File Description
skills/accessibility-change-audit/SKILL.md Canonical skill documentation with comprehensive a11y audit guidelines, checklists, and example outputs
.codex/skills/a117-audit/SKILL.md Pointer file that references the canonical skill for Codex integration
.claude/skills/a11y-audit/SKILL.md Pointer file that references the canonical skill for Claude integration
.gitignore Updated to ignore only .claude/settings.local.json instead of entire .claude/ directory, allowing skill files to be tracked

Copilot AI review requested due to automatic review settings December 22, 2025 23:29
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.

- Introduced a new SKILL.md file for `codex-a11y-audit`, detailing its use for reviewing UI diffs, accessibility audits, and identifying a11y regressions.
- The document includes a link to the canonical skill for consistency in accessibility auditing practices.
- Updated the SKILL.md files for `claude-a11y-audit` and `codex-a11y-audit` to link to the new `a11y-audit` documentation.
- Introduced a comprehensive SKILL.md file for `a11y-audit`, detailing its purpose, prerequisites, instructions, and a checklist for conducting accessibility audits.
- Enhanced the document to provide clear guidelines for identifying accessibility regressions and proposing minimal fixes.
@tyler-dane tyler-dane changed the title Feat(skills): add a11y skills agent feat: add a11y skills agent Dec 22, 2025
@tyler-dane tyler-dane merged commit 7636dfa into main Dec 22, 2025
5 checks passed
@tyler-dane tyler-dane deleted the feat/a11y-skills branch December 22, 2025 23:42
tyler-dane added a commit that referenced this pull request Dec 29, 2025
* feat(accessibility): add Accessibility Change Audit guideline document

- Introduced a new SKILL.md file outlining the Accessibility Change Audit process.
- The document provides an overview, usage scenarios, a checklist for auditing UI changes, and minimal fix patterns to enhance accessibility in UI components.
- Aimed at improving semantic structure, catching accessibility regressions, and increasing test reliability.

* refactor(accessibility): update Accessibility Change Audit guidelines

- Enhanced the description to include accessibility audits and flaky UI tests.
- Clarified prerequisites and instructions for conducting audits.
- Introduced a diff-first approach for evaluating UI changes.
- Expanded the audit checklist and output format for better clarity and usability.

* feat(accessibility): introduce new a11y-audit skills and update existing guidelines

- Added new SKILL.md files for `claude-a11y-audit` and `codex-a11y-audit`, providing detailed descriptions for accessibility audits.
- Updated the existing `accessibility-change-audit` SKILL.md to rename it to `a11y-audit` for consistency and clarity.
- Adjusted .gitignore to exclude specific settings files.

* feat(a11y): add codex-a11y-audit skill documentation

- Introduced a new SKILL.md file for `codex-a11y-audit`, detailing its use for reviewing UI diffs, accessibility audits, and identifying a11y regressions.
- The document includes a link to the canonical skill for consistency in accessibility auditing practices.

* feat(a11y): update a11y-audit skill documentation and introduce new file

- Updated the SKILL.md files for `claude-a11y-audit` and `codex-a11y-audit` to link to the new `a11y-audit` documentation.
- Introduced a comprehensive SKILL.md file for `a11y-audit`, detailing its purpose, prerequisites, instructions, and a checklist for conducting accessibility audits.
- Enhanced the document to provide clear guidelines for identifying accessibility regressions and proposing minimal fixes.
tyler-dane added a commit that referenced this pull request Dec 29, 2025
* Initial plan

* Refactor: Replace googleapis with @googleapis/calendar and gaxios

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Fix GaxiosError mock objects for compatibility with gaxios library

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Address code review: Add code property to GaxiosError instances

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* ➖ chore(dependencies): remove unused express-validator and express-winston packages (#1339)

* build(deps): bump validator from 13.15.20 to 13.15.23

Bumps [validator](https://github.com/validatorjs/validator.js) from 13.15.20 to 13.15.23.
- [Release notes](https://github.com/validatorjs/validator.js/releases)
- [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md)
- [Commits](validatorjs/validator.js@13.15.20...13.15.23)

---
updated-dependencies:
- dependency-name: validator
  dependency-version: 13.15.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* ➖ chore(dependencies): remove unused express-validator and express-winston packages

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tyler Dane <tyler@switchback.tech>
Co-authored-by: Victor Enogwe <23452630+victor-enogwe@users.noreply.github.com>

* :sparkles feat(day-view): show preview for new events (#1371)

* :sparkles feat(day-view): show preview for new events

- Added `useOpenAgendaEventPreview` and `useOpenEventContextMenu` hooks to manage event previews and context menus.
- Created tests for both hooks to ensure correct functionality when interacting with events.
- Refactored event form handling in `useOpenEventForm` to streamline event creation and editing.
- Introduced `useCloseEventForm` hook to handle closing event forms and resetting drafts.
- Updated `useSaveEventForm` to integrate with the new close event form logic.
- Enhanced utility functions for event handling and focus management.
- Removed unnecessary context providers from `DayViewContent` for cleaner component structure.
- add a re-resizable package

* :sparkles feat: refactor event handling and improve test setups

* fix: update existing event check to return false instead of null

* Update packages/web/src/components/DND/Resizable.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* :bug fix: ensure element scrolls into view before focusing in focusElement function

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* docs: replace discord links in README (#1383)

* Update issue template and command palette links to reflect GitHub Discussions instead of Discord. This change enhances community engagement by directing users to the appropriate platform for questions and feedback.

* Update README.md to reflect new project description and community engagement links. Changed project description to emphasize its role as a minimal task manager for engineers and updated contact links to direct users to GitHub Discussions instead of Discord.

* Update .github/ISSUE_TEMPLATE/config.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/web/src/common/constants/more.cmd.constants.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/ISSUE_TEMPLATE/config.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feat: add a11y skills agent (#1387)

* feat(accessibility): add Accessibility Change Audit guideline document

- Introduced a new SKILL.md file outlining the Accessibility Change Audit process.
- The document provides an overview, usage scenarios, a checklist for auditing UI changes, and minimal fix patterns to enhance accessibility in UI components.
- Aimed at improving semantic structure, catching accessibility regressions, and increasing test reliability.

* refactor(accessibility): update Accessibility Change Audit guidelines

- Enhanced the description to include accessibility audits and flaky UI tests.
- Clarified prerequisites and instructions for conducting audits.
- Introduced a diff-first approach for evaluating UI changes.
- Expanded the audit checklist and output format for better clarity and usability.

* feat(accessibility): introduce new a11y-audit skills and update existing guidelines

- Added new SKILL.md files for `claude-a11y-audit` and `codex-a11y-audit`, providing detailed descriptions for accessibility audits.
- Updated the existing `accessibility-change-audit` SKILL.md to rename it to `a11y-audit` for consistency and clarity.
- Adjusted .gitignore to exclude specific settings files.

* feat(a11y): add codex-a11y-audit skill documentation

- Introduced a new SKILL.md file for `codex-a11y-audit`, detailing its use for reviewing UI diffs, accessibility audits, and identifying a11y regressions.
- The document includes a link to the canonical skill for consistency in accessibility auditing practices.

* feat(a11y): update a11y-audit skill documentation and introduce new file

- Updated the SKILL.md files for `claude-a11y-audit` and `codex-a11y-audit` to link to the new `a11y-audit` documentation.
- Introduced a comprehensive SKILL.md file for `a11y-audit`, detailing its purpose, prerequisites, instructions, and a checklist for conducting accessibility audits.
- Enhanced the document to provide clear guidelines for identifying accessibility regressions and proposing minimal fixes.

* :sparkles feat(agenda-event resize): support resizable agenda event preview

* Initial plan

* Implement resizable event preview with top and bottom handles

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Address code review feedback: improve resize logic and reduce duplication

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* :sparkles feat(agenda-event resize): support resizable agenda event preview

:package deps(rxjs-state-management): introduce rxjs state  @ngneat/elf library

- Updated EventContextMenu and related components to utilize activeEvent$ observable for managing active events.
- Replaced setDraft with resetDraft and resetActiveEvent in event form hooks to improve state management.
- Refactored tests to mock new event store structure and ensure proper event handling.
- Introduced utility functions for calculating event height and rounding minutes to nearest fifteen.
- Updated yarn.lock to include new dependencies for @ngneat/elf-entities and @ngneat/use-observable.

* :bugfix fix(resize-agenda-event): improve event handling and add tests

* Update packages/web/src/common/hooks/useEventResizeActions.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feat(resize-agenda-event): add bounds parameter to useEventResizeActions for improved resizing logic

* refactor(useEventResizeActions): remove debug log from resizing function

* feat(useEventResizeActions): enhance resizing logic with bounds clamping and update tests

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* :bug fix(agenda-loading): fix AgendaSkeleton displaying on every event reload (#1390)

* Initial plan

* Add LoadingProgressLine component and update TimedAgendaEvents to use it

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Add tests for LoadingProgressLine and update Agenda tests

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Update LoadingProgressLine component comment for clarity

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Move LoadingProgressLine inside mainGrid with absolute positioning

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Move LoadingProgressLine to top of ID_GRID_EVENTS_TIMED (timedEvents div)

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* :bug fix(agenda-loading): make loading animation subtle

* refactor(tests): remove absolute positioning test for LoadingProgressLine

* feat(hooks): add useHasLoadedOnce hook for tracking initial load state

refactor(agenda): integrate useHasLoadedOnce in Agenda and TimedAgendaEvents components

* test(agenda): improve loading state handling and progress line rendering

* test(hooks): add tests for useHasLoadedOnce hook functionality

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* :sparkles feat(agenda-events): select surface to create timed events (#1392)

chore: update dev dependencies add jest-canvas-mock

* :sparkles feat(agenda-events): add event shortcuts (n, m) to Day view command palette (#1389)

* Initial plan

* Add Create event [n] and Edit event [m] to DayCmdPalette with tests

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Fix test mocks and pass all tests with linting

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* Remove unnecessary onEventTargetVisibility wrapper from event shortcuts

Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* :bug fix(DayCmdPalette): update event handlers to use queueMicrotask to stagger open and keep focus on open

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>

* :sparkles feat(agenda-events): fix event form context menu visibility (#1393)

* :sparkles feat(agenda-events): improve z-index mgmt within event form

add event context menu delete and duplicate functionalities

* fix(context-menu): do not close form if delete is not confirmed

* fix(context-menu): delete draft events on confirmation

* update yarn.lock

* refactor(auth, user, error handling): improve error messages and handling in authentication and user services

- Updated error messages in `google.auth.service.ts` to clarify authentication client initialization issues.
- Enhanced error handling in `user.controller.ts` to catch and respond to `BaseError` instances appropriately.
- Added logging in `error.express.handler.ts` for better debugging of errors.
- Improved user profile retrieval error message in `user.service.ts` for clarity.
- Adjusted user profile loading logic in `UserProvider.tsx` to prevent unnecessary re-renders.
- Updated API response handling in `compass.api.ts` to redirect users to onboarding on profile not found errors.

* refactor(user.controller): enhance error handling for user metadata retrieval

- Wrapped user metadata fetching logic in try-catch blocks to handle potential errors.
- Improved response handling for `BaseError` instances, ensuring appropriate status codes are returned.
- Maintained existing functionality while increasing robustness against errors during user metadata operations.

* refactor(user.service, StorageInfoModal): remove debug log and simplify text

- Removed console log statement from `user.service.ts` to clean up the code.
- Simplified the explanatory text in `StorageInfoModal.tsx` for better clarity and conciseness.

* refactor(error.express.handler): remove debug log for cleaner error handling

- Removed console log statement from `error.express.handler.ts` to streamline error handling and improve code clarity.

* refactor(mock.events.init, error mocks): streamline error handling and improve mock structure

- Removed unused type imports and simplified the event simulation function in `mock.events.init.ts`.
- Enhanced error mock structures in `error.google.invalidGrant.ts`, `error.google.invalidValue.ts`, and `error.invalidSyncToken.ts` by using `Headers` and `URL` objects for better clarity and consistency.
- Updated error handling to include more detailed response structures, improving the robustness of the mocks.

* refactor(gcal.factory, google.auth.service, error.express.handler, gcal.service, gcal.utils): enhance mock responses and error handling

- Introduced a `createMockGaxiosResponse` function in `gcal.factory.ts` to standardize mock responses for Google Calendar API interactions.
- Updated error handling in `google.auth.service.ts` to provide more detailed GaxiosError structures.
- Improved URL handling in `error.express.handler.ts` for better email extraction from error configurations.
- Modified response validation in `gcal.service.ts` to accommodate new response structures.
- Enhanced error checking in `gcal.utils.ts` to ensure proper handling of error codes.

* chore: add return to user.controller

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: victor-enogwe <23452630+victor-enogwe@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a Skill to audit for accessibility issues

2 participants