Claude-skill-registry justicehub-reviewer
Platform audit for JusticeHub pages, API routes, Supabase patterns, and Empathy Ledger integration.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/justicehub-reviewer" ~/.claude/skills/majiayu000-claude-skill-registry-justicehub-reviewer && rm -rf "$T"
manifest:
skills/data/justicehub-reviewer/SKILL.mdsource content
JusticeHub Platform Reviewer
When to Use
- Audit pages/routes for data fetching issues
- Verify Supabase connection patterns
- Check Empathy Ledger integration
- Review API route security
- Generate platform health reports
Invocation
/justicehub-review [scope]
| Scope | What It Checks |
|---|---|
| Complete platform audit |
| All Next.js pages |
| All API routes |
| Connection patterns |
| Integration health |
| Utility services |
Quick Patterns
Correct Server Component
import { createServiceClient } from '@/lib/supabase/service'; export const dynamic = 'force-dynamic'; export default async function Page() { const supabase = createServiceClient(); const { data } = await supabase.from('table').select('*'); return <Component data={data} />; }
Correct API Route
import { createServiceClient } from '@/lib/supabase/service'; export async function GET() { const supabase = createServiceClient(); const { data, error } = await supabase.from('table').select('*'); if (error) return NextResponse.json({ error: error.message }, { status: 500 }); return NextResponse.json(data); }
Red Flags
in server component (should becreateClient
)createServiceClient- Missing
for dynamic dataforce-dynamic - Server cookie client without await
- No error handling in API routes
File References
| Need | Reference |
|---|---|
| Page patterns | |
| API patterns | |
| Supabase patterns | |
| Empathy Ledger | |