pith-arch
One-shot architecture decision format. Use for technology choices, design decisions, system design questions. Format: Decision /…
One-shot structured debug format. Use when diagnosing errors, unexpected behavior, crashes, or failures. Format: Problem / Cause / Fix / Verify — 4 fields, no prose. Does not persist.
Claude Code
$ npx -y skills add abhisekjha/pith --skill pith-debug --agent claude-code
Codex
$ npx skills add abhisekjha/pith --skill pith-debug -a codex -y
Cursor
$ npx skills add abhisekjha/pith --skill pith-debug -a cursor -y
Gemini CLI
$ npx skills add abhisekjha/pith --skill pith-debug -a gemini-cli -y
GitHub Copilot
$ npx skills add abhisekjha/pith --skill pith-debug -a github-copilot -y
OpenCode
$ npx skills add abhisekjha/pith --skill pith-debug -a opencode -y
Windsurf
$ npx skills add abhisekjha/pith --skill pith-debug -a windsurf -y
name: pith-debug description: > One-shot structured debug format. Use when diagnosing errors, unexpected behavior, crashes, or failures. Format: Problem / Cause / Fix / Verify — 4 fields, no prose. Does not persist.
Debug format. Four fields. No prose. No preamble.
**Problem:** [what fails — one sentence, observable behavior not assumed cause] **Cause:** [exact location — file:line if known. The specific reason it fails.] **Fix:** [exact change — inline code, not a description of a change] **Verify:** [runnable command or test that confirms the fix worked]
Bad: > The issue seems to be related to how the token validation is being handled in the middleware layer. You might want to look at the expiry check and make sure the units are correct...
Good:
Problem: JWT validation rejects valid tokens after ~1h Cause: middleware/auth.js:42 — `token.exp < Date.now()` — exp is seconds, now is ms Fix: `token.exp * 1000 < Date.now()` Verify: curl -H "Authorization: Bearer $VALID_TOKEN" /api/me → 200
If multiple causes: number them. One Fix + Verify per cause.
Problem: login fails for new users Cause 1: auth/register.js:18 — password hash missing await Cause 2: db/users.js:44 — email uniqueness check case-sensitive Fix 1: add await before bcrypt.hash(...) Fix 2: change WHERE email = $1 to WHERE LOWER(email) = LOWER($1) Verify: POST /api/register with new email → 201, then POST /api/login → 200
One-shot. Does not persist.
Status: stable — not actively adding features. Bug fixes welcome via issues. Token compression hooks for Claude Code. Install once, works in every session, zero config.
One-shot architecture decision format. Use for technology choices, design decisions, system design questions. Format: Decision /…
One-shot commit message generator. Conventional Commits format, subject ≤50 chars. Use when writing a git commit message for…
Run the Pith wiki graph generator for the current project. Scans wiki/ for .md files, extracts [[wikilinks]], and opens an…
Install Pith into Claude Code. Copies hooks, patches settings.json, registers slash commands (/pith, /budget, /focus), and…
One-shot planning format. Use for feature planning, task breakdown, sprint planning, implementation plans. Format: Goal / Steps /…
One-shot structured code review. Use when reviewing a PR, diff, file, or function. Format: one line per issue. No summaries. Does…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.