Files
chemenu/instructions/dev/stack-dev/SKILL.md
T
torbenandClaude Opus 5.5 d8224ee2ab
CI / verify (push) Successful in 5m15s
CI / pwsh (push) Successful in 2m2s
Release / release (push) Successful in 34s
feat: stack development in three phases - stack-dev (design), stack-build, stack-close, handed over through tracker states (#168)
stack-build and stack-close carry disable-model-invocation, so each phase change is
the operator's slash command; no skill offers a mid-session /model or /effort switch.
Mode rules and the phase table move to instructions/dev/stack-mode.md, publish and CI
waiting to instructions/dev/publish-and-ci.md, the ready definition to issue-tracking.md.

Files changed:
- AGENTS.md
- CHANGES.md
- DEVELOPMENT.md
- README.md
- VERSION
- docs/model-and-effort-selection.md
- instructions/CONTRACT.md
- instructions/dev/commonplace-kb.md
- instructions/dev/dev-setup.md
- instructions/dev/doc-pull-through.md
- instructions/dev/issue-tracking.md
- instructions/dev/publish-and-ci.md
- instructions/dev/stack-build/SKILL.md
- instructions/dev/stack-close/SKILL.md
- instructions/dev/stack-dev/SKILL.md
- instructions/dev/stack-mode.md
- instructions/dev/testing-conventions.md
- instructions/dev/version-parts.md
- tools/chemenu/commands/git_publish.py
- tools/chemenu/tests/test_git_publish.py
- tools/chemenu/tests/test_instructions_cmd.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
2026-10-02 20:33:07 +02:00

86 lines
5.2 KiB
Markdown

---
name: stack-dev
description: Switches a session into tool-development mode and runs its design phase - 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, triage or work out a stack issue, or otherwise work on the stack rather than ingest/query/manage/lint the wiki.
---
# Stack Development Mode - Design
**Purpose:** Recognize a session that is about the tool stack itself - `tools/wikitool`, the
type schema, the instruction/skill layer - rather than wiki content, switch the rules that apply
accordingly, and carry a work package through its design phase: to an issue body a cold session
can build from.
**Trigger:** The user asks to add or change a `wikitool` command, extend the compiler, change a
type-spec, or work on `instructions/`/`types/`/`tools/` as code rather than as a place to run
`wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/`wiki-status` against. Also: triaging a
`status/incoming` stub, refreshing an old spec against today's tree, or analysing a defect in the
stack before anything is fixed.
This is the first of three phases. The build (`stack-build`) and the closing (`stack-close`)
are separate skills that only the operator starts - this one never runs them, and never builds
past the design. `instructions/dev/stack-mode.md` has the phases, their handovers and why they
are split that way.
## Steps
1. **Confirm the mode, then read `instructions/dev/stack-mode.md`.** If the task is ambiguous
between "extend the tool" and "operate the wiki", ask rather than guess - the two have
different rules for the same directories. The mode file holds the rules that change, and the
catalogue of dev-only procedures (§ Where the procedures are); consult what it names for the
task at hand rather than re-deriving it.
2. **Find or open the work package.** One Gitea issue per package
(`instructions/dev/issue-tracking.md`). Read its body as the current spec, and correct it
first where the tree or a comment proves it wrong. A `status/incoming` stub is worked out per
that file's § Incoming stubs before anything else happens to it.
3. **Work the design out in the body, not beside it.** Whatever this session establishes - a
decision and its reasoning, a root cause, a rejected approach, the files involved - goes into
the body as it is settled (`instructions/dev/issue-tracking.md` step 2), with one changelog
comment for the session's worth of change (step 3). A question only the user can answer is
asked in the chat and stays a question in the body until it is answered; it is never settled
by a guess.
4. **Name the version part.** Apply the drop-in test in `instructions/dev/version-parts.md`
and write the result into the body. Whether a change is a drop-in replacement has no
mechanical guard, so it is decided here, not at the bump. A change that crosses the
compatibility boundary goes to the user with what breaks, what an instance has to do about
it, and the alternatives, before the body can be ready (version-parts.md step 4).
5. **End the phase at a ready body.** Check the body against
`instructions/dev/issue-tracking.md` § Ready to build. If it fails, say which point is open
and stay in this phase. If it passes, recommend one of two ways on, and stop:
- **A long design session** - much exploration, a defect analysis, a stub worked out from
scratch: `/clear`, then `/stack-build #N`. The build starts lean, and a cold start is the
real test of whether the body is ready.
- **A short one** - an existing spec refreshed against the tree: continue in this session
with `/stack-build #N`.
Close with the fixed line, in the instance's KB language per `AGENTS.md` § File naming:
> #N is ready. Next: `/stack-build #N` - here, or after `/clear`.
**Do not run `stack-build` yourself, and do not start building.** The phase change is the
operator's moment to decide on context and model; a design session that carries on into code
takes that decision away. Offer no `/model` or `/effort` switch either - see
`instructions/dev/stack-mode.md` § Sessions and models.
## Decision points
- **Nothing to build - the session answered a question or filed a follow-up?** The phase ends
with the issue in whatever state it reached, body current; there is no `/stack-build` line to
give.
- **The task is a one-line fix that seems not to need a design?** It still needs a body that
says what is fixed and which version part it takes - which for a real one-liner is a short
body, written in minutes. The cut to `stack-build` can then happen in the same session.
- **The design turns out to cross the compatibility boundary?** Do not decide it alone - step 4.
## Scope
Not for wiki content work - use `wiki-ingest`/`wiki-query`/`wiki-manage`/`wiki-lint`/
`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 building a ready body (`stack-build`, `instructions/dev/stack-build/SKILL.md`) or closing
a published package (`stack-close`, `instructions/dev/stack-close/SKILL.md`).