mcpbeat Sign in

Pave Contribute Skill for Claude

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".

1.1k tokens
context cost
SKILL.md, read when the skill is used
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
2 679
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill pave-contribute

The instruction itself

8 sections, as written by the author

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/<name>.md — patch system prompt |

| missing skill | skills/<name>/SKILL.md — new skill stub |

| prompt improvement | agents/<name>.md or skills/<name>/SKILL.md |

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 → <project> / <company>
  • Personal file paths → <path>
  • Any credentials or tokens → <redacted>

Step 4 — One question

Use AskUserQuestion with exactly this format:

> Learning found: <one-line description of the improvement>

> Change: <file> — <what changes, in 10 words or less>

>

> 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

  • gh not authenticated → print "Run gh auth login first." 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.

How to use it

Copy the folder

Take jeremylongshore/pave-contribute from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.