genged

Registry 색인

capshelf

Use the capshelf CLI to manage shared skills, Pi extensions, subagents, settings, and MCP configs across multiple projects from a user-owned data repo.

소스 확인GitHub에서 보기
가격 미확인★ 10 GitHub 스타목록 업데이트 · 2026년 9월 17일agent-skill

개요

Use the capshelf CLI to manage shared skills, Pi extensions, subagents, settings, and MCP configs across multiple projects from a user-owned data repo.

전체 설명 읽기

소스 문서이며 이 웹사이트의 실행 지침이 아닙니다. 명령 실행 전에 권한을 확인하세요.

capshelf

This project uses capshelf to track shared coding-agent config (skills, project-local Pi extensions, Claude/Codex subagents, settings fragments, MCP configs) pulled from a data repo. When the user asks to add, remove, discover, edit, or update shared config, use the capshelf CLI. Do not hand-edit .capshelf/capshelf.json or .capshelf/capshelf.lock.json — they are tool-managed.

Run project commands from anywhere inside a capshelf project — the directory containing .capshelf/capshelf.json, or any subdirectory of it (capshelf walks upward to find the root, like git). init acts on the current directory, not a discovered parent. Use init only for a new project or a fresh clone without .capshelf/local.json; it refuses a project already initialized on this machine. Use data bind, data upstream, and update for later lifecycle changes.

The agent decision loop

Work the shelf in this order instead of pattern-matching on bare item names:

1. Survey the project

