From pith
Delivers one-shot structured debug output in Problem/Cause/Fix/Verify format for diagnosing errors, crashes, unexpected behavior, or failures.
npx claudepluginhub abhisekjha/pith --plugin pithThis skill uses the workspace's default tool permissions.
Debug format. Four fields. No prose. No preamble.
Debugs errors, test failures, and unexpected behavior through root cause analysis, log inspection, hypothesis testing, code fixes, verification, and prevention recommendations.
Debugs errors, test failures, and unexpected behavior through root cause analysis, stack trace review, hypothesis testing, logging, and targeted code fixes.
Debugs systematically: reproduce issues, hypothesize root causes one at a time, test, fix root causes, verify with tests. For broken code, failing tests, unexpected behavior.
Share bugs, ideas, or general feedback.
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]
[unknown — use verify step to investigate] — never speculate as fact.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.