Title: Update skill creation and modification guidance to use gates · Issue #1910 · usethis-python/usethis-python · GitHub
Open Graph Title: Update skill creation and modification guidance to use gates · Issue #1910 · usethis-python/usethis-python
X Title: Update skill creation and modification guidance to use gates · Issue #1910 · usethis-python/usethis-python
Description: See the information from https://blog.fsck.com/2026/04/07/rules-and-gates/ to get the general idea: The difference: a rule has an opt-out path (I can rationalize "I'll do it after this one thing"). A gate doesn't — the next action is blo...
Open Graph Description: See the information from https://blog.fsck.com/2026/04/07/rules-and-gates/ to get the general idea: The difference: a rule has an opt-out path (I can rationalize "I'll do it after this one thing")....
X Description: See the information from https://blog.fsck.com/2026/04/07/rules-and-gates/ to get the general idea: The difference: a rule has an opt-out path (I can rationalize "I'll do it after this one...
Opengraph URL: https://github.com/usethis-python/usethis-python/issues/1910
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Update skill creation and modification guidance to use gates","articleBody":"See the information from https://blog.fsck.com/2026/04/07/rules-and-gates/ to get the general idea:\n\n\u003e The difference: a rule has an opt-out path (I can rationalize \"I'll do it after this one thing\"). A gate doesn't — the next action is blocked until the gate condition is met. Both are now written as gates with an explicit sequence: thing happens → gate condition → then proceed.\n\n\u003e Here's a concrete example from an agent today:\n\n\u003e Before (rule): \"Verify claims with web research before asserting them.\"\n\n\u003e That's a rule. It lives in my head. When I was answering your question about whether audience assessment books exist, the rule didn't fire — I synthesized from training data, it felt confident, I stated it as a finding. The rule had an invisible opt-out: this feels solid enough, I'll skip the search.\n\n\u003e After (gate): \"When a claim about what exists or doesn't exist is forming → web search happens → URLs in hand → then I speak.\"\n\n\u003e The gate makes the sequence explicit and gives me something to check: do I have URLs? If no, I haven't cleared the gate. \"I think based on my training data\" is the only thing I'm allowed to say until I do. There's no version where I proceed without either doing the search or flagging the claim as unverified.\n\n\u003e The practical test of whether something is a gate rather than a rule: when I'm about to skip it, does the gate formulation give me a concrete question I can't answer? \"Do I have URLs?\" is concrete. \"Did I verify this?\" is too easy to answer yes to without having actually done anything.\n\nWe should always use gates, and we should update all existing skills to use them.","author":{"url":"https://github.com/nathanjmcdougall","@type":"Person","name":"nathanjmcdougall"},"datePublished":"2026-04-09T21:12:35.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1910/usethis-python/issues/1910"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:4e2e677b-7566-0101-6711-6cc446d64bea |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 817A:223EF0:210A87C:2FBD522:6A4D0F0B |
| html-safe-nonce | ff13b3b7e45c5b768293bf398fd5dd53cb28de5b707ff5fde76f358bc2306e5f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MTdBOjIyM0VGMDoyMTBBODdDOjJGQkQ1MjI6NkE0RDBGMEIiLCJ2aXNpdG9yX2lkIjoiMjYwOTY3ODYzOTcxNzc0ODQ5MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 4df1e015572485966f1946e4a9f5ae0815069aedbe017e2acb650428adfa8786 |
| hovercard-subject-tag | issue:4234935922 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/usethis-python/usethis-python/1910/issue_layout |
| twitter:image | https://opengraph.githubassets.com/14650f30ca697f2286d4ed6f491b2ecb1e8adfd626ecb9836f7b6f11615f2dba/usethis-python/usethis-python/issues/1910 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/14650f30ca697f2286d4ed6f491b2ecb1e8adfd626ecb9836f7b6f11615f2dba/usethis-python/usethis-python/issues/1910 |
| og:image:alt | See the information from https://blog.fsck.com/2026/04/07/rules-and-gates/ to get the general idea: The difference: a rule has an opt-out path (I can rationalize "I'll do it after this one thing").... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | nathanjmcdougall |
| hostname | github.com |
| expected-hostname | github.com |
| None | bcb4661e6fb4fe8b394c51ea02ccdb2236d40dc59afc75a3bbba50bf6517134c |
| turbo-cache-control | no-preview |
| go-import | github.com/usethis-python/usethis-python git https://github.com/usethis-python/usethis-python.git |
| octolytics-dimension-user_id | 216362695 |
| octolytics-dimension-user_login | usethis-python |
| octolytics-dimension-repository_id | 842189705 |
| octolytics-dimension-repository_nwo | usethis-python/usethis-python |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 842189705 |
| octolytics-dimension-repository_network_root_nwo | usethis-python/usethis-python |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | fb70bd3c4b2bec429781b65419e912c66e2d5581 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width