Content Packs¶
Content packs define the perspective, tone, and heuristics used during a review. They're plain YAML — human-editable, version-controllable, and easy to share.
Built-in packs¶
| Pack | Perspective | Best for |
|---|---|---|
staff-core |
Staff Engineer | General architecture and code reviews |
oncall-future-you |
On-call engineer, 3am | Operational readiness, failure mode review |
mentor-mode |
Experienced mentor | Learning, teaching, growth-focused feedback |
solutions-architect |
Solutions Architect | System design, entity modeling, build vs buy |
idp-readiness |
Platform Engineering | IDP maturity, platform vs process decisions |
# See all available packs with descriptions
greybeard packs
# Use a specific pack
git diff main | greybeard analyze --pack oncall-future-you
Installing community packs¶
Anyone can publish a greybeard pack repo on GitHub. Install packs from any public repo:
# Install all packs from a repo's packs/ directory
greybeard pack install github:owner/repo
# Install a single file
greybeard pack install github:owner/repo/packs/my-pack.yaml
# Install from a raw URL
greybeard pack install https://example.com/my-pack.yaml
Installed packs are cached at ~/.greybeard/packs/ and available by name just like built-ins:
Managing installed packs¶
# List installed remote packs
greybeard pack list
# Re-download (refresh) a source
greybeard pack install github:owner/repo --force
# Remove a source
greybeard pack remove owner__repo
Using a local custom pack¶
Create a .yaml file and pass it directly — no install needed:
Writing a pack¶
Packs are YAML files with the following structure:
name: my-pack
description: Short description shown in greybeard packs output
perspective: |
Who is speaking. Be specific — this shapes the entire tone.
Example: "A Staff Engineer on a team that owns 20+ services and
has been paged about this exact type of failure before."
tone: calm and direct, not condescending
focus_areas:
- operational impact
- ownership clarity
- long-term maintenance cost
heuristics:
- "Would I be okay getting paged about this at 3am?"
- "Who is the last person to understand this, and what happens when they leave?"
- "Is this solving today's problem or a hypothetical future one?"
example_questions:
- "Who owns the runbook for when this fails?"
- "What does a 3am failure look like?"
- "Is the rollback story clear and tested?"
communication_style: |
Optional. How to frame concerns — collaborative, teaching, direct, etc.
See the built-in packs in packs/ for complete examples.
Tips for writing good packs¶
- Be specific about perspective. "A Staff Engineer" is vague. "A Staff Engineer who has been paged about caching failures at 3am and spent a week diagnosing a silent data corruption bug" is much better — the model will reason from that specificity.
- Heuristics are the soul of the pack. They're the questions your perspective would instinctively ask. Make them memorable and concrete.
- Tone matters more than you think. The difference between "skeptical but fair" and "blunt and impatient" meaningfully changes the output.
- Focus areas filter the noise. Without them, the model might surface concerns that aren't relevant to your perspective.
Publishing a pack¶
- Create a public GitHub repo (e.g.
your-handle/greybeard-packs) - Add a
packs/directory with.yamlfiles - Anyone can install it with:
Feel free to open an issue on the greybeard repo to get your pack listed.