claude-skills/scripts/sync-codebuff-skills.py
Claude 3394eda8bc
fix: resolve open GitHub issues #805 #806 #807 #748 #785
- #805: insert missing skills/ segment in all per-skill install commands
  across 5 domain READMEs (engineering-team, project-management,
  marketing-skill, c-level-advisor, ra-qm-team); every path now resolves
  to a real directory
- #806: pr-review-expert SKILL.md curl examples now pass Jira/Linear
  credentials via stdin curl config (-K -) instead of argv, with a netrc
  note, so tokens never reach the process list or shell history
- #807: implement the documented interfaces for the three senior-devops
  scripts (terraform_scaffolder: aws/gcp/azure module skeletons with
  optional terraform fmt/validate; pipeline_generator: GitHub Actions /
  CircleCI configs with build,test,security,deploy stages and runtime
  detection; deployment_manager: blue-green/rolling manifests + kubectl
  runbooks with deploy/rollback/analyze subcommands); align SKILL.md
- #807: ci-cd-pipeline-builder stack_detector now detects Terraform and
  Docker stacks and emits their lint/test/build commands; downstream
  pipeline_generator gains a generic job for non-node/python/go stacks
- #748: sync-vibe-skills.py defaults to a flat layout one level below
  ~/.vibe/skills (the only depth Vibe discovers), with collision-safe
  naming and a --nested flag for the legacy namespaced layout
- #785: new scripts/sync-codebuff-skills.py syncs all skills into
  Codebuff's ~/.agents/skills using the same flat-layout machinery

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 03:34:13 +00:00

51 lines
1.8 KiB
Python
Executable file

#!/usr/bin/env python3
"""
sync-codebuff-skills.py — Install claude-code-skills into Codebuff.
Codebuff (https://codebuff.com) discovers agent skills from ~/.agents/skills/
using the agentskills.io standard (SKILL.md with YAML frontmatter) — the same
format this repo uses, so no conversion is needed.
This is a thin wrapper around sync-vibe-skills.py: identical discovery and
flat-layout sync logic, different default target directory.
Usage:
python scripts/sync-codebuff-skills.py # full sync
python scripts/sync-codebuff-skills.py --verbose # show each skill
python scripts/sync-codebuff-skills.py --domain engineering # one domain
python scripts/sync-codebuff-skills.py --dry-run # preview only
python scripts/sync-codebuff-skills.py --copy # copy instead of symlink
Codebuff skill directory: ~/.agents/skills/
Skills land flat: ~/.agents/skills/<skill-name>/
"""
from __future__ import annotations
import importlib.util
import sys
from pathlib import Path
CODEBUFF_SKILLS_DIR = Path.home() / ".agents" / "skills"
def load_vibe_module():
"""Load sync-vibe-skills.py (hyphenated filename) as a module."""
path = Path(__file__).resolve().parent / "sync-vibe-skills.py"
spec = importlib.util.spec_from_file_location("sync_vibe_skills", path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return module
def main():
vibe = load_vibe_module()
# Reuse the vibe CLI wholesale with a codebuff default target.
if not any(arg.startswith("--target") for arg in sys.argv[1:]):
sys.argv.extend(["--target", str(CODEBUFF_SKILLS_DIR)])
vibe.VIBE_SKILLS_DIR = CODEBUFF_SKILLS_DIR
vibe.TOOL_NAME = "Codebuff"
vibe.main()
if __name__ == "__main__":
main()