Releases: Org-EthereaLogic/agentic-starter-kit
Release list
v0.7.2 — pip-audit fix + dev container network diagnostics
A patch release fixing a CI workflow regression that has been silently breaking every Python / polyglot scaffold since v0.4.0, plus a much friendlier error path when the dev container's outbound network is blocked.
Fixes
- #100
fix(template): pip-audit pyproject.toml parsing + dev-container network diagnostics.Supply-chain auditworkflow now actually runs.pypa/gh-action-pip-auditpasses theinputs:parameter to pip-audit's--requirementflag, which only understandsrequirements.txtformat. The workflow was passingpyproject.tomldirectly, failing on the first[project]TOML header. Fix: export uv's resolved lock viauv export --no-emit-project --no-hashes --format requirements-txtand audit the resulting file. Pre-existing on every project rendered from v0.4.0 through v0.7.1.post-create.shnow diagnoses outbound-network blocks up front. When VS Code's Restricted Network Access, Codespaces' restricted-internet policy, GitHub Copilot Coding Agent's outbound firewall, or a corporate proxy blocks the container, every downstreamapt-get,uv,npm, andghcall fails with a tool-specific cryptic error. The newcheck_outbound_networkstep probespypi.organd, on failure, prints the four common 2026 causes plus a pointer toKNOWN-ISSUES.md. Non-fatal — legitimate offline flows keep working.KNOWN-ISSUES.mdadds a "Dev container internet access blocked" entry with declarative remediation snippets for each cause (VS Code trust dialog, Codespaces firewall,.github/copilot/firewall.yml,containerEnvproxy passthrough).
Why this matters for adopters
Anyone scaffolding a Python or polyglot project from v0.4.0 through v0.7.1 has a Supply-chain audit workflow that fails on every push. The fix is a one-step CI workflow change; no application code is affected.
Anyone hitting "no internet in the dev container" now gets a single clear diagnostic and a documented remediation path instead of chasing tool-specific symptoms.
Upgrade
For copier-rendered projects:
copier update --trust --skip-answered --vcs-ref v0.7.2For cookiecutter-rendered projects, no in-place upgrade flow ships; either re-render and merge per docs/UPDATING.md, or cherry-pick the three changed files (.github/workflows/supply-chain.yml, .devcontainer/post-create.sh, KNOWN-ISSUES.md).
Full diff: v0.7.1...v0.7.2
v0.7.1 — dev container venv race + stale-venv self-heal
A patch release addressing two adopter-blocking dev-container bugs surfaced when the first real project (ai-powered-lead-gen-mvp) scaffolded from v0.7.0.
Fixes
- #99
fix(template): self-heal stale .venv and wait for postCreateCommand.devcontainer.jsonnow declares"waitFor": "postCreateCommand". Without it, VS Code attaches beforepost-create.shfinishes, and the Python + Ruff extensions try to spawn${workspaceFolder}/.venv/bin/pythonbeforemake synchas created it. Symptom:Ruff: spawn .venv/bin/python ENOENTon first attach.make sync-pythonnow self-heals a non-runnable.venv(e.g. dangling symlink after a base-image upgrade or device migration). If.venv/bin/python --versionfails, the venv is removed before re-syncing.uv syncalone wrote lockfile metadata but did not detect or repair a broken interpreter.- New "Dev container" section in
KNOWN-ISSUES.mddocumenting both symptoms and recovery steps for adopters whose containers were built before this fix.
Why this matters for adopters
Anyone who scaffolded from v0.7.0 and opened the project in a VS Code dev container could hit the Ruff ENOENT race. After upgrading to v0.7.1:
- Fresh renders:
Dev Containers: Rebuild Containeronce and the editor attach now blocks until post-create finishes. - Existing renders: pull the two changed files (
devcontainer.json,Makefile.fragments/sync.mk) or re-render and merge perdocs/UPDATING.md.
Upgrade
For copier-rendered projects:
copier update --trust --skip-answered --vcs-ref v0.7.1For cookiecutter-rendered projects, no in-place upgrade flow ships; either re-render and merge per docs/UPDATING.md or cherry-pick the two-file change.
Full diff: v0.7.0...v0.7.1
v0.7.0 — slash-command rename + dev container compat hardening
Five PRs since v0.6.0. Mocks (Python defaults, TypeScript minimal, Polyglot kitchen-sink) now build cleanly on host AND in the official .devcontainer/, end to end.
Changes
Public-surface change
- #92
chore(template): drop "gov." prefix from slash commands.The 16.claude/commands/*.mdfiles now ship as plain verbs (audit.md,plan.md,sync.md, …) and are invoked as/<verb>. Reverses the prior "never re-prefix" contract — the historical Spec Kit collision concern is moot since/speckit.*shipped.
Bug fixes
- #93
fix(template): resolve cwd realpath in TS audit-hooks test (macOS).make hooks-testno longer fails on macOS hosts where/varis a symlink to/private/var. Linux unaffected. - #94
fix(template): make SBOM references in THREAT_MODEL.md conditional.Removes brokenscripts/generate-sbom.shreferences fromsbom=norenders' threat-model doc. - #95
fix(template): three dev-container compatibility fixes from build exercise.- Governance scripts (
marker-scan,check-governance,query-governance) resolve a venv-aware Python so PyYAML is available in clean dev containers. evals.mk's[ -n "$CI" ]is guarded with${CI:-}so it doesn't tripset -uon GNU Make 4+.test_npm_install_failure_is_non_fatalpins a minimal PATH so pre-installed AI CLIs in the dev container don't short-circuit the test's npm-failure branch.
- Governance scripts (
- #96
fix(template): make §1 SBOM asset row truly conditional in THREAT_MODEL.Closes follow-up to #94 — the §1 asset-table SBOM row was inline-clarified rather than removed; now it ships only onsbom=yesrenders.
Why this matters for adopters
Anyone scaffolding a fresh project from main now gets make sync && make validate && make hooks-test green out-of-the-box on:
- macOS host (Python, TypeScript, polyglot)
- Linux host (Python, TypeScript, polyglot)
- The official VS Code dev container (all three variants)
Previously, the TypeScript and polyglot variants failed make hooks-test on macOS (#93), and all three variants failed make validate inside the dev container with PyYAML not installed and CI: unbound variable errors (#95).
🤖 Release notes generated as part of the build-exercise wrap-up.
v0.6.0 — AI CLI devcontainer tooling, doc-drift fixes
Three PRs since v0.5.0: one new feature and two targeted fixes.
Features
- AI CLIs installed in devcontainer post-create (#90).
ensure_ai_clis()added to.devcontainer/post-create.shso rendered projects land withclaude(@anthropic-ai/claude-code),codex(@openai/codex),gemini(@google/gemini-cli), andgh copilotavailable out of the box. Installs are best-effort (logs-and-continues on failure) and idempotent (no-op when binary already onPATH). A writable-prefix guard handles plain container images without nvm. Six new regression tests added totests/test_post_create_ai_clis.pycovering all key behaviours.
Fixes
- Pinned all unpinned Actions in the template-smoke-test workflow (#89). Completes the SHA-pinning work from #87.
- Resolved 8 of 11
check-doc-driftfalse positives and stale references (#91). Every rendered project previously emitted 11 warnings onmake validate; now emits 3 (the intentional Phase-8 traceability placeholders). Fixed: stale workflow reference (template-smoke-test.yml→ci.yml), wrong ADR filename (0002-initial-structure→0002-initial-scaffold-architecture), doc-relative ADR links, and four backtick-wrapped false positives (proper noun, filename placeholder, illustrative examples, and role-name examples).
Upgrade
For copier-rendered projects:
copier update --trust --skip-answered --vcs-ref v0.6.0For cookiecutter-rendered projects, no in-place upgrade flow ships; re-render and merge per docs/UPDATING.md.
Full diff: v0.5.0...v0.6.0
v0.5.0 — sentinel pruning, governance-rules.yaml, action pinning
The first release after v0.4.0 stabilization. Adds four template features, one security-relevant CI hardening, drops one no-op variable, and bumps polish across docs and tests.
Features
- Sentinel-based
pyproject.tomlpruning (#81). The template ships a single valid-TOMLpyproject.toml; the post-gen hook strips variant-tagged content (typechecker, SBOM dev-deps) so editors and TOML language servers can parse the source on disk. - Language-mismatched QUICKSTART pruning (#80). The QUICKSTART for the unselected language path no longer ships in the rendered tree.
governance-rules.yamldrives the governance gates (#79). The five-layer governance stack is now data-driven from a single YAML file rather than scattered checks.- Data-driven hook regression tests (#76). The pre-tool-use hook test suite reads its scenarios from a JSON spec, keeping the Python and Node test runners in lockstep.
Security / correctness
- Every third-party GitHub Action in the rendered project's workflows is now SHA-pinned (IMP-006, #87).
check-action-pinsis strict by default; the SLSA generator stays tag-pinned per upstream policy and is allow-listed. - Rendered README dev-tool list is now language-conditional (#84). Previously hardcoded
ruff, ty, pytesteven for TypeScript-only renders. make validatehonestly runs lint, typecheck, and test.
Removals (technically breaking; functionally backward-compatible)
include_databricksvariable removed (#88). It was a documented no-op placeholder; will return when actual Databricks scaffolding is designed. Copier silently ignores the dropped variable in existing answers files, socopier updatefrom v0.4.x is safe.
Other
- Template repo wired to Codecov for its own coverage signal (#82).
- New language toolchain comparison matrix in the README (#83).
- Post-gen hook pruning matrix is now exercised in CI (#77).
- Roadmap reconciled; §9 closed as won't-do (#78); items #69–#74 filed as the actionable register (#75).
- Sprint and dashboard tracking added (#68).
Upgrade
For copier-rendered projects:
copier update --trust --skip-answered --vcs-ref v0.5.0For cookiecutter-rendered projects, no in-place upgrade flow ships; re-render and merge per docs/UPDATING.md.
Full diff: v0.4.0...v0.5.0
v0.4.0 — Phases A/B/C/D complete
First stable release of agentic-starter-kit — a Cookiecutter + Copier dual-mode template for governed agentic Python/TypeScript projects.
All 15 roadmap issues across Phases A (Hardening), B (Specialization), C (Distribution), and D (Polish) are closed.
Phase A — Hardening
- A1 (#10): OWASP Agentic Top 10 (2026) coverage matrix
- A2 (#11): Astral toolchain default (
uv+ruff+ty) - A3 (#12): Supply-chain hardening (SLSA + OSSF Scorecards +
pip-audit+ Macaron) - A4 (#13): MCP server baseline +
docs/MCP_POLICY.md - A5 (#14): Hook surface extension + append-only audit trail
Phase B — Specialization
- B1 (#15): Eight specialized Claude Code agents under
.claude/agents/ - B2 (#16): Sixteen
/gov.*slash commands with frontmatter and tool allowlists - B3 (#17):
.claude/skills/progressive-disclosure starter skills - B4 (#18):
prompts/+evals/+ promptfoo +make evalgate
Phase C — Distribution
- C1 (#19):
copier.ymldual-mode template parallel tocookiecutter.json - C2 (#20):
governance-reviewCLI validator - C3 (#21): Devcontainer + SHA-pinned Dockerfile
- C4 (#22): MkDocs Material docs site (optional)
- C5 (#23): Commitizen + release-please for generated projects
Phase D — Polish
- D1 (#24): Examples gallery — Day 1 / Day 7 vignettes
Post-roadmap stabilization
- Cluster A (#45) — convention drift fixes, KNOWN-ISSUES.md, first-commit walkthrough, Node soft-check in
hooks-test - Action pin validator (forbid bare
@v1refs in workflows) - Cookiecutter
__prompts__for per-variable descriptions - Codacy runtime + tool configuration
Verification
The rendered scaffold passes make validate end-to-end:
governance-review → marker-scan → governance-check → traceability →
doc-drift → action-pins → hooks-test → lint → typecheck → test →
eval (when include_promptfoo=yes).
OSSF Scorecards target ≥ 7/10 on rendered smoke projects.
Render the template
cookiecutter gh:Org-EthereaLogic/agentic-starter-kit --checkout v0.4.0
# or
copier copy --vcs-ref v0.4.0 gh:Org-EthereaLogic/agentic-starter-kit my-project