Commit 2d9855f
v1.9.0: add CRIT-SV-CUSTOMER-ATTESTATION-VALIDATION-GATE — third C3 axis
Surfaced by the ADAComplianceDocs 2026-04-29 audit (audit 5 of 7).
The product introduced a structurally new Layer 2 shape the framework
hadn't previously modeled: a customer-attested status field whose
publish path must reference a system-verified validation gate before
the attestation can persist.
Distinct from the two existing C3 axes:
- Output-attestation provenance (v1.4.0+):
"this customer-facing attestation references customer-submitted
evidence" (FL's RateSnapshotJson on Platform_RateLetters)
- Input-data provenance (v1.8.0):
"this data is labeled as customer-attested vs system-derived"
(HP's customer_attested enum on Hireposture_AuditFindings)
The new third axis:
"this customer-attested data cannot publish until system-verified
evidence supports it"
(ADA's checkConformanceGuard in src/lib/statements.ts which blocks
Platform_Statements.conformanceStatus='full' publishes when
critical/serious axe-core findings are open)
Provenance markers say WHERE data came from. Validation gates say WHEN
data may publish. Different verbs, different runtime semantics —
genuinely new principle, not a calibration of v1.8.0.
The new rule (CRIT-SV-CUSTOMER-ATTESTATION-VALIDATION-GATE) is a
co-occurrence check:
- Trigger: customer-attested status column declarations
(conformanceStatus, complianceStatus, attestationStatus,
certificationStatus, wcagConformance, etc.)
- Required: any validation-gate function or typed-error pattern
(checkConformance, conformanceGuard, validateBeforePublish,
acknowledgeOpenFindings, ConformanceGuardBlockedError, etc.)
- Vacuous-pass when trigger never fires (most products)
Validated backwards-compatible across the portfolio:
- FieldLedger: no trigger (no customer-attested status field) PASS
- ClarityLift: no trigger PASS
- IdeaLift: no trigger PASS
- Hireposture: no trigger (customer_attested is enum on findings,
not a status publish flow) PASS
- ADAComplianceDocs: trigger fires, gate present PASS
First-implementation note: trigger pattern list will need calibration
as MA / PRAPI / future products surface edge cases.
Closes framework #14.
Case study: https://github.com/Startvest-LLC/adacompliancedocs/blob/main/audits/tif-compliance.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent dc68593 commit 2d9855f
2 files changed
Lines changed: 117 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
6 | 13 | | |
7 | 14 | | |
8 | 15 | | |
| |||
305 | 312 | | |
306 | 313 | | |
307 | 314 | | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
308 | 362 | | |
309 | 363 | | |
310 | 364 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
363 | 424 | | |
364 | 425 | | |
365 | 426 | | |
| |||
691 | 752 | | |
692 | 753 | | |
693 | 754 | | |
| 755 | + | |
694 | 756 | | |
695 | 757 | | |
696 | 758 | | |
| |||
0 commit comments