@tendrilapp/cli 0.1.55 → 0.1.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/SKILL.md +19 -42
  2. package/dist/tendril.js +4817 -4480
  3. package/package.json +3 -2
package/dist/SKILL.md CHANGED
@@ -20,48 +20,25 @@ Non-negotiables (the CLI enforces these; do not fight them):
20
20
  - Sub-bar results are honest, not failures to hide: exit 5 ships the
21
21
  bundle with real scores. Report them as they are.
22
22
 
23
- Permissions, FIRST THING in every pipeline run (the trigger is a FILE
24
- CHECK, not prompt-watching you cannot observe permission prompts, so
25
- never condition on them; a measured session full of prompts had a
26
- prompt-conditioned offer never fire): check whether ANY Claude
27
- settings file the host merges the project's
28
- `.claude/settings.local.json` or `.claude/settings.json`, or the
29
- user's `~/.claude/settings.json` contains tendril MCP entries
30
- (plugin installs use `mcp__plugin_tendril_tendril__*`; direct
31
- `claude mcp add` installs use `mcp__<server-name>__*`) AND shell-
32
- surface entries (`Bash(ls:*)`-style prefixes plus `Write`/`Edit`)
33
- AND Figma entries under the prefix THIS session's Figma tools
34
- actually carry take a Figma tool you can see (e.g. get_metadata)
35
- and check its full `mcp__…` name against the allowlist; entries
36
- under a different server's prefix are dead and DO NOT count (a
37
- measured session held six such entries while every Figma call
38
- prompted).
39
- THE MCP LIST ALONE IS NOT "PERMISSIONS ARE FINE": a run is mostly
40
- shell mkdir, evidence reads, log writes, the printed npx commands —
41
- and a measured session whose every MCP call was covered still put
42
- ~300 shell decisions to the user because this check certified only
43
- the MCP half. If either half is missing, BEFORE the first recording
44
- call, tell the user one approval can replace every pipeline prompt
45
- and offer `tendril_permissions` with `write: true` — it merges the
46
- per-tool allowlist PLUS the run's shell surface and project-scoped
47
- Write/Edit (with deny guards so that grant can never touch
48
- `./.claude/**` or `./.git/**`) into the project's
49
- settings.local.json (idempotent, touches nothing else). PREFIXES:
50
- pass `figmaPrefix` (and `tendrilPrefix` for non-plugin installs)
51
- spelled exactly as THIS session names those tools — the part before
52
- `__get_metadata` — whenever they differ from the plugin defaults; a
53
- measured figma-remote session got six entries that could never
54
- match because the write assumed the plugin shape. These are
55
- CONVENIENCE grants, not a security boundary — the command's output
56
- names what they trade (read verbs read any file without prompting;
57
- host Bash patterns are best-effort prefix matches; the CLI
58
- subcommand grants carry the CLI's own write surface). RELAY that
59
- note to the user with the offer, never soften it, and say BOTH that
60
- a reload is required AND that the current session keeps prompting
61
- until then — the savings land next session; that is expected, not a
62
- failure. Offer ONCE per session; never run it unoffered (it edits
63
- the user's settings), and if declined, proceed without mentioning
64
- it again.
23
+ Permissions: do nothing up front. Hosts now default to auto/allow
24
+ modes where pipeline calls never prompt, and an unprompted consent
25
+ dialog is itself the alarm it claims to prevent. Act ONLY on
26
+ observable evidence of the ask-mode case you cannot see the host's
27
+ permission prompts (measured: a session full of prompts had a
28
+ prompt-conditioned offer never fire), but you CAN see a denied or
29
+ long-pending tool call, and the user can tell you they are being
30
+ prompted for everything. When that evidence exists, name the
31
+ one-command fix ONCE and let them decide: `tendril_permissions` with
32
+ `write: true` merges the pipeline's per-tool allowlist plus the run's
33
+ shell surface and project-scoped Write/Edit (deny guards keep the
34
+ grant out of `./.claude/**` and `./.git/**`) into the project's
35
+ settings.local.json idempotent, touches nothing else. Pass
36
+ `figmaPrefix`/`tendrilPrefix` exactly as THIS session names those
37
+ tools when they differ from the plugin defaults. These are
38
+ CONVENIENCE grants, not a security boundary — relay the command's own
39
+ trade-off note unsoftened, and say that a reload is required and the
40
+ current session keeps prompting until then. Never run it unasked; if
41
+ declined, proceed and drop the subject.
65
42
 
66
43
  Long generator/score waits: silence is not a health signal, and POLL
67
44
  cadence is not RELAY cadence (run 13: rounds landed 6–11 minutes apart,