feat(project): compile skill artifacts to tree hashes + bundle zips - #141
Merged
Conversation
Skills are directories under <srcDir>/skills/<slug>/ containing SKILL.md.
Compile emits { slug, treeHash } per skill (git tree hash of the dir at HEAD;
not-a-repo / never-committed / dirty dir surface as issues) and, with the new
--skill-bundles-dir flag, writes each skill's zip as <treeHash>.zip — raw bytes
end to end (only SKILL.md is decoded, for frontmatter), no extension
allow-list, 200-file cap, symlinks rejected. The bundle S3 location is injected
by the platform compile job, never by the CLI.
agents/skills are omitted from the compiled config when empty (the server
contract treats both as optional); "skills" returns to the reserved agent.json
fields. agent.schema.json re-vendored from mono-builder (drift check goes green
once that side deploys).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KgHMhia4ZHmppQ2EYoX1TT
Co-authored-by: Orca <help@stably.ai>
josegironn
requested review from
exymax,
jasonzbao and
rishikesh-major
as code owners
July 26, 2026 01:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Compile-side support for skill artifacts in file-based projects. Skills (
<srcDir>/skills/<slug>/with SKILL.md) compile to{ slug, treeHash }— the dir's git tree object hash — and--skill-bundles-dir <dir>additionally writes each skill's<treeHash>.zipfor the platform compile job to stage in S3. The CLI never touches S3; localcompilewithout the flag stays pure/offline.agents/skillsomitted when empty (server contract treats both as optional);"skills"returns to the reserved agent.json fields (attachment stays a platform action).agent.schema.jsonre-vendored from mono-builder; schemas-drift CI stays red until mono-builder PR #1922 deploys (expected).Coupling
mono-builder #1922 consumes this: after merge, cut a release and bump the
go-project-compilerDockerfile pin there — the job now passes--skill-bundles-dirunconditionally.Testing
go build ./...,go vet ./...,go test ./... -count=1green; fixtures use real temp git repos; zip round-trips asserted byte-identical including binary content.🤖 Generated with Claude Code
https://claude.ai/code/session_01KgHMhia4ZHmppQ2EYoX1TT
Made with Orca 🐋