Skip to content

Production-ready: bug fixes, data expansion, a11y, i18n, CI, tests#1

Merged
dougdevitre merged 3 commits into
mainfrom
claude/test-production-UUeth
Mar 29, 2026
Merged

Production-ready: bug fixes, data expansion, a11y, i18n, CI, tests#1
dougdevitre merged 3 commits into
mainfrom
claude/test-production-UUeth

Conversation

@dougdevitre

@dougdevitre dougdevitre commented Mar 28, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bug fixes: sendPrompt crash guard, Medicaid eligibility for seniors 60-64, 0% FPL edge case, schema vocabulary mismatches
  • Data expansion: mo-resources.json from 31 → 58 entries (FQHCs, shelters, DV services, VA medical centers, SUD treatment, reentry, immigration, community action agencies, housing authorities)
  • Code consolidation: Merged two redundant JSX files into single intake-app.jsx
  • Accessibility: Semantic HTML, ARIA attributes, label associations, keyboard support, screen reader live regions
  • Spanish i18n: Full English/Spanish translations with language toggle (130+ strings)
  • Session persistence: localStorage save/restore for partial screenings
  • Testing: 58 automated tests (FPL math, eligibility logic, resource directory integrity)
  • Validation: JSON Schema + validation script with freshness checks
  • CI: GitHub Actions workflow running validation + tests on every PR
  • Scaffolding: README, LICENSE (Apache-2.0), CONTRIBUTING, SECURITY, package.json, issue/PR templates

https://claude.ai/code/session_01Qz7ppbXg1Qvnu7WVBgqqdN

claude added 3 commits March 28, 2026 21:29
…ocab, file sync

- Guard sendPrompt calls with typeof check to prevent ReferenceError when
  "Send to Chat" is clicked outside a chat host environment
- Remove incorrect senior exclusion from adult Medicaid (ages 60-64 qualify)
- Fix mo-resources.json schema: replace invalid domain "all" and "childcare"
  with standard vocabulary, fix "adults" population to "all"
- Sync sdoh-intake-tool.jsx with intake-app.jsx: add missing "School Meals
  (Reduced)" program, add domain field to all programs, add currentBenefits
  to initial state, align Section 8 and SSI wording
- Remove unused useEffect import from intake-app.jsx

https://claude.ai/code/session_01Qz7ppbXg1Qvnu7WVBgqqdN
Repository foundation:
- Add README.md with full project documentation, screening domains,
  benefits table, resource coverage map, and usage guide
- Add Apache-2.0 LICENSE (CC-BY-4.0 for resource data)
- Add CONTRIBUTING.md with resource submission guide and checklists
- Add .gitignore

Data quality:
- Expand mo-resources.json from 31 to 58 entries: FQHCs (6), shelters (3),
  DV services (2), VA medical centers (2), SUD treatment (2), reentry (2),
  community action agencies (2), housing authorities (2), immigration (2),
  veteran crisis line, child care referral, statewide job centers
- Add coverage for KC metro, Mid-MO, SE MO (Bootheel), and rural regions
- Add mo-resources.schema.json (JSON Schema draft 2020-12)
- Add scripts/validate.js: schema validation, vocabulary checks, freshness
  alerts, coverage analysis

Code quality:
- Consolidate two redundant JSX files into single intake-app.jsx
- Add accessibility: semantic HTML (header, nav, section, fieldset),
  ARIA attributes (radiogroup, aria-checked, role=switch, aria-modal,
  aria-current, aria-label), label/htmlFor associations, Escape key
  handler for modal, role=status for live updates
- Fix 0% FPL bug: !pct was truthy for zero-income households
- Export constants for testability

Testing:
- Add tests/eligibility.test.js with 58 automated tests covering
  FPL calculations, eligibility filtering for all population types,
  resource directory integrity, and screening score logic
- All tests passing, validation clean

https://claude.ai/code/session_01Qz7ppbXg1Qvnu7WVBgqqdN
CI/CD:
- Add GitHub Actions workflow (validate.yml) that runs schema validation
  and all 58 tests on every push/PR to main

Session persistence:
- Save screening progress to localStorage on every state change
- Restore previous session on page load (survives refresh/close)
- Clear session on "Start New Screening"

Internationalization:
- Create i18n.js with complete English and Spanish translations for all
  UI strings, screening questions, domain labels, and form fields
- Add language selector dropdown in header (English / Español)
- Reports always generate in English for case notes interoperability
- Refactor DOMAINS array to DOMAIN_IDS with i18n-driven labels

Project scaffolding:
- Add package.json with validate/test/check scripts
- Add SECURITY.md covering data handling, localStorage, and crisis resources
- Add GitHub issue templates (add-resource, data-issue)
- Add PR template with validation checklist

https://claude.ai/code/session_01Qz7ppbXg1Qvnu7WVBgqqdN
@dougdevitre dougdevitre merged commit b3e6d17 into main Mar 29, 2026
1 check passed
@dougdevitre dougdevitre changed the title Fix production bugs: sendPrompt crash, Medicaid eligibility, schema v… Production-ready: bug fixes, data expansion, a11y, i18n, CI, tests Mar 29, 2026
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.

2 participants