Install
$ agentstack add skill-mr-kelly-skills-kelly-legal-firm-radar ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Legal Firm Radar
Overview
Use this skill as a local App-in-Skill desk. It uses anonymized internal casebase metadata to prepare management insights: practice mix, local court outcomes, lawyer capability profiles, quality indicators, and approved brand or staffing reports.
Default interaction mode: App UI. Unless the user explicitly asks for chat-only handling, check onboarding/config, refresh or generate the local snapshot, start or reuse the local app with app/start.sh, and give the actual local URL. Use chat-only mode only when the user says "纯聊天", "chat only", "不要打开 UI", or similar; in that mode present stable refs such as Insight #1 and record verdicts in local decision files.
Business Role
Use this as the partner review gate for firm-level analytics. It consumes anonymized casebase metadata and approved summaries to prepare practice mix, lawyer capability, quality, staffing, and brand proof insights with methodology notes. Do not use it for matter strategy, legal advice, raw document review, compensation decisions, or external marketing claims without separate approval.
App UI Screenshots
OverviewFirm radar command desk with partner review load, approved reports, blocked insights, and management activity. Review queueApproval-gated management insights for practice mix, lawyer profiles, and brand proof points.
ChecksAnalytics QA for anonymization, sample size, attribution, bias caveats, and external-use restrictions. WorkbenchDetail pane for practice analytics, talent signals, quality indicators, and approved management report text.
Boundary
- The skill reads user-authorized legal materials or metadata, reasons over them, drafts structured outputs, and writes local handoff files.
- The app reads and writes local files only. It never files documents, sends client advice, contacts counterparties, changes a case system, publishes brand claims, or performs external side effects.
- Every legal position, client-facing output, management report, external citation, filing step, or outbound message is approval-required and happens outside the app only after explicit human approval.
- Treat legal work product, casebase data, client facts, personal data, trade secrets, and internal strategy as sensitive. Do not commit
config.local.json, env files,app/.data/, exports, source documents, or privileged notes.
First Run And Onboarding
On invocation, check app/.data/onboarding.json and private config readiness. If onboarding is absent or incomplete, guide setup before doing real work.
Private config priority:
KELLY_LEGAL_FIRM_RADAR_CONFIG=/absolute/path/to/config.jsonskills/kelly-legal-firm-radar/config.local.json~/.config/kelly-legal-firm-radar/config.jsonskills/kelly-legal-firm-radar/config.example.jsonas template only
Env priority:
- Existing environment variables
KELLY_LEGAL_FIRM_RADAR_ENV_FILE=/absolute/path/to/.env- Repository root
.env skills/kelly-legal-firm-radar/.env.local~/.config/kelly-legal-firm-radar/.env
Onboarding asks, turn by turn:
- casebase metadata source
- practice taxonomy and lawyer roster fields
- allowed metrics for internal management versus external brand use
- management report export preferences
Never ask the user to paste secret values into chat. Secrets belong only in local env files. When setup is complete and the user confirms, write:
{
"completed": true,
"completed_at": "ISO timestamp",
"config_version": "1"
}
Local App
Start the desk with:
skills/kelly-legal-firm-radar/app/start.sh
The app uses local HTTP on 127.0.0.1, preferring ports 3000 through 4000, or KELLY_LEGAL_FIRM_RADAR_UI_PORT when set. /api/state reports app: "kelly-legal-firm-radar".
Required app views:
#/overview: firm analytics desk with practice mix, outcome trends, talent signals, and review queue.#/review: approval queue for management insights, brand proof points, and staffing recommendations.#/items: insight workbench with methodology, evidence, suggested action, and visibility limits.#/checks: analytics QA checks for sample size, privacy, attribution, and unsupported claims.#/entities: lawyer and practice-area profile cards from anonymized metadata.#/settings: sanitized taxonomy, provider, and onboarding state.
Demo mode:
?demo=1or?demo=overviewopens deterministic mock legal data for documentation and testing.?demo=review,?demo=items,?demo=checks,?demo=entities, and?demo=detailselect named mock scenes.lang=enorlang=zhforces UI chrome language.- Demo API responses never read or write files under
app/.data/.
File Contract
Read references/firm-radar-schema.md before editing the app, scripts, or generated JSON.
app/.data/firm_radar_snapshot.json: canonical snapshot with analytics cards, review items, checks, metrics, and activity log.app/.data/decisions.json: reviewer verdicts keyed by review item id.app/.data/agent_tasks.json: queued agent revision work fromrequest_changesdecisions.app/.data/execution_report.json: dry-run/apply operations from approved decisions.app/.data/onboarding.json: onboarding completion marker.app/.data/agent.lock: temporary lock while the skill writes; write endpoints reject with HTTP 423 while it exists.
Validate with scripts/validate_ui_schema.ts before relying on a snapshot.
Inputs
- anonymized casebase metadata and approved case summaries
- lawyer roster and practice-area taxonomy
- management questions such as business layout, quality review, or brand proof points
- reporting period and visibility policy
Workflow
- Import anonymized metadata only: case type, court, outcome, lawyer/team, dates, and approved tags. Do not import raw confidential documents for management analytics.
- Prepare insight cards for business layout, quality review, talent planning, or brand proof points with methodology and caveats.
- Write or merge insight cards through scripts/importmetrics.ts, then validate with scripts/validateui_schema.ts.
- Send partners to #/review to approve, revise, request more data, or block insights before any report export.
- Run scripts/executedecisions.ts and export approved reports with scripts/exportmanagement_report.ts. External brand use needs separate explicit approval.
Review Gates
- Block or request changes when sample size is too small, anonymization is weak, methodology is unclear, lawyer attribution is unfair, or an external brand claim lacks public-citable proof.
- Approve only when the report states period, sample size, taxonomy, caveats, visibility, and whether each proof point is internal-only or public-citable.
- Export only approved or done reports. Keep internal management reports separate from external brand material unless partners explicitly approve the external use.
Scripts
scripts/generate_demo_snapshot.ts: write deterministic demo data intoapp/.data/firm_radar_snapshot.json.scripts/import_metrics.ts: merge agent-prepared or imported domain payloads into the snapshot.scripts/validate_ui_schema.ts: validate the local snapshot file contract.scripts/execute_decisions.ts [--apply]: dry-run or apply approved reviewer decisions with no external side effects.scripts/export_management_report.ts --out: export approved/done items as Markdown, JSON, and CSV handoff files.
Safety Defaults
- Do not rank lawyers or publish brand claims from small samples without caveats and partner approval.
- Use anonymized metadata for analytics; keep client names, raw documents, private financials, and privileged notes out of the dashboard.
- Treat talent, compensation, hiring, and external marketing claims as approval-required.
- If metrics are incomplete or biased, mark the insight as needing more data rather than overstating conclusions.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mr-kelly
- Source: mr-kelly/skills
- License: MIT
- Homepage: https://mr-kelly.github.io/skills/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.