---
title: "Declare which kind of source prevails over which"
method: POST
path: "/pots/{pot_id}/constitution/precedence-rules"
tags: ["pots"]
---

# Declare which kind of source prevails over which

`POST /pots/{pot_id}/constitution/precedence-rules`

## Request

- Base URL: `https://api.scipot.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.scipot.ai/pots/{pot_id}/constitution/precedence-rules`
- Auth: none declared
- TypeScript: <https://skmtc.dev/scipot/apis/scipot-core-api/docs/pots/:pot_id/constitution/precedence-rules/post.ts> (a function with typed inputs; its response is checked against the schema)

A new rule. It acts on every stored fact at the next read; nothing is rewritten.

## Path parameters

- `pot_id` string, uuid, required

## Request body

- PrecedenceRuleCreate: ``POST`` body: the rule and who acted, as the integrator knows them.
  - `over` SourceSelector, required: The facts a side of a rule covers: extracted from one of ``source_types`` (keys of the POT's source types) and carrying every tag in ``tags_all``.
    - `source_types` string[], required
    - `tags_all` string[]: Tags the fact must all carry (inherited from its document), e.g. `firmada`.
  - `under` SourceSelector, required: The facts a side of a rule covers: extracted from one of ``source_types`` (keys of the POT's source types) and carrying every tag in ``tags_all``.
    - `source_types` string[], required
    - `tags_all` string[]: Tags the fact must all carry (inherited from its document), e.g. `firmada`.
  - `later_only` boolean: Prevail only when the `over` fact starts holding after the `under` one (both valid_from known). False: prevail whatever the dates.
  - `tie` 'later_valid_from' | 'none': When a pair matches the rule both ways (overlapping selectors): the later valid_from prevails, or `none` (the pair is pending).
  - `effect` 'supersede' | 'flag_only': `supersede`: the other fact is not current. `flag_only`: nothing changes but the answer names the preferred fact.
  - `priority` integer: Lower is evaluated first.
  - `active` boolean
  - `axiom_id` string, nullable: The `rule` axiom that states it in prose, if there is one.
  - `updated_by` string, nullable

## Response `201`

Successful Response

- PrecedenceRule
  - `over` SourceSelector, required: The facts a side of a rule covers: extracted from one of ``source_types`` (keys of the POT's source types) and carrying every tag in ``tags_all``.
    - `source_types` string[], required
    - `tags_all` string[]: Tags the fact must all carry (inherited from its document), e.g. `firmada`.
  - `under` SourceSelector, required: The facts a side of a rule covers: extracted from one of ``source_types`` (keys of the POT's source types) and carrying every tag in ``tags_all``.
    - `source_types` string[], required
    - `tags_all` string[]: Tags the fact must all carry (inherited from its document), e.g. `firmada`.
  - `later_only` boolean: Prevail only when the `over` fact starts holding after the `under` one (both valid_from known). False: prevail whatever the dates.
  - `tie` 'later_valid_from' | 'none': When a pair matches the rule both ways (overlapping selectors): the later valid_from prevails, or `none` (the pair is pending).
  - `effect` 'supersede' | 'flag_only': `supersede`: the other fact is not current. `flag_only`: nothing changes but the answer names the preferred fact.
  - `priority` integer: Lower is evaluated first.
  - `active` boolean
  - `axiom_id` string, nullable: The `rule` axiom that states it in prose, if there is one.
  - `id` string, required
  - `created_at` string, required
  - `created_by` string, nullable
  - `updated_at` string, required
  - `updated_by` string, nullable

## Other responses

- `404`: POT not found
- `409`: `PRECEDENCE_RULE_CYCLE` or `PRECEDENCE_RULES_BUSY`
- `422`: `PRECEDENCE_RULE_SOURCE_TYPE` (not an active source type of the POT), `PRECEDENCE_RULE_OVERLAP`, `PRECEDENCE_RULE_LIMIT`

## Changes

- **2026-10-14** `34be7df24641`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/scipot/apis/scipot-core-api/changes/pots/:pot_id/constitution/precedence-rules/post.md)

---

[API](https://skmtc.dev/scipot/apis/scipot-core-api.md) - [All operations](https://skmtc.dev/scipot/apis/scipot-core-api/llms.txt) - [OpenAPI document](https://skmtc.dev/scipot/apis/scipot-core-api/revisions/7620af82156a?raw)
