---
title: "Contributing"
description: "The commands that keep this repository in order, and what has to be true of the session that does the work."
canonical: index.html
navigation-title: "Contributing"
---

<a id="contributing"></a>

# Contributing

The commands that keep this repository in order, and what has to be true of the
session that does the work.

- [Working on the server itself](working-on-the-server.md) — the checkouts a session verifies a knowledge
  change against, the environments, the test suite, and how the documentation
  gets published.
- [Driving a session nobody types in](driving-a-session.md) — what has to be true of an agent session started
  from a command line. That holds whether it carries a forward run or works a
  todo in a worktree.
- [Writing a task skill](writing-a-skill.md) — what a new task skill has to show before it exists,
  the rules it follows, and what holds each one.
- [Glossary](glossary.md) — the name of everything here, one line each.

A skill is the one thing written here that leaves the repository and stays. It
goes as a copy into somebody's project, where the next release of this server
does not correct it. That is why it follows rules of its own and why every one
of them names the test that holds it.

Where the work comes from and what stays behind for the next session is
[the records](../records/index.md). The conventions every session works under
are [AGENTS.md](https://github.com/TYPO3/dev-companion/blob/main/AGENTS.md), because a session reads them before anything
else.
