From temper
Manages quality packs: view status, toggle on/off, quick-create launcher packs, and configure links and phases.
How this command is triggered — by the user, by Claude, or both
Slash command
/temper:packThe summary Claude sees in its command listing — used to decide when to auto-load this command
# Pack: Quality Pack Manager
## Step 1: Discover Packs
Read `.claude/temper.config` packs section. Scan three tiers:
- `.claude/packs/{name}/rules.md` (project-local, highest priority)
- `~/.claude/packs/{name}/rules.md` (global)
- `$CLAUDE_PLUGIN_ROOT/packs/{name}/rules.md` (built-in)
Deduplicate by name (highest tier wins). For each pack: read rules.md header, check enabled status, read `phases` and `link` from config.
## Step 2: Display Pack Table
Build the table dynamically from discovered packs. Do NOT use hardcoded example rows.
Format each row using actual data:
- **NAME** — pa...Read .claude/temper.config packs section. Scan three tiers:
.claude/packs/{name}/rules.md (project-local, highest priority)~/.claude/packs/{name}/rules.md (global)$CLAUDE_PLUGIN_ROOT/packs/{name}/rules.md (built-in)Deduplicate by name (highest tier wins). For each pack: read rules.md header, check enabled status, read phases and link from config.
Build the table dynamically from discovered packs. Do NOT use hardcoded example rows.
Format each row using actual data:
ON if in packs list, OFF if notall if not specified)— if none)Example structure (populate with real data only):
┌──────────────────────────────────────────────────────────────────────────┐
│ PACK — Quality Pack Manager v4.4.0 │
├──────────────────────────────────────────────────────────────────────────┤
│ NAME STATUS PHASES LINK CONNECTED │
│ ────────────── ─────── ────────── ─────────────────── ──────────────── │
│ {name} {on} {phases} {link} {found/missing} │
│ ... │
│ N packs total (X enabled, Y disabled) │
└──────────────────────────────────────────────────────────────────────────┘
AskUserQuestion:
question: "What would you like to do?"
options:
- label: "Toggle packs on/off"
description: "Select packs to enable or disable."
- label: "Quick-create launcher pack"
description: "Wrap a plugin or skill as a BLOCK-level pack."
- label: "Configure pack (link, phases)"
description: "Set link target or phase scoping for an existing pack."
- label: "Done"
description: "Exit. Use 'Other' for full interactive pack builder."
multiSelect: false
Multi-select AskUserQuestion with all packs. Update .claude/temper.config packs: list. Return to Step 3.
5a: Discover ALL linkable targets. Run this unified discovery scan:
python3 -c "
import json, os, glob
path = os.path.expanduser('~/.claude/plugins/installed_plugins.json')
if not os.path.exists(path):
exit()
with open(path) as f: data = json.load(f)
plugins = data.get('plugins', {})
for key, entries in plugins.items():
pkg_name = key.split('@')[0]
if pkg_name == 'temper': continue
latest = entries[-1] if entries else {}
ipath = latest.get('installPath', '')
if not ipath or not os.path.exists(ipath): continue
# Read plugin description
pj = os.path.join(ipath, '.claude-plugin/plugin.json')
desc = ''
if os.path.exists(pj):
with open(pj) as f: pd = json.load(f)
desc = pd.get('description', '')
# Find skills: skills/*/SKILL.md or .claude/skills/*/SKILL.md
skills = glob.glob(os.path.join(ipath, '**/SKILL.md'), recursive=True)
# Find commands: commands/*.md or .claude/commands/*.md
cmds = glob.glob(os.path.join(ipath, '**/commands/*.md'), recursive=True)
# Classify: if plugin has skills, list skills; if commands, list commands
# If neither, list the plugin package itself
has_output = False
for s in skills:
skill_dir = os.path.basename(os.path.dirname(s))
print(f'SKILL|{pkg_name}:{skill_dir}|{os.path.dirname(s)}|{desc}')
has_output = True
for c in cmds:
cmd_name = os.path.splitext(os.path.basename(c))[0]
print(f'CMD|{pkg_name}:{cmd_name}|{os.path.dirname(c)}|{desc}')
has_output = True
if not has_output:
print(f'PLUGIN|{pkg_name}|{ipath}|{desc}')
"
Then supplement with project-local and global commands:
# Project-local commands
ls .claude/commands/*.md 2>/dev/null | while read f; do
echo "LOCAL_CMD|$(basename "$f" .md)|.claude/commands/"
done
# Global commands
ls ~/.claude/commands/*.md 2>/dev/null | while read f; do
echo "GLOBAL_CMD|$(basename "$f" .md)|~/.claude/commands/"
done
Combine all scan results. Remove targets already linked to existing packs (check link: values in temper.config).
Exclude temper's own commands (build, check, design, fix, pack, plan, review, status, temper, temper-core) — they're already built-in, no launcher needed.
Use these display labels by TYPE prefix:
SKILL| → SkillCMD| → CommandPLUGIN| → PluginLOCAL_CMD| → Project CommandGLOBAL_CMD| → Global CommandGroup and display by type:
Skills:
1. frontend-design:frontend-design — Frontend design skill for UI/UX
...
Commands:
5. commit-commands:commit — Create a git commit
...
Plugins:
8. context7 — Up-to-date library docs
...
Project Commands:
9. ...
Important: Only show targets that actually appeared in scan output. Do NOT fabricate entries.
Show via AskUserQuestion (max 4 at a time, use "More targets..." to paginate).
5b: User picks target, types pack name via "Other". Generate .claude/packs/{name}/rules.md with BLOCK-level enforcement. Update temper.config. Return to Step 3.
Select pack → choose "Set link" or "Set phases" or both.
Set link: Run same discovery scans as Step 5a. Show targets. Update config. Set phases: Show phase options (all, build, review+check, or type custom via "Other"). Update config.
Return to Step 3.
Read
$CLAUDE_PLUGIN_ROOT/reference/pack.md→ "Step 7: Add New Pack" section for the codebase scan + interview + generation methodology.
This is the ONLY step that requires loading the reference doc. All other steps are self-contained above.
npx claudepluginhub galando/temper --plugin temper/setupGuides users through initial configuration with interactive prompts or auto-setup via --quick flag. Detects stack, extracts git config, and generates a YAML configuration file for AI Craftsman superpowers.
/demo-skillsDemonstrates 5 plugin management skills for creating, validating, auditing, and managing plugins in the claude-code-plugins repository.
/READMEOrchestrates multiple skills into reusable workflows for project management tasks like discovery, strategy, PRD writing, roadmap planning, and prioritization.
/READMELists all available slash commands organized by category, with links to Python, web, devops, context engineering, QA, integration, and utility commands. Also validates command syntax.
/meta-agentManages the full lifecycle of Claude Code artifacts — create, enhance, audit, delete, rollback, list, and onboard commands, skills, rules, and agents.
/create-pluginGuides the creation of a Claude Code plugin through structured phases: discovery, component planning, implementation, and validation. Provides a systematic workflow for building high-quality plugins.