Skip to content

feat(skills): ship version-matched agent guides via pass-cli skills#148

Merged
arimxyer merged 1 commit into
mainfrom
feat/agent-skills
Jul 2, 2026
Merged

feat(skills): ship version-matched agent guides via pass-cli skills#148
arimxyer merged 1 commit into
mainfrom
feat/agent-skills

Conversation

@arimxyer

@arimxyer arimxyer commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

What & why

pass-cli is evolving into a tool for humans and their AI agents, but the only agent-facing usage guidance lived in a hand-written personal skill on one machine — stale, unversioned, invisible to anyone else.

This adopts the agent-browser pattern: the CLI self-serves its own skills, embedded in the binary via //go:embed, so the guidance always matches the installed version and can't drift from shipped behavior.

What's new

  • pass-cli skills list (or bare pass-cli skills) — lists available skills with descriptions.
  • pass-cli skills get core — the canonical agent safe-usage guide, rewritten against the current binary: exec (default) / export / inject / the agent daemon / list -q / get, the env-injection grammar, the v0.19.0 base64/base64url/basicauth filters, and the leak-trap checklist. --full appends a complete command reference.
  • pass-cli skills install [--dir <path>] [--force] — writes a thin discovery stub into a detected agent skills dir (~/.claude/skills~/.agents/skills) pointing agents at skills get core. Idempotent; refuses to clobber a differing existing stub without --force.

Design

  • Single source of truth: internal/skills (the repo's first //go:embed) is canonical; cmd/skills.go is a thin wrapper. The embedded markdown is the only copy of the guidance — no drift.
  • Layout is extensible: dropping a data/skills/<name>.md auto-lists a new skill. Specialized skills (e.g. a credential-management/setup skill) and an MCP server are intentionally out of scope for this MVP.

Testing

  • New internal/skills tests (every listed skill is retrievable, --full is a superset, frontmatter stripped, unknown-name errors, stub sanity) and cmd tests (install idempotency / refuse-without---force / --force overwrite; rune-safe truncate).
  • Verified locally: full mise run test (incl. integration), go vet, golangci-lint (whole repo), gofmt, markdownlint on the new doc, and an end-to-end run of every subcommand.

🤖 Generated with Claude Code

@arimxyer arimxyer force-pushed the feat/agent-skills branch from 164be5f to 51cf328 Compare July 2, 2026 03:26
pass-cli is evolving into a tool for humans *and* their AI agents, but the
only agent-facing usage guidance lived in a hand-written personal skill on
one machine — stale, unversioned, and invisible to anyone else.

Adopt the agent-browser pattern: the CLI now self-serves its own skills,
embedded in the binary via //go:embed so the guidance always matches the
installed version and can't drift from shipped behavior.

- `pass-cli skills list` / `skills get core [--full]` — a canonical
  safe-usage guide (exec/export/inject/agent/list/get + the leak traps) plus
  a full command reference, rewritten against the current binary.
- `pass-cli skills install [--dir <path>] [--force]` — writes a thin
  discovery stub into a detected agent skills dir (~/.claude/skills or
  ~/.agents/skills) that points agents at `skills get core`; preserves an
  existing, differing stub unless --force.
- New `internal/skills` package (first //go:embed in the repo) is the single
  source of truth; `cmd/skills.go` is a thin wrapper. Docs + CHANGELOG added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014kVLjbUL4F4CkoA7RbMYy8
@arimxyer arimxyer force-pushed the feat/agent-skills branch from 51cf328 to 41bf233 Compare July 2, 2026 03:32
@arimxyer arimxyer merged commit 01c7fc2 into main Jul 2, 2026
11 checks passed
@arimxyer arimxyer deleted the feat/agent-skills branch July 2, 2026 03:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant