Skip to content

Conversation

@beonde
Copy link
Member

@beonde beonde commented Jan 17, 2026

Summary

Corrects trust level naming in TrustLevel enum and documentation to match RFC-002 v1.4 §5.

Problem

The Python SDK's TrustLevel enum had incorrect level names that didn't match the authoritative RFC-002 specification:

Level Before (Wrong) After (Correct per RFC-002)
0 Self-Signed Self-Signed (SS) ✅
1 DV REG (Registered)
2 OV DV (Domain Validated)
3 EV OV (Organization Validated)
4 CV EV (Extended Validated)

CV (Continuous Validation) doesn't exist in RFC-002. The code invented a level that the spec doesn't define.

Impact

  • ⚠️ BREAKING CHANGE for documentation consumers - Anyone who read our docs and built policies around "Level 1 = DV" will need to update their mental model
  • ✅ No code changes required - Integer values (0-4) are unchanged. The actual verification logic was already correct.
  • ✅ All 269 tests pass

Files Changed

File Change
capiscio_mcp/types.py Fixed TrustLevel enum docstring and inline comments
README.md Updated trust level table
docs/index.md Updated trust level table
docs/getting-started/quickstart.md Updated trust level table
docs/guides/server-side.md Fixed code comment (CV → EV)

RFC-002 v1.4 §5 Reference

| Level | Name                     | Validation                              |
|-------|--------------------------|----------------------------------------|
| "0"   | Self-Signed (SS)        | None. Agent uses did:key                |
| "1"   | Registered (REG)        | Account registration                    |
| "2"   | Domain Validated (DV)   | DNS TXT / HTTP challenge                |
| "3"   | Organization Validated (OV) | DUNS, legal entity lookup           |
| "4"   | Extended Validated (EV) | Manual review + legal agreement         |

Testing

pytest tests/ -v
# 269 passed ✅

Checklist

  • Trust level enum matches RFC-002 v1.4
  • All documentation tables updated
  • All tests pass
  • Commit message explains breaking change

BREAKING CHANGE: Trust level naming corrected to match RFC-002 v1.4.

Before (incorrect):
- Level 1: DV (Domain Validated)
- Level 2: OV (Organization Validated)
- Level 3: EV (Extended Validation)
- Level 4: CV (Continuous Validation) ← doesn't exist in RFC

After (correct per RFC-002 v1.4):
- Level 1: REG (Registered)
- Level 2: DV (Domain Validated)
- Level 3: OV (Organization Validated)
- Level 4: EV (Extended Validated)

Integer values (0-4) unchanged - this is a naming/documentation fix only.
The actual verification logic was already correct.

Files updated:
- capiscio_mcp/types.py: TrustLevel enum docstring and comments
- README.md: Trust level table
- docs/index.md: Trust level table
- docs/getting-started/quickstart.md: Trust level table
- docs/guides/server-side.md: Code comment (CV → EV)

Refs: RFC-002 v1.4 §5 Trust Levels
@beonde beonde merged commit 86ece56 into main Jan 18, 2026
6 of 10 checks passed
@beonde beonde deleted the fix/trust-level-rfc002-alignment branch January 18, 2026 03:01
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