Rename profile_decision.coordinate.* to declared_* so the static-label semantics are self-evident #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-20T21:16:37Z - https://github.com/coilysiren/cli-guard/issues/83
Symptom
audit.ProfileDecision.Coordinate(data_security,blast_radius,network_egress,filesystem_reach) serializes to JSON field names that read as runtime observations. The most common misread iscoordinate.network_egress: "air-gapped"on a row whose wrapped process opened hundreds of outbound HTTPS connections. Both are technically correct - the profile labels the verb shapeair-gapped, the process opened sockets anyway - but the field name does not carry its own caveat.Context
Filed as the upstream half of coilysiren/coily#282. Coily already documents the static-vs-runtime distinction in docs/audit.md, but documentation only helps readers who already know to look. The field name should be self-documenting.
Possible shapes
audit.Coordinatetodeclared_data_security,declared_blast_radius,declared_network_egress,declared_filesystem_reach. Go field names can stay; only thejson:tags change.coordinatetodeclared_coordinateinstead, leaving the inner axes alone. Smaller diff, same semantic effect.observedblock populated by built-in network-aware verbs (matches today'segress[]already on the row, would deprecate the standaloneegress[]shape).Shape 2 is the cheapest move. Shape 1 reads more clearly per-field. Shape 3 is the most invasive but unifies the runtime surface.
Blast radius
JSON schema change. Consumers: coily itself (audit-row readers, finding-filer), any downstream that greps audit JSONL. No on-disk migration needed since the audit log is append-only - new rows carry the new key, old rows keep the old one. Readers need to handle both for the rotation window.
Pairs with
repo.*exec verbs (separate finding).