Skip to content

0.2.1b5#10

Merged
a11smiles merged 19 commits intomainfrom
build-deploy
Mar 12, 2026
Merged

0.2.1b5#10
a11smiles merged 19 commits intomainfrom
build-deploy

Conversation

@a11smiles
Copy link
Copy Markdown
Collaborator

Backlog enrichment

  • Enriched backlog with full project contextgenerate backlog
    now loads build stages, deploy status, cost analysis, and stage
    completion (same context as spec-kit) for richer item generation.
  • Completed work items — items for already-built/deployed stages are
    generated with status: done and grouped under a "Completed POC Work"
    epic, with tasks marked as done.
  • Production Readiness epic — dedicated epic for POC-to-production
    work (SKU upgrades, networking, CI/CD, monitoring, DR), separate from
    generic "Deferred / Future Work".
  • Azure DevOps hierarchy — generation prompt requests Feature → User
    Story → Task structure with children[]; push code now creates Task
    work items linked to their parent User Story.
  • Dict task format — tasks can be {"title": "...", "done": true}
    objects; GitHub issues render completed tasks as [x], DevOps
    descriptions show checkbox markers. String tasks remain supported.

Spec-kit enrichment

  • Enriched spec-kit with full project contextgenerate speckit
    now loads discovery state, build stages, deploy status, cost analysis,
    and stage completion to populate templates with real project data.
  • Per-template prompt overrides — each spec-kit template gets a
    tailored AI prompt that tells the doc-agent exactly which context
    sections to use and what output format to produce.
  • production.md — new template covering POC-to-production guidance:
    SKU upgrades, networking, CI/CD, monitoring, DR, load testing, and
    estimated production costs.
  • Restructured tasks.md — tasks now map 1:1 to build/deploy stages
    with status markers: [x] completed, [!] failed, [ ] pending.
    Added Phase 6 (Production Readiness) for hardening tasks.

Init improvements

  • Removed eager directory creation from initconcept/apps/,
    concept/infra/ (terraform/, bicep/), and concept/db/ (sql/,
    cosmos/, databricks/, fabric/) are no longer created during
    az prototype init. These directories are now created on demand
    by the build stage only when they are actually needed.
  • Fixed --output-dir nesting--output-dir ./my-output now
    uses the specified directory as the project root instead of creating
    a name/ subdirectory inside it.
  • Fixed "Next: cd ..." hint — the summary panel now shows the
    actual project directory name instead of always displaying the
    --name value.
  • --json flag on all commands — added json_output parameter to
    every command function so the global --json / -j flag is
    accepted on all 24 commands (previously only 3 accepted it).
  • Naming env/zone_id derived from --environmentnaming.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.

TUI stage tree fix

  • Fixed stage tree showing completed checkmark for unstarted stages
    when launching with --stage design from an init-only project, the
    Design stage now correctly shows as in-progress (●) instead of
    completed (✓). Stage status is now derived from detected state files,
    not the target stage.
  • Stage skip guard--stage deploy from an init-only project
    now prints a warning and falls back to the next valid stage (e.g.
    design) instead of allowing users to skip ahead.
  • Consistent "no project" error message — all commands now show the
    same red CLIError message when prototype.yaml is missing:
    "No prototype project found. Run 'az prototype init'."
  • Replaced --output-format with --table / --report — the
    analyze costs command shows the cost summary table by default,
    --table shows the summary without saving a file, --report
    shows the full detailed report, and --json returns raw JSON.
    The generate backlog command uses --table instead of
    --output-format.
  • --json on cost analysis returns full content--json now
    suppresses console output and returns a structured JSON dict with the
    full cost report in the content field for machine consumption.
  • generate docs default output moved to concept/docs/
    documentation is now generated alongside other concept artifacts
    instead of a separate docs/ directory at the project root.
  • Normalized path separators in generate output — displayed paths
    now use forward slashes on all platforms instead of mixed separators
    on Windows. Also handles cross-mount --path values (e.g.
    Y:\output from a \\Mac\projects project) without crashing.
  • Spec-kit generates its own templatesgenerate speckit now
    produces spec-kit-specific files (constitution.md, spec.md,
    plan.md, tasks.md) aligned with the spec-kit <https://github.com/github/spec-kit>_ format instead of duplicating
    the documentation templates.

TUI post-design improvements

  • Removed CLI "Next steps" from TUI — the az prototype CLI
    commands block is no longer printed into the TUI console after
    architecture generation; replaced with a continuation prompt.
  • "continue" launches build — typing continue after design
    completes now starts the build stage, matching the prompt text.
  • Reduced console noise — removed extra blank lines between
    "Planning...", "Generating architecture...", and feasibility
    check messages in the TUI output.
  • Feasibility wording — changed "Reviewing {iac} feasibility..."
    to "Confirming {iac} feasibility..." and removed the arrow prefix.

a11smiles added 19 commits March 5, 2026 16:46
- 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.
@a11smiles a11smiles merged commit 3644296 into main Mar 12, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants