Skip to content

Open-Issue Triage Report β€” theaccessible-platform

Date: 2026-07-07 Β· Open issues: 201 Β· Open PRs: 41 Cross-checked against git log --oneline -100 on main and the last 60 merged PRs.

Note: #1200, #1168, and #1266 (flagged for obsolescence checks) are open PRs, not issues β€” covered in the close-candidates section.


(a) Top 10 Quick Wins (ranked by value/effort)

RankIssueWhy
1#846 / #848 / #849Zero new work β€” open PR #851 already implements all three lint cleanups. Review, merge, close three issues at once.
2#1169vpat-parse recordCostAsync missing ctx.waitUntil β€” essentially a one-liner that stops silent cost-event loss (violates cost-tracking standard).
3#1103VPAT batch-upload failures swallowed by empty catch blocks β€” small fix, ends user-invisible data loss.
4#1102Stop persisting bogus score_508 for Software-type ACRs β€” small data-integrity fix in one write path.
5#897Skip redundant alt-text passes on Marker output (use_llm already generates them) β€” direct per-conversion AI cost savings for a conditional.
6#850Never render single-item bulleted lists β€” one post-processing rule, visible output-quality gain on every conversion.
7#1051Course-map card spacing (prereq lines unreadable) β€” CSS/layout constant change, big readability payoff.
8#1075Retire /api/onboarding/me + wizard type polish β€” scoped dead-code removal already itemized in the issue.
9#638Verify CorporateFooter feedback-widget endpoint in apps/audit β€” 30-minute verification; a broken feedback widget silently eats user reports.
10#489Migrate workers/api/src/utils/file-list.ts off console.* to the structured logger β€” mechanical, aligns with logging standard.

Also cheap: #942 (clean corporate logos), #782 (claude:// deep link), #977 (table-test computeLegacyRedirect), #482 (smoke-test footnote linker), #724/#725 (S3 usage-cost rollup + digest email β€” newly relevant now that the S3 stack is live).

(b) Top 10 Bugs to Fix Soon

RankIssueWhy
1#1449Node API entry omits ~25 route groups Lambda registers β†’ intermittent prod 404s (same failure class as the worksheet /access incident). Open PR #1445 fixes it β€” review/merge/deploy is the whole job.
2#1188Fix-with-AI dialog hangs in β€œApplying…” forever (no fetch timeout / error boundary). Pairs with in-flight PR #1444 (Novaβ†’Haiku chain) β€” fix the timeout in the same area.
3#1044Program parser treats choose-from option lists as all-required β†’ inflated credit totals in generated plans. Data-integrity bug in the advising product’s core output.
4#972Sibling wcag-*-checker.ts manufacture phantom WCAG failures on any Puppeteer error β€” corrupts paid audit results.
5#740Synthetic axe-runtime-error corrupts compliance score on infra failure β€” same family as #972; open PR #747 exists, review/merge.
6#732WCAG validation: silent failures in stale state + unknown-rule classification β€” third leg of the audit-integrity cluster (with #741).
7#955snapshotHtmlVersion overwrites on snapshot failure β€” potential silent data loss of user document versions.
8#727Org-chart Checkout uses ad-hoc price_data instead of the saved stripe_price_id β€” billing correctness/drift risk.
9#1399Pages missing .pdf-page wrappers; figure lists truncated mid-transcription β€” conversion-fidelity bug in the flagship product.
10#1392Figure crop absorbs body text above diagrams (vision bbox too tall) β€” regression-adjacent to the just-shipped region-crop work (#1400–#1411), fix while context is fresh.

Honorable mentions: #1068 (reload after successful edit shows error page), #988 (parser-boundary credit validation), #1114/#1117 (high/critical npm vulns β€” policy says never ignore), #954/#953 (Fix-with-AI reload + focus-trap a11y).

(c) Close Candidates (likely obsolete)

