references assumes resolution: the self-validating case, and registering position-commitment
Los mantenedores suelen responder en 1 día
@rajnisht7 ya está trabajando en esto.
Desde el 20/10/2026.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- markdown
- Área
- documentation
Línea de trabajo
Start with §3.1.2 and §7 open question 3, then read docs/rfcs/a2a-delegation-profile.md §4.3 and the discussion in #226. Work out how the proposed field, verification outcomes, and position-commitment registration fit the v0.3 spec. Done means the spec clearly distinguishes missing proof from a recomputation mismatch and states when the entry and resolver are required.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The gap
§3.1.2 models a reference as a fact held somewhere and fetched. The field table says id is the identifier of the referenced fact held by the resolver, resolver names the party obliged to keep it resolvable, and the unsettled paragraph closes with the sentence that gives the block its shape:
A reference is worth only the ability to resolve it later, and transparency-log practice shows that gap is real rather than theoretical: a record can remain valid and become unreachable when the index that addressed it is removed.
That is true when id is an address. It is false when id is a digest the verifier recomputes from a proof the holder already carries. In that case nothing is fetched, nothing is retained, and no party is obliged to do either. The block has no vocabulary for it, and the two fields that would describe it both say the opposite.
The live case
Michael Argento of Argento Computing Inc. (BitGraph) hit this building a position-commitment profile on TRACE, and has given permission to be named.
His construction: an enclave allocates a slot before the record's digest exists, the slot record is signed by the enclave and travels inside the proof, and the not-before is an external ordered sequence he does not operate. His words, quoted with permission:
The fact is not held anywhere. The slot record is signed by the enclave, carried in the proof, and checked by whoever holds it. There is nothing to resolve because there is nothing anyone keeps. References models facts held elsewhere. This is evidence carried here.
Under the spec as written the correct outcome is rule 4: omit the entry, and that is what his 0.4 package ships. The profile is otherwise assurance-neutral and passes the suite at Level 0.
Omitting it has a measurable cost, which he documents against himself rather than hiding:
The floor now bounds the commit rather than the record, so the profile rejects a backdate by rule, position taken at issuance, rather than by a contradiction inside the record. The version you ran could tell a backdate from a late commit; this one cannot.
That is the property a self-validating form would restore, stated as a capability lost rather than a feature wanted.
What the form has to say
Three requirements, the third split.
idis validated by recomputation from evidence the verifier holds, not by resolution, and the recomputation must bind the entry to the record carrying it. Establishing that the referenced object exists is not enough: a self-validating entry is public once its evidence is, so any record could carry it and pass. What binds it is the evidence committing to this record's digest.- There is no obliged party, so rule 4 does not apply and
resolvercarries no undertaking. - Two outcomes, kept apart:
- the verifier cannot recompute because it lacks the proof: the entry is absent, and this is not a finding against the record;
- the recomputation runs and disagrees: that is a contradiction and must stay one.
The third is the one worth guarding. Collapsing those two is the same defect docs/rfcs/a2a-delegation-profile.md §4.3 exists to prevent on the delegation surface, where a chain that was merely unreadable got reported as tampering. A single sentence covering both is how a verifier ends up reporting tampering as absence.
A field, not a rel
Self-validation is how an entry is checked. A rel names what the entry relates to. Putting the check semantics into a registered relation collapses the two, which is the same category error that put a vendor prefix in rel when resolver already named the producer.
So: one optional field marking any entry self-validating, applicable across relations, rather than a relation whose name secretly changes the verification rule.
Cost, and why this is v0.3
Allowing resolver to be absent breaks no existing record: every record already carries it. It does mint records that a v0.2 verifier rejects, which makes it a version gate rather than a patch, and puts it in v0.3 alongside the normative work already scheduled there.
Worth stating plainly because "backward compatible" usually means existing records keep validating, and that is satisfied here while forward compatibility is not.
Registration: position-commitment
Proposed, in the style of the three registered values:
position-commitment. A commitment to a position in an externally ordered sequence, taken before the digest of this record exists.idis the commitment to that position, validated by recomputation from a proof the holder carries and that commits this record, rather than by resolution.
The relation is registrable independently of the field. It should be registered knowing that under v0.2 it earns nothing: recomputation is not a check the block defines, rule 3 still governs, the entry remains a pointer, and resolver is still required, so a producer who retains nothing must still omit the entry.
Relationship to #226
#226 gathers four governance requests as one question about which relations get registered values and what a verifier may conclude from each. This is a different axis: not which relation, but whether the block's resolution model is the only one. position-commitment belongs on #226's list; the self-validating field does not, because registering relations does not reach it.
§7 open question 3 is the neighbouring one, and §3.1.2 already says retention and transparency should be resolved together. A third case now sits beside them: a reference that needs no retention at all.
- Lenguaje dominante
- Python
- Estrellas
- 37
- Forks
- 33
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 121
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de agentrust-io/trace-spec
-
prototype(azure_execution_binding): bind HCLAkPub exponent e and key size, reject duplicate JSON keys, and harden _secure_boot_state and authenticode_sha256Posiblemente ocupada @drk-ram la tomó hoy. Abiertoneeds-review:MEDIUM
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
agentrust-io/trace-spec#613 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
content_marking: validate record.alg against record.hash prefix, reject unknown assertion fields, and check anchor agreementPosiblemente ocupada @drk-ram la tomó hoy. Abiertoneeds-review:MEDIUM
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
agentrust-io/trace-spec#614 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
adapters: validate data_class, policy/appraisal enums, and URI fields in TraceAGTAdapter and TraceSandboxAdapterPosiblemente ocupada @drk-ram la tomó hoy. Abiertoneeds-review:MEDIUM
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
agentrust-io/trace-spec#615 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
trust-record-verify: reject non-object inputs in parentRecordHash, verifyDelegationLink, and bundleDigestPosiblemente ocupada @drk-ram la tomó hoy. Abiertoneeds-review:MEDIUM
Dificultad 2/5 1-3 horas Aptitud para principiantes 35/100
agentrust-io/trace-spec#616 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
intent_bridge,successor_observation: validate caller options and trusted JWKs at entry and deep-copy observation before predicatePosiblemente ocupada @drk-ram la tomó hoy. Abiertoneeds-review:MEDIUM
Dificultad 4/5 1-2 días Aptitud para principiantes 35/100
agentrust-io/trace-spec#617 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de agentrust-io/trace-spec
Issues similares
-
good first issue infrastructure
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
documentation priority: high
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
a-lex-s/mealie-telegram-bot#54 ·
Los mantenedores suelen responder en 1 día
-
type/test
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
SaltedTan/virgil-language-server#218 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
btclib-org/btclib-wallet#541 ·
Los mantenedores suelen responder en 1 día