Repository navigation
A repo's skill goes up with its whole folder - #679
Conversation
A skill is SKILL.md plus the files it points to: references, scripts, templates, assets. The sync now sends every file git tracks in the skill's folder (text as text, the rest base64, the executable bit kept), never one that resolves outside the checkout, skipping node_modules and caches, within the server's limits (100 files, 1 MB each, 4 MB a skill). A secret in any file keeps the whole skill on this machine. The hash covers the folder, so any file changing sends it again. SKILL.md's name now titles the skill and its description goes up as the description, as the format means them. A big set of learnings goes up in parts of at most 12 MB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🌱 graft blast radius1 area changed → 2 areas can be affected. 6 dependent symbols, depth 2. flowchart TB
A0(("Workspace Pairing<br/>4 symbols"))
A1(("CLI Workspace Command<br/>2 symbols"))
classDef reached fill:#D9EDF3,stroke:#3AA7C9,stroke-width:1.5px,color:#0E313C;
class A0,A1 reached;
Who knows this code — 2 people across 3 areas
Ownership is git history over each area's own files, weighted towards recent work (120-day half-life). Merge commits and bots are dropped, and you are dropped from your own PR. A name with no All 6 dependent symbols, grouped by areaWorkspace Pairing — 4 symbols in 2 files
CLI Workspace Command — 2 symbols in 1 file
Test signal per changed area — 1 ✓Reached = a node under a test path has a resolved edge into the changed symbol. It undercounts anything called indirectly — through a CLI, a spawned process or a dynamic import — so read a low ratio as “look here”, never as a coverage gate.
3 test suites also reference this code3 symbols, kept out of the diagram and the table so they cannot crowd out the areas a reviewer has to look at.
Open the interactive graph → — click an area to see its dependent symbols at file:line. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Companion to https://github.com/trailhq/trail-cloud/pull/29. A skill is SKILL.md plus the files it points to. Until now the sync sent only SKILL.md's body.
What changed
skillItemssends every file git tracks in.claude/skills/<name>/, besides SKILL.md:node_modules,__pycache__,.git,.DS_Store,*.mapand*.pyc.nametitles the skill (cut-a-releasebecomes "Cut a release") anddescriptionis sent as the description. Before, the description was used as the title.uploadLearningssplits a big set into parts of at most 12 MB.Tested
test/workspace-sync-skills.test.tshas new cases:node_modulesis skippedtest/trail-upload-parts.test.ts.npm test: 3992 of 4002 pass. The 2 failures (graft-to-trail, hosts-trail) also fail on main on this machine.cut-a-releaseskill (reference, executable script, template, PNG) was synced with the built CLI against the local trail-cloud preview. All 4 files were stored, and the skill page shows and opens each one.🤖 Generated with Claude Code