Merged
Conversation
- Replace CLI "Next steps" block with continuation prompt in TUI - Add "continue" as alias for "build" in orchestrator command loop - Remove extra blank lines between architecture generation messages - Change "Reviewing" to "Confirming" for IaC feasibility check - Sync fork with upstream before cloning in release workflow
- Version bump to 0.2.1b5 in setup.py, azext_metadata.json, and tests - Task tree: auto-expand on in-progress, auto-collapse on complete/fail - Task tree: sections start as leaves, gain expand arrow on first child - Discovery: clarify "continue" prompt to say "generate architecture" - CI: add Python 3.13 to test matrix
The init stage no longer creates concept/apps/, concept/infra/, or concept/db/ directories. These are build-stage concerns and should only be created on demand when code is actually generated. Updated PROJECT_SCAFFOLD, test fixtures, and HISTORY.rst.
Clean __pycache__ dirs from azext_prototype/ in both build.sh and build.bat before running setuptools, and add exclude_package_data as a fallback guard in setup.py.
When --output-dir is specified, use it directly as the project root instead of creating a name/ subdirectory inside it. Also fix the "Next: cd ..." hint to show the actual project directory name.
naming.env and naming.zone_id in prototype.yaml now reflect the chosen environment (dev→dev/zd, staging→stg/zs, prod→prd/zp) instead of always defaulting to dev/zd.
The global --json / -j flag was registered on the prototype argument context but only 3 command functions accepted it. Azure CLI rejects unknown arguments before the function is called, so --json failed on most commands. Now all 24 commands accept json_output=False.
Stage tree now derives status from detected state files instead of the target stage, so unstarted stages show as in-progress rather than completed. Attempting to skip stages (e.g. --stage deploy from init) prints a warning and falls back to the next valid stage.
All commands now raise CLIError with the same message when prototype.yaml is not found, replacing inconsistent variants like "Run 'az prototype init' first." and console.print_warning.
Default shows only the cost summary table and saves the full report to COST_ESTIMATE.md. --table shows the summary without saving a file. --report shows the full detailed report without saving. --json returns structured JSON with the full content and suppresses console output. Also replaces --output-format enum with --table on generate backlog.
Consolidates all documentation under concept/docs/ instead of creating a separate docs/ directory at the project root.
Use Path.as_posix() so displayed paths use forward slashes on all platforms instead of mixed separators on Windows.
os.path.relpath() raises ValueError when the output path and project directory are on different Windows mounts. Added _rel_path() helper that catches the error and falls back to an absolute posix path.
The generate speckit command now produces spec-kit-format files (constitution.md, spec.md, plan.md, tasks.md) in concept/.specify/ instead of re-rendering the same documentation templates as generate docs. Template placeholders include IaC tool, naming strategy, and environment from project config.
Load discovery state, build stages, deploy status, cost analysis, and stage completion into spec-kit templates via per-template AI prompt overrides. Add production.md template for POC-to-production guidance. Restructure tasks.md with status markers ([x]/[!]/[ ]) mapped 1:1 to actual build/deploy stages.
Load build stages, deploy status, cost analysis, and stage completion into the backlog generation prompt — matching the speckit enrichment. Adds completed-work items, a dedicated Production Readiness epic, provider-aware JSON schemas (DevOps hierarchy with children/tasks, GitHub with dict tasks for [x] markers), and DevOps Task push support.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backlog enrichment
generate backlognow loads build stages, deploy status, cost analysis, and stage
completion (same context as spec-kit) for richer item generation.
generated with
status: doneand grouped under a "Completed POC Work"epic, with tasks marked as done.
work (SKU upgrades, networking, CI/CD, monitoring, DR), separate from
generic "Deferred / Future Work".
Story → Task structure with
children[]; push code now creates Taskwork items linked to their parent User Story.
{"title": "...", "done": true}objects; GitHub issues render completed tasks as
[x], DevOpsdescriptions show checkbox markers. String tasks remain supported.
Spec-kit enrichment
generate speckitnow loads discovery state, build stages, deploy status, cost analysis,
and stage completion to populate templates with real project data.
tailored AI prompt that tells the doc-agent exactly which context
sections to use and what output format to produce.
SKU upgrades, networking, CI/CD, monitoring, DR, load testing, and
estimated production costs.
with status markers:
[x]completed,[!]failed,[ ]pending.Added Phase 6 (Production Readiness) for hardening tasks.
Init improvements
concept/apps/,concept/infra/(terraform/, bicep/), andconcept/db/(sql/,cosmos/, databricks/, fabric/) are no longer created during
az prototype init. These directories are now created on demandby the build stage only when they are actually needed.
--output-dir ./my-outputnowuses the specified directory as the project root instead of creating
a
name/subdirectory inside it.actual project directory name instead of always displaying the
--namevalue.json_outputparameter toevery command function so the global
--json/-jflag isaccepted on all 24 commands (previously only 3 accepted it).
naming.envand
naming.zone_idinprototype.yamlnow reflect the chosenenvironment (dev→dev/zd, staging→stg/zs, prod→prd/zp) instead of
always defaulting to
dev/zd.TUI stage tree fix
when launching with
--stage designfrom an init-only project, theDesign stage now correctly shows as in-progress (●) instead of
completed (✓). Stage status is now derived from detected state files,
not the target stage.
--stage deployfrom an init-only projectnow prints a warning and falls back to the next valid stage (e.g.
design) instead of allowing users to skip ahead.
same red
CLIErrormessage whenprototype.yamlis missing:"No prototype project found. Run 'az prototype init'."
--output-formatwith--table/--report— theanalyze costscommand shows the cost summary table by default,--tableshows the summary without saving a file,--reportshows the full detailed report, and
--jsonreturns raw JSON.The
generate backlogcommand uses--tableinstead of--output-format.--jsonon cost analysis returns full content —--jsonnowsuppresses console output and returns a structured JSON dict with the
full cost report in the
contentfield for machine consumption.generate docsdefault output moved toconcept/docs/—documentation is now generated alongside other concept artifacts
instead of a separate
docs/directory at the project root.now use forward slashes on all platforms instead of mixed separators
on Windows. Also handles cross-mount
--pathvalues (e.g.Y:\outputfrom a\\Mac\projectsproject) without crashing.generate speckitnowproduces spec-kit-specific files (
constitution.md,spec.md,plan.md,tasks.md) aligned with thespec-kit <https://github.com/github/spec-kit>_ format instead of duplicatingthe documentation templates.
TUI post-design improvements
az prototypeCLIcommands block is no longer printed into the TUI console after
architecture generation; replaced with a continuation prompt.
continueafter designcompletes now starts the build stage, matching the prompt text.
"Planning...", "Generating architecture...", and feasibility
check messages in the TUI output.
to "Confirming {iac} feasibility..." and removed the arrow prefix.