Skip to content

Commit de34ca7

Browse files
committed
Roadmap: declared trust-boundary / accepted-risk annotation (user-validated)
A reviewed, intentionally-accepted finding should render as acknowledged rather than re-surface as an unreviewed medium on every scan. Motivating evidence is real: camel-ai/camel #4155 (the eval() in hybrid-browser- toolkit.ts we raised) was resolved by PR #4157 (merged to master 2026-07-17) as documentation only -- the eval() intact, a source comment and tool-schema wording declaring the trust boundary, plus a test. The gate still flags it medium/inferred despite that formal declaration because it reads code, not declared intent. Backlog the mechanism: a declared, attributable accepted-risk (governance.yaml or inline) the gate renders as accepted rather than open -- never a silent suppression. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014Z2Zcqf7F1EawAx23FLwAp
1 parent 25405b0 commit de34ca7

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

ROADMAP.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,27 @@ it the shortest path — not on its own.
130130
- **"Non-agent repo → governance N/A" precision fix.** A repo with no agent code
131131
should read *not applicable*, not a low governance score — avoids penalizing
132132
the wrong thing on a first scan.
133+
- **Declared trust-boundary / accepted-risk annotation.** *(user-validated —
134+
build when a scanned team asks for it.)* A finding the maintainer has reviewed
135+
and *intentionally accepted* should read as **acknowledged**, not re-surface as
136+
an unreviewed medium on every scan. Mechanism: let a repo declare an exception
137+
— in `governance.yaml` (e.g. `accepted_risks: [{rule: RG-EXEC-003, path:
138+
".../hybrid-browser-toolkit.ts", reason: "...", ref: "PR #4157"}]`) or an inline
139+
annotation at the sink — that the gate reads and renders as *accepted (declared)*
140+
with the reason and reference, still listed for the audit trail but not counted
141+
as an open risk. *Motivating evidence (real, not hypothetical):* we raised
142+
camel-ai/camel #4155 on the `eval()` in `hybrid-browser-toolkit.ts`; the
143+
maintainers resolved it via **PR #4157 (merged into master 2026-07-17)**
144+
documentation only, the `eval()` intact, a source comment + tool-schema wording
145+
declaring *"this intentionally executes caller-provided JavaScript ... not a
146+
sandbox"*, plus a test asserting the schema says so. The gate today still flags
147+
it medium/inferred despite that formal, tested declaration — it reads code, not
148+
declared intent. This is the exact gap: the difference between a gate teams keep
149+
and a gate teams mute. *Guardrail:* an accepted-risk must be **declared and
150+
attributable** (who accepted it, why, ref) — never a silent suppression, never
151+
auto-applied by the gate; the finding stays visible, only its *status* changes.
152+
Ties into governance (a declared exception is itself a governance signal) and to
153+
the "declaration-aware" theme the coverage matrix already gestures at.
133154
- **Live scratch-PR Action test.** End-to-end dogfood of the published Action's
134155
`command: pr` on a throwaway PR (unblocked now that 0.8.5 + the `v0.8.5` tag
135156
are on PyPI).

0 commit comments

Comments
 (0)