# Solopowers Commit Scratchpad

> Use when the user wants to persist SoloTerm scratchpad content into repository files and commit it to Git. (Solopowers/SoloTerm adaptation.)

- Skill: `scottwater/solopowers-commit-scratchpad` (Agent Skill)
- Install (CLI): `npx skillmds@latest add scottwater/solopowers-commit-scratchpad`
- Raw SKILL.md: https://api.skillmd.com/api/skills/scottwater/solopowers-commit-scratchpad/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: scottwater (https://skillmd.com/u/scottwater)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/scottwater/solopowers-commit-scratchpad

---


# Commit Scratchpad

Move a SoloTerm scratchpad artifact into the Git worktree only when the user explicitly asks. This is the escape hatch for specs, plans, reviews, and notes that normally live outside the repository.

**Announce at start:** "I'm using the commit-scratchpad skill to persist a scratchpad to Git."

## When to Use

Use this skill when the user says things like:

- "commit this scratchpad"
- "save the plan/spec to the repo"
- "turn that scratchpad into a docs file"
- "publish the scratchpad content"

Do **not** use this skill during normal brainstorming or plan writing. Those workflows should leave Markdown artifacts in scratchpads unless the user asks otherwise.

## Preconditions

1. Confirm the SoloTerm MCP server is reachable and scratchpad access is available.
2. Identify the scratchpad to commit:
   - If the user named one, read that scratchpad.
   - If they said "the current one" or "the one we just made," use the most recent relevant scratchpad if the host exposes it.
   - If ambiguous, ask which scratchpad before writing files.
3. Confirm the destination path before writing unless the user already gave one.

## Destination Defaults

When the user does not specify a path, derive one from the scratchpad name:

| Scratchpad name prefix | Default repo path |
| --- | --- |
| `solopowers/specs/` | `docs/solopowers/specs/<name>.md` |
| `solopowers/plans/` | `docs/solopowers/plans/<name>.md` |
| anything else | `docs/solopowers/scratchpads/<name>.md` |

Sanitize `<name>` into a safe lowercase slug. Preserve the original Markdown content exactly unless the user asks for editing.

## Process

1. **Read scratchpad content** — capture name/id, revision if available, and full Markdown content.
2. **Check for sensitive data** — secrets, tokens, personal data, internal-only notes. Stop and ask if anything looks risky.
3. **Choose destination** — use the user-provided path or destination defaults above.
4. **Preview handoff** — state scratchpad name/id, destination path, and whether the file is new or will be overwritten.
5. **Write the file** — create parent directories as needed; write the scratchpad content to the destination.
6. **Verify diff** — review `git diff -- <path>` and confirm only the intended file changed.
7. **Commit** — create a focused commit for the new/updated document.
8. **Report** — include the destination path and commit SHA.

## Commit Message Guidance

Use a plain, specific commit message:

```bash
git commit -m "docs: add <topic> plan"
```

Prefer:

- `docs: add <topic> spec`
- `docs: add <topic> plan`
- `docs: update <topic> notes`

Avoid vague messages like `update docs` or `commit scratchpad`.

## Red Flags

Stop and ask before committing when:

- The scratchpad includes secrets, credentials, private URLs, or sensitive personal data.
- The destination would overwrite an existing file and the user did not explicitly approve overwriting.
- More than one scratchpad could match the request.
- `git diff` shows unrelated changes.
- The repo has project instructions that prohibit committing docs artifacts.

