---
name: jura
description: >
  Local legal AI toolkit router (evid, did, hudoc, lawcite, domdb).
  evid is the main tool. Open one leaf skill after picking the branch. Do not load all leaves.
  Run evid as `evid --db evid` so the set lands in the working directory.
---

# jura

Five local CLIs. **Map only.** Pick one row, then open that leaf.

**evid** is the main tool. A **pass** is a named job on one doc; they accumulate beside it. Chat does not keep that ledger: that is the issue where putting the evid db in the working directory pays off.

Flags live in the tool (`<tool> -h` / `<tool> -j`). This file does not cache them.

## Track the matter in Git

Use Git as the matter history.

1. Run `git status` in the working directory. Initialize a repository there when none exists.
2. Preserve pre-existing changes. Stage only files created or changed for the current job.
3. Review `git diff`, then commit each coherent milestone with a short description of the work.
4. Keep identity maps, credentials, and excluded sensitive originals out of Git. Add local exclusions to `.gitignore` before the first checkpoint.

The job is tracked when its changes appear in a scoped commit and the remaining working tree state is reported to the user.

## evid db in the working directory

Two locations. `evid/` in the working directory, belonging to this matter. `~/.local/share/evid` in the home directory, shared by every matter.

Both sit on the same disc, so "local" does not decide between them. A pass written to the home directory is not part of the matter. A pass that lived only in chat is gone. The working directory is the one that travels with the folder.

The command is `evid --db evid`. Never bare `evid`: bare `evid` writes to the home directory and the set never joins the matter.

The first evid call in a matter creates the db:

```bash
evid --db evid set create
```

Every later call carries the same flag:

```bash
evid --db evid doc add <pdf-or-url>
evid --db evid doc list
evid --db evid set gather <dataset> -o refs.yml
```

Before reporting a set created, confirm `evid/sets/` exists in the working directory. A call that ran without `--db evid` wrote to the home directory. Re-run it with the flag.

The set is then part of the matter folder, commits with it under the section above, and reopens with the folder on another machine. `evid set track` git-tracks a set on its own. Open the evid leaf for the pass loop.

Use `~/.local/share/evid` only when the user asks for the shared database in so many words.

## Map

| Need | Tool | Open |
|---|---|---|
| Evidence set: ingest, analysis pass, label, search, gather | [`evid`](https://github.com/evidlabel/evid) | [evid/SKILL.md](https://github.com/evidlabel/evid/blob/master/SKILL.md) |
| PII: pseudonymize before a model | [`did`](https://github.com/evidlabel/did) | [did/SKILL.md](https://github.com/evidlabel/did/blob/main/SKILL.md) |
| HUDOC / CoE download | [`hudoc`](https://github.com/evidlabel/hudoc) | [hudoc/SKILL.md](https://github.com/evidlabel/hudoc/blob/master/SKILL.md) |
| Danish statute → paragraph cites | [`lawcite`](https://github.com/evidlabel/lawcite) | `lawcite -h`, no skill |
| Danish verdicts (Domsdatabasen) | [`domdb`](https://github.com/evidlabel/domdb) | `domdb -h`, no skill |
| Keys-only Typst from the set | [`labquote`](https://github.com/evidlabel/skills/tree/master/skills/labquote) | [labquote/SKILL.md](https://github.com/evidlabel/skills/blob/master/skills/labquote/SKILL.md) |
| Dated arguing memo | [`memo`](https://github.com/evidlabel/skills/tree/master/skills/memo) | [memo/SKILL.md](https://github.com/evidlabel/skills/blob/master/skills/memo/SKILL.md) |

One leaf per run. Sibling skills stay closed. Every `evid` line runs as `evid --db evid`.

## Install the picked tool

```bash
uv tool install "evid @ git+https://github.com/evidlabel/evid.git"
uv tool install "did[models] @ git+https://github.com/evidlabel/did.git"
uv tool install git+https://github.com/evidlabel/hudoc.git
uv tool install git+https://github.com/evidlabel/lawcite.git
uv tool install git+https://github.com/evidlabel/domdb.git
```

Install the one you opened. `typst` on PATH for evid label/gather. `did` needs a desktop for the GUI. `domdb` needs Domsdatabasen API credentials.

## After an evid set exists

Typst from the set is **labquote** (gather → keys-only `.typ`). Open [labquote/SKILL.md](https://github.com/evidlabel/skills/blob/master/skills/labquote/SKILL.md). When the document argues, open [memo/SKILL.md](https://github.com/evidlabel/skills/blob/master/skills/memo/SKILL.md).

## Done

A leaf is open, or the user has the install command for the row they picked. Where evid ran, `evid/sets/` exists in the working directory. Verify every output against the original source.
