{"_id":"@bagakit/repo-skills","name":"@bagakit/repo-skills","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bagakit/repo-skills","version":"0.1.0","description":"Repo-native Agent Skill projection CLI","bin":{"repo-skills":"npm/bin/repo-skills.js"},"scripts":{"postinstall":"node npm/install.js","build":"sh scripts/build-npm-binaries.sh","test":"go test ./... && node --test npm/*.test.js","test:npm":"node --test npm/*.test.js","pack:dry-run":"npm run build && npm pack --dry-run"},"os":["darwin","linux","win32"],"cpu":["arm64","x64"],"keywords":["agent","skills","cli","codex","claude","gemini"],"license":"MIT","engines":{"node":">=16"},"repository":{"type":"git","url":"git+https://github.com/bagakit/repo-skills.git"},"bugs":{"url":"https://github.com/bagakit/repo-skills/issues"},"homepage":"https://github.com/bagakit/repo-skills#readme","publishConfig":{"access":"public"},"gitHead":"0c5af8221db8269eb426fe25456d8cb8f8fa47af","_id":"@bagakit/repo-skills@0.1.0","_nodeVersion":"24.14.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-FyZzPiQ7caxr4xZ22DDlxf2qw5spieMttmZj/UPDtS5brHWAeSwcgOgobUVtmQpZv2d21zBvi4mbQWK1Y0EMXQ==","shasum":"5ab53d5bb19761dd0d13ae571eb572a08a6fc5d9","tarball":"https://registry.npmjs.org/@bagakit/repo-skills/-/repo-skills-0.1.0.tgz","fileCount":12,"unpackedSize":24618014,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIATMonDuiYSayOObb6kX4ovDaHnY9XWKWF3mOUzo47l4AiADBxzTaFCr/RDOnz9UE3qvLVcFSJ22RaDwP0cJymqofw=="}]},"_npmUser":{"name":"kinghand","email":"kinghand@foxmail.com"},"directories":{},"maintainers":[{"name":"kinghand","email":"kinghand@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repo-skills_0.1.0_1782065023702_0.4498183100142965"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-21T18:03:43.545Z","0.1.0":"2026-06-21T18:03:44.037Z","modified":"2026-06-21T18:03:44.269Z"},"maintainers":[{"name":"kinghand","email":"kinghand@foxmail.com"}],"description":"Repo-native Agent Skill projection CLI","homepage":"https://github.com/bagakit/repo-skills#readme","keywords":["agent","skills","cli","codex","claude","gemini"],"repository":{"type":"git","url":"git+https://github.com/bagakit/repo-skills.git"},"bugs":{"url":"https://github.com/bagakit/repo-skills/issues"},"license":"MIT","readme":"# Repo Skills\n\nRepo Skills is a small native CLI for shipping Agent Skills from the repository\nthat owns them.\n\nSkills often belong next to the SDK, framework, examples, tests, and docs that\nmake them accurate. Repo Skills keeps that source checked in, then projects it\ninto local agent skill roots by symlink or copy.\n\n## Install\n\nUse npm when you want the packaged CLI:\n\n```bash\nnpm install -g @bagakit/repo-skills\n```\n\nBuild from source when working on the project:\n\n```bash\ngit clone https://github.com/bagakit/repo-skills.git\ncd repo-skills\nmake build\nmake install\n```\n\nRun without installing:\n\n```bash\ngo run ./cmd/repo-skills -- repo status\n```\n\nInstall with Go from a source checkout:\n\n```bash\ngo install ./cmd/repo-skills\n```\n\nGo writes the binary to `$GOBIN` when set, otherwise to `$GOPATH/bin`. If\n`repo-skills` is not found after installation, add that directory to `PATH`.\n\n```bash\nexport PATH=\"$(go env GOPATH)/bin:$PATH\"\nrepo-skills repo status\n```\n\n## Quick Start\n\nAdd a skill to your repository:\n\n```text\nskill/my-project/SKILL.md\n```\n\nDeclare it in `repo-skills.toml`:\n\n```toml\nversion = 1\nname = \"my-project\"\n\n[[skillset]]\nname = \"default\"\nsource = \"skill/my-project\"\nlayout = \"single\"\ntargets = [\"agents\"]\nmode = \"link\"\n```\n\nInspect and install the projection:\n\n```bash\nrepo-skills repo status\nrepo-skills repo sync --dry-run\nrepo-skills repo sync\n```\n\nInspect the installed skills on the machine:\n\n```bash\nrepo-skills system inventory\n```\n\nRemove only projections that Repo Skills owns:\n\n```bash\nrepo-skills repo unlink\n```\n\n## Command Model\n\nRepo Skills has two command surfaces. They are intentionally separate.\n\n| Surface | Purpose | Requires `repo-skills.toml` |\n|---|---|---:|\n| `repo-skills repo ...` | Work with the current repository's manifest, source skills, and declared projections. | yes |\n| `repo-skills system ...` | Inspect local agent skill roots as installed-skill inventory. | no |\n\nRepo commands:\n\n```bash\nrepo-skills repo discover\nrepo-skills repo status\nrepo-skills repo sync\nrepo-skills repo unlink\nrepo-skills repo doctor\n```\n\nSystem commands:\n\n```bash\nrepo-skills system inventory\nrepo-skills system doctor\n```\n\nHuman output is compact and table-oriented. Use `--json` for automation:\n\n```bash\nrepo-skills repo status --json\nrepo-skills system inventory --json\n```\n\n## Manifest\n\n`repo-skills.toml` is the repository-owned contract.\n\n```toml\nversion = 1\nname = \"my-project\"\n\n[[skillset]]\nname = \"default\"\nsource = \"skill/my-project\"\nlayout = \"single\"\ntargets = [\"agents\"]\nmode = \"link\"\n```\n\nFields:\n\n| Field | Meaning |\n|---|---|\n| `version` | Manifest schema version. Current value: `1`. |\n| `name` | Repository name used for stable source identity. |\n| `source` | Repo-local skill source directory or root containing skills. |\n| `layout` | `single`, `top-level`, or `family`. |\n| `targets` | Agent adapters such as `agents`, `claude`, `gemini`, `opencode`, or `antigravity`. |\n| `mode` | `link`, `copy`, or `auto`. |\n| `scope` | Optional `global` or `local`. Defaults to `global`. |\n| `project` | Optional local project path when `scope = \"local\"`. |\n\nLayouts:\n\n| Layout | Source shape |\n|---|---|\n| `single` | `source/SKILL.md` is one skill. |\n| `top-level` | Each direct child of `source` with `SKILL.md` is a skill. |\n| `family` | Each `source/<family>/<skill>/SKILL.md` is a skill. |\n\n## Target Roots\n\nGlobal target roots:\n\n| Adapter | Root |\n|---|---|\n| `agents` | `$HOME/.agents/skills` |\n| `claude` | `$HOME/.claude/skills` |\n| `gemini` | `$HOME/.gemini/skills` |\n| `opencode` | `$HOME/.config/opencode/skills` |\n| `antigravity` | `$HOME/.gemini/antigravity-cli/skills` |\n\nLocal target roots are resolved below the selected project:\n\n| Adapter | Local root |\n|---|---|\n| `agents` | `.agents/skills` |\n| `claude` | `.claude/skills` |\n| `gemini` | `.gemini/skills` |\n| `opencode` | `.opencode/skills` |\n| `antigravity` | `.agent/skills` |\n\nExamples:\n\n```bash\nrepo-skills repo status --agent claude\nrepo-skills repo sync --scope local --project ../consumer-app\nrepo-skills system inventory --agent agents,claude\nrepo-skills system inventory --target-root ~/.agents/skills\n```\n\n## Safety Model\n\nRepo Skills is conservative by default.\n\n- Symlink projections are owned only when the link points at the declared source\n  skill.\n- Copy projections include `.repo-skills-projection.json` with a stable source\n  identity and content hash.\n- `sync` refuses foreign files, foreign directories, and foreign symlinks.\n- `unlink` removes only owned symlinks or unmodified owned copies.\n- Modified copies are left in place until a human resolves the drift.\n- Ownership manifests do not store local absolute source paths.\n\n## npm Distribution\n\nThe npm package wraps the native Go binary with a small Node launcher.\n\nPackage layout:\n\n```text\npackage.json\nnpm/bin/repo-skills.js\nnpm/platform.js\nnpm/install.js\nnpm/binaries/repo-skills-<os>-<arch>\n```\n\nBuild all npm binaries:\n\n```bash\nnpm run build\n```\n\nVerify the package contents without publishing:\n\n```bash\nnpm run pack:dry-run\n```\n\nPublish from a clean checkout:\n\n```bash\nNPM_TOKEN=... sh scripts/publish-npm.sh\n```\n\nUse `PUBLISH_DRY_RUN=1` to run the build, tests, and pack check without\npublishing.\n\n## Development\n\nRequired tools:\n\n- Go `1.25.0` or newer compatible toolchain\n- Node.js `16` or newer for npm wrapper tests\n\nCommon checks:\n\n```bash\ngo test ./...\ngo vet ./...\nnode --test npm/*.test.js\ngit diff --check\n```\n\nBuild locally:\n\n```bash\nmake build\n./repo-skills repo status\n./repo-skills system inventory\n```\n\nFormat Go code:\n\n```bash\nmake fmt\n```\n\n## Non-Goals\n\nRepo Skills is not a marketplace, registry resolver, rating system, or general\npackage manager. It makes one narrower promise: when a skill belongs with a\nrepository, the repository can distribute it safely and review it like code.\n\n## License\n\nRepo Skills is released under the MIT License. See `LICENSE`.\n","readmeFilename":"README.md","_rev":"1-87037b60c3a38207deb8c4e25e5d2054"}