← 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
M internal/generator/readme_test.goM internal/generator/templates/readme.md.tmplM testdata/golden/expected/generate-golden-api-rich-auth/printing-press-rich-auth/README.mdM testdata/golden/expected/generate-golden-api/printing-press-golden/README.mdM testdata/golden/expected/generate-public-param-names/public-param-golden/README.md
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 →