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

5.2 KiB

name, description
name description
stack-dev 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).