lawve-ai/legal-analysis-forge-oliver-schmidt-prietz
EU Digital Regulation Legal Analysis Forge — generates a tailored expert prompt for structured legal analysis of an EU digital-regulation document, optionally executes it in-session, and always produces a plain-English explainer alongside the formal output. Handles Regulations, Directives, Commission Guidelines, EDPB Opinions, CJEU and AG judgments, national DPA decisions, codes of conduct, and draft consultations across the EU digital stack.
npx skills add https://github.com/lawve-ai/awesome-legal-skills --skill legal-analysis-forge-oliver-schmidt-prietz
A prompt generator for structured legal analysis of EU digital regulation documents. The skill characterises a document, elicits the desired outcome and audience, and produces a tailored expert prompt. It optionally runs the prompt in-session and supports refinement.
Invoke when the user:
Do not invoke when:
EU digital regulation only. Covers: GDPR, AI Act, Data Act, DGA, DSA, DMA, NIS2 (and Member State implementations including BSIG-neu), ePrivacy, CRA, DORA, eIDAS 2.0, PLD (Dir. 2024/2853), AI Liability Directive (when adopted), and adjacent secondary instruments (delegated acts, implementing acts, harmonised standards under Art. 40 AI Act and equivalents, codes of conduct under Art. 40 GDPR / Art. 56 AI Act / Art. 45 DSA). Out of scope: competition, IP, tax, employment, sectoral law not touching the digital stack.
Six steps. Steps 5 (Execute) and 6 (Refine) are optional and skipped where not needed. Skip elicitation where the answer is clear from the conversation; the goal is the minimum number of questions consistent with a precise prompt.
Read the document. Sources:
pdf-processing-anthropic skill if the file is not already in contextWebFetch; if the URL is an EUR-Lex page, prefer the CELEX-linked HTMLIf the document is long, read at minimum: title, recitals, all substantive articles, annexes referenced in the substantive provisions, final provisions (entry into force, transitional, review), and any disclaimers limiting scope.
Freshness check (automatic for drafts and consultation documents): where the document is a draft, a public consultation version, a Commission proposal, or any text labelled as preliminary, run a freshness check against authoritative sources (see Live research protocol below) before proceeding. The user may have provided a superseded version. If a finalised or later version exists, surface it and ask: *"Proceed with the version you provided, the later version, or both?"* Do not silently substitute documents.
Produce a structured one-screen characterisation. Load references/document_taxonomy.md for the catalog and characterisation signals. Required fields:
Present the characterisation to the user and ask: *"Is this characterisation correct? Anything missing or misclassified?"* Adjust before proceeding.
Ask at most three questions. Skip any answered in prior context. The single mandatory question is outcome type.
references/outcome_templates.md: stakeholder consultation response, internal compliance memo, external client memo, public commentary (LinkedIn / blog / newsletter), conference talk preparation, internal risk assessment, litigation brief input, comparative analysis, horizon-scan entry, skill input.Optional follow-ups, asked only when unclear:
references/analytical_canon.md)Load references/outcome_templates.md and references/analytical_canon.md. Assemble the prompt with the following blocks in order:
outcome_templates.md)analytical_canon.md plus document-specific scrutiny points from Step 2analytical_canon.mdanalytical_canon.mdoutcome_templates.md)analytical_canon.mdSave the prompt to ./[doc_slug]_prompt_[outcome_slug].md in the user's current working directory (or to a target directory the user has specified). Present the file. Also output the prompt inline in chat so the user can copy it directly.
doc_slug is a stable, descriptive slug derived from the document title (e.g. ai_act_art6_high_risk_guidelines_draft_2026). outcome_slug is short (e.g. consultation, memo, linkedin_de, briefing).
If the user signals they want the analysis run in-session, use the generated prompt to produce the analysis directly. Save to ./[doc_slug]_analysis_[outcome_slug].md in the user's current working directory and present.
Alongside the formal analysis, always produce a plain-English explainer for the user of the skill:
./[doc_slug]_plain_english_[outcome_slug].md in the user's current working directoryAfter producing both, offer integration into the formal deliverable in any of the following forms (the user decides):
If running the analysis, apply the self-check protocol from analytical_canon.md before delivery. Do not skip this step.
Handle refinement requests without restarting the workflow. Common requests:
outcome_slug accordingly.analytical_canon.md; preserve all citations in original form.Save refinements with _v2, _v3 suffixes. Keep prior versions; do not overwrite.
The skill offers live research on authoritative sources whenever the AI's training data is at risk of being stale, incomplete, or unverifiable. The goal is to prevent reliance on potentially outdated training data in legal output.
Live research is opt-in. Where the skill offers it and the user declines, the skill flags the gap explicitly in the output rather than guessing.
Primary EU sources (cite directly):
eur-lex.europa.eu — Official Journal, EU instruments, consolidated texts, CELEX recordscuria.europa.eu — CJEU and General Court judgments, AG Opinions, Ordersedpb.europa.eu — EDPB guidelines, opinions, binding decisionsec.europa.eu and its sub-domains — Commission communications, guidelines, draft actsdigital-strategy.ec.europa.eu — AI Office outputs, AI Act resourcesenisa.europa.eu — ENISA guidance (NIS2, CRA)berec.europa.eu — BEREC outputsconsilium.europa.eu and europarl.europa.eu — Council and Parliament documents during legislative procedurePrimary national sources (cite directly):
Permitted for context only (do not cite in place of primary):
Excluded:
For draft consultation documents, Commission proposals, and any text labelled as preliminary, the freshness check in Step 1 runs without user prompting:
If live research returns inconclusive results (no clear authoritative answer, conflicting sources, source unreachable), report the inconclusiveness and fall back to flagging the gap. Never extrapolate from inconclusive research to a definitive citation.
If the characterisation surfaces a downstream operational task, suggest the relevant existing skill rather than absorbing the task into this one:
The suggestion is offered after the analysis is delivered, not before — the analysis comes first.
All outputs are written to the user's current working directory unless the user specifies a target directory. Naming:
[doc_slug]_prompt_[outcome_slug].md — generated prompt[doc_slug]_analysis_[outcome_slug].md — executed analysis[doc_slug]_characterisation.md — optional, the Step 2 output saved as a standalone artifact when the user wants itUse _v2, _v3 for refinements. Stable slugs across versions allow tracking a single document through multiple analyses.
references/analytical_canon.md; overridable on request.references/outcome_templates.md are defaults, not constraints. Adjust to the length of the source document and the depth of the task.references/analytical_canon.md. The skill enforces those rules in every executed analysis.references/document_taxonomy.md — instrument types, binding force, characterisation signals, what to look for per typereferences/outcome_templates.md — prompt skeletons per outcome type with roles, structures, and registersreferences/analytical_canon.md — general legal interpretation rules, register constraints, citation conventions, self-check protocol, bilingual handlingThis skill works standalone. Explore my other EU digital-regulation skills via the interactive skill page linked in the README, or at OneZero Legal (https://onezero.legal).
Take lawve-ai/legal-analysis-forge-oliver-schmidt-prietz from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.