Skip to content

fix: [SDK-5575] reword the checkpoint consent question in plain words - #78

Merged
sherwinski merged 5 commits into
sherwin/sdk-5574from
sherwin/sdk-5575
Oct 22, 2026
Merged

sherwinski merged 5 commits into
sherwin/sdk-5574from
sherwin/sdk-5575

Conversation

@sherwinski

@sherwinski sherwinski commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

One Line Summary

The checkpoint consent question in the setup, credentials, and verify skills now says what the reports are for, names the host, and says what a report never contains; it no longer lists the payload fields.

Motivation

In the second dogfooding session, 2 testers (one in Claude Code, one in Codex) saw the consent question as the first thing the plugin asked and did not know what a checkpoint is or why the data goes to api.onesignal.com. The old text opened with the word "checkpoints" and a field list. The question also differed between the skills: the setup version did not name the host, which safety contract §15 requires.

Ticket: SDK-5575, sub-issue of SDK-5556. Stacked on #77 (SDK-5574), which sits on #66.

Scope

  • skills/setup/SKILL.md, skills/credentials/SKILL.md, skills/verify/SKILL.md: one shared question text: "This plugin can send reports to OneSignal (via api.onesignal.com) to help our team understand where setup fails for developers and fix it. A report never contains source code, credentials, or other sensitive data. Share these reports with OneSignal?" Choices: "Share reports with OneSignal" / "Keep reports on this machine only". The skills record 1 for "share".
  • references/safety-contract.md: §15 no longer asks the question to list the payload fields (§16 keeps the list); §14 quotes the new first choice and the Codex plain-text example reads "Reply share or keep".
  • README.md: quotes the new "Keep reports on this machine only" label.

Not changed: the skip rules, the file write, the .onesignal/telemetry values, and checkpoint.sh. The final wording is pending team sign-off.

Testing

  • python3 scripts/package_directory_bundle.py --check: pass.
  • The portability grep from AGENT.md: no output.
  • Not run: an interactive session, and the behavior evals. If a scenario in the evals repository asserts on the old question text, it needs an update; I did not check.

Affected code

  • skills/setup/SKILL.md
  • skills/credentials/SKILL.md
  • skills/verify/SKILL.md
  • scripts/
  • references/

Checklist

  • Bundle gate passes
  • No internal ticket IDs in skill text
  • Commit messages use conventional prefixes

@sherwinski
sherwinski force-pushed the sherwin/sdk-5575 branch 2 times, most recently from 934658c to 279a63f Compare October 19, 2026 23:46
@sherwinski
sherwinski added this pull request to stack #67 October 19, 2026 23:49
Comment thread skills/credentials/SKILL.md Outdated

@abdulraqeeb33 abdulraqeeb33 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. The "never contains sensitive data" line is backed by the §16 filters in checkpoint.sh, so the shorter question doesn't overclaim. Two small notes inline.

fold it into the network-access request. The question says what the checkpoints
are for, names the host (`api.onesignal.com`), and says what a checkpoint never
contains (source code, credentials, or other sensitive data). It does not list the
payload fields: a first-time user needs the purpose, not the schema. The field list

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking, for the wording sign-off: dropping the field list also drops the one fact a user might weigh, that each report carries their App ID and so ties back to their OneSignal app. The old question said so. If the team wants consent to cover that, one clause would do it without bringing back the schema.

Comment thread skills/credentials/SKILL.md Outdated
Dogfooding testers did not know what a checkpoint is or why the data
goes to `api.onesignal.com`: the question opened with the word and the
field list. The question in the setup, credentials, and verify skills
now opens with the purpose, defines a checkpoint, and then names the
fields, the host, and what never leaves the machine (safety contract
§15). The setup skill's version also names the host now; it did not
before. The 3 skills share one text, and the choice labels do not
change.
…EADME's status words

- Safety contract §15 now says the consent question opens with what the
  data is for, before the field list. The 3 skill copies repeat the rule,
  but the contract is where a rule lives.
- The question says "success or fail", the words the README uses for the
  same field, instead of "pass or fail".
…eld list

The consent question now reads: "This plugin can send reports to
OneSignal (via api.onesignal.com) to help our team understand where
setup fails for developers and fix it. A report never contains source
code, credentials, or other sensitive data. Share these reports with
OneSignal?" The choices are "Share reports with OneSignal" and "Keep
reports on this machine only".

- Safety contract §15 no longer asks the question to list the payload
  fields; §16 and the README keep the list for the user who wants it.
- §14 and the README quote the new choice labels, and the Codex
  plain-text example reads "Reply share or keep".
- The 3 skills record `1` for "share" instead of "send".
The sentence named the answer "send" after the labels changed to
"share". The setup copy already used "share" in both places.
@sherwinski
sherwinski merged commit 9432d3b into main Oct 22, 2026
10 checks passed
@sherwinski
sherwinski deleted the sherwin/sdk-5575 branch October 22, 2026 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants