Plans tree drained. Two new plans-docs land in docs/plans/. No
source-code changes.
For the full machine-readable changelog, see
CHANGELOG.md.
docs/plans/future-additions.md items with concrete patterns, no demand
docs/plans/shipping-audit.md what shipped vs what's pending
Together they answer the question "is there anything in any plan, design spec, or doc that's silently orphaned?" — and the answer is no.
Items with a clear pattern + LOC estimate but no current user demand. Graduation rule: "someone is asking for it" — not "it would be nice to have."
- More TLS DNS-01 providers (DigitalOcean, Hurricane Electric, Google Cloud DNS, Linode, OVH).
- More framework recipes (Rails, Next.js, Flask).
- More db engines (valkey, elasticsearch, opensearch, kafka, minio, clickhouse).
--on-hostforstack lemp— explicitly rejected with rationale: stack is intrinsically multi-container; the v0.9.0db --on-hostcovers the "local db without Docker" need without inheriting the recipe's coupling complexity.
Comprehensive walk through every plan / design spec / doc in the repo. Ten sections covering:
| Section | Bucket | Count |
|---|---|---|
| A | Migration W1-W9 | 9/9 shipped |
| B | feature-gap-analysis defer list | 4 shipped + 1 rejected |
| C | validation-report TODOs | all closed out |
| D | cleanup-2026-05-14 deferrals | 2 shipped (v0.10 / v0.12) |
| E | shipping-checklist | all in-code shipped |
| F | Permanent skips | 16 documented with rationale |
| G | User-side actions still pending | 2 |
| H | Future additions | cross-ref |
| I | Chronological release list | 13 releases this session |
| J | Audit conclusion | "the plans tree is drained" |
These are not deferrals. shimkit's code is ready; the human isn't.
The publish-pypi job has failed on v0.11.0 through v0.18.0
because the user-side trusted-publisher config isn't done yet.
The wheel + sdist are live on the GitHub Release page for every
version; PyPI is empty.
To fix (see shipping-audit.md G.1 for full step-by-step):
-
PyPI → https://pypi.org/manage/account/publishing/ → add pending publisher with
simtabi/shimkit/release.yml/ Environmentpypi. -
GitHub → Settings → Environments → "New environment" named
pypi. -
Re-run failed jobs:
gh run list --workflow=release.yml | grep failure # for each failed run id: gh run rerun <run-id> --failed
That backfills PyPI with the 10+ tags' wheels in ~5 minutes.
Settings → Branches → Add rule for main requiring the named
status checks (test (matrix cells), security, build,
smoke).
The two plans docs were already pushed to main as chores
yesterday. Tagging v0.19.0 today doesn't change the docs
themselves — it gives the docs-index release-notes table a clear
"this is the version where the plans-tree audit landed" pointer.
The next maintainer (or future me) reading the GitHub Release page can see "v0.19.0 — plans-tree audit" and know exactly where the durable record of what's done / what's pending / what's rejected lives.
- Tests: 1130 (unchanged)
- Source LOC: 0 changed
- Doc LOC: ~500 added (across the two plans docs)
- Gates: pytest, ruff, mypy strict — all green
uv tool upgrade shimkit
pipx upgrade shimkitNo behavioural changes.