Issues β€” superseded by shipped work:

  • #688 β€” S3 bucket watch & auto-remediate: fully shipped; writeback/pagination/loop-guard live 2026-07-06 (#1436, #1437, #1440, #1441).
  • #1378 β€” In-app rename to canonical names: superseded by shipped rebrand PRs #1385/#1386/#1387 (issue #1401 work); the names it asks for (β€œAccessible PDF”, β€œACR Scorecard”…) are now the retired variants.
  • #1193 β€” β€œUse Bedrock for Zero Data Retention”: duplicate umbrella of #1191; the Bedrock zero-retention path shipped for vpat-parse in #1373/#1374.
  • #1202 β€” Align billing backend with prepaid-balance pricing: superseded by the entitlement-packages billing cutover (#1350/#1358/#1364/#1366, migrations 195–198, live 2026-06-28).
  • #1220 β€” Add β€˜Org Charts’ card to the 6-card pricing catalog: superseded by the six-entitlement-packages marketing rewrite (#1363); org-chart was folded into the org_chart add-on.
  • #777 β€” Smoke-failure snapshot from 2026-05-23: stale point-in-time alert, prod smoke has been green through dozens of deploys since.
  • #830 and #836 β€” Migration-ledger reconciliation / db push version mismatch: both folded into the migration-tracking rework tracked by #1327; close as duplicates of #1327.
  • #585 β€” Apply migration 20260505_096 to staging Supabase: staging stack was shut down after the 2026-05-08 pollution incident; superseded by #1327’s clean-apply model.
  • #641 β€” Funnel deduct_credits callers through cache-invalidating helper: credit charging replaced by entitlement RPCs (#1364); verify no callers remain, then close.
  • #816 β€” Internal TOC links break: TOC handling was overhauled in #1393/#1394; re-test one affected PDF and close if fixed.
  • #211 and #78 β€” β€œNew product: AccessibleRemediate” / β€œadd auto-remediation product”: shipped as TheAccessibleWeb (apps/remediate).
  • #160 β€” Team shared credit pools / member management: shipped as team management with per-member entitlement quotas (#1369).
  • #448 β€” Epic: Team workspaces: largely delivered by #1369; close or re-scope the small remainder.
  • #773 β€” Org/subscription tier model: delivered by the entitlement model (migrations 195–198, live 2026-06-28).
  • #53 β€” Track 10 free conversions permanently: free-credits model no longer exists under entitlement pricing.
  • #1181 β€” Out-of-credits dialog coverage: credits UX replaced by the balance pre-flight shipped in #1405; verify then close.
  • #1161 β€” Migrate off retiring Sonnet 4.x: issue itself notes live code runs 4.5/4.6 and nothing errors; either fold into #1162 (centralize model management) or close.

Stale open PRs (superseded by merged work):

  • PR #1200 and PR #1168 β€” vpat-parse 502/truncation fixes: superseded by merged #1371 (output cap + truncated-JSON salvage), #1373 (Nova 5K cap), #1374 (Novaβ†’Claude-on-Bedrock escalation). Close both.
  • PR #1266 (org-chart cost ledger) is not obsolete β€” it’s the pending implementation; review and merge instead.

(d) Counts per Category

CategoryCount
Quick wins19
Bugs worth fixing soon17
Epic / architecture51
Likely obsolete (close candidates)18 issues (+2 stale PRs)
Deferred-by-design (priority:later / deferred / wontfix-candidate β€” untouched)96
Total open issues201

Notes on the epic/architecture bucket (51)

Dominant clusters, in case you want to pick one to schedule:

  • Editor / Fix-with-AI UX (#948, #949, #950, #943, #944, #953, #954, #974, #976) β€” one coherent workstream.
  • Audit correctness & coverage (#731, #741, #789, #791, #793, #794, #804) β€” overlaps the bug list above.
  • Course-map robustness (#986, #988, #1040, #1046, #1131, #1138, #1144, #1031, #1068).
  • Math/equation quality gate (#523, #524, #526).
  • Model/provider strategy (#1162, #1190, #795, #636, #858) β€” #1162 (one-line model switching) would de-risk every future retirement like #1161.
  • Pricing/catalog plumbing (#1333 remaining scope, #1213 nice-to-haves, #1204 refund policy, #910 Marker billing actuals).
  • Zero-retention completion (#1191 remaining scope: immediate-delete setting + vpat_parse_cache retention β€” the Bedrock routing itself already shipped).