workplace/skills/build-knowledge/SKILL.md
Capture and save development knowledge — what was done, why, challenges faced, and key decisions — to a persistent knowledge base folder. Use this skill after completing a feature, fixing a bug, finishing a plan, resolving a tricky issue, or when the user says 'save what we did', 'document this work', 'build knowledge', 'capture learnings', 'save development notes', 'log this work', or wants to record development context for future reference. Also trigger when wrapping up a significant piece of work that involved non-obvious decisions or debugging. This skill MUST run as a subagent (never in main context) to avoid polluting the conversation.
npx skillsauth add tim-hub/powerball build-knowledgeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Summarize development work — what was done, why decisions were made, and what challenges were encountered — then save it as a structured markdown file in a user-configured knowledge base folder.
This skill exists because code tells you what was built, but not why it was built that way, what alternatives were considered, or what tripped you up. Over time, this knowledge base becomes a searchable record of lessons learned across all your projects.
This skill should NEVER run in the main conversation context. Always dispatch it as a subagent so the summarization work doesn't clutter the user's session. The calling agent should pass relevant context (recent changes, conversation summary, project name) when spawning.
Run the init script to ensure the config file exists and the knowledge base path is set:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/build-knowledge/scripts/kb-init.py"
knowledge_base_path to stdout. Capture it.knowledge_base_path is not set yet. Ask the user which folder to use, then run again with the path as an argument:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/build-knowledge/scripts/kb-init.py" "/path/user/chose"
This writes the path to config and creates the directory.Then run the load script to resolve the project:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/build-knowledge/scripts/kb-load.py"
This outputs JSON: { "kb_path": "...", "project": "...", "project_path": "..." }. Create the project_path directory if it doesn't exist.
Collect information about what was done. Sources to check:
git log --oneline -10 and git diff --stat to see what changed.powerball/specs/ for any active plans or explorations that describe the workCreate a file at:
{project_path}/YYYY-MM-DD--{slug}.md
Where {slug} is a short, kebab-case name describing the work (e.g., auth-token-refresh-fix, add-csv-export, migrate-to-postgres). Keep it under 6 words.
If a file with the same date and slug already exists, append a numeric suffix: YYYY-MM-DD--{slug}-2.md.
# {Title — human-readable version of the slug}
**Date:** YYYY-MM-DD
**Project:** {project-name}
{if Jira ticket: **Jira:** [TICKET-123](https://your-jira-instance.atlassian.net/browse/TICKET-123)}
## What was done
- {2-4 bullet points summarizing the changes}
## Why it was done this way
- {Key decisions and reasoning — alternatives considered, trade-offs made}
## Challenges & lessons
- {What was tricky, what broke, what you learned}
## Key files touched
- {List of the most important files changed, not every file}
Keep it concise — aim for a file someone can scan in 30 seconds and get the full picture. This isn't a changelog; it's the story behind the change.
Tell the user (or parent agent) where the file was saved and show a brief preview of the content.
testing
Picks the right Kubernetes Deployment update strategy (RollingUpdate / Recreate / Blue-Green / Canary) for the situation. Use when configuring a new Deployment, changing rollout config, or deciding how to ship a risky change.
tools
Translates a markdown file to a target language, preserving structure. Use when the user needs a markdown file translated.
development
Translates text between any two languages while preserving source format. Use when the user needs to translate plain text, code, or markdown content.
testing
Generates written content — blog posts, social posts, emails, and marketing copy — matched to the project's existing voice. Use when the user needs written material.