Skip to content
View Danielkgr's full-sized avatar

Block or report Danielkgr

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Danielkgr/README.md

Daniel Glynn-Roe

Lawyer and tinkerer in Melbourne

I build AI systems for legal work, and the measurement that decides whether a model can be trusted with it.

Python TypeScript Next.js React FastAPI Hugging Face Transformers pytest


Most AI writing reports the systems that work. In legal practice the work that matters is the distance between a model that sounds authoritative and a model that is correct. That gap is where the risk sits, and it has to be measured rather than assumed.


Selected work

🟢 published with results, 🟡 working prototype, ⚪ built but not yet measured

Project What it is Where it stands
auslawexam‑bench A reproducible benchmark of Australian legal reasoning for LLMs. Its headline metric is how often a model invents a citation, which is the exposure a law firm actually carries. 🟡 16 provisional questions and 87 tests. The whole pipeline runs offline on a deterministic mock, and each commercial model slot switches on with its API key.
Contract‑clause‑classifier A zero-shot LLM against a fine-tuned transformer on CUAD contract clauses, compared on precision, recall, F1, cost, and latency. It is framed as a build-or-buy decision. ⚪ Runs end to end on CUAD with a test model, with 28 tests. No comparison run has been published yet.
legislation‑monitor Change detection over Commonwealth and Victorian legislation. It fetches each Act on request, hashes the text, diffs it against the last version, and shows the amendment, so finding a change no longer means rereading the Act. 🟡 Runs locally against both official registers, with 22 tests.
legal‑rag‑evaluation Hybrid retrieval over Australian statute, with a local OpenAI-compatible backend and an evaluation that says plainly what it has and has not run. 🟡 One two-Act run is committed with its provenance. A hand-written routing probe put the right Act first in 7 of 8 queries.
local‑llm‑inference‑notes Fifteen measurement investigations from one workstation, eight of them negative. The method the rest of the work leans on. 🟢 Published, with the written method and the five tools that enforce it.

What I bring to legal engineering

Capability In practice Where to look
Evaluation before deployment Measurement that says whether a model is safe to rely on, beyond whether it sounds right. I declare noise bands before the run, build benchmarks that reproduce, and count invented citations. auslawexam‑bench, local‑llm‑inference‑notes
Grounded retrieval for legal text Retrieval over statute that keeps each section whole and pairs vector search with keyword matching, so that an answer traces to the provision behind it. A citation that matches no known authority is counted as invented. legal‑rag‑evaluation, auslawexam‑bench
Provenance a regulated firm can audit Content-hashed questions, append-only runs, contamination canaries, and every score kept next to the raw output it came from. auslawexam‑bench
Full-stack delivery The data pipeline and the model, then the FastAPI backend and the React and TypeScript interface a practitioner uses. legislation‑monitor, Contract‑clause‑classifier, auslawexam‑bench

How I work

I declare noise bands and success criteria before a run. A band chosen after seeing the numbers is a rationalisation. The rules are written down in METHOD.md for the inference notes and METHODOLOGY.md for the benchmark.

Negative results get published. Eight of the fifteen inference investigations end in no, and several of them overturned a claim the repository had already made.

Every benchmark, prompt, and published result is a commit, so any number in a README traces back to the code and the run that produced it.

Pinned Loading

  1. local-llm-inference-notes local-llm-inference-notes Public

    Measurement notes and tools from a local LLM and diffusion stack on consumer AMD hardware. Pre-registered noise bands, deterministic evaluation, and null results reported as plainly as positive ones.

    Python 1

  2. ComfyUI-GGUF ComfyUI-GGUF Public

    Forked from molbal/ComfyUI-GGUF

    GGUF Quantization support for native ComfyUI models

    Python