docs← Back to article

Markdown for LLMs

Arxo package question catalog 0.1

The source Markdown for this article. Copy it into your assistant or download it as a text file.

Download this articlePlain text ↗
# Arxo package question catalog 0.1

Authoring input for the question catalog: which queries are provided for the package and what verifies them. A card is a parameterized query template with a stable id, not an "answer": a card's presence does not mean a positive answer on the case, completeness of the law, or sufficiency of the facts submitted. Metadata, not semantics: not lowered into CLIR, not included in the package hash. The schema is closed; substantive links (the predicate is declared and derivable, the test executes exactly this template, the boundary is named in the package info) are held by a repository gate.

## Versions

Accepted `format`: `law.package-questions/0.1`.

## Top-level fields

| name | type-or-$ref | required | description |
|---|---|---|---|
| `format` | `"law.package-questions/0.1"` | yes | — |
| `package` | `string` | yes | Package name from law.toml [package].name. |
| `tasks` | `array` | yes | — |
| `questions` | `array` | yes | — |
| `boundaries` | `array` | yes | — |
| `internal` | `array` | yes | Derivable predicates without their own card — listed by name, with a reason. A wildcard for "everything else internal" is not provided. |
| `language` | enum (2) | no | Language of the QUESTIONS.md wrapper: ru by default. Packages published as a separate repository do not carry a second language (en). |

## Enumerations

| location | values |
|---|---|
| `properties/format` | `"law.package-questions/0.1"` |
| `properties/language` | `"ru"`, `"en"` |
| `$defs/Parameter/properties/role` | `"bound"`, `"collected"` |
| `$defs/Question/properties/kind` | `"truth"`, `"why_not"`, `"collect"`, `"positions"` |
| `$defs/Question/allOf/0/if/properties/kind` | `"positions"` |
| `$defs/Question/allOf/1/if/properties/kind` | `"collect"` |
| `$defs/Question/allOf/1/then/properties/parameters/contains/properties/role` | `"collected"` |
| `$defs/Question/allOf/1/else/properties/parameters/items/properties/role` | `"bound"` |
| `$defs/Boundary/properties/reason_kind` | `"source_delegates"`, `"not_formalized"`, `"engine_limit"`, `"case_data"`, `"open_reading"` |

## Raw schema

[`https://law.arxo.io/schema/package-questions.schema.json`](https://law.arxo.io/schema/package-questions.schema.json)

## `Id`

Type: `string`.

## `Name`

Type: `string`.

## `NormName`

Short norm template name; expand instances add path segments (`InsurerMustPayWithinTerm/duty/norm`).

Type: `string`.

## `SourceUnits`

Identifiers of sources.law fragments (CLIR `fragment` nodes) without a namespace.

Type: `array`.

## `Parameter`

Type: `object`.
Required: `name`, `type`, `role`.

| name | type-or-$ref | description |
|---|---|---|
| `name` | [`#/$defs/Name`](#name) | — |
| `type` | `string` | Short type name of the declaration (after `#`). |
| `role` | enum (2) | bound — supplied by the asker; collected — gathered by the answer (only for kind=collect). |

## `Question`

Type: `object`.
Required: `id`, `task`, `question`, `kind`, `template`, `tests`.

| name | type-or-$ref | description |
|---|---|---|
| `id` | [`#/$defs/Id`](#id) | — |
| `task` | [`#/$defs/Id`](#id) | — |
| `question` | `string` | The question in Russian, phrased as an insurer, injured party, or agent would ask it. |
| `kind` | enum (4) | — |
| `predicate` | [`#/$defs/Name`](#name) | — |
| `norms` | `array` | — |
| `parameters` | `array` | — |
| `template` | `string` | The query template in `evaluate …;` form with `<name>` placeholders for bound parameters; for positions — `evaluate positions();` and the expected form `position(<norm>, <status>)`. |
| `branches` | `array` | — |
| `tests` | `array` | Titles of `test "…"` in the package's tests/**/*.lawtest that execute a query of this template. |
| `cases` | `array` | Names of `[[cases]]` cases in the teaching packages examples/*/law.toml. |
| `queries` | `array` | Files examples/*/queries/<name>.json of the same kind and predicate. |
| `evidence` | `array` | — |
| `source_units` | [`#/$defs/SourceUnits`](#sourceunits) | — |
| `related_boundaries` | `array` | — |
| `notes` | `string` | — |

## `Boundary`

Type: `object`.
Required: `id`, `task`, `question`, `reason_kind`, `limitation`, `source_units`.

| name | type-or-$ref | description |
|---|---|---|
| `id` | [`#/$defs/Id`](#id) | — |
| `task` | [`#/$defs/Id`](#id) | — |
| `question` | `string` | A question the package does NOT answer. |
| `reason_kind` | enum (5) | source_delegates — the source delegates elsewhere; not_formalized — the norm exists in the text but has no rules yet; engine_limit — a limitation of the language or engine; case_data — data is needed that the case does not carry; open_reading — an open interpretation question with an adopted reading. |
| `limitation` | `string` | Verbatim string from the package's package-info.json `limitations`: a single limitation text, not a third copy. |
| `source_units` | [`#/$defs/SourceUnits`](#sourceunits) | — |
| `input` | [`#/$defs/Name`](#name) | The empirical predicate through which the missing piece is supplied as a case fact. |
| `related_question` | [`#/$defs/Id`](#id) | — |
| `notes` | `string` | — |