Add Architecture Proof Register JSON Schema MVP#35
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d4b00046b2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| "description": "Relation saying that evidence supports a claim, status or professional object. It records support; it does not decide truth alone.", | ||
| "type": "object", | ||
| "additionalProperties": false, | ||
| "required": ["proof_entry_id", "scope_id", "professional_object_type", "claim_or_status", "proof_status", "approval_state"], |
There was a problem hiding this comment.
Require an indexed version before accepting proof
When proof_status is accepted_as_support and approval_state is a governed approval such as approved_for_contractual_action, this schema still validates an entry with neither source_document_version_id nor any evidence_refs. That permits an unsupported claim to be represented as approved, contrary to the folder README's core rule that professional claims reference an indexed version and the implementation spec's rule No professional proof without an indexed version. Add a conditional requirement for an indexed source version before support can be accepted or approved for use.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Accepted and fixed.
proof_entry.schema.json now requires both:
source_document_version_id
evidence_refs with minItems: 1
when either:
proof_status = accepted_as_support
or approval_state is one of the governed approved states:
approved_for_internal_use
approved_for_meeting_preparation
approved_for_transmission_draft
approved_for_contractual_action
This keeps the MVP aligned with the rule: no professional proof without an indexed version.
| "if": { "properties": { "external_effect_possible": { "const": "unknown" } }, "required": ["external_effect_possible"] }, | ||
| "then": { "properties": { "decision_gate_required": { "const": true } } } |
There was a problem hiding this comment.
Gate known external effects as well as unknown ones
For a C3 trigger with external_effect_possible: "yes", the schema accepts decision_gate_required: false; only the "unknown" case is forced through a gate. This leaves the known external-effect path unguarded even though the implementation spec requires external effects to remain gated and the shared vocabulary already defines C3_external_effect as a gate reason. Extend this condition to cover "yes" as well.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Accepted and fixed.
review_trigger.schema.json now gates known external C3 effects as well:
consequence_level = C3_client_commitment
external_effect_possible = yes
forces:
decision_gate_required = true
requires_user_decision_gate = true
The existing unknown case remains gated too.
| "requires_user_decision_gate": { "type": "boolean" }, | ||
| "decision_gate_required": { "type": "boolean" }, |
There was a problem hiding this comment.
Keep the two decision-gate flags consistent
The schema requires both gate flags but does not relate them, so a C4/C5 trigger can validate with decision_gate_required: true and requires_user_decision_gate: false. The existing urgent-triage form exposes requires_user_decision_gate, making contradictory records unsafe for consumers that read that established field. Remove the duplicate field or enforce equality between the two values.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Accepted with nuance and fixed.
The two fields are kept because they express different layers:
requires_user_decision_gate = system signal / recommendation
decision_gate_required = governed final requirement
But the unsafe contradiction is now prevented:
if decision_gate_required = true
then requires_user_decision_gate = true
C4/C5, C3 external effect, and unknown external effect cases now force both flags to true.
Review passVerdict: acceptable as a lightweight schema proposal after two corrections. Corrections applied on branch: Review status: This PR remains a schema proposal, not a working data platform implementation. |
Review verdict — strong work, keep isolated as a proposal until alignedThe business modeling here is the best concrete artifact in the repo: faithful It is also the right first slice for #34. Decision: keep it isolated as a "proposal" for now; do not fold into the canonical baseline yetIt diverges from the existing
Suggested path
Net: excellent on the domain, premature on conventions. Isolate now, align deliberately — don't rework it against a moving target. Generated by Claude Code |
Disposition of Claude Code reviewAccepted as direction. Decision: Accepted: To verify under #37: To arbitrate under #37: I updated |
Summary
Adds a JSON Schema Draft 2020-12 MVP proposal for the Architecture Proof Register.
This is the first technical schema proposal for issue #34.
Branch
Added files
Scope
The MVP covers only:
Design posture
The schema is intentionally light:
Explicitly not implemented
Notes
This PR is a proposal for review. It should not be described as a working implementation of the data platform.