@triedotdev/mcp 1.0.38 → 1.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,6 +12,8 @@ The last mile of shipping is where things break—not because your code doesn't
12
12
 
13
13
  ## What's New (latest updates)
14
14
 
15
+ - **Accessibility Agent (v2.0)**: Comprehensive WCAG 2.1 AA compliance. Detects icon-only buttons, touch targets, skipped headings, positive tabIndex, ARIA validation, color-only indicators, and 20+ more checks with WCAG criterion references.
16
+
15
17
  - **Health Score Triaging**: Your health score (0-100) now actively controls what agents run. Below 50%? All agents run automatically. Agents that found issues before get boosted priority in future scans.
16
18
 
17
19
  - **Moneybags Agent**: Estimates dollar cost of bugs using IBM/NIST research. Costs scale with your user count—use `--users 10000` to match your scale (default: 250 users).
@@ -28,6 +30,7 @@ The last mile of shipping is where things break—not because your code doesn't
28
30
  - [MCP Tools](#mcp-tools)
29
31
  - [CLI](#cli)
30
32
  - [Built-in Agents](#built-in-agents)
33
+ - [Accessibility Agent (v2.0)](#accessibility-agent-v20)
31
34
  - [Moneybags Agent (v1.1)](#moneybags-agent-v11)
32
35
  - [Legal Agent (v2.0)](#legal-agent-v20)
33
36
  - [Design Engineer (v2.0)](#design-engineer-v20)
@@ -37,7 +40,7 @@ The last mile of shipping is where things break—not because your code doesn't
37
40
  - [CI/CD Integration](#cicd-integration)
38
41
  - [VS Code Extension](#vs-code-extension)
39
42
  - [Agent Context System](#agent-context-system)
40
- - [Production Shipping](#production-shipping)
43
+ - [Production Shipping](#production-shipping) (Production Ready Agent)
41
44
  - [Configuration](#configuration)
42
45
  - [License](#license)
43
46
 
@@ -402,7 +405,7 @@ Run a specific agent directly:
402
405
  | `trie_privacy` | GDPR/CCPA/PCI-DSS compliance, PII exposure, logging sensitive data |
403
406
  | `trie_soc2` | Access control gaps, missing audit logs, encryption issues |
404
407
  | `trie_legal` | Licensing, ToS, accessibility, IP, GDPR/CCPA, e-commerce, marketing, COPPA |
405
- | `trie_accessibility` | WCAG 2.1 compliance, keyboard nav, screen readers, color contrast |
408
+ | `trie_accessibility` | WCAG 2.1 AA: icon-only buttons, touch targets, heading levels, ARIA validation, focus management, 20+ checks |
406
409
  | `trie_architecture` | Code organization, SOLID principles, N+1 queries, scalability |
407
410
  | `trie_bugs` | Null safety, edge cases, async issues, common bugs |
408
411
  | `trie_types` | Type errors, missing annotations, null checks |
@@ -483,7 +486,7 @@ trie-agent agents
483
486
 
484
487
  | Agent | Description |
485
488
  |-------|-------------|
486
- | **Accessibility** | WCAG 2.1 compliance, keyboard nav, screen readers, color contrast |
489
+ | **Accessibility** | WCAG 2.1 AA compliance: icon-only buttons, touch targets, heading levels, ARIA validation, color-only indicators, keyboard nav, focus management, 20+ checks |
487
490
  | **Design Engineer** | AI slop detection, verified token systems, contrast validation, design health scoring, domain-aware recommendations |
488
491
  | **User Testing** | Simulate happy path, security tester, confused user, impatient user |
489
492
  | **Visual QA** | Visual regression, responsive design, cross-browser issues |
@@ -501,6 +504,128 @@ trie-agent agents
501
504
 
502
505
  ---
503
506
 
507
+ ## Accessibility Agent (v2.0)
508
+
509
+ The Accessibility Agent has been completely rebuilt to provide comprehensive WCAG 2.1 AA compliance checking—matching and exceeding tools like rams.ai, axe-core, and Lighthouse.
510
+
511
+ ### Severity Levels
512
+
513
+ | Level | Description | Examples |
514
+ |-------|-------------|----------|
515
+ | **Critical** | Blocks access entirely | Images without alt, icon-only buttons without labels, empty links |
516
+ | **Serious** | Significantly impairs access | Focus outline removed, positive tabIndex, missing ARIA attributes |
517
+ | **Moderate** | Creates barriers | Skipped headings, color-only indicators, small touch targets |
518
+ | **Low** | Best practices | Missing semantic elements, external link warnings |
519
+
520
+ ### What It Detects
521
+
522
+ #### Critical Issues
523
+
524
+ | Issue | WCAG | Description |
525
+ |-------|------|-------------|
526
+ | Images without alt text | 1.1.1 | Screen readers cannot describe the image |
527
+ | Icon-only buttons missing aria-label | 4.1.2 | Screen readers announce "button" with no purpose |
528
+ | Non-semantic click handlers | 2.1.1 | `div onClick` without keyboard support blocks keyboard users |
529
+ | Empty links | 2.4.4 | Links with no text content are unusable |
530
+ | Links without href | 2.4.4 | Anchor elements must have destinations |
531
+
532
+ #### Serious Issues
533
+
534
+ | Issue | WCAG | Description |
535
+ |-------|------|-------------|
536
+ | Focus outline removed | 2.4.7 | `outline: none` without replacement hides keyboard focus |
537
+ | Positive tabIndex values | 2.4.3 | `tabIndex={5}` disrupts natural tab order |
538
+ | Role without required ARIA | 4.1.2 | `role="slider"` needs `aria-valuenow`, `aria-valuemin`, `aria-valuemax` |
539
+ | Form inputs without labels | 1.3.1 | Inputs must have associated labels or aria-label |
540
+ | Color-only status indicators | 1.4.1 | Red/green for error/success excludes colorblind users |
541
+ | Placeholder as only label | 3.3.2 | Placeholder disappears when user types |
542
+ | Modal without Escape key | 2.1.2 | Keyboard users may be trapped in modal |
543
+
544
+ #### Moderate Issues
545
+
546
+ | Issue | WCAG | Description |
547
+ |-------|------|-------------|
548
+ | Skipped heading levels | 2.4.6 | h1 → h3 confuses screen reader navigation |
549
+ | First heading not h1 | 2.4.6 | Pages should start with h1 |
550
+ | Touch targets under 24px | 2.5.8 | Minimum 24×24px for WCAG AA |
551
+ | Missing autocomplete | 1.3.5 | Helps users fill forms faster |
552
+ | Generic link text | 2.4.4 | "Click here" is meaningless out of context |
553
+ | Missing prefers-reduced-motion | 2.3.3 | Animations can trigger vestibular disorders |
554
+ | Status messages without aria-live | 4.1.3 | Toasts/alerts not announced to screen readers |
555
+
556
+ #### Low Issues
557
+
558
+ | Issue | WCAG | Description |
559
+ |-------|------|-------------|
560
+ | Touch targets under 44px | 2.5.5 | Recommended 44×44px for AAA |
561
+ | Missing semantic elements | 1.3.1 | `<div class="nav">` should be `<nav>` |
562
+ | External links without warning | 3.2.5 | `target="_blank"` should indicate new window |
563
+ | Disabled elements without explanation | — | Users need to know why action is unavailable |
564
+
565
+ ### ARIA Validation
566
+
567
+ The agent validates that ARIA roles have their required attributes:
568
+
569
+ | Role | Required Attributes |
570
+ |------|---------------------|
571
+ | `checkbox` | `aria-checked` |
572
+ | `slider` | `aria-valuenow`, `aria-valuemin`, `aria-valuemax` |
573
+ | `combobox` | `aria-expanded`, `aria-controls` |
574
+ | `progressbar` | `aria-valuenow`, `aria-valuemin`, `aria-valuemax` |
575
+ | `tab` | `aria-selected` |
576
+ | `switch` | `aria-checked` |
577
+
578
+ ### Accessibility Score
579
+
580
+ Each scan produces an **Accessibility Score** (0-100) based on issue severity:
581
+
582
+ ```
583
+ ═══════════════════════════════════════════════════
584
+ ACCESSIBILITY REVIEW: src/components/
585
+ ═══════════════════════════════════════════════════
586
+
587
+ CRITICAL (2 issues)
588
+ ───────────────────
589
+ [A11Y] Line 24: Icon-only button missing accessible name
590
+ <button><CloseIcon /></button>
591
+ Fix: Add aria-label="Close"
592
+ WCAG: 4.1.2 Name, Role, Value
593
+
594
+ SERIOUS (1 issue)
595
+ ─────────────────
596
+ [A11Y] Line 48: Focus outline removed without replacement
597
+ className="outline-none"
598
+ Fix: Add focus-visible:ring-2 focus-visible:ring-offset-2
599
+ WCAG: 2.4.7 Focus Visible
600
+
601
+ MODERATE (2 issues)
602
+ ───────────────────
603
+ [A11Y] Line 67: Skipped heading level: h1 to h3
604
+ <h3>Features</h3>
605
+ Fix: Use h2 after h1
606
+ WCAG: 2.4.6 Headings and Labels
607
+
608
+ ═══════════════════════════════════════════════════
609
+ SUMMARY: 2 critical, 1 serious, 2 moderate
610
+ Score: 55/100
611
+ ═══════════════════════════════════════════════════
612
+ ```
613
+
614
+ ### Usage
615
+
616
+ ```bash
617
+ # Run accessibility scan
618
+ trie scan --agents accessibility
619
+
620
+ # Full UI scan (accessibility + design)
621
+ trie scan --agents accessibility,design-engineer
622
+
623
+ # MCP usage
624
+ trie_accessibility
625
+ ```
626
+
627
+ ---
628
+
504
629
  ## Moneybags Agent
505
630
 
506
631
  The Moneybags agent answers the question every CFO asks: **"How much will this bug cost us?"**
@@ -933,6 +1058,33 @@ Every time you scan, Trie updates a file in your project (`.trie/AGENTS.md`) wit
933
1058
  | Push to GitHub | CI/CD knows what to focus on |
934
1059
  | Ask Trie "what should I fix?" | Gives prioritized answer based on your history |
935
1060
 
1061
+ ### File Size Management
1062
+
1063
+ The context system uses automatic limits to prevent unbounded growth:
1064
+
1065
+ | Limit | Value | What Happens |
1066
+ |-------|-------|--------------|
1067
+ | Max tracked issues | 500 | Oldest issues pruned when exceeded |
1068
+ | Locations per issue | 5 | Only most recent locations kept |
1069
+ | Scan history | 20 scans | Older scan records removed |
1070
+ | Hot files | 10 files | Only top 10 shown |
1071
+ | Issue age | 30 days | Stale resolved issues pruned |
1072
+
1073
+ You don't need to manage this - Trie automatically prunes old data on each scan.
1074
+
1075
+ ### Multiple Projects
1076
+
1077
+ Each project has its own isolated context:
1078
+
1079
+ | Scenario | How It Works |
1080
+ |----------|--------------|
1081
+ | Switch between projects | Each project has its own `.trie/` folder |
1082
+ | Clone on new machine | Context restored from committed `.trie/` files |
1083
+ | Monorepo with workspaces | Each workspace can have its own `.trie/` |
1084
+ | Team collaboration | Same context when pulling changes |
1085
+
1086
+ Trie auto-detects your project root by looking for `package.json`, `.git`, `Cargo.toml`, `go.mod`, or similar project indicators.
1087
+
936
1088
  ### For Developers: Technical Details
937
1089
 
938
1090
  <details>
@@ -955,27 +1107,31 @@ Files stored:
955
1107
 
956
1108
  ## Production Shipping
957
1109
 
958
- Trie solves the "last mile" of shipping to production. See [PRODUCTION_SHIPPING.md](./PRODUCTION_SHIPPING.md) for the complete guide.
1110
+ Trie solves the "last mile" of shipping to production with the **Production Ready** agent.
959
1111
 
960
1112
  ### Quick Production Check
961
1113
 
962
1114
  ```bash
963
- # Full production readiness scan
964
- trie scan --agents security,privacy,bugs,performance --fail-on serious
1115
+ # Run production readiness scan
1116
+ trie scan --agents production-ready
965
1117
 
966
- # Or via MCP
967
- trie_scan with agents: ["security", "privacy", "bugs", "performance"]
1118
+ # Full production scan with cost analysis
1119
+ trie scan --agents production-ready,moneybags,security --users 10000
968
1120
  ```
969
1121
 
970
- ### What It Covers
1122
+ ### What Production Ready Checks
971
1123
 
972
1124
  | Area | What's Checked |
973
1125
  |------|----------------|
974
- | **Security Hardening** | SQL injection, XSS, auth bypass, secrets, dependencies |
975
- | **Scalability** | Connection pooling, stateless design, N+1 queries |
976
- | **Architecture** | Circular dependencies, god classes, coupling |
977
- | **Reliability** | Error handling, health checks, timeouts |
978
- | **Revenue Protection** | Payment security, data compliance, business logic |
1126
+ | **Health Endpoints** | `/health`, `/ready`, `/live` endpoints for orchestrators |
1127
+ | **Graceful Shutdown** | SIGTERM handling, connection draining |
1128
+ | **Connection Pooling** | Database pool configuration |
1129
+ | **Security Headers** | CSP, HSTS, X-Frame-Options, etc. |
1130
+ | **Rate Limiting** | API rate limiting configuration |
1131
+ | **Monitoring** | Error tracking, APM integration |
1132
+ | **Session Storage** | External session store (not in-memory) |
1133
+ | **Error Handling** | Global error handlers, no empty catch blocks |
1134
+ | **Anti-patterns** | console.log, localhost URLs, TODO comments |
979
1135
 
980
1136
  ### CI/CD Gate
981
1137
 
@@ -984,7 +1140,7 @@ Add to your workflow:
984
1140
  ```yaml
985
1141
  - uses: triedotdev/trie-action@v1
986
1142
  with:
987
- agents: security,privacy,bugs,performance,architecture
1143
+ agents: production-ready,security,privacy,moneybags
988
1144
  fail-on: serious
989
1145
  upload-sarif: true
990
1146
  ```