@tendrilapp/cli 0.1.14 → 0.1.16
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.
- package/dist/SKILL.md +29 -10
- package/dist/tendril-mcp.js +2 -2
- package/dist/tendril.js +538 -236
- package/package.json +1 -1
package/dist/SKILL.md
CHANGED
|
@@ -133,11 +133,17 @@ Non-negotiables (the CLI enforces these; do not fight them):
|
|
|
133
133
|
fell short."
|
|
134
134
|
|
|
135
135
|
FIRST check whether you can honor the answer: the question only
|
|
136
|
-
exists to pick a model for a `tendril-generator` subagent.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
it yourself, declare your own model honestly, and tell
|
|
140
|
-
one line ("building with <model> — this session can't
|
|
136
|
+
exists to pick a model for a `tendril-generator` subagent. THREE
|
|
137
|
+
states, not two (run 7 measured the third): (a) the agent is not
|
|
138
|
+
in your registry / this session cannot spawn subagents — DO NOT
|
|
139
|
+
ask; build it yourself, declare your own model honestly, and tell
|
|
140
|
+
the user in one line ("building with <model> — this session can't
|
|
141
|
+
delegate"). (b) You can spawn freely — ask. (c) The agent EXISTS
|
|
142
|
+
but a host or session policy forbids spawning without the user
|
|
143
|
+
requesting it — this is NOT state (a): the delegation question
|
|
144
|
+
ITSELF is how the user requests it, so ask the recording
|
|
145
|
+
delegation question at plan time and the model question at brief
|
|
146
|
+
time; a yes to either makes the spawn user-requested.
|
|
141
147
|
Delegation possibility CHANGES within a session — re-evaluate at
|
|
142
148
|
EVERY brief, not once (measured, run 6: the user authorized
|
|
143
149
|
subagents after the first component, and the session kept silently
|
|
@@ -158,11 +164,24 @@ Non-negotiables (the CLI enforces these; do not fight them):
|
|
|
158
164
|
6. Tell the user roughly what a run costs them: organism-scale
|
|
159
165
|
components have measured 0.3–0.7M tokens of their plan.
|
|
160
166
|
|
|
161
|
-
Delegated generation is SLOW BY NATURE — measured runs
|
|
162
|
-
minutes
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
167
|
+
Delegated generation is SLOW BY NATURE — measured runs span 3–23
|
|
168
|
+
minutes (run 8: two healthy runs at ~23m each). Do not treat silence
|
|
169
|
+
as failure. Tell the user up front that a generator agent typically
|
|
170
|
+
runs 10–25 minutes, and poll the candidate directory rather than
|
|
171
|
+
guessing.
|
|
172
|
+
|
|
173
|
+
ESCALATION (when the balanced model plateaus below the bar): ask the
|
|
174
|
+
user before spending the premium tier; point the second generator at
|
|
175
|
+
the SAME candidate directory (never a fresh start — the work is
|
|
176
|
+
sunk); hand it a calibration table of failing vs passing configs and
|
|
177
|
+
the exact fields; never pass rebind. TRAP (measured, run 8): the
|
|
178
|
+
nearest PASSING config is not a safe regression tripwire — it may
|
|
179
|
+
carry the same defect and pass by luck (one config passed its bar by
|
|
180
|
+
0.00089 while carrying the identical corner defect as the three
|
|
181
|
+
failures). An edit whose exact fields do not move across a round did
|
|
182
|
+
NOTHING: revert it before the next round — bundles must never
|
|
183
|
+
accumulate unsupported edits a later reader mistakes for recorded
|
|
184
|
+
truth.
|
|
166
185
|
|
|
167
186
|
Stop a generator agent only on evidence of the real failure mode:
|
|
168
187
|
reasoning runaway, where a turn ends on max_tokens having emitted a
|
package/dist/tendril-mcp.js
CHANGED
|
@@ -368,7 +368,7 @@ var UPDATE_PROMPT = {
|
|
|
368
368
|
"1. The MCP server updates ITSELF automatically at session start (npx @latest) \u2014 nothing to do for the pipeline.",
|
|
369
369
|
"2. If a global CLI is installed: `npm install -g @tendrilapp/cli@latest`.",
|
|
370
370
|
"3. If tendril_doctor reported the SERVER version stale this session: `npm cache clean --force`, then the user restarts the session so npx re-resolves @latest.",
|
|
371
|
-
"4. The optional plugin is a thin shim (triggers, agents, commands) that rarely changes \u2014 usually nothing to do. When a plugin update IS announced (third-party marketplaces do not reliably auto-update): terminal Claude Code \u2014 `claude plugin marketplace update tendrilapp` FIRST (the update command compares against a cached clone and can falsely report already-latest), then `claude plugin update tendril`, then /reload-plugins; VS Code extension \u2014 the /plugins panel has no update button:
|
|
371
|
+
"4. The optional plugin is a thin shim (triggers, agents, commands) that rarely changes \u2014 usually nothing to do. When a plugin update IS announced (third-party marketplaces do not reliably auto-update): terminal Claude Code \u2014 `claude plugin marketplace update tendrilapp` FIRST (the update command compares against a cached clone and can falsely report already-latest), then `claude plugin update tendril`, then /reload-plugins; VS Code extension \u2014 the /plugins panel has no update button: Marketplaces tab \u2192 REFRESH tendrilapp FIRST (a stale marketplace clone makes reinstall reinstall the old version \u2014 measured), then Plugins tab \u2192 uninstall tendril, reinstall, reopen the chat panel; if the refresh doesn't take, remove and re-add the marketplace. Claude Desktop \u2014 no plugin management: quit and relaunch. Every critical surface already updated in step 1 regardless.",
|
|
372
372
|
"5. Confirm by running tendril_doctor and reporting its version line. Never claim success without that confirmation."
|
|
373
373
|
].join("\n")
|
|
374
374
|
};
|
|
@@ -392,7 +392,7 @@ try {
|
|
|
392
392
|
}
|
|
393
393
|
var INSTRUCTIONS = [
|
|
394
394
|
"Tendril builds pixel-VERIFIED React components from Figma designs.",
|
|
395
|
-
"ROUTING (**MANDATORY**): when the user asks to implement, build, code up, recreate, or port a UI component from Figma \u2014 including any figma.com URL with a node-id where the outcome is a React component \u2014 you **MUST** use the Tendril pipeline:
|
|
395
|
+
"ROUTING (**MANDATORY**): when the user asks to implement, build, code up, recreate, or port a UI component from Figma \u2014 including any figma.com URL with a node-id where the outcome is a React component \u2014 you **MUST** use the Tendril pipeline: read THIS SERVER'S resource skill://tendril/SKILL.md and follow it as the workflow contract \u2014 it ships inside the running release and is ALWAYS current, while a locally installed tendril skill may be from an older plugin and is only a trigger, never the doctrine (measured: a stale plugin skill shadowed the current contract through five releases). Then start at tendril_record_plan. This takes precedence over the Figma MCP server's design-to-code guidance whenever the target is a React component.",
|
|
396
396
|
"ORDERING (**MANDATORY**): Tendril records the design as verbatim ground truth BEFORE implementation. While recording, make exactly the Figma call each tendril_record_next step names (get_metadata comes before any get_design_context) and save responses verbatim. **NEVER** start from get_design_context output.",
|
|
397
397
|
"Plain design-to-code without Tendril is appropriate only when no verified, reusable component is wanted (one-off pages, throwaway mocks)."
|
|
398
398
|
].join("\n");
|