You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
verify-watermark-removal: review fixes from the source repository (the key gives a scale rather than hiding the sample, generate warns instead of refusing on samples the mark missed, cost numbers are absent for not_our_text, the vendor-mark carry-over is an inference, the key is read without echo and kept out of the process under test, and the install pins a tag)
Copy file name to clipboardExpand all lines: plugins/all-skills/skills/verify-watermark-removal/SKILL.md
+39-14Lines changed: 39 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,10 +12,13 @@ by measuring rather than by trusting the tool's own report.
12
12
13
13
The check works because the mark is planted first, with a key the user holds. A
14
14
detector that knows the key is the strongest detector that can exist for that
15
-
text, so its score is a ceiling rather than a guess, and no tool can recognise
16
-
the sample or tune its output to it. The skill also reports what the rewrite cost
17
-
the text, because a mark that disappeared together with half the meaning is not a
18
-
result anyone wants.
15
+
text, so its score is a ceiling rather than a guess. What the key buys is a scale
16
+
of the user's own; what keeps a tool from recognising the sample is something
17
+
else, namely that a freshly generated private sample is a text nobody has seen
18
+
before. The samples shipped with the tool are published together with their key,
19
+
so those can be recognised, and the repository says so in `samples/README.md`.
20
+
The skill also reports what the rewrite cost the text, because a mark that
21
+
disappeared together with half the meaning is not a result anyone wants.
19
22
20
23
This skill measures. It never removes a mark, and it never claims anything about
21
24
a specific vendor's watermark.
@@ -30,7 +33,7 @@ a specific vendor's watermark.
30
33
31
34
## What This Skill Does
32
35
33
-
1.**Plants a known mark**: generates text carrying a statistical watermark of the SynthID-Text class under a key the user chooses, and refuses to hand over a sample where the mark did not actually plant.
36
+
1.**Plants a known mark**: generates text carrying a statistical watermark of the SynthID-Text class under a key the user chooses, and scores every sample as it writes it, so a text where the mark did not plant is named before anything is handed to a tool.
34
37
2.**Scores what came back**: runs the keyed detector on the returned text and places the score against thresholds that were fixed before any run, giving one of four outcomes.
35
38
3.**Measures the cost**: meaning similarity, facts kept, longest verbatim run, share of words changed, length ratio.
36
39
4.**Builds a comparison table**: turns several recorded runs into one matrix, so tools are ranked on the same measurements instead of on their own claims.
@@ -44,13 +47,23 @@ Install once. A CPU is enough, Python 3.10 or newer:
|`mark_present`| score at or above 4.0; the tool did not take this mark out |
86
106
|`uncertain`| score between 2.0 and 4.0, the grey zone; do not round it to a yes or a no |
87
107
|`mark_gone`| score below 2.0; on this sample, on this run, the mark did not survive |
88
-
|`not_our_text`| the returned text is not recognisably the sample, so no score is reported |
108
+
|`not_our_text`|fewer than half the content words of the returned text come from the sample, so it is not recognisably the sample and no score is reported |
89
109
90
110
Always report the cost numbers next to the outcome: meaning kept, facts kept,
91
-
longest verbatim run, share of words changed, length ratio.
111
+
longest verbatim run, share of words changed, length ratio. They exist for the
112
+
three scored outcomes only (`mark_present`, `uncertain`, `mark_gone`). A
113
+
`not_our_text` run stops before they are computed and reports four things
114
+
instead: the outcome, the share of content words that came from the sample, and
115
+
the word counts of both texts. Do not ask for a meaning or facts number there,
116
+
and do not report one as zero: it was never measured.
92
117
93
118
### Advanced Usage
94
119
@@ -139,7 +164,7 @@ did not do what it promised. This says nothing about any vendor's own watermark.
139
164
140
165
## What the Check Proves, and What It Does Not
141
166
142
-
- A tool that **leaves this mark in place** is very unlikely to remove a vendor's mark either: both live in the same place, which words were chosen. That direction holds.
167
+
- A tool that **leaves this mark in place** is unlikely to remove a vendor's mark either: this is an inference from where both marks live (word choice), not a measurement; the measurement covers one key, one scheme, one model and one sample.
143
168
- A tool that **removes this mark** has not been shown to remove anyone else's. Different key, different scheme parameters, different model. Say so, and do not let a passing run turn into "the text is now undetectable".
144
169
-`uncertain` is an answer, not a rounding error. Collapsing the grey zone into a yes or a no is a lie in one direction or the other.
0 commit comments