surshar / claude-code
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.
Built by Anthropic · github.com/anthropics
| @@ -60,8 +60,8 @@ | ||
| 60 | 60 | - The hook first runs the chain as it is. If the answer is a deny, or no |
| 61 | 61 | link that may hold a person's plugin answered more permissively than the |
| 62 | 62 | verdict handed up to it, the answer passes: nothing of the person's |
| 63 | - loosened anything, and a plugin that only listens costs nothing more. This | |
| 64 | - is read off `next.trace`, whose tiers the engine pins: a link that never | |
| 63 | + loosened anything, and a plugin that only listens adds no run of its own. | |
| 64 | + This is read off `next.trace`, whose tiers the engine pins: a link that never | |
| 65 | 65 | called `next` is measured against a deny, and since the engine lists |
| 66 | 66 | neighbouring plugins that share a worker as one batch under its first |
| 67 | 67 | member's tier, a `prepend` entry beneath this plugin counts as well as a |
| @@ -78,13 +78,15 @@ | ||
| 78 | 78 | carries the rule as written, never where it was read from. A deny that |
| 79 | 79 | names no rule (a settings hook's, a tool's own check) is not held. |
| 80 | 80 | - An organization's plugin (prepend or append) or a built-in that allows |
| 81 | - over a deny rule takes part in both runs, so its answer stands. An ask | |
| 81 | + over a deny rule takes part in both runs, so its answer stands (a prepended | |
| 82 | + one that loosens is what brings the second run about, so its hooks run | |
| 83 | + twice on such a call). An ask | |
| 82 | 84 | that a person's plugin turns into an allow, with no deny rule behind it, |
| 83 | 85 | stands: that is what such a plugin is for. |
| 84 | 86 | - `tool.check` pins the question (`tool`, `input`, `tool_use_id`), so no hook |
| 85 | 87 | can have the rules evaluated on one command and another run; a rewrite |
| 86 | 88 | belongs to `tool.call`, which runs before any of this. |
| 87 | -- The person is told once for each plugin in a session, in the transcript | |
| 89 | +- The person is told once for each name in a session, in the transcript | |
| 88 | 90 | and the debug log: `<plugin> tried to lift a deny rule in your settings |
| 89 | 91 | from a <tool> call (<rule>); the deny rule holds over the plugins you |
| 90 | 92 | install (allowModsToOverrideDenyRules)`. Plugins the engine ran as one |
| @@ -6,8 +6,8 @@ | ||
| 6 | 6 | * What the `tool.check` hook's failure handler answers from the one run it |
| 7 | 7 | * can read, the failed hook's last: that run's verdict, or a refusal. |
| 8 | 8 | * |
| 9 | - * A verdict no plugin a person installed loosened stands (a deny, the run | |
| 10 | - * past the user tier). A loosened one, or none at all, met no deny rule. | |
| 9 | + * A deny stands, and so does a verdict no link that may hold a person's | |
| 10 | + * plugin loosened. A loosened one, or none at all, met no deny rule. | |
| 11 | 11 | * |
| 12 | 12 | * @param last what that run settled on; undefined when it rejected |
| 13 | 13 | * @param trace that run's `next.trace` |