A labelled session's children carry the label, and the four labels that exist today stop silently
dropping.
mecatl. After #367.
Hazards
Facts that were expensive to find and that nobody re-derives on the way to implementing. Each is verified against code.
- The label mechanism already exists and already fails open:
Profile, ProviderID, ModelID and
ReasoningEffort propagate on ForkSession and on no other child-mint path, of which there are
eight in engine/agent.
- A label is mecatl's own vocabulary, not a set of IdP group names. The sibling's normalised
Groups field is dead — never populated, never read — because group claim names vary by provider.
Persisting them freezes at create time, so revoking a group leaves old sessions readable.
- The model must not author the rationale a human reads when approving a release. That is
justification capture, and the repo already solves the shape once in the ask-reviewer discipline.
Acceptance criteria
Proof
The same properties, adversarially, with an actor and an ordering. A property-level criterion can go green while being false; these are what stop that.
Slices
Decomposition is the implementer's job; these are the natural seams, not a mandate.
- The label itself, propagated at every creation seam.
- The transitions that are not session creation.
Reasoning
The design this comes from, both on main:
Every hazard above is stated in full here rather than linked, so this issue stands on its own.
A labelled session's children carry the label, and the four labels that exist today stop silently
dropping.
mecatl. After #367.
Hazards
Facts that were expensive to find and that nobody re-derives on the way to implementing. Each is verified against code.
Profile,ProviderID,ModelIDandReasoningEffortpropagate onForkSessionand on no other child-mint path, of which there areeight in
engine/agent.Groupsfield is dead — never populated, never read — because group claim names vary by provider.Persisting them freezes at create time, so revoking a group leaves old sessions readable.
justification capture, and the repo already solves the shape once in the ask-reviewer discipline.
Acceptance criteria
of them rather than sampling.
config table and nowhere downstream.
without rewriting stored objects.
something, and a test proves the instruction saying so reaches the system prompt.
Proof
The same properties, adversarially, with an actor and an ordering. A property-level criterion can go green while being false; these are what stop that.
Slices
Decomposition is the implementer's job; these are the natural seams, not a mandate.
Reasoning
The design this comes from, both on
main:Every hazard above is stated in full here rather than linked, so this issue stands on its own.