Claude-skill-registry justice-matrix-research
Ralph research agent for discovering global youth justice cases and advocacy campaigns
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/justice-matrix-research" ~/.claude/skills/majiayu000-claude-skill-registry-justice-matrix-research && rm -rf "$T"
manifest:
skills/data/justice-matrix-research/SKILL.mdsource content
Justice Matrix Research Agent
When to Use
- Discovering new global youth justice cases
- Finding advocacy campaigns worldwide
- Updating the Justice Matrix database
- Checking source health and coverage gaps
- Running scheduled research cycles
Commands
| Command | Purpose | Duration |
|---|---|---|
| Run discovery across active sources | 10-30 min |
| Process pending discoveries | 5-15 min |
| Show pipeline status and stats | Instant |
| Deep dive specific source | 10 min |
Workflow
DISCOVER → EXTRACT → QUEUE → REVIEW → APPROVE ↓ ↓ ↓ ↓ ↓ Sources AI Parse Pending Admin Database
1. Source Scan (/ralph-matrix-scan
)
/ralph-matrix-scan// Query active sources by priority const sources = await supabase .from('justice_matrix_sources') .select('*') .eq('is_active', true) .order('scrape_priority', { ascending: true }); // For each source: // 1. Fetch pages // 2. Extract case/campaign links // 3. Check for duplicates // 4. Queue new discoveries
2. AI Extraction (/ralph-matrix-extract
)
/ralph-matrix-extractFor each pending discovery:
- Fetch full content from source URL
- Run AI extraction using patterns from PRD
- Geocode to lat/lng
- Categorize by legal themes
- Calculate confidence score
- Check for duplicates
3. Review Queue
Discoveries go to
/admin/justice-matrix/discoveries where admins can:
- Preview extracted data
- Edit before approval
- Approve → creates case/campaign
- Reject → marks as rejected with notes
- Merge → links to existing item
Source Types
| Type | Extraction Focus |
|---|---|
| Citation, year, court, holding, outcome |
| Campaign name, orgs, goals, tactics, status |
| Case analysis, precedent value |
| Regional jurisdiction, treaty basis |
Extraction Patterns
Court Database
{ "required": ["case_citation", "jurisdiction", "year", "court"], "extract": ["strategic_issue", "key_holding", "outcome"], "infer": ["categories", "precedent_strength", "lat/lng"] }
Advocacy Organization
{ "required": ["campaign_name", "country_region", "lead_organizations"], "extract": ["goals", "tactics", "outcome_status"], "infer": ["is_ongoing", "categories", "lat/lng"] }
Quality Scoring
| Signal | Weight | Description |
|---|---|---|
| Relevance | 30% | Youth justice / child rights focus |
| Precedent | 25% | Significance for future work |
| Coverage | 20% | Fills geographic/thematic gap |
| Recency | 15% | How current is this? |
| Actionable | 10% | Useful for practitioners |
Database Tables
| Table | Purpose |
|---|---|
| Scraping source configuration |
| Pending review queue |
| Run history and stats |
| Approved cases |
| Approved campaigns |
PRD Reference
Full source configuration:
ralph/justice-matrix-prd.json
Sacred Boundaries
Never scrape:
- Sealed juvenile records
- Private case files
- Paywalled content without permission
- Individual identifying information
Always mark:
- Indigenous rights cases
- First Nations advocacy
- Community-controlled campaigns
Always check:
- Publication permissions
- Child privacy protections
- Cultural sensitivity
Example Usage
# Quick status check /ralph-matrix-status # Run full discovery cycle /ralph-matrix-scan # Process discoveries /ralph-matrix-extract # Deep dive on specific source /ralph-matrix-source "ECHR HUDOC"