Veraltete Skill-Aufzaehlungen in der Instruction-Schicht nachgezogen (#129, #130)
CI / verify (push) Successful in 48s
Release / release (push) Successful in 38s

Files changed:
- CHANGES.md
- VERSION
- instructions/CONTRACT.md
- instructions/bootstrap.md
- instructions/dev/stack-close/SKILL.md
- instructions/dev/stack-dev/SKILL.md
- tools/chemenu/tests/test_instructions_cmd.py
This commit is contained in:
torben committed 2026-09-20 11:52:02 +02:00
1 parent 52ba5ba768
commit 3c1d4cb028
7 files changed
+51 -16

No files matched your search

+27 -1
View File
@@ -59,7 +59,7 @@ concern - readable here, never shipped as something to parse.
---
## 7.0.0-beta.9 - 2026-09-20 - Skill-Namensfamilien: weekly-review -> gtd-weekly-review, dritte Person in allen Descriptions
## 7.0.0-beta.10 - 2026-09-20 - Veraltete Skill-Aufzaehlungen in der Instruction-Schicht nachgezogen
**Author:** Torben Nehmer
@@ -80,6 +80,7 @@ concern - readable here, never shipped as something to parse.
- new project: Testabdeckung fuer die required-responsibility-Ablehnung
- docs/-Nachzug: Exit 42 als Haltung, und die Adoption eines neu ausgelieferten Templates
- Skill-Namensfamilien: weekly-review -> gtd-weekly-review, dritte Person in allen Descriptions
- Veraltete Skill-Aufzaehlungen in der Instruction-Schicht nachgezogen
<!-- /wikitool:bumps -->
### Typ `project` und Collection `kb/gtd/`: das Vorhaben als eigene Seitenart
@@ -307,6 +308,31 @@ imperative-title convention, since its `description` is read on demand rather th
the system prompt. No `--breaking` line: the renamed skill was introduced by this same
unreleased candidate, so no existing instance carries the old name to migrate away from.
### Veraltete Skill-Aufzaehlungen in der Instruction-Schicht nachgezogen
Gitea #129s Abschlusspruefung: die Skill-Umbenennung hat sichtbar gemacht, dass mehrere Dokumente
die Skill-Liste hart aufzaehlen und beim Wachsen der Liste still veralten. Vier Stellen waren
falsch, eine davon schon vor diesem Paket:
- **`instructions/CONTRACT.md` § "When a skill carries a copy-in checklist"** zaehlte „die zwei
Skills mit Block und die drei ohne" - also fuenf von inzwischen acht. Die Zahlen im Einstiegssatz
sind jetzt ganz raus (sie unterscheiden sich ohnehin zwischen diesem Repo und einer
ausgelieferten Instanz, die `instructions/dev/` nicht hat), die Aufzaehlung nennt alle
ausgelieferten Skills, und die beiden Dev-Skills stehen in einem `dist:strip`-Block.
- **Dieselbe Passage nannte `wiki-query` mit sechs Schritten** - es sind sieben, und zwar schon
laenger. Die Regel selbst (ein Flow ab acht Schritten *und* still scheiternde Schritte) bleibt
unveraendert; kein Skill wechselt dadurch die Seite.
- **`instructions/CONTRACT.md` § "outbound reference"** sprach im Praesens von „this repo's seven
skills", wo die Zahl zu einer datierten Messung (52 von 58 Links) gehoert - jetzt als „at the
time" markiert, statt die Messung nachzurechnen.
- **`instructions/bootstrap.md`** und die Scope-Abschnitte von `stack-dev`/`stack-close` listeten
die Content-Skills ohne `gtd-weekly-review` auf.
Dazu `test_the_real_repo_publishes_the_six_wiki_skills` -> `..._every_skill`: der Test pruefte
sechs der acht Skills und trug die veraltete Zahl im Namen; er nennt jetzt alle acht, nach
Familien erklaert. Dass die Passage weiterhin Schrittzahlen fremder Dateien zitiert, die genauso
still veralten koennen, ist als eigene Frage festgehalten und hier bewusst nicht geloest.
---
## 6.2.0 - 2026-09-19 - Entity-Subtyp project nach codebase umbenannt
+1 -1
View File
@@ -1 +1 @@
7.0.0-beta.9
7.0.0-beta.10
+10 -7
View File
@@ -244,9 +244,9 @@ than the source, and without the sibling files a relative link might expect. A m
correct at `instructions/<name>/SKILL.md` (`../session-setup.md`, `../../kb/CONTRACT.md`)
resolves to a different, usually nonexistent, file once copied: the number of `../` segments
that reaches a target from `instructions/` does not reach the same target from
`.claude/skills/`. Fifty-two of the fifty-eight relative links across this repo's seven skills
broke exactly this way before this rule existed, silently - nothing rendered the copy to notice,
and no check read a link target.
`.claude/skills/`. Fifty-two of the fifty-eight relative links across the repo's seven skills at
the time broke exactly this way before this rule existed, silently - nothing rendered the copy to
notice, and no check read a link target.
So a `SKILL.md` never writes an outbound reference as a relative markdown link, correct depth or
not. It names the target as a repo-root-relative **plain path** instead - `` `instructions/session-setup.md` ``, not `[session-setup.md](../session-setup.md)`; `` `kb/CONTRACT.md` `` for a
@@ -320,7 +320,7 @@ marker: the pointer is worth having in the origin repo and resolves nowhere else
Anthropic's skill-authoring guidance suggests, for a "particularly complex workflow", a checklist
the agent copies into its response and ticks off as it goes. It names no threshold, so this repo
sets one - otherwise the two skills that have such a block and the three that do not read as an
sets one - otherwise the skills that carry such a block and the ones that do not read as an
accident rather than a decision.
A `SKILL.md` carries the block when **one** of its flows runs to eight steps or more *and* that
@@ -332,9 +332,12 @@ because the next call fails without the previous one.
Two skills qualify today, and the block names each of their numbered steps once, verbatim:
`wiki-ingest` (twelve steps, of which `## Not Extracted` in step 6, the coverage check in step 10
and the lint cadence in step 12 all fail quietly) and `wiki-lint` (nine, with steps 3-6 pure
judgment). The other three do not, and the reason is worth stating so nobody adds one out of
symmetry: `wiki-manage` has two flows of seven, `wiki-query` six, `wiki-status` five, and none of
them is long enough for a reader to lose the thread.
judgment). The rest do not, and the reason is worth stating so nobody adds one out of symmetry:
`wiki-manage` has two flows of seven, `wiki-query` seven, `wiki-status` five and
`gtd-weekly-review` five - none of them long enough for a reader to lose the thread.
<!-- dist:strip-start -->
Dev-instance-only: `stack-dev` (six) and `stack-close` (four) sit under the same threshold.
<!-- dist:strip-end -->
The block says that it is to be copied and carried, not read. A checklist read once is the table
of contents it replaced.
+1 -1
View File
@@ -9,7 +9,7 @@ description: Prepare a fresh clone for work - create the tools venv and publish
`.agents/skills/` and `.claude/skills/` are generated copies of the skill directories under
`instructions/`, and both are gitignored. A fresh clone therefore has no skills at all until
they are published: the agent harness will not offer `wiki-ingest`, `wiki-query`,
`wiki-manage`, `wiki-lint` or `wiki-status` before this runs.
`wiki-manage`, `wiki-lint`, `wiki-status` or `gtd-weekly-review` before this runs.
## When to run
+3 -2
View File
@@ -129,5 +129,6 @@ and a fresh subagent starts without the session's context).
## Scope
Follows a `stack-dev` session's publish. Not for wiki content work - use
`wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/`wiki-status` for that, whose own closing
conventions (`kb/log.md`, page provenance) are unrelated to this tracker-body procedure.
`wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/`wiki-status`/`gtd-weekly-review` for that,
whose own closing conventions (`kb/log.md`, page provenance) are unrelated to this tracker-body
procedure.
+2 -1
View File
@@ -191,6 +191,7 @@ stack development happens in the origin repo instead (see AGENTS.md's routing li
## Scope
Not for wiki content work - use `wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/
`wiki-status` for that. Not for setting up a new instance (`instructions/setup-instance.md`) or
`wiki-status`/`gtd-weekly-review` for that. Not for setting up a new instance
(`instructions/setup-instance.md`) or
a fresh clone of this repo (`instructions/bootstrap.md`). Not for closing a work package after
its publish has landed - that is `stack-close` (`instructions/dev/stack-close/SKILL.md`).
+7 -3
View File
@@ -60,10 +60,12 @@ def test_a_flat_file_is_an_instruction_and_the_contract_is_not(layer):
assert [p.name for p in instructions_cmd.instruction_files()] == ["gates.md"]
def test_the_real_repo_publishes_the_six_wiki_skills():
def test_the_real_repo_publishes_every_skill():
"""Guards the actual layout, not a fixture: these are the skills the
harness is expected to offer. `stack-dev` is nested under
instructions/dev/, discovered the same way as the five top-level ones."""
harness is expected to offer, one per naming family - `wiki-` for the
knowledge pipeline, `gtd-` for the commitment layer, `stack-` for the
stack's own development. The `stack-` pair is nested under
instructions/dev/, discovered the same way as the top-level ones."""
names = {p.name for p in instructions_cmd.skill_dirs()}
assert {
"wiki-ingest",
@@ -71,7 +73,9 @@ def test_the_real_repo_publishes_the_six_wiki_skills():
"wiki-lint",
"wiki-manage",
"wiki-status",
"gtd-weekly-review",
"stack-dev",
"stack-close",
} <= names