Manpage sync
Skill zakelfassi/skills-driven-development/examples/cli-tool/skills/manpage-sync
Regenerate man pages and shell completion scripts from the shipctl command tree whenever commands, flags, or subcommands change. Use when a new command or flag is added, when the help text changes, or when asked to "update the man pages" or "sync completions".From its SKILL.md
npx -y skills add zakelfassi/skills-driven-development --skill manpage-syncAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 8 commands, including `cargo build --release` and 7 more.
SKILL.md
3.3 KB, 743 tokens by cl100k_base, as published. Nobody here has run it
Manpage Sync
Regenerate man pages and shell completion scripts to match the current command tree.
Inputs
- Scope:
all(default),man, orcompletions - Output directory for man pages (defaults to
docs/man/) - Output directory for completions (defaults to
completions/)
Steps
-
Build the latest binary
cargo build --release # or: go build -o dist/shipctl ./cmd/shipctlMan page generation requires the actual binary to self-report its command tree.
-
Generate man pages
# Using help2man: help2man --no-discard-stderr ./target/release/shipctl \ -o docs/man/shipctl.1 \ --name "cross-platform deployment CLI" # For each subcommand: help2man --no-discard-stderr "./target/release/shipctl {subcommand}" \ -o "docs/man/shipctl-{subcommand}.1" \ --name "shipctl {subcommand}" # Alternatively, if the binary has built-in man generation: ./target/release/shipctl man --output-dir docs/man/ -
Generate shell completions
./target/release/shipctl completions bash > completions/shipctl.bash ./target/release/shipctl completions zsh > completions/_shipctl ./target/release/shipctl completions fish > completions/shipctl.fish ./target/release/shipctl completions powershell > completions/shipctl.ps1 -
Verify the output
- Run
man -l docs/man/shipctl.1and skim for obvious formatting errors - Spot-check that new flags appear in completions:
grep "{new-flag}" completions/shipctl.bash - Confirm no old flags that were removed still appear
- Run
-
Commit the generated files
git add docs/man/ completions/ git commit -m "docs(manpages): regenerate for $(./target/release/shipctl --version)" -
Update install instructions if a new section or man page was added Edit
docs/install.md→ the "Shell completions" and "Man pages" sections.
Conventions
- Man pages are committed to
docs/man/; they are generated, never hand-edited - Completion scripts are committed to
completions/; same rule - This skill is run in CI after any command-tree change (see
.github/workflows/docs.yml) - Section numbers:
shipctl(1),shipctl-release(1),shipctl-build(1), etc.
Edge Cases
help2mannot installed: Install viabrew install help2man(macOS) orapt-get install help2man(Linux); on CI it is pre-installed.- Subcommand man page is empty: The binary must output
--helptext on stderr forhelp2manto parse; add the--no-discard-stderrflag. - Completion file conflicts with a system package: Rename to
shipctl.bash-completionand instruct users to source it explicitly. - Binary not built yet: Run
cargo build --releasefirst; if the build fails, fix it before trying to regenerate.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.