Implementation findings from the Go verifier (#444): 26 items
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- documentation, security, testing
Research direction
Start with the findings table and choose one of the seven verified, uncovered items it identifies as small and checkable. Read the cited TRACE spec or tutorial files and, where relevant, the trace-tests schema or vectors; the issue names examples such as registry-anchor-v1.md and docs/tutorials/anchoring-to-the-registry.md. Done means resolving the selected finding and checking any affected schema or vectors; the issue does not define one unified completion test for all 26 items.
Written by the indexing model from the issue text.
Description
#444 is the first independent implementation of v0.2: a Go verifier written from the spec, schemas and vectors alone, agreeing on 262 of 262 judged cases against 63f4d15 and trace-tests v0.6.1. It reported 26 findings. This issue tracks all of them in one place.
Status key: V = checked against the artifact at 63f4d15 and current main (11c0868); S = mapped by search only, not yet checked.
Two of them need a decision rather than a fix:
- 21, Level 2 is unreachable with the published flow (V). The anchor leaf is the complete signed record (
registry-anchor-v1.md:42), the signature coverstransparency(§3.2.2), and TR-ANC-001 requirestransparencyto name the entry that anchors it (§6). The record has to name an entry that does not exist yet;docs/tutorials/anchoring-to-the-registry.md:118already says so. trace-tests#92 acknowledged it on 2026-09-24 and trace-registry#102 only moves the leaf from E to R, which does not break the cycle. None of the three anchored claims in trace-registry carriestransparency, and two of them leaf the envelope rather than the record. - 19, Anchor Format §1 is defined by a Python call (V). The four prose rules do not pin short escapes, lowercase hex, escaping U+007F, surrogate pairs for non-BMP characters, or
-0parsing to0;json.dumps(..., sort_keys=True, separators=(",",":"), ensure_ascii=True)does all five.
| # | Finding | Status | Covered by | Home |
|---|---|---|---|---|
| 1 | ES256/ES384 embedded signature: raw r||s or DER not stated |
S | none (#401 covers base64url only) | trace-spec |
| 2 | trace-tests schema copy lacks canonicalizableValue |
V | none | trace-tests |
| 3 | verifier-compatibility README says no normative text; §3.3 now has it | V | related #116 | trace-spec |
| 4 | verifier-compat 06, 07, 11 refused by the membership check alone | V for 06 | partly: KNOWN_THIN records 06 only |
trace-spec |
| 5 | TR-SCA-002 and TR-TXN-001 docs say sha256 only; schema allows sha384 | V | none (#438 fixes the same drift here) | trace-tests |
| 6 | cMCP RuntimeClaim unverifiable; valid_cmcp_runtime.json signature is unsigned-test-vector |
V | none | trace-spec, trace-tests |
| 7 | openshell vector fails TR-APR-002 by the suite's own docs | V | known: trace-tests#63, #64; the valid_ name is the defect |
trace-tests |
| 8 | no vector has an expected result above level 0; vectors distinguish 4 of the 25 checks that apply to a plain record (TR-ENV-001, TR-POL-003, TR-SIG-005, TR-APR-002) | V (level part); count by the author's published mutation method (go run ./cmd/trace-conformance), not rerun by us |
related trace-tests#8, #124, #186 | trace-tests |
| 9 | delegation two-vectors-per-rule claim confirmed | n/a | positive | none |
| 10 | no revocation vector with a validly EC-signed bundle | S | none | trace-spec |
| 11 | three build-provenance rules caught by one vector each | S | related #166, #186 | trace-spec |
| 12 | citation-resolution evidence is Python-specific (KeyError) |
V | none | trace-spec |
| 13 | CHAP prev_hash form and audit/<seq> convention decided by data |
S | related #351 | trace-spec |
| 14 | action-receipt vocabulary and age boundary set by vectors | S | related #178 | trace-spec |
| 15 | GapDisclosure digest pre-image unstated | S | none | trace-spec |
| 16 | Acta README and crosswalk link trace-v0.1.md §3.3.2 | V | none | trace-spec |
| 17 | no vector for the GapDisclosure policy bound | S | none | trace-spec |
| 18 | JWS and COSE_Sign1 envelopes named, not specified | S | none | trace-spec |
| 19 | Anchor §1 defined by the Python call | V | none | trace-spec |
| 20 | registry entries carry canonicalization_id, mmr_checkpoint; §4 says "exactly these fields" |
V | none | trace-spec |
| 21 | Level 2 unreachable (circular transparency) |
V | trace-tests#92, #280, trace-registry#102 (none fixes it) | trace-spec |
| 22 | no TR-ANC-002 vectors; real anchors single-leaf and ASCII-only | V | none | trace-tests |
| 23 | levels.md says all-zero measurement invalid at L1; tr-rte.md says it passes | V | #240 fixed trace-spec only | trace-tests |
| 24 | tr-apr.md lists a float as a TR-APR-004 negative; 1784999900.0 has the same JCS bytes |
V | related #247, #404 | trace-tests, after #404 |
| 25 | ECDSA high-S acceptance unstated | S | none | trace-spec |
| 26 | does §3.2.2's integer rule reach Acta and CHAP objects cited by digest | S | partly #247, #404 | trace-spec |
Items marked V with no covering issue (2, 5, 16, 19, 20, 22, 23) are small, checkable fixes. Each S item gets checked before any fix is proposed for it.
- Dominant language
- Python
- Stars
- 37
- Forks
- 33
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 122
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from agentrust-io/trace-spec
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
agentrust-io/trace-spec#593 · 1 comment ·
Maintainers usually reply within 1 day
-
bug needs-review:HIGH
Difficulty 5/5 Over a week Newbie friendliness 20/100
agentrust-io/trace-spec#591 · 4 comments ·
Maintainers usually reply within 1 day
-
prototype(manifest_requirements): resolve accepted_methods without duplicating bindings and reject unconfigured binding endpoints with ProfileErrorPossibly taken @drk-ram claimed this 1 day ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 78/100
agentrust-io/trace-spec#580 ·
Maintainers usually reply within 1 day
-
feat(delegation): add parent_record_hash, verify_delegation_link, and verify_delegation_chain to agentrust_tracePossibly taken @drk-ram claimed this 1 day ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 58/100
agentrust-io/trace-spec#581 ·
Maintainers usually reply within 1 day
-
revocation,trust-record-verify: implement es256 and es384 bundle verification and add EC revocation vectors (#448 items 1, 10)Possibly taken @drk-ram claimed this 1 day ago. Open
Difficulty 4/5 3-5 days Newbie friendliness 52/100
agentrust-io/trace-spec#584 ·
Maintainers usually reply within 1 day
All issues in agentrust-io/trace-spec
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ansys/pyansys-common-mcp#213 ·
Maintainers usually reply within 3 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
freedomofpress/dangerzone#1594 ·
Maintainers usually reply within 3 days
-
priority:P1 status:in-review type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
randomparity/kdive#3317 · 1 comment ·
Maintainers usually reply within 1 day
-
area:ci
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
mesonbuild/meson#16281 ·
Maintainers usually reply within 1 day