/printing-press-catalog
Deprecated:
This skill is superseded by the main
/printing-press
skill, which now checks the built-in catalog automatically. Use
/printing-press
min-binary-version: 0.2.0
Derive scope first — needed for local build detection
_scope_dir
" $( git rev-parse --show-toplevel 2
/dev/null || echo " $PWD " ) " _scope_dir = " $( cd " $_scope_dir " && pwd -P ) "
Prefer local build when running from inside the printing-press repo.
if [ -x " $_scope_dir /printing-press" ] && [ -d " $_scope_dir /cmd/printing-press" ] ; then export PATH = " $_scope_dir : $PATH " echo "Using local build: $_scope_dir /printing-press" elif ! command -v printing-press
/dev/null 2
&1 ; then if [ -x " $HOME /go/bin/printing-press" ] ; then echo "printing-press found at ~/go/bin/printing-press but not on PATH." echo "Add GOPATH/bin to your PATH: export PATH= \" \ $HOME /go/bin:\ $PATH \" " else echo "printing-press binary not found." echo "Install with: go install github.com/mvanhorn/cli-printing-press/v4/cmd/printing-press@latest" fi return 1 2
/dev/null || exit 1 fi PRESS_BASE = " $( basename " $scope_dir " | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9-]/-/g; s/^-+//; s/-+$//' ) " if [ -z " $PRESS_BASE " ] ; then PRESS_BASE = "workspace" fi PRESS_SCOPE = " $PRESS_BASE - $( printf '%s' " $_scope_dir " | shasum -a 256 | cut -c1-8 ) " PRESS_HOME = " $HOME /printing-press" PRESS_RUNSTATE = " $PRESS_HOME /.runstate/ $PRESS_SCOPE " PRESS_LIBRARY = " $PRESS_HOME /library" mkdir -p " $PRESS_RUNSTATE " " $PRESS_LIBRARY " After running the setup contract, check binary version compatibility. Read the min-binary-version field from this skill's YAML frontmatter. Run printing-press version --json and parse the version from the output. Compare it to min-binary-version using semver rules. If the installed binary is older than the minimum, warn the user: "printing-press binary vX.Y.Z is older than the minimum required vA.B.C. Run go install github.com/mvanhorn/cli-printing-press/v4/cmd/printing-press@latest to update." Continue anyway but surface the warning prominently. Generated CLIs are published to $PRESS_LIBRARY/ , not to the repo. Workflows List Catalog (no arguments) When invoked with no arguments, list all available CLIs grouped by category. Read all YAML files in catalog/ using Glob + Read Parse each file's name, display_name, description, category fields Group by category and display: Available CLIs (12 entries): Payments: stripe - Payment processing and financial infrastructure API square - Payment processing and commerce API Auth: stytch - Authentication and user management API Email: sendgrid - Email delivery and marketing API Communication: discord - Chat and community platform API twilio - Communication APIs for SMS, voice, and messaging front - Customer communication platform API Developer Tools: github - Software development platform API digitalocean - Cloud infrastructure and developer platform API Project Management: asana - Work management and project tracking API CRM: hubspot - CRM contacts API Example: petstore - Canonical OpenAPI example Install any CLI: /printing-press-catalog install
Install (install ) When invoked with install : Read catalog/.yaml If file doesn't exist, show error: "No catalog entry for ''. Run /printing-press-catalog to see available CLIs." Extract spec_url from the catalog entry Show preview: "Installing CLI from " Download the spec and generate: CATALOG_TMP_DIR = "/tmp/printing-press/catalog" mkdir -p " $CATALOG_TMP_DIR " SPEC_TMP = " $( mktemp " $CATALOG_TMP_DIR / -spec-XXXXXX.yaml" ) " curl -sL -o " $SPEC_TMP " " " OUTPUT_BASE = " $PRESS_LIBRARY / -pp-cli" OUTPUT_DIR = " $OUTPUT_BASE " i = 2 while [ -e " $OUTPUT_DIR " ] ; do OUTPUT_DIR = " ${OUTPUT_BASE} - $i " i = $(( i + 1 )) done printing-press generate \ --spec " $SPEC_TMP " \ --output " $OUTPUT_DIR " \ --validate If all quality gates pass, present the result: Generated -pp-cli with X resources. Try it: cd "$OUTPUT_DIR" go install ./cmd/ -pp-cli -pp-cli --help -pp-cli doctor If gates fail, show the error and suggest: "Try /printing-press API for a custom generation with retry support." Search (search ) When invoked with search : Read all YAML files in catalog/ Search name, display_name, description, and category for the query (case-insensitive) Display matching entries Limitations Large API specs (Stripe, Discord, GitHub) take 30-60 seconds to generate and compile Generated CLIs are truncated to 50 resources / 20 endpoints per resource Catalog entries point to external URLs that may change