[object Object]

← back to Cli Printing Press

docs(cli): group install paths at top of generated README (#660)

289b48c54b4b5a24f1e06463c84e56cb8967a987 · 2026-05-07 01:28:53 -0700 · Trevin Chow

Moves the `## Install via Hermes` and `## Install via OpenClaw`
template blocks from their current location wedged inside `## Use
with Claude Desktop` to immediately after `## Install`, and renames
`via` -> `for`. All three install paths now sit at the top of the
generated README in the order:

  ## Install            (CLI + agent skill via npx, default)
  ## Install for Hermes
  ## Install for OpenClaw

Application-specific sections (`## Use with Claude Code`, `## Use
with Claude Desktop`) remain in their existing positions later in
the README — they describe usage patterns with their own install
side-effects, not alternative agent-skill install paths.

Why: the previous layout had `## Install via X` blocks separated
from `## Install` by hundreds of lines of unrelated content
(Authentication, Quick Start, Commands, etc.) and structurally
wedged between the Claude Desktop description and its `<details>`
config block, breaking section hierarchy. The companion library-wide
sweep tool also produced inconsistent positions across READMEs (e.g.
ESPN ended up with Hermes/OpenClaw at the top BEFORE the CLI install
because its README lacked the fallback-chain anchors). Grouping all
agent-skill install paths at the top, in a fixed order, fixes both
the visual confusion and the sweep-tool inconsistency.

Why "for" instead of "via": "via" reads like a transport mechanism
("install via FTP") and is awkward when paired with named ecosystems.
"Install for Hermes" reads naturally and matches the connector
already used in `## Use with Claude Code`.

Companion sweep PR in mvanhorn/printing-press-library applies the
same shape across the existing 47 published library/<cat>/<api>/
README.md files.

Goldens regenerated for `generate-golden-api`,
`generate-golden-api-rich-auth`, `generate-public-param-names`.
`TestReadmeEmitsHermesAndOpenClawInstallSections` updated to match
the new headings. Full suite (592 tests) and `scripts/golden.sh
verify` (13/13 cases) pass.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 289b48c54b4b5a24f1e06463c84e56cb8967a987
Author: Trevin Chow <trevin@trevinchow.com>
Date:   Thu May 7 01:28:53 2026 -0700

    docs(cli): group install paths at top of generated README (#660)
    
    Moves the `## Install via Hermes` and `## Install via OpenClaw`
    template blocks from their current location wedged inside `## Use
    with Claude Desktop` to immediately after `## Install`, and renames
    `via` -> `for`. All three install paths now sit at the top of the
    generated README in the order:
    
      ## Install            (CLI + agent skill via npx, default)
      ## Install for Hermes
      ## Install for OpenClaw
    
    Application-specific sections (`## Use with Claude Code`, `## Use
    with Claude Desktop`) remain in their existing positions later in
    the README — they describe usage patterns with their own install
    side-effects, not alternative agent-skill install paths.
    
    Why: the previous layout had `## Install via X` blocks separated
    from `## Install` by hundreds of lines of unrelated content
    (Authentication, Quick Start, Commands, etc.) and structurally
    wedged between the Claude Desktop description and its `<details>`
    config block, breaking section hierarchy. The companion library-wide
    sweep tool also produced inconsistent positions across READMEs (e.g.
    ESPN ended up with Hermes/OpenClaw at the top BEFORE the CLI install
    because its README lacked the fallback-chain anchors). Grouping all
    agent-skill install paths at the top, in a fixed order, fixes both
    the visual confusion and the sweep-tool inconsistency.
    
    Why "for" instead of "via": "via" reads like a transport mechanism
    ("install via FTP") and is awkward when paired with named ecosystems.
    "Install for Hermes" reads naturally and matches the connector
    already used in `## Use with Claude Code`.
    
    Companion sweep PR in mvanhorn/printing-press-library applies the
    same shape across the existing 47 published library/<cat>/<api>/
    README.md files.
    
    Goldens regenerated for `generate-golden-api`,
    `generate-golden-api-rich-auth`, `generate-public-param-names`.
    `TestReadmeEmitsHermesAndOpenClawInstallSections` updated to match
    the new headings. Full suite (592 tests) and `scripts/golden.sh
    verify` (13/13 cases) pass.
    
    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---
 internal/generator/readme_test.go                  |  4 +-
 internal/generator/templates/readme.md.tmpl        | 46 +++++++++++-----------
 .../printing-press-rich-auth/README.md             | 46 +++++++++++-----------
 .../printing-press-golden/README.md                | 46 +++++++++++-----------
 .../public-param-golden/README.md                  | 46 +++++++++++-----------
 5 files changed, 94 insertions(+), 94 deletions(-)

diff --git a/internal/generator/readme_test.go b/internal/generator/readme_test.go
index fbf1247f..f2870d17 100644
--- a/internal/generator/readme_test.go
+++ b/internal/generator/readme_test.go
@@ -298,14 +298,14 @@ func TestReadmeEmitsHermesAndOpenClawInstallSections(t *testing.T) {
 
 	// Hermes section: both forms (CLI + chat) use the full
 	// mvanhorn/printing-press-library/cli-skills path.
-	assert.Contains(t, content, "## Install via Hermes")
+	assert.Contains(t, content, "## Install for Hermes")
 	assert.Contains(t, content, "hermes skills install mvanhorn/printing-press-library/cli-skills/pp-hermes-install --force",
 		"Hermes CLI form must use mvanhorn/printing-press-library/cli-skills (the short mvanhorn/cli-skills form was wrong)")
 	assert.Contains(t, content, "/skills install mvanhorn/printing-press-library/cli-skills/pp-hermes-install --force",
 		"Hermes chat form must use mvanhorn/printing-press-library/cli-skills")
 
 	// OpenClaw section: copyable code-fenced agent instruction.
-	assert.Contains(t, content, "## Install via OpenClaw")
+	assert.Contains(t, content, "## Install for OpenClaw")
 	assert.Contains(t, content, "https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-hermes-install",
 		"OpenClaw URL must point at the cli-skills directory")
 }
diff --git a/internal/generator/templates/readme.md.tmpl b/internal/generator/templates/readme.md.tmpl
index e8783d3b..05b10094 100644
--- a/internal/generator/templates/readme.md.tmpl
+++ b/internal/generator/templates/readme.md.tmpl
@@ -43,6 +43,29 @@ This installs the CLI only — no skill.
 ### Pre-built binary
 
 Download a pre-built binary for your platform from the [latest release](https://github.com/mvanhorn/printing-press-library/releases/tag/{{.Name}}-current). On macOS, clear the Gatekeeper quarantine: `xattr -d com.apple.quarantine <binary>`. On Unix, mark it executable: `chmod +x <binary>`.
+
+<!-- pp-hermes-install-anchor -->
+## Install for Hermes
+
+From the Hermes CLI:
+
+```bash
+hermes skills install mvanhorn/printing-press-library/cli-skills/pp-{{.Name}} --force
+```
+
+Inside a Hermes chat session:
+
+```bash
+/skills install mvanhorn/printing-press-library/cli-skills/pp-{{.Name}} --force
+```
+
+## Install for OpenClaw
+
+Tell your OpenClaw agent (copy this):
+
+```
+Install the pp-{{.Name}} skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-{{.Name}}. The skill defines how its required CLI can be installed.
+```
 {{- if and .Narrative .Narrative.AuthNarrative}}
 
 {{if .Auth.Optional}}## Optional: API Key{{else}}## Authentication{{end}}
@@ -409,29 +432,6 @@ To install:
 
 Requires Claude Desktop 1.0.0 or later. Pre-built bundles ship for macOS Apple Silicon (`darwin-arm64`) and Windows (`amd64`, `arm64`); for other platforms, use the manual config below.
 
-<!-- pp-hermes-install-anchor -->
-## Install via Hermes
-
-From the Hermes CLI:
-
-```bash
-hermes skills install mvanhorn/printing-press-library/cli-skills/pp-{{.Name}} --force
-```
-
-Inside a Hermes chat session:
-
-```bash
-/skills install mvanhorn/printing-press-library/cli-skills/pp-{{.Name}} --force
-```
-
-## Install via OpenClaw
-
-Tell your OpenClaw agent (copy this):
-
-```
-Install the pp-{{.Name}} skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-{{.Name}}. The skill defines how its required CLI can be installed.
-```
-
 <details>
 <summary>Manual JSON config (advanced)</summary>
 
diff --git a/testdata/golden/expected/generate-golden-api-rich-auth/printing-press-rich-auth/README.md b/testdata/golden/expected/generate-golden-api-rich-auth/printing-press-rich-auth/README.md
index c4627f46..2d657580 100644
--- a/testdata/golden/expected/generate-golden-api-rich-auth/printing-press-rich-auth/README.md
+++ b/testdata/golden/expected/generate-golden-api-rich-auth/printing-press-rich-auth/README.md
@@ -30,6 +30,29 @@ This installs the CLI only — no skill.
 
 Download a pre-built binary for your platform from the [latest release](https://github.com/mvanhorn/printing-press-library/releases/tag/printing-press-rich-current). On macOS, clear the Gatekeeper quarantine: `xattr -d com.apple.quarantine <binary>`. On Unix, mark it executable: `chmod +x <binary>`.
 
+<!-- pp-hermes-install-anchor -->
+## Install for Hermes
+
+From the Hermes CLI:
+
+```bash
+hermes skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-rich --force
+```
+
+Inside a Hermes chat session:
+
+```bash
+/skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-rich --force
+```
+
+## Install for OpenClaw
+
+Tell your OpenClaw agent (copy this):
+
+```
+Install the pp-printing-press-rich skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-printing-press-rich. The skill defines how its required CLI can be installed.
+```
+
 ## Quick Start
 
 ### 1. Install
@@ -145,29 +168,6 @@ To install:
 
 Requires Claude Desktop 1.0.0 or later. Pre-built bundles ship for macOS Apple Silicon (`darwin-arm64`) and Windows (`amd64`, `arm64`); for other platforms, use the manual config below.
 
-<!-- pp-hermes-install-anchor -->
-## Install via Hermes
-
-From the Hermes CLI:
-
-```bash
-hermes skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-rich --force
-```
-
-Inside a Hermes chat session:
-
-```bash
-/skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-rich --force
-```
-
-## Install via OpenClaw
-
-Tell your OpenClaw agent (copy this):
-
-```
-Install the pp-printing-press-rich skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-printing-press-rich. The skill defines how its required CLI can be installed.
-```
-
 <details>
 <summary>Manual JSON config (advanced)</summary>
 
diff --git a/testdata/golden/expected/generate-golden-api/printing-press-golden/README.md b/testdata/golden/expected/generate-golden-api/printing-press-golden/README.md
index d3cd2889..1d1c4af9 100644
--- a/testdata/golden/expected/generate-golden-api/printing-press-golden/README.md
+++ b/testdata/golden/expected/generate-golden-api/printing-press-golden/README.md
@@ -30,6 +30,29 @@ This installs the CLI only — no skill.
 
 Download a pre-built binary for your platform from the [latest release](https://github.com/mvanhorn/printing-press-library/releases/tag/printing-press-golden-current). On macOS, clear the Gatekeeper quarantine: `xattr -d com.apple.quarantine <binary>`. On Unix, mark it executable: `chmod +x <binary>`.
 
+<!-- pp-hermes-install-anchor -->
+## Install for Hermes
+
+From the Hermes CLI:
+
+```bash
+hermes skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-golden --force
+```
+
+Inside a Hermes chat session:
+
+```bash
+/skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-golden --force
+```
+
+## Install for OpenClaw
+
+Tell your OpenClaw agent (copy this):
+
+```
+Install the pp-printing-press-golden skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-printing-press-golden. The skill defines how its required CLI can be installed.
+```
+
 ## Quick Start
 
 ### 1. Install
@@ -166,29 +189,6 @@ To install:
 
 Requires Claude Desktop 1.0.0 or later. Pre-built bundles ship for macOS Apple Silicon (`darwin-arm64`) and Windows (`amd64`, `arm64`); for other platforms, use the manual config below.
 
-<!-- pp-hermes-install-anchor -->
-## Install via Hermes
-
-From the Hermes CLI:
-
-```bash
-hermes skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-golden --force
-```
-
-Inside a Hermes chat session:
-
-```bash
-/skills install mvanhorn/printing-press-library/cli-skills/pp-printing-press-golden --force
-```
-
-## Install via OpenClaw
-
-Tell your OpenClaw agent (copy this):
-
-```
-Install the pp-printing-press-golden skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-printing-press-golden. The skill defines how its required CLI can be installed.
-```
-
 <details>
 <summary>Manual JSON config (advanced)</summary>
 
diff --git a/testdata/golden/expected/generate-public-param-names/public-param-golden/README.md b/testdata/golden/expected/generate-public-param-names/public-param-golden/README.md
index e20c9643..172237ae 100644
--- a/testdata/golden/expected/generate-public-param-names/public-param-golden/README.md
+++ b/testdata/golden/expected/generate-public-param-names/public-param-golden/README.md
@@ -30,6 +30,29 @@ This installs the CLI only — no skill.
 
 Download a pre-built binary for your platform from the [latest release](https://github.com/mvanhorn/printing-press-library/releases/tag/public-param-golden-current). On macOS, clear the Gatekeeper quarantine: `xattr -d com.apple.quarantine <binary>`. On Unix, mark it executable: `chmod +x <binary>`.
 
+<!-- pp-hermes-install-anchor -->
+## Install for Hermes
+
+From the Hermes CLI:
+
+```bash
+hermes skills install mvanhorn/printing-press-library/cli-skills/pp-public-param-golden --force
+```
+
+Inside a Hermes chat session:
+
+```bash
+/skills install mvanhorn/printing-press-library/cli-skills/pp-public-param-golden --force
+```
+
+## Install for OpenClaw
+
+Tell your OpenClaw agent (copy this):
+
+```
+Install the pp-public-param-golden skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-public-param-golden. The skill defines how its required CLI can be installed.
+```
+
 ## Quick Start
 
 ### 1. Install
@@ -136,29 +159,6 @@ To install:
 
 Requires Claude Desktop 1.0.0 or later. Pre-built bundles ship for macOS Apple Silicon (`darwin-arm64`) and Windows (`amd64`, `arm64`); for other platforms, use the manual config below.
 
-<!-- pp-hermes-install-anchor -->
-## Install via Hermes
-
-From the Hermes CLI:
-
-```bash
-hermes skills install mvanhorn/printing-press-library/cli-skills/pp-public-param-golden --force
-```
-
-Inside a Hermes chat session:
-
-```bash
-/skills install mvanhorn/printing-press-library/cli-skills/pp-public-param-golden --force
-```
-
-## Install via OpenClaw
-
-Tell your OpenClaw agent (copy this):
-
-```
-Install the pp-public-param-golden skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-public-param-golden. The skill defines how its required CLI can be installed.
-```
-
 <details>
 <summary>Manual JSON config (advanced)</summary>
 

← 07c8f637 docs(cli): tighten README and drop stale catalog counts (#65  ·  back to Cli Printing Press  ·  fix(phase5): explain accepted marker levels (#647) d4d10a8a →