diff --git a/CHANGELOG.md b/CHANGELOG.md index c9e9b07..34f7a83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -125,5 +125,8 @@ Initial release. - `--prio` and `--priority` accepted interchangeably on `new`/`list`. - PostToolUse `tasks-md-guard.sh` hook to nudge edits through the CLI. - 155-scenario end-to-end test suite; CI across Python 3.8–3.12. + *(Editor's note, 2026-07-15: "155" counted assertions, not scenarios — the + v1.0.0 suite had 30 scenarios / 155 assertions. The suite has only grown + since; `make test` prints the live assertion count.)* - Docs: install + task-lifecycle walkthrough, a populated `examples/TASKS.md`, and `CONTRIBUTING.md`. Consistent `./tools/tasks.py` invocation throughout. diff --git a/CLAUDE.md b/CLAUDE.md index b77a4ea..c77a2f8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -35,7 +35,7 @@ exists — no install, no PATH, no network. | Path | What | |---|---| | `tasks.py` | The engine — commands, parser, validator, `version`/`selfupdate`. | -| `tests/test_tasks_e2e.sh` | The conformance gate (54 scenarios / 298 assertions as of v1.4.0 — `make test` prints the live count; don't trust doc numbers over the runner). | +| `tests/test_tasks_e2e.sh` | The conformance gate (54 scenarios / 298 assertions as of v1.4.0 — `make test` prints the live assertion count; don't trust doc numbers over the runner). | | `hooks/tasks-md-guard.sh` | Optional PostToolUse hook nudging edits through the CLI. | | `schema.md` | `TASKS.md` format quick-reference (full spec = the docstring). | | `docs/superpowers/specs/` | Committed design docs (`YYYY-MM-DD--design.md`) for larger features — the decisions *and their why*, written before implementation. ("superpowers" = the brainstorm/TDD workflow tooling used in AI sessions; the docs are plain markdown.) | @@ -77,7 +77,9 @@ it is deliberately conservative. Preserve all of these: 1. Bump `__version__` in `tasks.py` and add a `CHANGELOG.md` entry. 2. `make check` (green), commit. 3. Tag and push: `git tag -a vX.Y.Z -m "tasks vX.Y.Z" && git push origin vX.Y.Z` - (a tag push is the release; optionally `gh release create`). + (a tag push is the release). +4. Create the GitHub Release: `gh release create vX.Y.Z` with notes — standard + practice since v1.1.0 (every release has one). Vendored copies on older versions pick up the new release via `tasks selfupdate` (which fetches `tasks.py` from `main`'s raw URL). Keep the diff --git a/MEMORY.md b/MEMORY.md index c1da5fb..56ef37b 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -30,8 +30,11 @@ ## What just happened (2026-06-21 → 2026-07-15) -Six releases, each driven by real usage in consumer repos; every design decision and -its *why* is in `LEARNINGS.md` and `docs/superpowers/specs/`: +Six releases, each driven by real usage in consumer repos. The *why* behind the +decisions is in `LEARNINGS.md`; the renumber and id-allocation rounds also have full +design docs in `docs/superpowers/specs/`. (The milestone feature's original spec +lived off-repo in taxjot and did not travel — its surviving specification is the +module docstring + `schema.md`, and its rationale the v1.1.x LEARNINGS entries.) v1.1.0 milestones → v1.1.1 trailing-tag-region parsing (#9) → v1.1.2 shadow-sync field edits (#17) → v1.2.0 `set --title` (#18) → v1.3.0 `renumber` (#12) → v1.4.0 `new --id`/`--base` (#13). The through-line: a three-way ID collision diff --git a/README.md b/README.md index f48ffb9..8f78cbf 100644 --- a/README.md +++ b/README.md @@ -214,7 +214,7 @@ overwrites the running script, it is deliberately conservative: | `tasks.py` | The engine — task commands, `validate`, `version`, `selfupdate`. | | `examples/TASKS.md` | A populated sample file. | | `hooks/tasks-md-guard.sh` | Optional PostToolUse hook nudging edits through the CLI. | -| `tests/test_tasks_e2e.sh` | Behavioral conformance suite (54 scenarios / 298 assertions as of v1.4.0; `make test` prints the live count). | +| `tests/test_tasks_e2e.sh` | Behavioral conformance suite (54 scenarios / 298 assertions as of v1.4.0; `make test` prints the live assertion count). | | `schema.md` | `TASKS.md` format quick-reference (full spec in `tasks.py help`). | | `docs/superpowers/specs/` | Committed design docs for the larger features (the *why* behind them). | | `LEARNINGS.md` · `MEMORY.md` | Decision/insight ledger · maintainer session-to-session state. | diff --git a/examples/TASKS.md b/examples/TASKS.md index 841f218..47b6a1a 100644 --- a/examples/TASKS.md +++ b/examples/TASKS.md @@ -28,7 +28,14 @@ Example: - [x] (T-0002) [P0] [done] Another subtask @done=2025-01-01 ``` -Tags: `@deps=` `@rel=` `@branch=` `@pr=` `@issue=` `@tags=` `@effort=` `@system=` `@done=` +Tags: `@deps=` `@rel=` `@branch=` `@pr=` `@issue=` `@tags=` `@effort=` `@system=` `@milestone=` `@done=` + +--- + +# Milestones + +- M1 alias=alpha status=active Auth goes live +- M2 alias=beta status=planned Notifications rollout --- @@ -36,14 +43,14 @@ Tags: `@deps=` `@rel=` `@branch=` `@pr=` `@issue=` `@tags=` `@effort=` `@system= ## Now -- [ ] (F-0001) [P0] [todo] Auth MVP +- [ ] (F-0001) [P0] [todo] Auth MVP @milestone=m1 - [x] (T-0001) [P0] [done] Define User schema @effort=2h @done=2026-06-21 - [ ] (T-0002) [P1] [doing] Token validation @effort=4h @deps=T-0001 - [ ] (T-0003) [P1] [todo] Login endpoint @deps=T-0002 ## Backlog - [ ] (F-0002) [P2] [todo] Notifications - - [ ] (T-0004) [P2] [todo] Email provider spike @tags=research + - [ ] (T-0004) [P2] [todo] Email provider spike @tags=research @milestone=beta ## Skipped ---