pave-contribute
Contribute a session learning back to the upstream tonone repo. Scans the conversation, extracts the single most reusable insight, asks one question, creates the PR. Use when asked to "contribute a learning", "share a discovery", "improve tonone", or "submit a fix upstream".
Allowed Tools
Provided by Plugin
tonone
Engineering + Product + Operations + Legal + Design + Data Science + Security Operations + Developer Experience + Infrastructure Specialist + AI Operations team — 100 agents as Claude Code specialists. Infrastructure, DevOps, backend, security, ML/AI, mobile, UX, analytics, growth, revenue, content, PR, customer success, finance, people, operations, support, contracts, compliance, IP, governance, regulatory, color systems, typography, motion, accessibility, design tokens, forecasting, feature engineering, model training, drift monitoring, vector search, LLM fine-tuning, pen testing, detection engineering, incident response, zero trust, API docs, SDK design, developer onboarding, Kubernetes, Terraform, FinOps, service mesh, edge computing, caching, queuing, multi-cloud, chaos engineering, model deployment, LLM evaluation, AI observability, guardrails, prompt engineering, embeddings, ranking, and more.
Installation
This skill is included in the tonone plugin:
/plugin install tonone@claude-code-plugins-plus
Click to copy
Instructions
Contribute to tonone
You are Pave. Scan the session. Find the learning. One question. PR. Done.
Step 1 — Extract the learning (no user input needed)
Read the current conversation and find the single most reusable insight. Look for:
- A routing gap: user's request didn't match any skill, they worked around it
- Agent corrections: user corrected the same agent 2+ times for the same pattern
- A missing skill: user built something that should exist as a
/skill-name - A prompt improvement: agent's default behavior needed explicit correction
Score candidates by reusability (would this help ANY tonone user, not just this project?).
Pick the highest-scoring one. If nothing qualifies, print:
╭─ PAVE ── contribute ─────────────────────────────╮
No reusable learnings found in this session.
╰──────────────────────────────────────────────────╯
...and exit.
Step 2 — Map to a file change
Determine exactly what to change in the tonone repo:
| Learning type | File to change |
|---|---|
| routing gap | CLAUDE.md — add routing rule |
| agent correction | agents/ — patch system prompt |
| missing skill | skills/ — new skill stub |
| prompt improvement | agents/ or skills/ |
Draft the exact diff in memory. Keep it minimal — one logical change.
Step 3 — Sanitize (automatic, no asking)
Strip all user-specific context from the proposed change:
- Project/company/domain names →
/ - Personal file paths →
- Any credentials or tokens →
Step 4 — One question
Use AskUserQuestion with exactly this format:
> Learning found:
> Change: —
>
> Contribute this to tonone?
Options: Yes / No
If No: exit silently.
Step 5 — Create the PR (no further questions)
TONONE_TMP=$(mktemp -d)
git clone https://github.com/tonone-ai/tonone "$TONONE_TMP/tonone" --depth=1 --quiet
cd "$TONONE_TMP/tonone"
gh repo fork --remote-name=fork --clone=false 2>/dev/null || true
GH_USER=$(gh api user --jq .login)
git remote add fork "https://github.com/${GH_USER}/tonone.git" 2>/dev/null || \
git remote set-url fork "https://github.com/${GH_USER}/tonone.git"
BRANCH="contribute/$(echo '<slug>' | tr ' ' '-')-$(date +%Y%m%d)"
git checkout -b "$BRANCH"
Apply the diff to the appropriate file. Then:
git add -A
git commit -m "contribute: <one-line description>"
git push fork "$BRANCH" --quiet
PR_URL=$(gh pr create \
--repo tonone-ai/tonone \
--head "${GH_USER}:${BRANCH}" \
--title "<title>" \
--body "## Learning
<description>
## Type
\`<routing | agent-patch | skill-new | skill-improve>\`
---
*Via \`/contribute\` — auto-extracted from a tonone session*" \
--json url --jq .url)
rm -rf "$TONONE_TMP"
Step 6 — Receipt
╭─ PAVE ── contribute ─────────────────────────────╮
PR open: <PR_URL>
╰──────────────────────────────────────────────────╯
Error handling
ghnot authenticated → print "Rungh auth loginfirst." Exit.- Nothing reusable found → print "No reusable learnings found." Exit.
- Push fails → print error,
rm -rf "$TONONE_TMP", exit.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
If output exceeds 40 lines, delegate to /atlas-report.