feat: INSTALL.md is the English installation tutorial; new tutorial docs/tutorials/first-source-to-first-answer.md with a shipped sample source; README.md links it as its first-ingestion step (#191)
Files changed: - CHANGES.md - INSTALL.md - README.md - VERSION - docs/reference/commands/types-instructions-and-docs.md - docs/tutorials/README.md - docs/tutorials/first-source-to-first-answer.md - docs/tutorials/sample-source.md - instructions/dev/doc-pull-through.md - tools/CONTRACT.md - tools/chemenu/commands/docs_verify.py - tools/chemenu/install_doc.py - tools/chemenu/tests/test_install_doc.py Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
This commit is contained in:
1 parent
f9056c04f7
commit
fe1de63e0f
13 files changed
+403
-190
No files matched your search
+136
-136
@@ -1,27 +1,27 @@
|
||||
# Installation
|
||||
# Install a Chemenu instance
|
||||
|
||||
Dieses Dokument richtet sich an Menschen. Es gibt genau einen Weg zu einer Chemenu-Instanz: Ein
|
||||
Agent installiert das **neueste Release** in ein leeres Verzeichnis, das du vorgibst. Die
|
||||
Schritte führt der Agent aus, nach `instructions/setup-instance.md` aus demselben Release. Hier
|
||||
steht, was du vorher bereitstellst, welchen Satz du ihm gibst, was er dich fragt und was zu tun
|
||||
ist, wenn er anhält. Die vollständige Kommandoreferenz steht in
|
||||
This tutorial takes you from an empty folder to a running Chemenu instance. There is exactly one
|
||||
way to get one: an agent installs the **latest release** into an empty folder you choose. The
|
||||
agent runs the steps, following `instructions/setup-instance.md` from that same release. This
|
||||
page covers what you prepare beforehand, the sentence you give the agent, what it asks you, and
|
||||
what to do when it stops. The full command reference is in
|
||||
[tools/CONTRACT.md](tools/CONTRACT.md).
|
||||
|
||||
Den optionalen **MCP-Leseserver** richtet
|
||||
[docs/how-to/set-up-the-mcp-server.md](docs/how-to/set-up-the-mcp-server.md) ein: derselbe
|
||||
Korpus, lesend, für einen Konsumenten, der kein Terminal auf dieser Maschine ist.
|
||||
The optional **MCP read server** is set up separately, once the instance runs:
|
||||
[docs/how-to/set-up-the-mcp-server.md](docs/how-to/set-up-the-mcp-server.md). It serves the same
|
||||
corpus, read-only, to a consumer that is not a terminal on this machine.
|
||||
|
||||
<!-- dist:strip-start -->
|
||||
Wer am Stack selbst arbeiten will, klont dieses Repo. Das ist eine Entwicklungsumgebung mit
|
||||
Demo-Korpus und keine Instanz; sie steht in [docs/dev/development.md](docs/dev/development.md).
|
||||
To work on the stack itself, clone this repository instead. That is a development checkout with a
|
||||
demo corpus, not an instance; it is described in [docs/dev/development.md](docs/dev/development.md).
|
||||
<!-- dist:strip-end -->
|
||||
|
||||
## Was vorher da sein muss
|
||||
## What you need first
|
||||
|
||||
Diese Programme prüft der Preflight, bevor irgendein `wikitool`-Befehl läuft. Installieren musst
|
||||
du sie selbst - der Agent tut es nie, auch nicht mit deiner Zustimmung. Wo eines fehlt, nennt
|
||||
der Preflight den Installationsbefehl für dein System. Die Liste wird aus
|
||||
`tools/prerequisites.txt` erzeugt, derselben Datei, die der Preflight liest:
|
||||
The preflight checks these programs before any `wikitool` command runs. You install them
|
||||
yourself - the agent never does, not even with your permission. Where one is missing, the
|
||||
preflight names the install command for your system. The list is generated from
|
||||
`tools/prerequisites.txt`, the same file the preflight reads:
|
||||
|
||||
<!-- wikitool:prerequisites -->
|
||||
- **Python** ≥ 3.11
|
||||
@@ -29,166 +29,166 @@ der Preflight den Installationsbefehl für dein System. Die Liste wird aus
|
||||
- **ripgrep (rg)**
|
||||
<!-- /wikitool:prerequisites -->
|
||||
|
||||
Dazu:
|
||||
You also need:
|
||||
|
||||
- **Ein Agent-Harness**: Claude Code, GitHub Copilot (in VS Code oder als CLI), Codex CLI oder
|
||||
- **An agent harness**: Claude Code, GitHub Copilot (in VS Code or as a CLI), Codex CLI or
|
||||
Mistral Vibe.
|
||||
- **Ein leeres Verzeichnis**, in dem die Instanz liegen soll, und dein Harness darin geöffnet.
|
||||
Leer heißt: nichts außer einem `.git`. Ein frisch geklontes, leeres Repo für deine Instanz ist
|
||||
also genau richtig - liegt dein Repo `torben/nathan` etwa in `~/src/nathan`, installierst du
|
||||
dorthin, und der Agent übernimmt dessen `origin` als Ziel für `publish`.
|
||||
- **An empty folder** for the instance, with your harness opened in it. Empty means nothing but a
|
||||
`.git`. A freshly cloned, empty repository for your instance is exactly right: if your
|
||||
repository `torben/nathan` lives in `~/src/nathan`, install there, and the agent keeps its
|
||||
`origin` as the target for `publish`.
|
||||
|
||||
Unter Windows zusätzlich, ebenfalls vom Preflight geprüft:
|
||||
On Windows, additionally, also checked by the preflight:
|
||||
|
||||
<!-- wikitool:prerequisites-windows -->
|
||||
- **PowerShell 7 (pwsh)** ≥ 7
|
||||
<!-- /wikitool:prerequisites-windows -->
|
||||
|
||||
Und außerdem:
|
||||
And on Windows also:
|
||||
|
||||
- **PowerShell 7 als Standardterminal in VS Code.** Windows PowerShell 5.1 reicht nicht, und WSL
|
||||
ist nicht vorgesehen.
|
||||
- **Execution Policy `RemoteSigned`** - auf vielen Rechnern ab Werk gesetzt
|
||||
(`Get-ExecutionPolicy -List` zeigt es).
|
||||
- **Git for Windows.** Es bringt Git Bash mit, in dem Claude Code seine Befehle ausführt.
|
||||
- **Ein Installationsverzeichnis mit höchstens 95 Zeichen**, zum Beispiel `C:\Chemenu`. Windows
|
||||
erlaubt ohne eingeschaltete lange Pfade nur 259 Zeichen je Pfad, und die Dateien des Wikis
|
||||
brauchen den Rest. Wer Administratorrechte hat, kann stattdessen lange Pfade einschalten
|
||||
(`LongPathsEnabled`); verlangt wird das nicht.
|
||||
- **PowerShell 7 as the default terminal in VS Code.** Windows PowerShell 5.1 is not enough, and
|
||||
WSL is not supported.
|
||||
- **Execution policy `RemoteSigned`** - the factory setting on many machines
|
||||
(`Get-ExecutionPolicy -List` shows it).
|
||||
- **Git for Windows.** It brings Git Bash, which Claude Code runs its commands in.
|
||||
- **An installation folder of at most 95 characters**, for example `C:\Chemenu`. Without long
|
||||
paths switched on, Windows allows only 259 characters per path, and the wiki's files need the
|
||||
rest. If you have administrator rights you can switch long paths on instead
|
||||
(`LongPathsEnabled`); that is not required.
|
||||
|
||||
## Der Satz für den Agenten
|
||||
## The sentence for the agent
|
||||
|
||||
Öffne das leere Verzeichnis in deinem Harness und gib dem Agenten diesen Satz:
|
||||
Open the empty folder in your harness and give the agent this sentence:
|
||||
|
||||
> Richte in diesem Verzeichnis eine neue Chemenu-Instanz ein. Hol dazu das neueste Release von
|
||||
> `https://gitea.nehmer.net/api/v1/repos/torben/chemenu/releases/latest` und folge dessen Asset
|
||||
> `setup-instance.md`. Lies vor dem Start des Preflights das Asset `preflight.md` aus demselben
|
||||
> Release.
|
||||
> Set up a new Chemenu instance in this folder. Fetch the latest release from
|
||||
> `https://gitea.nehmer.net/api/v1/repos/torben/chemenu/releases/latest` and follow its asset
|
||||
> `setup-instance.md`. Before you start the preflight, read the asset `preflight.md` from the same
|
||||
> release.
|
||||
|
||||
Damit liest der Agent die Beschreibung des neuesten Releases und daraus die beiden Anleitungen.
|
||||
Dann lädt er das passende Preflight-Skript (`preflight.ps1` für PowerShell, `preflight.sh` für
|
||||
eine POSIX-Shell) mit einem Befehl seiner Shell ins Verzeichnis - nicht über den Browser, damit
|
||||
Windows die Datei nicht als „aus dem Internet“ markiert - und startet es. Das Skript lädt den
|
||||
Tarball desselben Releases, prüft dessen sha256, entpackt ihn in das Verzeichnis, löscht sich
|
||||
selbst und prüft dann im entpackten Baum, ob alles da ist.
|
||||
With that, the agent reads the description of the latest release, and from it the two
|
||||
instructions. It then downloads the matching preflight script (`preflight.ps1` for PowerShell,
|
||||
`preflight.sh` for a POSIX shell) into the folder with a command of its shell - not through the
|
||||
browser, so that Windows does not mark the file as "from the internet" - and runs it. The script
|
||||
downloads the tarball of the same release, checks its sha256, unpacks it into the folder, deletes
|
||||
itself, and then checks in the unpacked tree that everything is in place.
|
||||
|
||||
Die Liste aller Releases: <https://gitea.nehmer.net/torben/chemenu/releases>. Das Repo ist
|
||||
öffentlich; der Download braucht weder Konto noch Token.
|
||||
All releases are listed at <https://gitea.nehmer.net/torben/chemenu/releases>. The repository is
|
||||
public; the download needs neither an account nor a token.
|
||||
|
||||
## Was der Agent dich fragt
|
||||
## What the agent asks you
|
||||
|
||||
Raten darf der Agent keine dieser Antworten, und keine übernimmt er aus einem anderen Repo:
|
||||
The agent may guess none of these answers, and it carries none of them over from another
|
||||
repository:
|
||||
|
||||
- <!-- setup-question: identity --> **Autor-Identität** - Name und E-Mail für `git config`. Das ist
|
||||
zugleich der Autorname jeder künftig angelegten Wiki-Seite (`$WIKI_AUTHOR` überschreibt ihn bei
|
||||
Bedarf).
|
||||
- <!-- setup-question: remote --> **Remote** - bei einem leeren Klon nur die Bestätigung, dass
|
||||
`origin` stimmt; sonst eine URL, wenn du auf einen Server pushen willst. Ohne Remote bleibt die
|
||||
Instanz lokal, und jedes `publish` läuft mit `--no-push`.
|
||||
- <!-- setup-question: kb-language --> **Sprache und Ton der Seiten** - sie landen in
|
||||
`kb/CONVENTIONS.md`, dazu je Collection `kb/<name>/COLLECTION.md`. Fertige Profile, darunter ein
|
||||
vollständiges deutsches, hält `instructions/kb-profiles.md` bereit. Entscheide das **vor dem
|
||||
ersten Ingest**: Danach ist ein Wechsel der Abschnittsnamen eine Migration jeder bestehenden
|
||||
Seite. Titel, Wikilink-Ziele, Zitat-IDs, Schema-Werte, Tags, Befehle und Pfade folgen keiner
|
||||
Sprache - `Act Runner` heißt in jeder Instanz `Act Runner`.
|
||||
- <!-- setup-question: domain --> **Anwendungsgebiet** - woraus dieses Wiki seine Quellen zieht.
|
||||
Daraus schlägt der Agent eine `source_type`-Liste vor (bei einem Verein etwa Satzung, Protokoll,
|
||||
Spielbericht). Das ist ein Startpunkt, keine Festlegung: Später wird sie an echtem Bestand
|
||||
korrigiert (`instructions/evolve-subtypes.md`).
|
||||
- <!-- setup-question: personalization --> **Personalisierung** - wer diese Instanz bedient
|
||||
(`USER.md`) und wie sie klingt (`SOUL.md`). Der Agent interviewt dich entlang der Vorlagen und
|
||||
schreibt deine Antworten wörtlich mit. Zwei Fragen beantwortest nur du: den **Namen der Persona**
|
||||
und die **Themen, die bewusst draußen bleiben**.
|
||||
- <!-- setup-question: environment --> **Umgebung** (optional) - Harness, MCP-Server, Remotes,
|
||||
damit spätere Sitzungen nicht erneut fragen. „Weiß ich nicht“ ist eine gültige Antwort.
|
||||
- <!-- setup-question: telemetry --> **Telemetrie** - standardmäßig aus; der Agent fragt nur, ob du
|
||||
sie einschalten willst.
|
||||
- <!-- setup-question: task-tracker --> **Aufgaben-Tracker** (optional) - siehe
|
||||
- <!-- setup-question: identity --> **Author identity** - name and email for `git config`. This is
|
||||
also the author name of every wiki page created from now on (`$WIKI_AUTHOR` overrides it when
|
||||
needed).
|
||||
- <!-- setup-question: remote --> **Remote** - for an empty clone, only the confirmation that
|
||||
`origin` is right; otherwise a URL, if you want to push to a server. Without a remote the
|
||||
instance stays local, and every `publish` runs with `--no-push`.
|
||||
- <!-- setup-question: kb-language --> **Language and tone of the pages** - they go into
|
||||
`kb/CONVENTIONS.md`, plus `kb/<name>/COLLECTION.md` per collection. Ready-made profiles,
|
||||
including a complete German one, are in `instructions/kb-profiles.md`. Decide this **before the
|
||||
first ingest**: afterwards, changing the section names is a migration of every existing page.
|
||||
Titles, wikilink targets, citation ids, schema values, tags, commands and paths follow no
|
||||
language - `Act Runner` is called `Act Runner` in every instance.
|
||||
- <!-- setup-question: domain --> **Subject area** - where this wiki draws its sources from. From
|
||||
it the agent proposes a `source_type` list (for a sports club, say: statutes, minutes, match
|
||||
report). That is a starting point, not a commitment: it gets corrected against real material
|
||||
later (`instructions/evolve-subtypes.md`).
|
||||
- <!-- setup-question: personalization --> **Personalization** - who operates this instance
|
||||
(`USER.md`) and how it sounds (`SOUL.md`). The agent interviews you along the templates and
|
||||
writes your answers down verbatim. Two questions only you answer: the **name of the persona**
|
||||
and the **topics that deliberately stay out**.
|
||||
- <!-- setup-question: environment --> **Environment** (optional) - harness, MCP servers, remotes,
|
||||
so that later sessions don't ask again. "I don't know" is a valid answer.
|
||||
- <!-- setup-question: telemetry --> **Telemetry** - off by default; the agent only asks whether
|
||||
you want to switch it on.
|
||||
- <!-- setup-question: task-tracker --> **Task tracker** (optional) - see
|
||||
[docs/reference/configuration.md](docs/reference/configuration.md#task-tracker).
|
||||
|
||||
Am Ende legt der Agent den ersten Commit an. Dabei hält das Mass-Update-Gate an (Exit 42), weil
|
||||
eine neue Instanz aus weit mehr als zehn Dateien besteht. Das ist erwartet: Der Agent zeigt dir
|
||||
die Dateiliste und die `--confirm`-Zeile, und erst nach deiner Freigabe wird veröffentlicht.
|
||||
Danach startest du die Agent-Sitzung im selben Verzeichnis neu, damit sie die Skills lädt.
|
||||
At the end the agent makes the first commit. The Mass-Update Gate stops it there (exit 42),
|
||||
because a new instance consists of far more than ten files. That is expected: the agent shows you
|
||||
the file list and the `--confirm` line, and nothing is published until you approve. Afterwards,
|
||||
restart the agent session in the same folder so that it loads the skills.
|
||||
|
||||
## Wenn der Agent anhält
|
||||
## When the agent stops
|
||||
|
||||
Der Preflight hält mit **Exit 42** an, wenn du etwas tun musst. Seine Ausgabe nennt in einem
|
||||
nummerierten Block, was fehlt, warum, den Befehl, der es behebt, und wie es weitergeht. Der
|
||||
Agent zeigt dir diesen Block unverändert, setzt eine Übersetzung höchstens darunter und wartet.
|
||||
Sag ihm Bescheid, wenn du fertig bist; dann prüft er erneut. Ausweichen oder selbst installieren
|
||||
darf er nicht.
|
||||
The preflight stops with **exit 42** when you have to do something. Its output names, in a
|
||||
numbered block, what is missing, why, the command that fixes it, and how to continue. The agent
|
||||
shows you this block unchanged, adds a translation below it at most, and waits. Tell it when you
|
||||
are done; then it checks again. It may not work around the stop or install anything itself.
|
||||
|
||||
**Beim Herunterladen und Entpacken** (das Skript aus dem Release, bevor es einen Baum gibt):
|
||||
**While downloading and unpacking** (the script from the release, before there is a tree):
|
||||
|
||||
- **Werkzeuge zum Laden oder Entpacken fehlen** (Exit 42). Unter Linux und macOS braucht das
|
||||
Skript `curl`, `tar` und `sha256sum` (oder `shasum`), unter Windows nur das `tar.exe` aus
|
||||
Windows 10/11. Installiere, was die Ausgabe nennt; unter Windows liefert Git for Windows alles
|
||||
für Git Bash mit.
|
||||
- **Das Verzeichnis ist zu lang** (Exit 42, nur Windows ohne lange Pfade). Nimm ein kürzeres,
|
||||
etwa `C:\Chemenu`, öffne es im Harness und gib den Satz dort noch einmal.
|
||||
- **Das Verzeichnis ist nicht leer** (Exit 1). Es darf nichts enthalten außer dem Skript und
|
||||
einem `.git`. Räume es selbst auf oder nimm ein anderes - der Agent löscht dort nichts.
|
||||
- **Download fehlgeschlagen oder Prüfsumme falsch** (Exit 1). Es wurde nichts entpackt. Prüf die
|
||||
Internetverbindung und lass es erneut versuchen; einen anderen Download-Weg sucht der Agent
|
||||
nicht. Ohne direkten Download kannst du Tarball und `.sha256` von der Release-Seite selbst
|
||||
nebeneinander ablegen; der Agent startet das Skript dann mit `--archive <tarball>`.
|
||||
- **Tools for downloading or unpacking are missing** (exit 42). On Linux and macOS the script
|
||||
needs `curl`, `tar` and `sha256sum` (or `shasum`); on Windows only the `tar.exe` that comes
|
||||
with Windows 10/11. Install what the output names; on Windows, Git for Windows brings
|
||||
everything for Git Bash.
|
||||
- **The folder path is too long** (exit 42, only on Windows without long paths). Take a shorter
|
||||
one, such as `C:\Chemenu`, open it in the harness and give the sentence there again.
|
||||
- **The folder is not empty** (exit 1). It may hold nothing but the script and a `.git`. Clean it
|
||||
up yourself or take another one - the agent deletes nothing there.
|
||||
- **Download failed or checksum wrong** (exit 1). Nothing was unpacked. Check the internet
|
||||
connection and let it try again; the agent does not look for another way to download. Without a
|
||||
direct download you can put the tarball and its `.sha256` from the release page side by side
|
||||
yourself; the agent then runs the script with `--archive <tarball>`.
|
||||
|
||||
**Im entpackten Baum** (jeder weitere Lauf ist `tools/preflight.sh` bzw. unter PowerShell
|
||||
**In the unpacked tree** (every further run is `tools/preflight.sh`, or under PowerShell
|
||||
`pwsh -NoProfile -ExecutionPolicy Bypass -File tools/preflight.ps1`):
|
||||
|
||||
- **Ein Werkzeug fehlt** - Python, git, ripgrep, unter Windows auch PowerShell 7. Die Ausgabe
|
||||
nennt den Installationsbefehl für dein System. Ist es schon installiert, nur woanders, nenn dem
|
||||
Agenten den Pfad; er reicht ihn mit `--set <werkzeug>=<pfad>` weiter.
|
||||
- **Eine Version ist zu alt** - zum Beispiel Python unter 3.11. Neuere Version installieren oder
|
||||
deren Pfad nennen.
|
||||
- **Ein genannter Pfad funktioniert nicht** - der Pfad muss auf das Programm selbst zeigen, nicht
|
||||
auf seinen Ordner.
|
||||
- **Die Python-Umgebung (`tools/.venv`) oder ihre Bibliotheken ließen sich nicht einrichten.** Die
|
||||
Ausgabe zeigt, was Python oder pip gemeldet haben. Meist blockiert ein Proxy oder ein
|
||||
Sicherheitsprogramm den Download; das klärt, wer deinen Rechner betreut.
|
||||
- **Skripte tragen die Markierung „aus dem Internet“** (nur Windows). Das passiert, wenn das
|
||||
Release im Browser geladen und im Explorer entpackt wurde. Einmal im Verzeichnis, in
|
||||
PowerShell 7: `Get-ChildItem -Recurse -File | Unblock-File`. `doctor` zeigt den Stand unter
|
||||
`script-marks`.
|
||||
- **Die Execution Policy verbietet Skripte** (`Restricted` oder `AllSigned`, nur Windows). Die
|
||||
Ausgabe nennt die eine Zeile für ein PowerShell-7-Fenster
|
||||
(`Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned`). Setzt eine
|
||||
Gruppenrichtlinie sie, hilft nur die IT - oder du arbeitest aus Git Bash mit `tools/wikitool`.
|
||||
`doctor` zeigt den Stand unter `execution-policy`.
|
||||
- **Das Installationsverzeichnis ist zu lang** (nur Windows ohne lange Pfade). Die Instanz muss
|
||||
in ein kürzeres Verzeichnis umziehen, etwa `C:\Chemenu`.
|
||||
- **A tool is missing** - Python, git, ripgrep, on Windows also PowerShell 7. The output names
|
||||
the install command for your system. If it is installed, just somewhere else, tell the agent the
|
||||
path; it passes it on with `--set <tool>=<path>`.
|
||||
- **A version is too old** - Python below 3.11, for example. Install a newer version or name its
|
||||
path.
|
||||
- **A path you named does not work** - the path must point at the program itself, not at its
|
||||
folder.
|
||||
- **The Python environment (`tools/.venv`) or its libraries could not be set up.** The output
|
||||
shows what Python or pip reported. Usually a proxy or a security program blocks the download;
|
||||
whoever looks after your machine can sort that out.
|
||||
- **Scripts carry the "from the internet" mark** (only on Windows). That happens when the release
|
||||
was downloaded in the browser and unpacked in Explorer. Once, in the folder, in PowerShell 7:
|
||||
`Get-ChildItem -Recurse -File | Unblock-File`. `doctor` shows the state under `script-marks`.
|
||||
- **The execution policy forbids scripts** (`Restricted` or `AllSigned`, only on Windows). The
|
||||
output names the one line for a PowerShell 7 window
|
||||
(`Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned`). If a group policy sets
|
||||
it, only your IT department can help - or you work from Git Bash with `tools/wikitool`. `doctor`
|
||||
shows the state under `execution-policy`.
|
||||
- **The installation folder path is too long** (only on Windows without long paths). The instance
|
||||
has to move to a shorter folder, such as `C:\Chemenu`.
|
||||
|
||||
Hält der Agent an einer anderen Stelle an und ist die Ursache nicht offensichtlich, bietet er dir
|
||||
einen Fehlerbericht an - siehe
|
||||
If the agent stops anywhere else and the cause is not obvious, it offers you a bug report - see
|
||||
[docs/how-to/troubleshoot.md](docs/how-to/troubleshoot.md).
|
||||
|
||||
## Verifikation
|
||||
## Check the instance
|
||||
|
||||
```bash
|
||||
tools/wikitool doctor
|
||||
```
|
||||
|
||||
Prüft in einem Aufruf: Abhängigkeiten, Autor-Auflösung, Git-Identität/Branch/Remote,
|
||||
publizierte Skills, Struktur (Collection-Contracts, generierte Dateien), Personalization
|
||||
(`USER.md`/`SOUL.md` vorhanden **und** ausgefüllt), die optionale Umgebungsnotiz
|
||||
(`ENVIRONMENT.md`), den Aufgaben-Tracker (`.wikitool-tasks.json` - fehlt sie, ist das `OK`; ist
|
||||
ein Provider konfiguriert, zusätzlich ob sein Lesepfad bereitsteht und seine API gerade
|
||||
antwortet, beides nie ein `FAIL`) und die Session-ID.
|
||||
`OK`/`WARN` sind unbedenklich (ein fehlender Remote z. B. ist ein gültiger Endzustand); nur ein
|
||||
`FAIL` bricht mit exit 1 ab, und jede Zeile nennt ihr eigenes Fix-Kommando.
|
||||
This checks in one call: dependencies, author resolution, git identity/branch/remote, published
|
||||
skills, structure (collection contracts, generated files), personalization (`USER.md`/`SOUL.md`
|
||||
present **and** filled in), the optional environment note (`ENVIRONMENT.md`), the task tracker
|
||||
(`.wikitool-tasks.json` - if it is missing, that is `OK`; if a provider is configured, also
|
||||
whether its read path is ready and its API is answering right now, neither ever a `FAIL`) and the
|
||||
session id. `OK`/`WARN` are harmless (a missing remote, for example, is a valid end state); only a
|
||||
`FAIL` ends with exit 1, and every line names its own fix command.
|
||||
|
||||
Danach zusätzlich:
|
||||
Then also:
|
||||
|
||||
```bash
|
||||
tools/wikitool docs verify
|
||||
tools/wikitool instructions verify
|
||||
```
|
||||
|
||||
## Danach
|
||||
## Next steps
|
||||
|
||||
- **Aktualisieren** auf ein neueres Release: [docs/how-to/update-an-instance.md](docs/how-to/update-an-instance.md).
|
||||
- **Konfiguration** - Umgebungsvariablen und die Dateien pro Checkout:
|
||||
- **Your first source and your first answer:**
|
||||
[docs/tutorials/first-source-to-first-answer.md](docs/tutorials/first-source-to-first-answer.md)
|
||||
walks you through both in the instance you just set up.
|
||||
- **Updating** to a newer release: [docs/how-to/update-an-instance.md](docs/how-to/update-an-instance.md).
|
||||
- **Configuration** - environment variables and the files per checkout:
|
||||
[docs/reference/configuration.md](docs/reference/configuration.md).
|
||||
- **Wenn etwas nicht geht:** [docs/how-to/troubleshoot.md](docs/how-to/troubleshoot.md).
|
||||
- **Mit dem Wiki arbeiten:** [docs/how-to/](docs/how-to/README.md).
|
||||
- **When something does not work:** [docs/how-to/troubleshoot.md](docs/how-to/troubleshoot.md).
|
||||
- **Working with the wiki:** [docs/how-to/](docs/how-to/README.md).
|
||||
Reference in new issue
Block a user