Docs menu
Get started
Quickstart Install: Claude Code Install: Codex Install: other clients API keysConcepts
How a run works The app profile The severity model What a run does not sayTools
check_access claim_trial_key set_profile run_lint get_law resolve_domain_jurisdiction submit_feedback upload_lint_runGuides
A whole run, end to end Console TestPack in CIReference
Endpoint and transport lexlint.yml schema Errors ChangelogHelp
Support and feedbackTools
upload_lint_run
Send a finished run to my.lexlint.io, after you have seen it.
What it does
It writes one complete lint run to the LexLint portal, filed under the UnGovr
account your key belongs to, and hands back the portal URL. The full form takes
payload, the versioned upload record the skill assembles: the manifest,
findings, work items and run envelope, and never the API key, source files, prompts,
transcripts or git identity. The compact form takes the fields in the table below.
An agent should run it only after you have seen the preview of exactly what will leave the repository and said yes explicitly, this session. It should never volunteer it, never run it because the plugin is installed, and never run it in a headless or CI session where nobody can approve anything. Uploads are idempotent: re-sending the same run answers with the same record rather than storing a duplicate, so a retry after a dropped connection is always safe.
It is deliberately not runnable from the console,
for the same reason as submit_feedback: the whole point of the tool is that
you approved the exact payload first, and a playground exploring it cannot supply that
approval.
Parameters
| Name | Type | Required | What it takes |
|---|---|---|---|
app_name | string | no | Compact form. The repository's own name. |
app_repo | string | no | Compact form, optional. The repository URL. |
app_scope | string or object | no | Compact form, optional. What this run read when it was not the whole repository: one directory as a string, relative to the repository root, or the manifest's scope object, {include: [...], exclude: [...]}, when it read several. A one-off scope is never written to the manifest, and an upload without it is captioned as the whole repository. |
activities | string[] | no | Compact form. The declaration run_lint ran on. |
jurisdictions | string[] | no | Compact form. The declaration run_lint ran on. |
public_sector | string[] | no | Compact form. The declaration run_lint ran on. |
corpus_built_at | string | no | Compact form. corpus_built_at from the run_lint reply the developer approved. |
run_at | string | no | Compact form. run_at from that same reply. The rebuild is judged at this instant, because a finding's kind and severity move with the clock as well as with the law library. |
work_items | object[] | no | Compact form, optional. The developer's own triage. |
vanished | object[] | no | Compact form, optional. Findings an earlier run carried and this one does not. |
findings_state | object | no | Compact form, optional. The developer's per-finding triage, keyed by finding id, each value holding any of state, where, note and handled_by. Applied to the rebuilt findings by id; an id this run does not carry is refused, because that triage is another run's. |
client_version | string | no | Compact form, optional. The bundle version that ran the lint, stored with the run. A bundle whose server entry sends it as the X-LexLint-Bundle header on every call need not repeat it here. |
payload | object | no | Full form. The complete ungovr.lexlint-upload/1 object: schema, generated_at, client_version, record. payload_hash is optional: the server derives it from record, and one you send must match it exactly. |