Skill-Namensfamilien: weekly-review -> gtd-weekly-review, dritte Person in allen Descriptions (#129)
CI / verify (push) Successful in 51s
Release / release (push) Successful in 36s

Files changed:
- AGENTS.md
- CHANGES.md
- INSTALL.md
- README.md
- VERSION
- instructions/CONTRACT.md
- instructions/dev/stack-close/SKILL.md
- instructions/dev/stack-dev/SKILL.md
- instructions/gtd-weekly-review/SKILL.md
- instructions/setup-instance.md
- instructions/weekly-review/SKILL.md
- instructions/wiki-ingest/SKILL.md
- instructions/wiki-lint/SKILL.md
- instructions/wiki-manage/SKILL.md
- instructions/wiki-query/SKILL.md
- instructions/wiki-status/SKILL.md
- tools/chemenu/tests/test_instructions_cmd.py
This commit is contained in:
torben committed 2026-09-20 11:44:21 +02:00
1 parent 8ed8c6f5d9
commit 52ba5ba768
16 files changed
+71 -20

No files matched your search

+1 -1
View File
@@ -237,7 +237,7 @@ ships the first verbatim and the second only as a `.template`.
| `wiki-manage` | A page needs creating, or new information needs integrating into one | | `wiki-manage` | A page needs creating, or new information needs integrating into one |
| `wiki-lint` | The wiki needs a health check (also every 10 sources) | | `wiki-lint` | The wiki needs a health check (also every 10 sources) |
| `wiki-status` | A quick read-only snapshot is wanted, without a full lint | | `wiki-status` | A quick read-only snapshot is wanted, without a full lint |
| `weekly-review` | `wikitool review` has findings nobody has acted on yet, or the user asks for the weekly review | | `gtd-weekly-review` | `wikitool review` has findings nobody has acted on yet, or the user asks for the weekly review |
Shared procedures that several skills call into: `tools/wikitool instructions list`. Shared procedures that several skills call into: `tools/wikitool instructions list`.
+18 -1
View File
@@ -59,7 +59,7 @@ concern - readable here, never shipped as something to parse.
--- ---
## 7.0.0-beta.8 - 2026-09-20 - docs/-Nachzug: Exit 42 als Haltung, und die Adoption eines neu ausgelieferten Templates ## 7.0.0-beta.9 - 2026-09-20 - Skill-Namensfamilien: weekly-review -> gtd-weekly-review, dritte Person in allen Descriptions
**Author:** Torben Nehmer **Author:** Torben Nehmer
@@ -79,6 +79,7 @@ concern - readable here, never shipped as something to parse.
**Low impact** **Low impact**
- 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
<!-- /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
@@ -290,6 +291,22 @@ beide unpruefbar, weil eine `docs/`-Seite per Konstruktion keinen normativen Sat
eine Gestalt, in der „das Upgrade schreibt diese Datei nie" zu Arbeit wird, mit Verweis auf den eine Gestalt, in der „das Upgrade schreibt diese Datei nie" zu Arbeit wird, mit Verweis auf den
Schritt in `upgrade-instance.md`, den Stack 7.0.0-beta.7 dort angelegt hat. Schritt in `upgrade-instance.md`, den Stack 7.0.0-beta.7 dort angelegt hat.
### Skill-Namensfamilien: weekly-review -> gtd-weekly-review, dritte Person in allen Descriptions
Gitea #129: the published skill collection had drifted into three naming shapes where it should
have three *families*. `weekly-review` (added earlier in this same candidate, never released)
named neither its domain nor its distribution boundary, unlike `wiki-*` and `stack-*` either
side of it - renamed to `gtd-weekly-review`, joining a new `gtd-` prefix for the commitment layer
(`kb/gtd/`, `types/project.md`, `docs/knowledge-and-commitment.md`) that sits beside `wiki-` (the
knowledge pipeline) and `stack-` (the stack's own development, under `instructions/dev/`).
`instructions/CONTRACT.md` § "Writing an instruction" now states both the family-prefix
convention and, separately, that a skill's `description` speaks in third person per Anthropic's
skill-authoring guidance - all eight published skills' descriptions were rewritten to match
("Processes...", not "Process..."); the flat `instructions/<name>.md` form keeps its existing
imperative-title convention, since its `description` is read on demand rather than injected into
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.
--- ---
## 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
@@ -292,7 +292,7 @@ tools/wikitool version check
``` ```
**Aufgaben-Tracker anbinden - optional.** Der Wochenrückblick (`tools/wikitool review`, Skill **Aufgaben-Tracker anbinden - optional.** Der Wochenrückblick (`tools/wikitool review`, Skill
`weekly-review`) gleicht die Projektseiten unter `kb/gtd/` gegen einen Aufgaben-Tracker ab. Welcher `gtd-weekly-review`) gleicht die Projektseiten unter `kb/gtd/` gegen einen Aufgaben-Tracker ab. Welcher
das ist, steht in `.wikitool-tasks.json` im Repo-Root - der dritten Datei dieser Art neben das ist, steht in `.wikitool-tasks.json` im Repo-Root - der dritten Datei dieser Art neben
`.wikitool-telemetry.json` und `.wikitool-remotes.json`: pro Checkout, ohne `.template`, und `.wikitool-telemetry.json` und `.wikitool-remotes.json`: pro Checkout, ohne `.template`, und
**gitignored, sobald ein Token darin liegt**. Fehlt sie, ist schlicht kein Tracker konfiguriert; **gitignored, sobald ein Token darin liegt**. Fehlt sie, ist schlicht kein Tracker konfiguriert;
+2 -2
View File
@@ -239,7 +239,7 @@ Nothing syncs between the two. `tools/wikitool review` joins them at read time
over the project name and prints what needs a decision: initiatives with no next over the project name and prints what needs a decision: initiatives with no next
action, waiting-fors past their follow-up date, tracker projects with no page, action, waiting-fors past their follow-up date, tracker projects with no page,
active pages with no open loop, someday items gone stale. It stores nothing - active pages with no open loop, someday items gone stale. It stores nothing -
not even a report file. The `weekly-review` skill then walks the findings with not even a report file. The `gtd-weekly-review` skill then walks the findings with
you and turns each one into a decision; `tools/wikitool new project` is what you and turns each one into a decision; `tools/wikitool new project` is what
gives a new initiative its page and its tracker project under one name. gives a new initiative its page and its tracker project under one name.
@@ -280,7 +280,7 @@ themselves live as independently-discoverable skills under `.agents/skills/`
| `wiki-lint` | Health-check the wiki: structural scan, raw coverage, semantic review | | `wiki-lint` | Health-check the wiki: structural scan, raw coverage, semantic review |
| `wiki-manage` | Create a new entity/concept/source/comparison page, or update an existing page with new information | | `wiki-manage` | Create a new entity/concept/source/comparison page, or update an existing page with new information |
| `wiki-status` | Read-only snapshot: page counts, orphans, uncovered raw files, most-connected pages | | `wiki-status` | Read-only snapshot: page counts, orphans, uncovered raw files, most-connected pages |
| `weekly-review` | Turn `wikitool review`'s findings into decisions and page updates - the GTD weekly review | | `gtd-weekly-review` | Turns `wikitool review`'s findings into decisions and page updates - the GTD weekly review |
Each skill's underlying mechanical work (frontmatter, cross-references, index/log, Each skill's underlying mechanical work (frontmatter, cross-references, index/log,
decay math, publishing) is delegated to `tools/wikitool` - never hand-edited. decay math, publishing) is delegated to `tools/wikitool` - never hand-edited.
+1 -1
View File
@@ -1 +1 @@
7.0.0-beta.8 7.0.0-beta.9
+34
View File
@@ -18,6 +18,8 @@ alongside [AGENTS.md](../AGENTS.md).
- [Publishing](#publishing) - [Publishing](#publishing)
- [Writing an instruction](#writing-an-instruction) - [Writing an instruction](#writing-an-instruction)
- [A skill's H1 is a name, not an imperative](#a-skills-h1-is-a-name-not-an-imperative) - [A skill's H1 is a name, not an imperative](#a-skills-h1-is-a-name-not-an-imperative)
- [A skill's `description` speaks in third person](#a-skills-description-speaks-in-third-person)
- [A skill's name declares its family](#a-skills-name-declares-its-family)
- [A skill's outbound reference is a plain path, not a link](#a-skills-outbound-reference-is-a-plain-path-not-a-link) - [A skill's outbound reference is a plain path, not a link](#a-skills-outbound-reference-is-a-plain-path-not-a-link)
- [Reference depth: bundled files, not repo-wide contracts](#reference-depth-bundled-files-not-repo-wide-contracts) - [Reference depth: bundled files, not repo-wide contracts](#reference-depth-bundled-files-not-repo-wide-contracts)
- [When a skill carries a copy-in checklist](#when-a-skill-carries-a-copy-in-checklist) - [When a skill carries a copy-in checklist](#when-a-skill-carries-a-copy-in-checklist)
@@ -202,6 +204,38 @@ exception in the same breath - "for promoted skills, the skill name is the title
That is the whole exception. Everything else in this section binds a `SKILL.md` exactly as it That is the whole exception. Everything else in this section binds a `SKILL.md` exactly as it
binds an instruction. binds an instruction.
### A skill's `description` speaks in third person
Anthropic's skill-authoring guidance requires third person in a skill's `description`, because it
is injected into the system prompt for skill selection and an inconsistent point of view degrades
that selection - "Processes Excel files and generates reports", never "I can help you process..."
or "Process...". This binds every `instructions/<name>/SKILL.md` in this repo. The flat
`instructions/<name>.md` form's `description` (above) is read on demand rather than injected as
system-prompt metadata, so it keeps the imperative/label freedom that form already allows.
Nothing checks this mechanically - `tools/wikitool docs verify`/`instructions verify` validate a
`description`'s presence and length, not its grammatical voice - so it holds only as long as each
new skill is written to match the ones around it.
### A skill's name declares its family
Three prefixes exist today, each naming the subject domain a skill operates on, not the
distribution boundary it ships behind: `wiki-` for the knowledge pipeline (`wiki-ingest`,
`wiki-lint`, `wiki-manage`, `wiki-query`, `wiki-status`), `gtd-` for the commitment layer
(`gtd-weekly-review` - see `kb/gtd/COLLECTION.md` and `docs/knowledge-and-commitment.md` for why
that layer is named GTD rather than folded into `wiki-`), and `stack-` for the stack's own
development, nested under `instructions/dev/` and therefore never present in a distributed
instance (`instructions/dev/` above).
<!-- dist:strip-start -->
Dev-instance-only: the two skills in that family today are `stack-dev` and `stack-close`.
<!-- dist:strip-end -->
A new skill takes the prefix of the family it belongs to, or opens a new one deliberately - never
a bare name.
This is a convention, not something the tool enforces: an unprefixed or fourth-family name would
compile, publish and pass every check exactly like the three above, so it is written down here for
the next session to read before adding one.
### A skill's outbound reference is a plain path, not a link ### A skill's outbound reference is a plain path, not a link
`tools/wikitool instructions sync` copies each `SKILL.md` byte for byte into `tools/wikitool instructions sync` copies each `SKILL.md` byte for byte into
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: stack-close name: stack-close
description: Close out a stack-dev work package after its publish has landed - rewrite the issue body to its final state, check for docs/ staleness, and name which model ran which phase of the session. Use right after a stack-dev session's tools/wikitool publish succeeds, or when resuming a package that was published but never closed. description: Closes out a stack-dev work package after its publish has landed - rewrites the issue body to its final state, checks for docs/ staleness, and names which model ran which phase of the session. Use right after a stack-dev session's tools/wikitool publish succeeds, or when resuming a package that was published but never closed.
--- ---
# Stack Close # Stack Close
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: stack-dev name: stack-dev
description: Switch a session into tool-development mode - extending tools/wikitool, the compiler, the type schema, or the instruction/skill layer itself, instead of operating on wiki content. Use when the user asks to add a wikitool command, change a type-spec, fix or extend the compiler, or otherwise work on the stack rather than ingest/query/manage/lint the wiki. description: Switches a session into tool-development mode - extending tools/wikitool, the compiler, the type schema, or the instruction/skill layer itself, instead of operating on wiki content. Use when the user asks to add a wikitool command, change a type-spec, fix or extend the compiler, or otherwise work on the stack rather than ingest/query/manage/lint the wiki.
--- ---
# Stack Development Mode # Stack Development Mode
@@ -1,9 +1,9 @@
--- ---
name: weekly-review name: gtd-weekly-review
description: Turn the findings from `wikitool review` into decisions and page updates - the GTD Weekly Review, with a machine that prepares the list instead of a human reconstructing it from memory. Use when the user asks for "the weekly review", "review my projects", "what's stalled", or after `wikitool review` has findings nobody has acted on yet. description: Turns the findings from `wikitool review` into decisions and page updates - the GTD Weekly Review, with a machine that prepares the list instead of a human reconstructing it from memory. Use when the user asks for "the weekly review", "review my projects", "what's stalled", or after `wikitool review` has findings nobody has acted on yet.
--- ---
# Weekly Review # GTD Weekly Review
**Purpose:** A finding from `wikitool review` is not an action by itself - "this initiative looks **Purpose:** A finding from `wikitool review` is not an action by itself - "this initiative looks
stalled" can mean a next action is missing, the initiative was deliberately paused, or it is stalled" can mean a next action is missing, the initiative was deliberately paused, or it is
+1 -1
View File
@@ -303,7 +303,7 @@ and ready for its first ingest.
16. **Restart the agent session.** Harnesses read the skill directories at startup; only 16. **Restart the agent session.** Harnesses read the skill directories at startup; only
afterwards are `wiki-ingest`, `wiki-query`, `wiki-manage`, `wiki-lint`, `wiki-status` and afterwards are `wiki-ingest`, `wiki-query`, `wiki-manage`, `wiki-lint`, `wiki-status` and
`weekly-review` available. `gtd-weekly-review` available.
## Scope ## Scope
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: wiki-ingest name: wiki-ingest
description: Process a new source file into the LLM wiki - extract entities and concepts, create a source summary page, cross-reference, rebuild indexes, and publish. Use when the user drops a file into incoming/ or raw/, or says "ingest <file>", "process this source", "add this to the wiki". description: Processes a new source file into the LLM wiki - extracts entities and concepts, creates a source summary page, cross-references, rebuilds indexes, and publishes. Use when the user drops a file into incoming/ or raw/, or says "ingest <file>", "process this source", "add this to the wiki".
--- ---
# Wiki Ingest # Wiki Ingest
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: wiki-lint name: wiki-lint
description: Health-check the LLM wiki - broken links, orphan pages, uncovered raw files, stale claims, duplicated rules, missing cross-references. Use when the user says "lint the wiki", "health-check the wiki", or periodically every 10 sources per the Maintenance Schedule. description: Checks the health of the LLM wiki - broken links, orphan pages, uncovered raw files, stale claims, duplicated rules, missing cross-references. Use when the user says "lint the wiki", "health-check the wiki", or periodically every 10 sources per the Maintenance Schedule.
--- ---
# Wiki Lint # Wiki Lint
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: wiki-manage name: wiki-manage
description: Create a new wiki page (entity, concept, source, comparison) or update an existing page with new information, including cross-references, index/log, and publish. Use when the user says "create a new entity/concept/comparison", "add a page for X", "update the X page", or new information needs integrating into an existing page. description: Creates a new wiki page (entity, concept, source, comparison) or updates an existing page with new information, including cross-references, index/log, and publishing. Use when the user says "create a new entity/concept/comparison", "add a page for X", "update the X page", or new information needs integrating into an existing page.
--- ---
# Wiki Manage # Wiki Manage
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: wiki-query name: wiki-query
description: Answer a question using the LLM wiki's compiled knowledge - read-only, cites sources, can file a valuable answer back as a new page. Use when the user asks a question about entities, projects, concepts, or anything the wiki might know, or says "query the wiki", "what do we know about X", "search the wiki". description: Answers a question using the LLM wiki's compiled knowledge - read-only, cites sources, can file a valuable answer back as a new page. Use when the user asks a question about entities, projects, concepts, or anything the wiki might know, or says "query the wiki", "what do we know about X", "search the wiki".
--- ---
# Wiki Query # Wiki Query
+1 -1
View File
@@ -1,6 +1,6 @@
--- ---
name: wiki-status name: wiki-status
description: Show a quick read-only snapshot of the LLM wiki - page counts, orphan pages, uncovered raw files, recent activity. Use when the user says "wiki status", "show wiki statistics", "what's new", or wants a quick health snapshot without running a full lint. description: Shows a quick read-only snapshot of the LLM wiki - page counts, orphan pages, uncovered raw files, recent activity. Use when the user says "wiki status", "show wiki statistics", "what's new", or wants a quick health snapshot without running a full lint.
--- ---
# Wiki Status # Wiki Status
+3 -3
View File
@@ -75,13 +75,13 @@ def test_the_real_repo_publishes_the_six_wiki_skills():
} <= names } <= names
def test_weekly_review_skill_names_no_provider(): def test_gtd_weekly_review_skill_names_no_provider():
"""#119 D25/#127 AC1: the skill is the one document meant to read """#119 D25/#127 AC1: the skill is the one document meant to read
identically in every instance, whichever task-tracker provider it runs identically in every instance, whichever task-tracker provider it runs
against - so its body must name none of them, and none of a provider's against - so its body must name none of them, and none of a provider's
file or API shape either. Reads the real repo's file, not a fixture, file or API shape either. Reads the real repo's file, not a fixture,
because the claim is about what ships, not about the discovery logic.""" because the claim is about what ships, not about the discovery logic."""
text = (config.INSTRUCTIONS_DIR / "weekly-review" / "SKILL.md").read_text(encoding="utf-8").lower() text = (config.INSTRUCTIONS_DIR / "gtd-weekly-review" / "SKILL.md").read_text(encoding="utf-8").lower()
forbidden = [ forbidden = [
"super productivity", "super productivity",
"azure devops", "azure devops",
@@ -91,7 +91,7 @@ def test_weekly_review_skill_names_no_provider():
".wikitool-tasks.json", ".wikitool-tasks.json",
] ]
hits = [term for term in forbidden if term in text] hits = [term for term in forbidden if term in text]
assert not hits, f"weekly-review/SKILL.md names a provider or its shape: {hits}" assert not hits, f"gtd-weekly-review/SKILL.md names a provider or its shape: {hits}"
def test_instructions_dev_flat_file_is_discovered(layer): def test_instructions_dev_flat_file_is_discovered(layer):