feat(skills): auto-bundle declared skill dependencies in cloud runs#3057
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
React Doctor found no issues in the changed files. 🎉 Reviewed by React Doctor for commit |
|
Reviews (1): Last reviewed commit: "feat(skills): auto-bundle declared skill..." | Re-trigger Greptile |
6cf04be to
aad38ac
Compare
a569f38 to
add6912
Compare
|
Reviews (2): Last reviewed commit: "feat(skills): auto-bundle declared skill..." | Re-trigger Greptile |
add6912 to
42720c8
Compare
New commits pushed (delta classified non_linear_history) — stamphog approval dismissed; re-review running automatically.
There was a problem hiding this comment.
Well-structured additive feature with proper layering: fs operations in workspace-server, types/tokens in core, thin tRPC router forwarding, and DI wiring only in the host. Both P2 issues flagged by the bot reviewer (regex injection and silent truncation) were addressed before the current HEAD — the fix uses startsWith instead of new RegExp(key), and the BFS now throws on graph size overflow rather than silently truncating. Cycle detection via seen set is correct, tests cover transitive deps, cycles, built-ins, and the oversized-graph error path.
|
Retaining stamphog approval — delta since last review classified as |

Problem
skills that depend on other skills required the user to tag every dependency by hand in a cloud run. Tagging only the parent skill left its dependency missing in the sandbox, so the parent couldn't invoke it.
Changes
auto-bundle a tagged skill's declared dependencies for cloud runs:
dependencies:list to SKILL.md frontmatter (parseSkillDependencies, supports block and flow YAML sequences).SkillsService.resolveSkillBundleDependenciestransitively expands a set of skill refs to include declared dependencies (BFS, cycle-guarded; skills that resolve to a built-in already present in the sandbox are skipped). Exposed viaskills.resolveDependencies.CloudArtifactService.loadCloudSkillBundlesexpands refs through that resolver before uploading, so the dependency bundles ride along on both the initial and follow-up upload paths. No-op when there are no tagged skills