Set what this account does with confirmed findings
set_policyChange the account-wide fix policy: whether to triage severity before deciding (triage_first), what a run whose confirmed findings are all low is worth (low_only: merge|fix), what one confirmed major means (any_major: fix_all|fix_majors), and after how many rounds of ONE change in a row with a confirmed medium+ the doors stop ordering fixes and say rethink – ship dark or split (rounds_before_rethink, default 3; rounds are counted by the meta.change_id you send). It also holds switches the server enforces for every client: deep (allow|never – deep hunts on this account) and stories (never|private|ask|auto – feed stories: off, private to the user, posted with the user's approval, or posted without asking). Widening what is published (stories auto, a boost of hours that posts without asking, author: handle over anonymous) is the user's alone: this tool applies the rest of the call and answers with a one-time confirm_url for the widening, which the user opens signed in to confirm (24 h; any later change of the policy cancels it). Partial: send only the fields you change. policy in get_balance and in this answer shows the account's own settings, what this tool writes, beside this API key's own deep_only and live_link (set on /me/keys, not here); policy_note says what applies to this key. Sending that document back as you read it, leave out deep_only and live_link and keep its seen unchanged: a field still equal to what you were shown is not a change and is not written. A change the user asks for is sent without seen. The policy is the account's, shared by every key, session and machine on it; each API key's own settings, which a person sets on the key page /me/keys, can narrow it for that key and set_policy cannot widen them. Change it only when the USER asks, never to make your own current task easier.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "set_policy"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| deep | No | `never` switches deep hunts off on this account: submit_review with any `deep` answers error `deep_disabled` and get_findings offers none. `allow` is the default; a key whose own settings switch them off stays off. Only on the user's word | |
| seen | No | Only with a document sent back as you read it (get_balance or this tool's answer): its `seen`, unchanged; each field still equal to what you were shown is dropped as an echo. Never build or edit it, and leave it out of a change the user asks for. | |
| boost | No | Hours during which stories go out without asking while stories is `ask`: `{"stories_auto": 6}` (1–24; 0 ends it now). Starting or lengthening one widens what is published: it comes back as a `confirm_url` for the user | |
| author | No | Who signs a story: `handle` (the GitHub login) or `anonymous`. `anonymous` applies now; `handle` over anonymous comes back as a `confirm_url` for the user | |
| snooze | No | Pause an OFFER, not a feature, for N hours (1–168; 0 offers again): `{"deep": 24}` stops the deep-hunt offer, `{"stories": 24}` the question about posting a story, `{"earned": 24}` the reminder about earned rewards. Set it only when the user asks to hear less of it (or presses the button that says so), never on your own: a deep hunt the user asks for still runs. | |
| stories | No | `never` switches feed stories off on this account: post_story, confirm_findings with only a `story` and the story link answer error `stories_disabled`; confirm_findings with verdicts beside a story still records the verdicts and carries `story_error` starting `stories_disabled`, and stops carrying the `share` block. `private` keeps the doors open but posts every story privately: it counts toward the free review and groups into species, it is kept off every public page (the user reads it on /me/stories), and the answer carries `visibility: "private"`. `ask` (the default; `allow` is its old name) posts a story only with the user's approval of it; it does not stop an automatic posting the user started for a while on /me/policy (policy_note names it): `boost: {"stories_auto": 0}` does. `auto` posts without asking once the server's story safety check is live (until then it asks, like `ask`): only the user sets it: set_policy answers with a `confirm_url` the user opens. A key whose own settings switch them off, or make them private, stays so. Only on the user's word | |
| low_only | No | A run whose confirmed findings are all low: `merge` as it is (default) or `fix` them | |
| any_major | No | With one confirmed medium+: `fix_all` confirmed findings (default) or `fix_majors` only | |
| triage_first | No | Grade each finding's severity yourself before deciding what to do (default true) | |
| rounds_before_rethink | No | Rounds of one change in a row that may end with a confirmed medium+ before the stop sign (integer 1–10, default 3) |