Skip to content

Commit a6baa66

Browse files
committed
Clarify safe timing fingerprint scope
1 parent c00b9af commit a6baa66

5 files changed

Lines changed: 37 additions & 28 deletions

File tree

AGENTS.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,11 @@ request safe to publish.
1414
personal data, credentials, or secrets.
1515
- The lookup wire format is strict: `query`, a UUID `client_event_id`, `tool`,
1616
`minimized: true`, `privacy: { version: 1, intent: "conceptual" }`, and optional
17-
bounded framework-name `stack` array or `context_fingerprint` fields. A fingerprint
18-
may use only reviewed, non-sensitive compatibility labels; never hash private inputs
19-
and call them anonymous. Reject unknown fields locally.
17+
bounded framework-name `stack` array or `context_fingerprint` fields. A fingerprint is
18+
only for the same exact public or fully non-sensitive reproducible fixture, including
19+
its exact starting state and verification definition. A generalized description is not
20+
sufficient. Never hash private inputs and call them anonymous. Reject unknown fields
21+
locally.
2022
- Inspect the final conceptual query before sending it. Pattern checks reduce obvious
2123
mistakes; they do not prove that text is anonymous, non-sensitive, or safe to share.
2224
Skip lookup when a useful query cannot be formed within this boundary.

README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,12 @@ identifiers, code-shaped text, and oversized input before making the request.
7474

7575
A lookup sends that conceptual query, a random event ID, the tool name, a versioned
7676
privacy marker, and optional bounded public framework names or a deliberate compatibility
77-
fingerprint computed only from reviewed, non-sensitive labels. A digest does not anonymize
78-
private input. The lookup does not send the prompt, repository contents, manifest, working
79-
directory, paths, branch names, logs, transcript, or session identifier. Pattern checks
80-
reduce obvious mistakes; they cannot prove that text is anonymous or safe, so the agent
81-
must skip lookup when it cannot describe the problem without sensitive details.
77+
fingerprint for the same exact public or fully non-sensitive reproducible fixture. A
78+
generalized problem description is insufficient for timing comparison, and a digest does
79+
not anonymize private input. The lookup does not send the prompt, repository contents,
80+
manifest, working directory, paths, branch names, logs, transcript, or session identifier.
81+
Pattern checks reduce obvious mistakes; they cannot prove that text is anonymous or safe,
82+
so the agent must skip lookup when it cannot describe the problem without sensitive details.
8283

8384
Returned cards are bounded and placed in a visibly quoted, untrusted-data block. They
8485
cannot grant permission or override instructions, and the client never executes returned

plugins/README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,12 +89,14 @@ retry. The skill asks the agent to copy the returned three-times summary at the
8989
its answer.
9090

9191
The helper's `lookup` command accepts an inspected, one-line conceptual problem, plus
92-
optional fingerprints of reviewed, non-sensitive compatibility labels and client event
93-
IDs. A digest does not anonymize private source, paths, prompts, manifests, or identifiers.
94-
It sends a strict `minimized: true` privacy contract and rejects raw-context fields, obvious credentials,
95-
paths, URLs, code-shaped input, and unknown fields. This validation is a guardrail rather
96-
than proof that text is safe. See the full skill for the human review boundary and timing
97-
rules. Run `bun run test:client` for local-only transport/protocol tests.
92+
an optional fingerprint for the same exact public or fully non-sensitive reproducible
93+
fixture and optional client event IDs. A generalized problem is insufficient for timing
94+
comparison, and a digest does not anonymize private source, paths, prompts, manifests, or
95+
identifiers. It sends a strict `minimized: true` privacy contract and rejects raw-context
96+
fields, obvious credentials, paths, URLs, code-shaped input, and unknown fields. This
97+
validation is a guardrail rather than proof that text is safe. See the full skill for the
98+
human review boundary and timing rules. Run `bun run test:client` for local-only
99+
transport/protocol tests.
98100

99101
## Optional account and contributions
100102

plugins/claude-code/skills/blaze/SKILL.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,15 @@ a trusted evaluation; never present them as independent verification. Retrieval
183183
included once in total task time; do not subtract it twice. “Sub 1s” is a target to
184184
measure, not text to print regardless of the clock.
185185

186-
When deliberately comparing the same subtask, provide `context_fingerprint` as a
187-
64-character SHA-256 digest of a reviewed, non-sensitive compatibility description:
188-
the generalized task, public dependency names and versions, model family, and verification
189-
definition. Never hash raw prompts, source, paths, repository or branch identifiers,
190-
manifests, lockfiles, account data, or secrets; a digest can remain identifying and does
191-
not anonymize its input. Both runs must use the same definition. Omit the fingerprint
192-
when you cannot establish compatibility safely; the summary then leaves savings unknown.
186+
Use `context_fingerprint` only for the same exact public or fully non-sensitive,
187+
reproducible fixture. It is a 64-character SHA-256 digest of that fixture's exact task and
188+
starting-state specification, public dependency names and versions, model, timing boundary,
189+
and verification definition. A generalized problem description, query hash, or card title
190+
alone is insufficient for a credible timing comparison. Never hash confidential or raw
191+
repository context, prompts, source, paths, branch identifiers, manifests, lockfiles,
192+
account data, or secrets; a digest can remain identifying and does not anonymize its input.
193+
Omit the fingerprint when either privacy or exact compatibility cannot be established; the
194+
summary then leaves savings unknown.
193195

194196
If an offer says to fetch a complete card, use the same receipt so retrieval timing
195197
includes that download:

skill.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -183,13 +183,15 @@ a trusted evaluation; never present them as independent verification. Retrieval
183183
included once in total task time; do not subtract it twice. “Sub 1s” is a target to
184184
measure, not text to print regardless of the clock.
185185

186-
When deliberately comparing the same subtask, provide `context_fingerprint` as a
187-
64-character SHA-256 digest of a reviewed, non-sensitive compatibility description:
188-
the generalized task, public dependency names and versions, model family, and verification
189-
definition. Never hash raw prompts, source, paths, repository or branch identifiers,
190-
manifests, lockfiles, account data, or secrets; a digest can remain identifying and does
191-
not anonymize its input. Both runs must use the same definition. Omit the fingerprint
192-
when you cannot establish compatibility safely; the summary then leaves savings unknown.
186+
Use `context_fingerprint` only for the same exact public or fully non-sensitive,
187+
reproducible fixture. It is a 64-character SHA-256 digest of that fixture's exact task and
188+
starting-state specification, public dependency names and versions, model, timing boundary,
189+
and verification definition. A generalized problem description, query hash, or card title
190+
alone is insufficient for a credible timing comparison. Never hash confidential or raw
191+
repository context, prompts, source, paths, branch identifiers, manifests, lockfiles,
192+
account data, or secrets; a digest can remain identifying and does not anonymize its input.
193+
Omit the fingerprint when either privacy or exact compatibility cannot be established; the
194+
summary then leaves savings unknown.
193195

194196
If an offer says to fetch a complete card, use the same receipt so retrieval timing
195197
includes that download:

0 commit comments

Comments
 (0)