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 **Author:** Torben Nehmer
@@ -80,6 +80,7 @@ concern - readable here, never shipped as something to parse.
- new project: Testabdeckung fuer die required-responsibility-Ablehnung - new project: Testabdeckung fuer die required-responsibility-Ablehnung
- docs/-Nachzug: Exit 42 als Haltung, und die Adoption eines neu ausgelieferten Templates - 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 - Skill-Namensfamilien: weekly-review -> gtd-weekly-review, dritte Person in allen Descriptions
- Veraltete Skill-Aufzaehlungen in der Instruction-Schicht nachgezogen
<!-- /wikitool:bumps --> <!-- /wikitool:bumps -->
### Typ `project` und Collection `kb/gtd/`: das Vorhaben als eigene Seitenart ### 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 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. 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 ## 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`) 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 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 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 `.claude/skills/`. Fifty-two of the fifty-eight relative links across the repo's seven skills at
broke exactly this way before this rule existed, silently - nothing rendered the copy to notice, the time broke exactly this way before this rule existed, silently - nothing rendered the copy to
and no check read a link target. 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 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 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 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 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. accident rather than a decision.
A `SKILL.md` carries the block when **one** of its flows runs to eight steps or more *and* that 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: 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 `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 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 judgment). The rest do not, and the reason is worth stating so nobody adds one out of symmetry:
symmetry: `wiki-manage` has two flows of seven, `wiki-query` six, `wiki-status` five, and none of `wiki-manage` has two flows of seven, `wiki-query` seven, `wiki-status` five and
them is long enough for a reader to lose the thread. `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 The block says that it is to be copied and carried, not read. A checklist read once is the table
of contents it replaced. 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 `.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 `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`, 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 ## When to run
+3 -2
View File
@@ -129,5 +129,6 @@ and a fresh subagent starts without the session's context).
## Scope ## Scope
Follows a `stack-dev` session's publish. Not for wiki content work - use 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 `wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/`wiki-status`/`gtd-weekly-review` for that,
conventions (`kb/log.md`, page provenance) are unrelated to this tracker-body procedure. 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 ## Scope
Not for wiki content work - use `wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/ 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 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`). 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"] 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 """Guards the actual layout, not a fixture: these are the skills the
harness is expected to offer. `stack-dev` is nested under harness is expected to offer, one per naming family - `wiki-` for the
instructions/dev/, discovered the same way as the five top-level ones.""" 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()} names = {p.name for p in instructions_cmd.skill_dirs()}
assert { assert {
"wiki-ingest", "wiki-ingest",
@@ -71,7 +73,9 @@ def test_the_real_repo_publishes_the_six_wiki_skills():
"wiki-lint", "wiki-lint",
"wiki-manage", "wiki-manage",
"wiki-status", "wiki-status",
"gtd-weekly-review",
"stack-dev", "stack-dev",
"stack-close",
} <= names } <= names