Skip to content

Code Club Walkthrough v2-aug14 #4

Description

@nitya

Tracking issue for the full pre–Code Club walkthrough on branch v2-testing-aug14.

Goal: verify every lab end-to-end along two self-contained paths — a UI (portal-first) walkthrough and a CLI (azd/Copilot-first) walkthrough — hardening Fundamentals + Core first, then Capstone, then More Labs.

How to use: pick a path, then work top-to-bottom. Each path is ordered so it runs end-to-end in a single sitting with no forward references. Path A is listed first because it needs no local toolchain; Path B reuses the same subscription but a fresh azd env name.

Legend: ✅ = verified working as written · edits needed get a linked commit/PR.


🔗 Related issues

This walkthrough is the verification vehicle for the open issues below. Each is anchored to the checklist item that proves it out — close the issue when that item is checked and the fix has landed.

Issue What it covers Verified by
#1 — Remove Web Search Tool from Prompt Agent Web search conflicts with grounded data; wants a default → grounded → optimize progression A4, B5, A10 / B10
#2 — UI Path can cause duplicate RG creation after Step 5 UI provisioning + CLI hosted-agent deploy creates a second RG; ordering / resource reuse A5, A5a, A5b, B1, B1a
#3 — Deploying hosted agent in Microsoft Internal tenant Expired refresh token + undocumented RBAC needed for azd deploy 0.3, 0.6, B6b

0️⃣ Pre-flight (do once, before either path)

  • 0.1 Clone / worktree is on v2-testing-aug14 and clean
  • 0.2 pip install -r requirements-dev.txt && pytest -q passes on a clean tree — 14 passed in 0.67s in Codespace
  • 0.3 az login + azd auth login against the target tenant (both, independently cached) — ref Deploying hosted agent in Microsoft Internal tenant issue #3
  • 0.4 Subscription has quota/region availability for gpt-5.4-mini + gpt-5.4-judge
  • 0.5 specs/course.yaml matches the actual lab set on disk — all 18 IDs resolve both ways, no orphans
  • 0.5a Fix azd up → azd provision / azd deploy in the course.yaml titles for 01-provision-azd and 05-deploy-hosted-agent; reconcile the lone azd up at 01-provision-azd.md:100
  • 0.6 Document the exact RBAC roles needed for hosted-agent deploy, and where a learner checks them — ref Deploying hosted agent in Microsoft Internal tenant issue #3

🖥️ Path A — UI walkthrough (Foundry portal first)