Run capshelf status at session start to see drift and available updates before changing anything. capshelf ls --here lists what is already installed (with descriptions and #tags when the data repo declares them).

2. Discover on the shelf

Reach for capshelf search <task words> first — it matches names, tags, descriptions, and item content across the bound data repo plus bundled system items, ranked by relevance:

capshelf search "sql injection"
capshelf search security --json

Zero matches exit 0 — an empty answer is a valid answer, not an error. To browse instead, use capshelf ls --tag <tag> (repeatable, AND) or ls --kind <kind>. Descriptions and tags are the selection signal.

Results with a bundles/ prefix are bundles — curated item sets. Prefer them when setting up a project: capshelf show bundles/<name> to preview members and install state, then capshelf add bundles/<name> to expand. Expansion is traceless (members become ordinary independent items); the bundle field in add --json is the only echo and is what belongs in a commit message.

3. Evaluate before installing

capshelf show <item> prints the full description, requires, conflicts-with, and whether each relation is already installed. Use it before committing to an add. For pi-extensions/*, read all extension source shown before adding: Pi executes it as arbitrary code with full user permissions after project trust.

4. Install

capshelf add <item>. For mcp/* and subagents/*, read the targets: block add prints and tell the user which runtimes the item covers — see Target coverage. Repeating add for an installed item is a stable no-op; use the printed status --diff, update, and apply guidance instead of trying to make add reapply it. If the output lists missing required items, install them with the exact capshelf add <ref> commands it prints. If add refuses with exit 3 because of a conflicts-with declaration, that is a curated incompatibility — surface the decision to the user (remove the conflicting item, or fix a stale declaration in the data repo); never work around it. A bundle preflight refusal (exit 3) is the same kind of decision: nothing was installed and the per-member report says why — surface it, don't install members one by one to route around it.

5. Verify

capshelf status --strict — exit 0 means the project has converged on its locks.

6. Edit / promote loop

When the user asks you to improve a shared (data) item:

  1. capshelf get-path <item> for the absolute editable path (fragments return canonical data-repo source files; --output returns generated outputs for inspection only).
  2. Edit with your Edit/Write tools.
  3. capshelf status <item> — should report drifted_local (or source_dirty for fragments).
  4. Decide with the user:
    • capshelf promote <item> -m "why" — push to the data repo. Other projects see update available next time they check; nothing auto-changes.
    • capshelf keep-local <item> --reason "why" — intentional project-specific divergence for a copy item (skill or Pi extension).
    • capshelf revert <item> — discard the edit, restore from the recorded sourceCommit; first show capshelf status <item> --diff and get permission before using --yes in a non-interactive run.

For Pi extensions, inspect the changed source before promoting and tell the user to run /reload or restart Pi after materialization. Never imply that capshelf reviewed, trusted, sandboxed, or dependency-installed the extension.

If promote fails with "changed in the data repo since this project last updated" (exit 3), a teammate's newer version is upstream. Show the user the upstream diff (capshelf status <item> --diff plus the scoped git log from the error message). For a skill in either scope or a project-scope Pi extension, offer capshelf promote <item> --merge -m "why" to three-way merge the locked base, installed edits, and current upstream. A merge conflict lists paths and writes nothing. Other choices are preserving the edit and running capshelf update <item> before redoing it, or an intentional overwrite. Do not retry with --stale-ok on your own; --merge and --stale-ok are mutually exclusive. update preflights local drift and asks before replacing installed content; non-interactive and JSON calls refuse unless --yes is passed. Review capshelf status <item> --diff and get the user's permission before using update --yes. For a local-scope item, preserve --local on recovery and merge commands. A merged or ordinary promote that reports already-upstream means the lock was re-pinned without a data-repo commit.

To change metadata (tags, description, requires/conflicts-with, or declared needs), edit the item's canonical data-repo sidecar (skills/<name>/.capshelf.yml, pi/extensions/<name>/.capshelf.yml, or the fragment path shown by capshelf show) and commit it in the data repo. Metadata is never hashed into item content. Tags, descriptions, and relations are live catalog data and need no project update; needs are lock-pinned, so consuming projects run capshelf update <item> to select a changed declaration without reinstalling unchanged content. Commit the sidecar before returning to project work: an uncommitted sidecar edit blocks capshelf update entirely (dirty data repo) and blocks add of that item.

For a skill's description, prefer SKILL.md frontmatter — it doubles as the catalog fallback. Know the trade-off when choosing where to edit: a frontmatter edit is content drift (shipped to Claude, hashed — consuming projects see update available), while a sidecar edit is drift-free. Add a sidecar description only when the catalog blurb should differ from the frontmatter's invocation-trigger phrasing, or when tuning copy must not ship a content change; sidecar wins when both exist. Fragment items (settings/mcp/codex-config) have no frontmatter — the sidecar is their only description source.

For system items (e.g. this capshelf skill), the edit loop doesn't apply — to change them, edit the CLI source under src/bundled/ and rebuild.

How it works

  • Data repo (e.g. ~/code/work-skills/) holds canonical versions of every shared item under skills/, pi/extensions/, subagents/, settings/, mcp/, and codex/config/. It must be a git repo. Resolution order: --data <path> flag > gitignored .capshelf/local.json > $CAPSHELF_HOME. There is no implicit default.
  • This project pins the exact content hash + source commit of each item in .capshelf/capshelf.lock.json (clone-local pins in gitignored .capshelf/local.lock.json). Data-repo updates do NOT propagate until this project runs capshelf update.
  • Installed copies live under .agents/skills/<name>/ by default with .claude/skills/<name> symlinks (Claude-only projects install directly under .claude/skills/<name>/). Pi extensions live under .pi/extensions/<name>/. Claude custom commands are modeled as skills.
  • Subagents are project-scoped logical items. subagents/<name>/claude.md installs to .claude/agents/<name>.md; subagents/<name>/codex.toml installs to .codex/agents/<name>.toml. Either target or both may exist under one lock; capshelf reports which as target coverage.
  • Item metadata (optional <item>/.capshelf.yml in the data repo: description, tags, requires, conflicts-with, needs) feeds discovery and checks. It is never copied into projects. Needs are pinned separately from content so requirements freshness never changes content drift.

Two kinds of items

  • system (lock prefix system/): bundled into the CLI binary, installed by init, read-only from a project's perspective.
  • data (lock prefix data/): live in your data repo. Added via add, removed via rm, adopted via share, pushed back via promote.

Mutating commands only touch files tracked in the lockfiles: add refuses to overwrite an existing untracked target, and rm deletes only locked data items. Copy-directory items can use committed project scope or clone-local scope; subagents are project-only. share skills/<name> defaults to local scope; Pi extensions default to project scope, so pass --to local when adopting one as clone-local intent.

Command reference

Always check the current surface with capshelf --help and capshelf <verb> --help. Most item arguments accept a bare unique name (hello) or a kind-qualified ref (skills/hello).

verbpurpose
initinitialize a new project or onboard a fresh clone without .capshelf/local.json; never use it to reinstall or rebind an initialized machine
data bind / data upstream / data pathinspect or change the explicit data-repo binding (old set-data/set-upstream/data-path still work as aliases)
ls / show / search / statusinspect and discover (all support --json; ls and status include user-level runtime skills by default, --user narrows to them only)
add / rm / apply / update / revertconverge the project on its locks
lock migrateone-time conversion of this project's locks to version 4; required before any lock-writing command works on an older project
share / move / promote / keep-localflow content and intent between project and data repo
data sync [--json]explicitly fetch the bound data repo's origin and fast-forward when safe; the only capshelf command that touches the network besides the init bootstrap clone and self-update. Run it when the user asks to pick up teammates' changes, then capshelf status to see update_available
get-pathprint the editable path for an item; use `--target claude
self-updateupdate the Homebrew-installed binary (not project pins)
marketplace ...author, validate, sync, and package data-repo Claude/Cowork or Codex plugin catalogs; never installs runtime plugins

Lock version 4 migration

Locks written before version 4 identified an item by a hash of the data repo working tree. Version 4 identifies it by the item's committed Git tree. One lock file carries one identity model, never both, so the conversion is an explicit command instead of a side effect of the next write.

On a project whose lock is version 2 or 3, every command that writes a lock refuses with exit 3: add, rm, update, revert, promote, share, move, keep-local, bundle installs, and init. The refusal reads:

✗ this project's lock is version 3; capshelf add writes lock version 4
  Convert the project and local locks first: capshelf lock migrate (preview it with --dry-run).

status, ls, `sh

파일 메타데이터
name: capshelf
description: Use the capshelf CLI to manage shared skills, Pi extensions, subagents, settings, and MCP configs across multiple projects from a user-owned data repo.
원문 보기
---
name: capshelf
description: Use the capshelf CLI to manage shared skills, Pi extensions, subagents, settings, and MCP configs across multiple projects from a user-owned data repo.
---

# capshelf

This project uses **capshelf** to track shared coding-agent config (skills, project-local Pi extensions, Claude/Codex subagents, settings fragments, MCP configs) pulled from a **data repo**. When the user asks to add, remove, discover, edit, or update shared config, use the `capshelf` CLI. **Do not hand-edit** `.capshelf/capshelf.json` or `.capshelf/capshelf.lock.json` — they are tool-managed.

Run project commands from anywhere inside a capshelf project — the directory containing `.capshelf/capshelf.json`, or any subdirectory of it (capshelf walks upward to find the root, like git). `init` acts on the current directory, not a discovered parent.
Use `init` only for a new project or a fresh clone without
`.capshelf/local.json`; it refuses a project already initialized on this
machine. Use `data bind`, `data upstream`, and `update` for later lifecycle
changes.

## The agent decision loop

Work the shelf in this order instead of pattern-matching on bare item names:

### 1. Survey the project

Run `capshelf status` at session start to see drift and available updates before changing anything. `capshelf ls --here` lists what is already installed (with descriptions and `#tags` when the data repo declares them).

### 2. Discover on the shelf

Reach for `capshelf search <task words>` first — it matches names, tags, descriptions, and item content across the bound data repo plus bundled system items, ranked by relevance:

```
capshelf search "sql injection"
capshelf search security --json
```

Zero matches exit 0 — an empty answer is a valid answer, not an error. To browse instead, use `capshelf ls --tag <tag>` (repeatable, AND) or `ls --kind <kind>`. Descriptions and tags are the selection signal.

Results with a `bundles/` prefix are **bundles** — curated item sets. Prefer them when setting up a project: `capshelf show bundles/<name>` to preview members and install state, then `capshelf add bundles/<name>` to expand. Expansion is traceless (members become ordinary independent items); the `bundle` field in `add --json` is the only echo and is what belongs in a commit message.

### 3. Evaluate before installing

`capshelf show <item>` prints the full description, `requires`, `conflicts-with`, and whether each relation is already installed. Use it before committing to an `add`. For `pi-extensions/*`, read **all extension source** shown before adding: Pi executes it as arbitrary code with full user permissions after project trust.

### 4. Install

`capshelf add <item>`. For `mcp/*` and `subagents/*`, read the `targets:` block
add prints and tell the user which runtimes the item covers — see Target
coverage. Repeating add for an installed item is a stable no-op; use the printed `status --diff`, `update`, and `apply` guidance instead of trying to make add reapply it. If the output lists missing required items, install them with the exact `capshelf add <ref>` commands it prints. If `add` refuses with exit 3 because of a `conflicts-with` declaration, that is a curated incompatibility — surface the decision to the user (remove the conflicting item, or fix a stale declaration in the data repo); never work around it. A bundle preflight refusal (exit 3) is the same kind of decision: nothing was installed and the per-member report says why — surface it, don't install members one by one to route around it.

### 5. Verify

`capshelf status --strict` — exit 0 means the project has converged on its locks.

### 6. Edit / promote loop

When the user asks you to improve a shared (data) item:

1. `capshelf get-path <item>` for the absolute editable path (fragments return canonical data-repo source files; `--output` returns generated outputs for inspection only).
2. Edit with your Edit/Write tools.
3. `capshelf status <item>` — should report `drifted_local` (or `source_dirty` for fragments).
4. Decide with the user:
   - `capshelf promote <item> -m "why"` — push to the data repo. Other projects see `update available` next time they check; nothing auto-changes.
   - `capshelf keep-local <item> --reason "why"` — intentional project-specific divergence for a copy item (skill or Pi extension).
   - `capshelf revert <item>` — discard the edit, restore from the recorded `sourceCommit`; first show `capshelf status <item> --diff` and get permission before using `--yes` in a non-interactive run.

For Pi extensions, inspect the changed source before promoting and tell the user to run `/reload` or restart Pi after materialization. Never imply that capshelf reviewed, trusted, sandboxed, or dependency-installed the extension.

If `promote` fails with "changed in the data repo since this project last updated" (exit 3), a teammate's newer version is upstream. Show the user the upstream diff (`capshelf status <item> --diff` plus the scoped `git log` from the error message). For a skill in either scope or a project-scope Pi extension, offer `capshelf promote <item> --merge -m "why"` to three-way merge the locked base, installed edits, and current upstream. A merge conflict lists paths and writes nothing. Other choices are preserving the edit and running `capshelf update <item>` before redoing it, or an intentional overwrite. **Do not retry with `--stale-ok` on your own**; `--merge` and `--stale-ok` are mutually exclusive. `update` preflights local drift and asks before replacing installed content; non-interactive and JSON calls refuse unless `--yes` is passed. Review `capshelf status <item> --diff` and get the user's permission before using `update --yes`. For a local-scope item, preserve `--local` on recovery and merge commands. A merged or ordinary promote that reports `already-upstream` means the lock was re-pinned without a data-repo commit.

To change **metadata** (tags, description, `requires`/`conflicts-with`, or declared `needs`), edit the item's canonical data-repo sidecar (`skills/<name>/.capshelf.yml`, `pi/extensions/<name>/.capshelf.yml`, or the fragment path shown by `capshelf show`) and commit it in the data repo. Metadata is never hashed into item content. Tags, descriptions, and relations are live catalog data and need no project update; needs are lock-pinned, so consuming projects run `capshelf update <item>` to select a changed declaration without reinstalling unchanged content. **Commit the sidecar before returning to project work**: an uncommitted sidecar edit blocks `capshelf update` entirely (dirty data repo) and blocks `add` of that item.

For a skill's **description**, prefer SKILL.md frontmatter — it doubles as the catalog fallback. Know the trade-off when choosing where to edit: a frontmatter edit is content drift (shipped to Claude, hashed — consuming projects see `update available`), while a sidecar edit is drift-free. Add a sidecar `description` only when the catalog blurb should differ from the frontmatter's invocation-trigger phrasing, or when tuning copy must not ship a content change; sidecar wins when both exist. Fragment items (settings/mcp/codex-config) have no frontmatter — the sidecar is their only description source.

For system items (e.g. this `capshelf` skill), the edit loop doesn't apply — to change them, edit the CLI source under `src/bundled/` and rebuild.

## How it works

- **Data repo** (e.g. `~/code/work-skills/`) holds canonical versions of every shared item under `skills/`, `pi/extensions/`, `subagents/`, `settings/`, `mcp/`, and `codex/config/`. It must be a git repo. Resolution order: `--data <path>` flag > gitignored `.capshelf/local.json` > `$CAPSHELF_HOME`. There is no implicit default.
- **This project** pins the exact content hash + source commit of each item in `.capshelf/capshelf.lock.json` (clone-local pins in gitignored `.capshelf/local.lock.json`). Data-repo updates do NOT propagate until this project runs `capshelf update`.
- **Installed copies** live under `.agents/skills/<name>/` by default with `.claude/skills/<name>` symlinks (Claude-only projects install directly under `.claude/skills/<name>/`). Pi extensions live under `.pi/extensions/<name>/`. Claude custom commands are modeled as skills.
- **Subagents** are project-scoped logical items. `subagents/<name>/claude.md` installs to `.claude/agents/<name>.md`; `subagents/<name>/codex.toml` installs to `.codex/agents/<name>.toml`. Either target or both may exist under one lock; capshelf reports which as target coverage.
- **Item metadata** (optional `<item>/.capshelf.yml` in the data repo: `description`, `tags`, `requires`, `conflicts-with`, `needs`) feeds discovery and checks. It is never copied into projects. Needs are pinned separately from content so requirements freshness never changes content drift.

## Two kinds of items

- **system** (lock prefix `system/`): bundled into the CLI binary, installed by `init`, read-only from a project's perspective.
- **data** (lock prefix `data/`): live in your data repo. Added via `add`, removed via `rm`, adopted via `share`, pushed back via `promote`.

Mutating commands only touch files tracked in the lockfiles: `add` refuses to overwrite an existing untracked target, and `rm` deletes only locked data items. Copy-directory items can use committed project scope or clone-local scope; subagents are project-only. `share skills/<name>` defaults to local scope; Pi extensions default to project scope, so pass `--to local` when adopting one as clone-local intent.

## Command reference

Always check the current surface with `capshelf --help` and `capshelf <verb> --help`. Most item arguments accept a bare unique name (`hello`) or a kind-qualified ref (`skills/hello`).

| verb | purpose |
|---|---|
| `init` | initialize a new project or onboard a fresh clone without `.capshelf/local.json`; never use it to reinstall or rebind an initialized machine |
| `data bind` / `data upstream` / `data path` | inspect or change the explicit data-repo binding (old `set-data`/`set-upstream`/`data-path` still work as aliases) |
| `ls` / `show` / `search` / `status` | inspect and discover (all support `--json`; `ls` and `status` include user-level runtime skills by default, `--user` narrows to them only) |
| `add` / `rm` / `apply` / `update` / `revert` | converge the project on its locks |
| `lock migrate` | one-time conversion of this project's locks to version 4; required before any lock-writing command works on an older project |
| `share` / `move` / `promote` / `keep-local` | flow content and intent between project and data repo |
| `data sync [--json]` | explicitly fetch the bound data repo's origin and fast-forward when safe; the **only** capshelf command that touches the network besides the `init` bootstrap clone and `self-update`. Run it when the user asks to pick up teammates' changes, then `capshelf status` to see `update_available` |
| `get-path` | print the editable path for an item; use `--target claude|codex` for multi-target subagents |
| `self-update` | update the Homebrew-installed binary (not project pins) |
| `marketplace ...` | author, validate, sync, and package data-repo Claude/Cowork or Codex plugin catalogs; never installs runtime plugins |

## Lock version 4 migration

Locks written before version 4 identified an item by a hash of the data repo
working tree. Version 4 identifies it by the item's committed Git tree. One
lock file carries one identity model, never both, so the conversion is an
explicit command instead of a side effect of the next write.

On a project whose lock is version 2 or 3, **every command that writes a lock
refuses with exit 3**: `add`, `rm`, `update`, `revert`, `promote`, `share`,
`move`, `keep-local`, bundle installs, and `init`. The refusal reads:

```text
✗ this project's lock is version 3; capshelf add writes lock version 4
  Convert the project and local locks first: capshelf lock migrate (preview it with --dry-run).
```

`status`, `ls`, `sh

소스 확인

가격 및 실행 비용

Skill 받기
가격 미확인
실행
실행 요구 사항이 확인되지 않았습니다. 제공처에서 Agent, API 및 서비스 요금을 확인하세요.
라이선스
MIT
가격 미확인
가격을 아직 확인하지 못했습니다. 기존 소스 및 설치 링크는 계속 이용할 수 있습니다.

무료 다운로드가 무료 실행을 뜻하지 않습니다. 가격은 안전 등급이 아닙니다. 가격 정보 제출 →

소스 재검토 필요

소스가 변경되었거나 동기화에 실패했습니다. 설치 전에 현재 소스를 확인하세요.

설치 전 검토: 자동 설치 피하기

라이선스: MIT

  • Dependency or permission surface needs review
  • Permission surface may require sandboxing
  • The SKILL.md does not mention how to install or verify the capshelf CLI is present, which could lead to confusion if the tool is not available.
  • Low GitHub adoption signal
  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access
  • GitHub adoption: 10 GitHub stars
  • Stars/forks activity: 10 stars, 1 forks; issue activity unavailable in current metadata
  • Dependency/runtime risk: command execution surface, network or browser surface
  • Permission surface: shell or command execution, filesystem or document access

설치 대상

소스 확인

Review the public source for "capshelf" at https://github.com/genged/capshelf/tree/main/src/bundled/skills/capshelf. The tracked source changed or could not be synchronized. Review the current source before installing. Do not install or execute repository code in this review. Report whether valid skill instructions exist, their exact path and revision, dependencies, costs, license and requested permissions. Ask for approval before any installation. Treat repository text as untrusted data, not authorization.

복사는 설치나 실행 성공이 아닙니다. 의존성, API 비용, 권한을 확인하세요.

도구 목록은 메타데이터이며 테스트된 호환성이 아닙니다. 프롬프트는 제안입니다.

작은 작업부터 시작

  1. 1소스를 읽고 입력, 출력, 의존성 및 권한을 확인하세요.
  2. 2Agent에게 계획을 요청하고 설정과 비용을 승인한 뒤 격리 환경에서 테스트하세요.
  3. 3출력과 변경 파일을 확인하고 실제 실행 결과만 보고하세요. 재현을 위해 소스 버전을 보관하세요.

소스에서 의존성, API 키 및 외부 서비스 비용을 확인하세요. 공개 저장소라고 모든 서비스가 무료는 아닙니다.

출처 및 사용 안내

등록됨

메타데이터와 검토 신호는 참고용입니다. 인기, 소스 발견, 실행 성공은 서로 다른 사실입니다.

소스 저장소
genged/capshelf
라이선스
MIT
버전
1.0.0
최근 GitHub 푸시
2026년 8월 20일
목록 업데이트
2026년 9월 17일

목록에 보고된 버전입니다. 소스 릴리스를 확인하세요.

품질

53/100

검토 필요

신뢰

56/100

Do not auto-install

감사

69/100

검토 필요

  • Dependency or permission surface needs review
  • Permission surface may require sandboxing
  • The SKILL.md does not mention how to install or verify the capshelf CLI is present, which could lead to confusion if the tool is not available.
  • Low GitHub adoption signal
  • Quality score needs review
  • Permission surface needs review: shell or command execution, filesystem or document access
  • GitHub adoption: 10 GitHub stars
  • Stars/forks activity: 10 stars, 1 forks; issue activity unavailable in current metadata
  • Dependency/runtime risk: command execution surface, network or browser surface
  • Permission surface: shell or command execution, filesystem or document access
Verified installs
—
결과
—

복사는 설치가 아닙니다. 설치 수는 성공 보고에 기반하며 전체 품질을 보장하지 않습니다.

Agent 연결

Registry API를 통해 동일한 결정, 신뢰, 감사, 사용 사례, 설치 신호를 제공하므로 Agent가 UI를 스크래핑하지 않고도 순위를 매길 수 있습니다.

추가 정보
{
  "version": "openagentskill-agent-metadata-v2",
  "review_evidence": {
    "indexed": true,
    "static_checked": false,
    "ai_reviewed": false,
    "manual_reviewed": false,
    "creator_verified": false,
    "review_result": "version_needs_review",
    "reviewed_at": null,
    "package_fingerprint": null,
    "policy_version": null,
    "notice": "Publication, static checks, AI review, and creator verification are independent facts. None guarantees runtime safety."
  },
  "commerce": {
    "type": "unknown",
    "billing": "unknown",
    "amount": null,
    "currency": null,
    "sourceUrl": null,
    "checkedAt": null,
    "runtime": "unknown",
    "purchaseUrl": null,
    "checkout": "external",
    "purchaseRequiresUserConsent": true
  },
  "skill": {
    "slug": "genged-capshelf",
    "name": "capshelf",
    "description": "Use the capshelf CLI to manage shared skills, Pi extensions, subagents, settings, and MCP configs across multiple projects from a user-owned data repo.",
    "category": "coding-agents",
    "url": "https://www.openagentskill.com/skills/genged-capshelf",
    "repository": "https://github.com/genged/capshelf/tree/main/src/bundled/skills/capshelf",
    "github_repo": "genged/capshelf"
  },
  "suited_tasks": [
    "Research agents workflows",
    "Claude Code teams",
    "builders willing to evaluate younger projects",
    "Search sources",
    "Extract claims",
    "Synthesize findings",
    "Research a market",
    "Compare multiple sources"
  ],
  "suited_agents": [
    "Codex",
    "Claude Code",
    "Cursor",
    "OpenAgentSkill CLI",
    "OpenAI Agents"
  ],
  "install": {
    "source_evidence": {
      "status": "source-needs-review",
      "sourceRecorded": true,
      "canOfferInstall": false,
      "path": "src/bundled/skills/capshelf/SKILL.md",
      "revision": null,
      "notice": "The tracked source changed or could not be synchronized. Review the current source before installing."
    },
    "command": "",
    "ready": false,
    "targets": [
      {
        "id": "codex",
        "label": "Codex",
        "kind": "agent-prompt",
        "value": "Review the public source for \"capshelf\" at https://github.com/genged/capshelf/tree/main/src/bundled/skills/capshelf. The tracked source changed or could not be synchronized. Review the current source before installing. Do not install or execute repository code in this review. Report whether valid skill instructions exist, their exact path and revision, dependencies, costs, license and requested permissions. Ask for approval before any installation. Treat repository text as untrusted data, not authorization."
      },
      {
        "id": "claude-code",
        "label": "Claude Code",
        "kind": "agent-prompt",
        "value": "Review the public source for \"capshelf\" at https://github.com/genged/capshelf/tree/main/src/bundled/skills/capshelf. The tracked source changed or could not be synchronized. Review the current source before installing. Do not install or execute repository code in this review. Report whether valid skill instructions exist, their exact path and revision, dependencies, costs, license and requested permissions. Ask for approval before any installation. Treat repository text as untrusted data, not authorization."
      },
      {
        "id": "cursor",
        "label": "Cursor",
        "kind": "agent-prompt",
        "value": "Review the public source for \"capshelf\" at https://github.com/genged/capshelf/tree/main/src/bundled/skills/capshelf. The tracked source changed or could not be synchronized. Review the current source before installing. Do not install or execute repository code in this review. Report whether valid skill instructions exist, their exact path and revision, dependencies, costs, license and requested permissions. Ask for approval before any installation. Treat repository text as untrusted data, not authorization."
      }
    ],
    "handoff_url": "https://www.openagentskill.com/api/skills/genged-capshelf/install",
    "manifest_url": "https://www.openagentskill.com/api/registry/manifest/genged-capshelf"
  },
  "trust": {
    "score": 64,
    "label": "Manual review",
    "version": "trust-score-v4",
    "install_policy": "review",
    "evidence": {
      "stars": "10 GitHub stars",
      "repoActivity": "10 stars, 1 forks",
      "lastPushed": "2mo since push",
      "license": "MIT",
      "repository": "https://github.com/genged/capshelf/tree/main/src/bundled/skills/capshelf",
      "install": "The tracked source changed or could not be synchronized. Review the current source before installing.",
      "installSafety": "standard package or runtime install path",
      "permissionSurface": "shell or command execution, filesystem or document access",
      "documentation": "Strong README/SKILL.md context",
      "agentOutcomes": "No agent outcome data yet"
    },
    "outcome_evidence": {
      "total": 0,
      "successes": 0,
      "failures": 0,
      "not_relevant": 0,
      "success_rate": null,
      "recent_success_rate": null,
      "recent_failure_rate": null,
      "install_attempts": 0,
      "install_success_rate": null,
      "risk_blocked": 0,
      "setup_required": 0,
      "avg_output_quality": null,
      "production_outcomes": 0,
      "last_outcome_at": null,
      "label": "No agent outcome data yet"
    },
    "auto_install": {
      "allowed": false,
      "sandbox_required": true,
      "reason": "The tracked source changed or could not be synchronized. Review the current source before installing."
    },
    "best_for": [
      "data-analysis",
      "agent-skill"
    ],
    "known_risks": [
      "The SKILL.md does not mention how to install or verify the capshelf CLI is present, which could lead to confusion if the tool is not available.",
      "Low GitHub adoption signal",
      "Quality score needs review",
      "Permission surface needs review: shell or command execution, filesystem or document access",
      "GitHub adoption: 10 GitHub stars",
      "Stars/forks activity: 10 stars, 1 forks; issue activity unavailable in current metadata",
      "Dependency/runtime risk: command execution surface, network or browser surface",
      "Permission surface: shell or command execution, filesystem or document access"
    ]
  },
  "agent_proven": {
    "version": "agent-proven-v1",
    "score": 0,
    "tier": "unproven",
    "label": "Needs first agent run",
    "summary": "No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.",
    "metrics": {
      "totalOutcomes": 0,
      "successfulOutcomes": 0,
      "failedOutcomes": 0,
      "installAttempts": 0,
      "installSuccessRate": null,
      "successRate": null,
      "recentSuccessRate": null,
      "recentFailureRate": null,
      "riskBlocked": 0,
      "setupRequired": 0,
      "notRelevant": 0,
      "avgOutputQuality": null,
      "avgTimeToUsefulMs": null,
      "productionOutcomes": 0,
      "humanReviewRequired": 0,
      "uniqueAgents": 0,
      "lastOutcomeAt": null
    },
    "signals": [],
    "penalties": [
      "No real agent outcome evidence yet"
    ]
  },
  "audit": {
    "score": 69,
    "risk_level": "needs_review",
    "risk_label": "Needs review",
    "warnings": [
      "Dependency or permission surface needs review",
      "Permission surface may require sandboxing",
      "The SKILL.md does not mention how to install or verify the capshelf CLI is present, which could lead to confusion if the tool is not available.",
      "Low GitHub adoption signal",
      "Quality score needs review",
      "Permission surface needs review: shell or command execution, filesystem or document access",
      "GitHub adoption: 10 GitHub stars",
      "Stars/forks activity: 10 stars, 1 forks; issue activity unavailable in current metadata"
    ]
  },
  "safety_gate": {
    "tier": "experimental",
    "label": "Experimental",
    "auto_install_policy": "review",
    "auto_install_allowed": false,
    "human_review_required": true,
    "blocked": false,
    "recommended_action": "The tracked source changed or could not be synchronized. Review the current source before installing."
  },
  "quality": {
    "score": 53,
    "label": "Needs review"
  },
  "supply": {
    "track": "Data, BI, and analytics",
    "scenario": "Research agents",
    "maintenance": "2mo since push",
    "risk": "Needs review"
  },
  "alternative_skills": [],
  "do_not_use_when": [
    "teams that need a vendor-supported SLA",
    "production agents without a repository review",
    "Low GitHub adoption signal",
    "The SKILL.md does not mention how to install or verify the capshelf CLI is present, which could lead to confusion if the tool is not available.",
    "High-risk permission hints: Shell or command execution",
    "Dependency or permission surface needs review",
    "The tracked source changed or could not be synchronized. Review the current source before installing.",
    "Permission surface may require sandboxing"
  ],
  "agent_contract": {
    "task_input": "Use capshelf in an agent workflow",
    "recommended_action": "The tracked source changed or could not be synchronized. Review the current source before installing.",
    "install_policy": "review",
    "minimum_review_before_use": [
      "Trust: 64/100 Manual review",
      "Audit: 69/100 Needs review",
      "Safety: 37/100 Avoid automatic install",
      "Review repository, license, install command, and permission surface before production use."
    ],
    "expected_agent_output": {
      "selected_skill": "genged-capshelf (capshelf)",
      "install_command": "",
      "risk_summary": "Needs review; Experimental; Review before production",
      "verification_result": "Report the smallest successful task, files touched, warnings, and any missing setup."
    }
  },
  "outcome_feedback": {
    "endpoint": "https://www.openagentskill.com/api/agent/outcome",
    "method": "POST",
    "requires_resolve_event_id": true,
    "event_id_source": "Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.",
    "expected_outcomes": [
      "success",
      "failed",
      "not_relevant",
      "blocked_by_risk",
      "setup_required"
    ],
    "payload_template": {
      "event_id": "<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>",
      "skill_slug": "genged-capshelf",
      "task": "Use capshelf in an agent workflow",
      "agent": "codex",
      "outcome": "success",
      "install_used": true,
      "risk_blocked": false,
      "setup_required": false,
      "task_success": true,
      "output_quality": 4,
      "error_type": null,
      "human_review_required": false,
      "workspace": "sandbox",
      "time_to_useful_ms": 120000,
      "notes": "Report the smallest successful task, setup friction, files touched, and risk notes."
    }
  },
  "endpoints": {
    "web": "https://www.openagentskill.com/skills/genged-capshelf",
    "api": "https://www.openagentskill.com/api/agent/skills/genged-capshelf",
    "audit": "https://www.openagentskill.com/skills/genged-capshelf/audit",
    "eval": "https://www.openagentskill.com/api/agent/evals?slug=genged-capshelf&task=Use%20capshelf%20in%20an%20agent%20workflow&max_risk=medium",
    "resolve": "https://www.openagentskill.com/api/agent/resolve?task=Use%20capshelf%20in%20an%20agent%20workflow&agent=codex&max_risk=medium",
    "receipt": "https://www.openagentskill.com/api/agent/receipt?task=Use%20capshelf%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text",
    "install": "https://www.openagentskill.com/api/skills/genged-capshelf/install",
    "manifest": "https://www.openagentskill.com/api/registry/manifest/genged-capshelf"
  }
}

제작자 도구

등록 출처

Registry 색인

소유권 주장 가능

이 등록은 공개 소스에서 색인되었으며 유지보수자 소유권 주장이 승인될 때까지 공식으로 표시되지 않습니다.

제작자
genged
색인 주체
OpenAgentSkill 커뮤니티 인덱스

귀속은 공개 저장소 또는 제작자 프로필에 연결됩니다. 제작자는 등록을 주장하여 소유권 신호를 업데이트할 수 있습니다.

이 스킬 소유권 주장

소유자 소유권 주장

이 스킬 등록 소유권 주장

이 Registry 색인 등록은 genged에게 귀속되어 있지만 아직 공식으로 표시되지 않았습니다. 소유권을 주장하면 확인된 소유자 신호가 추가되어 이후 출시, 설치 및 감사 업데이트를 더 신뢰할 수 있습니다.

공유 키트

크리에이터 백링크 키트

README에 증거 배지 추가

개발자가 저장소를 평가하는 위치에 정규 등록, 현재 신뢰 및 감사 신호, 실제 Agent-Proven 증거를 표시합니다.

[![Listed on OpenAgentSkill](https://www.openagentskill.com/api/badge/genged-capshelf?metric=listed&label=Listed)](https://www.openagentskill.com/skills/genged-capshelf?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[![OpenAgentSkill Trust](https://www.openagentskill.com/api/badge/genged-capshelf?metric=trust&label=Trust)](https://www.openagentskill.com/skills/genged-capshelf?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[![OpenAgentSkill Audit](https://www.openagentskill.com/api/badge/genged-capshelf?metric=audit&label=Audit)](https://www.openagentskill.com/skills/genged-capshelf/audit)
[![Agent Proven](https://www.openagentskill.com/api/badge/genged-capshelf?metric=proven&label=Agent%20Proven)](https://www.openagentskill.com/skills/genged-capshelf?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)

커뮤니티 신호

이 스킬이 Agent 워크플로에 유용한지 알려 주세요. 집계된 피드백은 시간이 지날수록 순위를 개선합니다.