Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,20 @@ applied to a specification rather than a software library:

## [Unreleased]

## [1.0.1] — 2026-06-10

### Changed (NORMATIVE)

- §3.4 verdict taxonomy reduced from 4-value (`PASS`/`DECIDE`/`BLOCK`/`INSUFFICIENT_SIGNAL`) to 3-value: `PROCEED` / `PROCEED_STRATEGIC` / `ABANDON`. Per Etymolt board ruling 2026-06-10 §7.2. The 4-value model was aspirational; the 3-value model aligns with the live API, all reference SDKs (`@etymolt/sdk` v0.2.0, `etymolt` v0.2.0), and the user-facing verdict UX.
- New required field `status: "complete" | "partial"` — absorbs the prior `INSUFFICIENT_SIGNAL` semantics, distinguishing verdict from data-quality.
- New optional field `reason: string` — sub-codes preserving granularity (`clean`, `coexistence_required`, `hard_blocker`, `no_workaround`, `insufficient_signal`).

### Conformance

Test fixtures B.1–B.4 updated. Sample verdicts rebased to new enum.



Comments received during the public-comment period (2026-06-10 →
2026-09-10) are landed against this section. Editorial corrections roll
forward into the next patch release; normative changes accepted for the
Expand Down
10 changes: 5 additions & 5 deletions EVP-1-validator-tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@
"name": {"type": "string", "minLength": 1, "maxLength": 64},
"verdict": {
"type": "string",
"enum": ["PASS", "DECIDE", "BLOCK", "INSUFFICIENT_SIGNAL"],
"enum": ["PROCEED", "PROCEED_STRATEGIC", "ABANDON"],
},
"score": {"type": "integer", "minimum": 0, "maximum": 100},
"axes": {
Expand Down Expand Up @@ -502,7 +502,7 @@ def _pass_verdict() -> dict[str, Any]:
return {
"evp_version": "1.0.0",
"name": "Inkstack",
"verdict": "PASS",
"verdict": "PROCEED",
"score": 87,
"axes": {
"trademark": {
Expand Down Expand Up @@ -570,7 +570,7 @@ def _decide_verdict() -> dict[str, Any]:
return {
"evp_version": "1.0.0",
"name": "Stratagem",
"verdict": "DECIDE",
"verdict": "PROCEED_STRATEGIC",
"score": 60,
"axes": {
"trademark": {
Expand Down Expand Up @@ -634,7 +634,7 @@ def _block_verdict() -> dict[str, Any]:
return {
"evp_version": "1.0.0",
"name": "Sigil",
"verdict": "BLOCK",
"verdict": "ABANDON",
"score": 18,
"axes": {
"trademark": {
Expand Down Expand Up @@ -695,7 +695,7 @@ def _insufficient_signal_verdict() -> dict[str, Any]:
return {
"evp_version": "1.0.0",
"name": "Aiyana",
"verdict": "INSUFFICIENT_SIGNAL",
"verdict": "ABANDON", "status": "partial",
"score": 50,
"axes": {
"trademark": {
Expand Down
2 changes: 1 addition & 1 deletion spec/EVP-1-SPEC.md
Original file line number Diff line number Diff line change
Expand Up @@ -513,7 +513,7 @@ For all 1.X versions:

- The five axis names (`trademark`, `domain`, `distinctiveness`, `linguistic`, `cultural`) MUST NOT change.
- The status values `CLEAR`, `CAUTION`, `BLOCKED`, `INSUFFICIENT_SIGNAL`, `UNKNOWN` MUST NOT change in meaning.
- The composite verdict values `PASS`, `DECIDE`, `BLOCK`, `INSUFFICIENT_SIGNAL` MUST NOT change in meaning.
- The composite verdict values `PROCEED`, `PROCEED_STRATEGIC`, `ABANDON` MUST NOT change in meaning.
- The disclaimer requirement (§5) MUST be preserved.
- The signature protocol (§6) MUST be preserved.

Expand Down
16 changes: 6 additions & 10 deletions spec/evp-1.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,11 @@
"minLength": 1,
"maxLength": 64
},
"verdict": {
"type": "string",
"enum": [
"PASS",
"DECIDE",
"BLOCK",
"INSUFFICIENT_SIGNAL"
]
},
"verdict": [
"PROCEED",
"PROCEED_STRATEGIC",
"ABANDON"
],
"score": {
"type": "integer",
"minimum": 0,
Expand Down Expand Up @@ -433,4 +429,4 @@
}
}
}
}
}
Loading