On this page

skryba style and skryba language

The catalog holds every style and every output language a rewrite can require. Each entry is a name and an instruction: the name is what rewrite --style or --language takes, and the instruction is what the generator writes to and what the quality judge checks every candidate against. Adding a register or a language is one command; nothing is compiled or released.

Store

The catalog is the choices table of Skryba's fleet database, in the schema skryba or the one SKRYBA_DATABASE_SCHEMA names. Skryba keeps no catalog file.

CREATE TABLE skryba.choices (
  kind TEXT NOT NULL,          -- style | language
  name TEXT NOT NULL,
  instruction TEXT NOT NULL,
  created_at BIGINT NOT NULL DEFAULT extract(epoch FROM now())::BIGINT,
  updated_at BIGINT NOT NULL DEFAULT extract(epoch FROM now())::BIGINT,
  PRIMARY KEY (kind, name)
);

A new schema starts with the styles preserve, academic, message and the languages preserve, pl, en (their instructions are summarised on the rewrite page). They are written once, together with a row in catalog_seeded, and are then ordinary rows: change them, remove them, and a removed one does not come back. preserve can be changed but not removed, because it is what a rewrite uses when it names no style or no language.

No command here reads a model or detector credential or calls Brama or a detector.

Commands

skryba [GLOBAL OPTIONS] style list
skryba [GLOBAL OPTIONS] style show <NAME>
skryba [GLOBAL OPTIONS] style add <NAME> --instruction <TEXT>
skryba [GLOBAL OPTIONS] style edit <NAME> --instruction <TEXT>
skryba [GLOBAL OPTIONS] style remove <NAME>

skryba language takes the same five commands. A name is lowercase ASCII letters, digits and hyphens, starting with a letter; its length is not limited. An instruction is trimmed; it should say both what to write and what not to invent, because the judge fails a candidate that does not follow it.

skryba style add status-update --instruction "Write a short status update for a colleague: the result first, then the limits and the next step. Keep every number, identifier, citation and URL exactly. Invent no greetings, names, dates or commitments."
skryba language add de --instruction "Write in German. Translate the passage if necessary while preserving its meaning and degree of certainty. Preserve proper names, citation identifiers, URLs, code, and verbatim quotations where their exact form matters."
skryba --minimum-quality <Q> rewrite draft.txt --generator brama --style status-update --language de \
  --candidates <N> --max-words-per-chunk <N> --temperature <T> --seed <N>

Output

Every command prints one JSON object of the same shape:

action        list | show | add | edit | remove
kind          style | language
store         stado://database/skryba/<SCHEMA>
choice        the entry shown, added, changed or removed (absent for list)
choices[]     every entry, alphabetical (list only)
changed       edit only: false when the new instruction equals the old one

An entry is {name, instruction, created_at, updated_at}, with Unix-second timestamps. A rewrite report copies the resolved names and instructions into profile, so it still states what the run was held to after the catalog changes.

Refusals

Each exits 1 and leaves the rows unchanged; <STORE> is stado://database/skryba/<SCHEMA>:

  • style name "<NAME>" is not valid: use lowercase letters, digits or hyphens, starting with a letter
  • style "<NAME>" needs an instruction: pass --instruction with the text the generator and the judge must follow
  • style "<NAME>" already exists in <STORE>; change it with `skryba style edit <NAME> --instruction <TEXT>`
  • style "<NAME>" is not in <STORE>; available styles: <NAMES>; add it with `skryba style add <NAME> --instruction <TEXT>` — from show, edit, remove, and from rewrite --style
  • style "preserve" is what every rewrite uses when it names no style, so it cannot be removed; change it with `skryba style edit preserve --instruction <TEXT>`

language refusals are the same sentences with language and languages. A failure to reach the database names its step (resolving, Skarbiec, connecting, creating the catalog); skryba database check reports the same steps.

Skryba Desktop runs these commands from Styles & languages and fills its Rewrite pickers from list.

Maintained as part of the website-owned Skryba documentation corpus.