Minimum team artifact standard
Version 0.1 (for Legal Copilot Ukraine pilots)
This standard builds on the VeriLex object model (concept v0.2), which is based on JSON Schema 2020-12.
1. Purpose and principles
The standard defines the minimum requirements for a work package (Legal Work Package, LWP) — the unit of team handoff for the results of legal work. Principles:
- Open formats. Markdown, JSON/JSONL, YAML, CSV, Mermaid, Git. No proprietary containers; the package is readable by a human in any editor and by an agent in any environment.
- Proportionality. Three levels of detail (basic / extended / audit); the level is chosen by the cost of error, not "just in case".
- Verifiability over completeness. Every mandatory element exists because someone checks it — a human or an agent.
- Interoperability. A package assembled in one agent environment (OpenAI Codex, Anthropic Claude Code, open equivalents) must be accepted and verified in any other. The standard relies only on ready, industrially operated environments — there is no need to develop custom software for working with packages, and the standard can be applied starting today.
- No source, no strong conclusion. The agent proposes — the human decides.
2. Eight artifact types (the core of the standard)
Inherited from the VeriLex v0.2 object model:
| Type | File | Purpose |
|---|---|---|
source_registry | sources/source-registry.json | Registry of sources: what the work is based on, with identifiers, dates, and access statuses |
evidence_pack | sources/evidence-pack.jsonl | Extracted evidentiary fragments anchored to a specific place in a specific source |
fact_matrix | analysis/fact-matrix.json | Facts with statuses, separated from legal assessments |
rules_matrix | analysis/rules-matrix.json | Applicable rules and criteria (with editions and effective dates) linked to facts |
issue_tree | analysis/issue-tree.json | Tree of legal issues: analysis as a set of verifiable questions |
critique_pack | analysis/critique-pack.json | Weak points, counterarguments, alternative positions — mandatory for every serious conclusion |
decision_log | logs/decision-log.json | Log of key decisions: forks, alternatives, uncertainty, who confirmed |
handoff_package | handoff/handoff.json | Handoff package: what was done, what was checked, what is disputed, what the next person should do; references specific artifact versions |
3. The common metadata envelope
Every artifact carries an envelope:
artifact_type: fact_matrix # one of the 8 types
schema_version: "0.1" # version of the standard schema
matter_id: MAT-2026-0042 # matter/case identifier
version: 3 # integer increment; versions are immutable
created_at: 2026-07-10T14:30:00+03:00
created_by:
actor: "О. Шевченко"
actor_type: human # human | agent | joint
agent_env: "claude-code 2.x" # if an agent took part
review_status: human_confirmed # draft | agent_generated | human_review_pending |
# human_confirmed | returned_for_rework | archived
depends_on: # which input versions it was assembled from
- fact_matrix@2
- rules_matrix@1
model_call_refs: [] # references to the model-call log (audit level)
confidentiality: institutional # public | institutional | confidential
language: uk
4. Fact statuses (the canonical set)
alleged · established · disputed · inferred · missing (no data) · rejected · excluded.
Invariants:
establishedrequires ≥1 linked piece of evidence fromevidence_packand human confirmation;- a conclusion resting only on
alleged/inferredfacts may not be marked as strong; - every material statement in the final text references a
fact_id/rule_id/source_id.
5. The provenance chain
source → evidence → fact → rule → issue → conclusion → decision_log → handoff
The links are stored in the artifacts themselves (fields source_id, evidence_ids, fact_ids, rule_ids, issue_id) and form a verifiable graph. A validator must be able to build the graph and find: dangling conclusions (without grounds), unused sources, breaks in the chain, and cycles.
6. The three package levels
Basic (day-to-day work)
Mandatory: final/ (text) + source_registry + key facts (a simplified fact_matrix) + a brief verification log + open-questions.md.
Extended (complex research)
Basic + full fact_matrix, rules_matrix, issue_tree, critique_pack, an evidence table, a link graph (reasoning-graph.mmd), and a verification protocol.
Audit (high cost of error)
Extended + decision_log with confirmation fields, an activity log (activity.jsonl), model/instruction identifiers (model_call_refs, instruction version), file checksums (checksums.sha256), participant roles, and a snapshot of the package at the moment of decision.
7. Mandatory checks on package intake
The receiving side (its agent) performs at minimum:
- Schema validation of all JSON/YAML artifacts.
- Chain check: no strong conclusions without grounds (
check_unsupported_claims). - Citation check: extracted fragments match the primary sources (
validate_evidence_links). - Date check: rule editions are valid as of the legally relevant dates (
date-check). - Confidentiality check: the package contains no data prohibited from transfer at this level (
redaction-check) — the Ukrainian sensitive-data dictionary: taxpayer numbers (РНОКПП/ІПН), passport data, addresses, banking details, medical and attorney-client privilege. - Handoff completeness check: unresolved questions and the next step are specified.
A package that fails checks 1–3 is returned automatically with a structured list of blockers (this is not a "rejection" but a normal cycle).
8. Rules of assembly and intake
- Artifact versions are immutable; a correction = a new version. Past versions are not deleted but archived.
- A
handoff_packagereferences specific versions (fact_matrix@4), not the "latest state". - Comments are filed as a
critique_packaddressed to specific elements (fact_id,conclusion_id) — not as prose in an email. - The final document (
final/*.md) is a derived artifact: if the text and the matrices diverge, the matrices take priority; a divergence = a package defect. - Languages: artifacts in the working language (uk), metadata and keys in Latin script per the standard; a parallel
_enfield is allowed. - The package lives in the matter's Git repository; the tag
handoff/<n>marks the moment of handoff.
9. Package quality metrics
| Metric | Formula | Pilot target threshold |
|---|---|---|
| Source coverage | share of material statements linked to sources | ≥ 90% |
| Unsupported claim rate | share of strong conclusions without grounds | → 0 |
| Handoff completeness | share of handoffs accepted without return on formal grounds | ≥ 80% |
| Time to review | median time for the recipient to review a package | ↓ ≥ 50% vs baseline |
| Reproducibility score | share of conclusions with a recoverable "which input versions" chain | ≥ 95% |
10. Status and evolution of the standard
Version 0.1 is a starting point for the pilots; it is deliberately minimal. Changes go through a PR to the open repository (positioning is described separately); every schema change = an increment of schema_version + a migration note. The full JSON schemas of the eight artifacts already exist in the VeriLex object model and are being migrated into the open repository as a normative appendix to this standard; for a filled-in package, see the example artifact package.