---
title: "ADR-214: Approved skill versions instruct, load on demand and run processes"
manual: "LLM Foundation"
version: "0.44"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-llm:adr-214@0.44"
source: "Adr/Adr214ApprovedSkillVersionsInstruct.rst"
rendered: "2026-11-12T17:35:48+00:00"
---

# ADR-214: Approved skill versions instruct, load on demand and run processes {#adr-214}

-   *Status:*

    Accepted (item 10 amended: the API shape and the lineage store;
    a running process governs sequence and answer structure — see the
    [amendment of 2026-10-22](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-214-amendment-process-precedence@0.44);
    "keep" is a third denial reason — see the
    [amendment of 2026-10-24](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-214-amendment-keep-reason@0.44); a
    proposal carries a length only against a configured range — see the
    [amendment of 2026-10-30](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-214-amendment-length-only-with-range@0.44);
    the reads beside a question run before a process pauses — see the
    [amendment of 2026-10-31](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-214-amendment-reads-beside-a-question@0.44))

-   *Date:* 2026-10-08
-   *Amended:*

    2026-10-18 by [ADR-228](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-228@0.44); 2026-10-25 by
    [ADR-229](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-229@0.44) (items 1 and 3: the frontmatter's `page` is
    stored and editable like the process marker, but is not part of the
    version)

-   *Amends:*

    [ADR-036](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-036@0.44) (item 3 and the tail drop of item 5, for
    skills approved as instructions; item 6: the integrity check compares a
    version digest over body and frontmatter fields, kept in a new column);
    [ADR-035](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-035@0.44) (items 4 and 5: change detection compares that
    version digest, so a frontmatter-only change is a change);
    [ADR-061](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-061@0.44) (items 1 and 4: the trust level also decides the
    framing, and backend-authored skills are admitted by their source's
    level); [ADR-038](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-038@0.44) (item 5: the allow-list is resolved once
    per run over every effective attached skill); [ADR-031](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-031@0.44) (a
    caller's system message keeps snippet text an administrator marked, on
    configurations that opt in); [ADR-200](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-200@0.44) (a denial carries an
    enumerated reason); [ADR-165](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-165@0.44) (resume also re-reads the
    invoked skill and intersects the stored allow-list);
    [ADR-169](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-169@0.44) (section 4: the exclude list grows by the skill
    and skill-source fields of item 3); [ADR-084](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-084@0.44) (in a run
    holding a process pin, in a turn that suspends for approval, the turn's
    non-remote reads that need no approval execute before the suspend and
    every other call is refused); [ADR-105](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-105@0.44) (in such a run, a
    turn that pauses for input settles the calls beside the question the same
    way); [ADR-136](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-136@0.44) (an approval-bound
    write tool also returns its pending target as structured values next to
    the preview); [ADR-130](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-130@0.44) (the approve grant does not open a
    run holding a process pin); [ADR-172](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-172@0.44) (on such a run the
    four-eyes pin rule is checked before the self-approval refusal and stops
    the run); [ADR-182](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-182@0.44) (`withWriteTarget()` takes a
    completeness, and the write step carries it and a hook-failure flag); [ADR-150](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-150@0.44)

-   *Authors:* Netresearch DTT GmbH

Approved skill versions may supply instructions, load on demand and pin a
process across runs. Approval applies to a version digest over body and
frontmatter; a manifest body fingerprint alone is not approval or a publisher
signature. Later amendments refine lineage and process precedence.

Use these current guides:

-   Approve or revoke a version: [Approving a skill version as an instruction](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-skills-approval@0.44).
-   Attach and load skills: [Attaching skills and injecting them into prompts](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-skills-attach@0.44).
-   Start, resume, cancel or end a process: [Persisted agent runtime](https://docs.typo3.org/permalink/netresearch/nr-llm:api-agent-runtime@0.44).
-   Review write proposals and partial results: [Running tools](https://docs.typo3.org/permalink/netresearch/nr-llm:administration-tools@0.44).
-   Integrate stored conversations: [Stored conversations](https://docs.typo3.org/permalink/netresearch/nr-llm:api-conversations@0.44).

The runtime rechecks the acting user, configuration, skills and tool policy.
A process pin does not bypass permissions. Token admission uses a local
estimate, not a guarantee that a provider will accept a request.
`AgentRuntimeInterface::endProcess()` explicitly ends a process pin; this
is no longer an open product question.

The appendices retain the original context, detailed decisions, amendments
and alternatives so that existing section links and reasoning remain usable.

-   [ADR-214 historical appendices](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-214-historical-appendices@0.44)
