diff --git a/AGENTS.md b/AGENTS.md index 44fa8b0..89d3d4e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -42,7 +42,9 @@ Never start a long-lived / blocking process such as `npm run watch`. It runs unt ### Working on tasks -- **Task with subtasks** (a task that has indented children): create the branch with `npm run create:branch -- /`, inferring the prefix from the task content (`feature/…` / `fix/…` / `chore/…`) — do not hand-write `git switch -c`, the command enforces the clean-tree / current-`main` / green-baseline precondition. Work on each subtask with commits, then present a concise handover for the user to review. Use this fixed shape: +Every task — with or without subtasks — goes through the complete branching model: + +- Create the branch with `npm run create:branch -- /`, inferring the prefix from the task content (`feature/…` / `fix/…` / `chore/…`) — do not hand-write `git switch -c`, the command enforces the clean-tree / current-`main` / green-baseline precondition. Work with commits (each subtask gets one or more), then present a concise handover for the user to review. Use this fixed shape: ```md ## Handover — @@ -54,9 +56,7 @@ Never start a long-lived / blocking process such as `npm run watch`. It runs unt Once the user has no further objections, merge back: `npm run create:finish` (on the branch — it merges `--no-ff`, runs `npm run verify`, and deletes the branch). The branching model is documented in [CONTRIBUTING.md § Branching model](./CONTRIBUTING.md#branching-model). -- **Leaf task** (no indented children): implement on the current branch and commit. - -In both cases, follow [CONTRIBUTING.md § Testing discipline (type-driven)](./CONTRIBUTING.md#testing-discipline-type-driven). Each subtask gets one or more commits. +Follow [CONTRIBUTING.md § Testing discipline (type-driven)](./CONTRIBUTING.md#testing-discipline-type-driven) throughout. ## Read these diff --git a/CHANGELOG.md b/CHANGELOG.md index b17ef67..1f597f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +- route every backlog task through the full branching model, dropping the leaf-task exception - move the `_` fallback to a second argument typed `Exclude`, so it receives only the unhandled keys, and infer handler returns from short, unannotated handlers ## [0.3.0] - 2026-09-18