Run in this order.

  • A1 fundamentals/00-overview.md — orientation; mermaid renders, all links resolve
  • A2 fundamentals/02-provision-portal.md — provision Foundry project in the portal; record the RG name for reuse in A5
  • A3 fundamentals/03-deploy-models.md — deploy both models via the portal
  • A4 fundamentals/04-create-prompt-agent.md — create the Prompt Agent in the portal — ref Remove Web Search Tool from Prompt Agent #1
    • A4a Default agent (web search on) answers ungrounded — confirm the lab shows this
    • A4b After attaching data/*.csv, answers are a mix of web + grounded — confirm the lab shows this
    • A4c Lab states the fix is deferred to the optimize lab (A10), not done here
  • A5 fundamentals/05-deploy-hosted-agent.md — confirm the "portal cannot create hosted agents" callout is accurate; portal is view/manage only
  • A6 fundamentals/06-verify.md — Fundamentals checkpoint passes from the portal
  • A7 core/00-overview.md — map table + prerequisites match what A1–A6 produced
  • A8 core/01-observe-portal.md — invoke the agent, first traces appear in the portal
  • A9 core/02-evaluate-portal.md — sample dataset created + quality evaluator runs
  • A10 core/03-optimize-skills.md — optimizer produces a new prompt; review results in portal — ref Remove Web Search Tool from Prompt Agent #1 (this is where web search gets removed or scoped by instruction)
  • A11 core/04-monitor-portal.md — post-change evidence shows the improvement
  • A12 core/05-capstone-hosted.md — capstone loop completes, verified in the portal
  • A13 Teardown — azd down --purge --force (or portal delete); confirm no orphaned RG is left behind — ref Using UI Path can cause duplicate RG creation after Step 5 #2

⌨️ Path B — CLI walkthrough (azd + Copilot CLI)

Run in this order. Use a new azd env name rather than reusing Path A's.

  • B1 azd env new <fresh-name> — avoids stale server-side state; lab should also explain how to point an env at an existing portal-created RG for the mixed UI→CLI case — ref Using UI Path can cause duplicate RG creation after Step 5 #2
  • B2 fundamentals/00-overview.md — orientation (CLI framing)
  • B3 fundamentals/01-provision-azd.md — azd provision succeeds
    • B3a Gotcha: invalid character 'n' after object key:value pair — the four *Json params in infra/main.parameters.json; workaround azd env set AI_PROJECT_DEPLOYMENTS "[]"
  • B4 fundamentals/03-deploy-models.md — bicep defaults deployed (gpt-5.4-mini, gpt-5.4-judge)
  • B5 fundamentals/04-create-prompt-agent.md — prompt agent via CLI / agent.yaml — ref Remove Web Search Tool from Prompt Agent #1 (tool config matches the portal path)
  • B6 fundamentals/05-deploy-hosted-agent.md — azd deploy creates the hosted agent
    • B6a Gotcha: 409 modified concurrently → azd down --purge --force → azd env new → re-provision → re-deploy
    • B6b Gotcha: expired/stale token — 404 Subdomain does not map to a resource and refresh token has expired due to inactivity; re-auth both az and azd — ref Deploying hosted agent in Microsoft Internal tenant issue #3
  • B7 fundamentals/06-verify.md — Fundamentals checkpoint passes from the CLI
  • B8 core/01-observe-portal.md — drive invocations from the CLI to generate traces
  • B9 core/02-evaluate-portal.md — batch eval run from the CLI
  • B10 core/03-optimize-skills.md — Copilot + microsoft-foundry skill prompt optimization — ref Remove Web Search Tool from Prompt Agent #1
  • B11 core/04-monitor-portal.md — CLI re-eval + before/after comparison
  • B12 core/05-capstone-hosted.md — capstone loop end-to-end from the CLI
  • B13 scripts/reset.sh restores src/ from src.original/ after the optimize labs
  • B14 Teardown — azd down --purge --force

🧪 More Labs (explore after both paths land)


🔧 Repo-level checks (after walkthroughs, before Code Club)

  • R1 Every lab conforms to labs/_template/lab-template.md (H1 Lab NN — …, 🎯 🧭 📋 ✅ 🧠 ➡️ sections)
  • R2 Every generative step ships a reference/ artifact under artifacts/
  • R3 Lab gotcha callouts stay in sync with AGENTS.md known-gotchas
  • R4 Workshop-coach agent locates the learner correctly via progress-tracker
  • R5 S1–S11 + T1–T7 complete (all TODO(nitya) items either resolved or converted to real tickets)
  • R6 pytest -q still passes after all walkthrough edits
  • R7 Remove Web Search Tool from Prompt Agent #1, Using UI Path can cause duplicate RG creation after Step 5 #2, Deploying hosted agent in Microsoft Internal tenant issue #3 all resolved and closed
  • R8 Decide: add a mermaid-syntax guardrail to the test suite (30 diagrams, currently zero coverage — a broken one is invisible to pytest and shows as a red error box on GitHub). Validated manually this pass via mermaid@11 parse(); a permanent check needs a Node dep in a Python repo, or a lightweight regex-based structural test.

📸 Screenshots to capture

One item per lab; count in () = number of <!-- TODO(nitya): screenshot --> markers currently in that file. Tick when all placeholders in the file have been replaced with real images under labs/<phase>/images/.

  • S1 fundamentals/00-overview.md (1) — architecture diagram (Concierge → specialists → CSVs)
  • S2 fundamentals/01-provision-azd.md (2) — device-code prompt, RG in Azure portal
  • S3 fundamentals/02-provision-portal.md (3) — Foundry landing, Create-project form, Project-endpoint field
  • S4 fundamentals/03-deploy-models.md (3) — Deploy button, Succeeded state, Models list
  • S5 fundamentals/05-deploy-hosted-agent.md (2) — azd deploy success, azd ai agent invoke output
  • S6 fundamentals/06-verify.md (2) — Prompt-agent playground, Hosted-agent playground with trace panel
  • S7 core/01-observe-portal.md (4) — playground + logs, metrics dialog, response with AI Quality, polite-refusal + scope score
  • S8 core/02-evaluate-portal.md (3) — New-evaluation flow, evaluator-selection panel, low-scoring row with rationale
  • S9 core/03-optimize-skills.md (3) — Copilot Chat + MCP setup, streaming observe workflow, redeploy before/after
  • S10 core/04-monitor-portal.md (2) — Monitor tab (all charts), Tokens chart + AI-generated analysis
  • S11 more/red-teaming.md (1) — safety-evaluator selection panel

🧹 Non-screenshot TODO(nitya) items

Confirm each of these is resolved (or deliberately deferred with an updated marker) before Code Club.

  • T1 infra/main.bicep — structural fix for the four *Json params (change to array/object, drop json(), un-quote in main.parameters.json)
  • T2 infra/README.md — confirm region + SKU choices for the standardized models
  • T3 scripts/provision-portal.md — fill in the portal screenshots + step-by-step instructions (or link to Lab 02 and delete)
  • T4 src/README.md — confirm the exact azd ai agent run incantation
  • T5 labs/more/continuous-eval.md (line 47) — swap in real command once the eval runner is finalized
  • T6 labs/more/continuous-eval.md (line 89) — confirm runner + secrets story (prefer OIDC)
  • T7 labs/more/trace-driven-datasets.md (line 43) — paste the canonical KQL query

🎨 Visual navigation spot-checks

For each Fundamentals lab, confirm the compact "📍 You are here" mermaid banner renders on GitHub and that the highlighted (teal) node matches the lab file.

  • V1 fundamentals/00-overview.md banner highlights 00
  • V2 fundamentals/01-provision-azd.md banner highlights 01
  • V3 fundamentals/02-provision-portal.md banner highlights 02
  • V4 fundamentals/03-deploy-models.md banner highlights 03
  • V5 fundamentals/04-create-prompt-agent.md banner highlights 04
  • V6 fundamentals/05-deploy-hosted-agent.md banner highlights 05
  • V7 fundamentals/06-verify.md banner highlights 06
  • V8 The RG-context diagram at the bottom of 00-overview.md (➡️ Next section) still renders and its ⚠️ warning box names scripts/link-portal-rg.sh

This issue is kept up to date as the walkthrough progresses — items are added, split, or checked off as they're verified.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions