You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
My contribution adds a new instruction, prompt, agent, skill, workflow, or canvas extension file in the correct directory.
The file follows the required naming convention.
The content is clearly structured and follows the example format.
I have tested my instructions, prompt, agent, skill, workflow, or canvas extension with GitHub Copilot.
I have run npm start and verified that README.md is up to date.
I am targeting the main branch for this pull request.
Description
Adds the Foundry Agentic Loop plugin for building agentic solutions on Microsoft Foundry, GitHub and Azure from Copilot. It is aimed at the Microsoft field, customers and partners, and has two build modes:
Rapid prototyping: works in an existing Foundry project.
Spec-driven development (SDD): creates the Foundry project and ends in a verified azd deployment.
Type
Path
Purpose
Plugin
plugins/foundry-agentic-loop
Bundles everything below. Installing the plugin is the only onboarding step.
Skill
skills/foundry-agentic-loop
The only skill. It finds and installs the bundled canvas and workflow, and selects the mode: rapid, SDD or improve. references/ holds one guide per SDD phase (Specify, Implement, Verify, Deploy), adapted from the lean spec2cloud skills, with the plan phase folded into Specify. Guides load only when a step needs them.
Extension
extensions/foundry-agentic-loop-workflow
The foundry-agentic-loop-workflow dynamic workflow. It runs Specify → Implement → Verify → Deploy in sequence. Each phase has a lead, an independent fresh-context reviewer and bounded fix rounds, and passes only on evidence. It pauses for spec approval and always before azd up (approval is bound to a fingerprint of the plan, spec, verify report and Azure target), resumes by journaled replay, supports from and to to rerun one phase or a range, and writes a flight record to .agentic-loop/runs/.
Extension
extensions/foundry-agentic-loop-canvas
Rapid prototyping by default; it switches to SDD when the session has workflow runs. Four tabs: Start (mode, readiness, a compact Foundry project picker with a portal link, and a prompt template gallery), Build (live progress, or the SDD phase view with gates and "Fix in Chat"), Explore and Optimize. The gallery opens with Shape it with Copilot, followed by 61 industry templates with search, sort, gallery/list views and filters by industry, capability, building block and pattern, plus an optional Work IQ context toggle. While Copilot works, a dock shows Foundry enablement tips. Includes a five-slide "How it works" deck (public/deck.html).
Use in the GitHub Copilot App
Click Customize, then Plugins. Find foundry-agentic-loop and click Install. From the Copilot CLI: copilot plugin install foundry-agentic-loop@awesome-copilot.
Ask Copilot to open the agentic loop.
On the Start tab, choose Rapid (existing Foundry project) or SDD (subscription), then pick a prompt template or shape your own idea, and click Send to Chat. The canvas switches to Build when the build starts and to Explore when it finishes.
The first build writes a marked section to the workspace AGENTS.md. It locks the mode for Chat, the canvas and the workflow, and routes short commands such as deploy. Azure settings live only in .azure/deployment-plan.md.
Later, ask Copilot to improve the agentic loop. It mines the lessons in docs/LOOP.md and the flight records, proposes evidence-backed skill and workflow changes, measures them with scripts/evals.mjs against the base commit, and applies only the changes you approve.
Design
The design follows current agentic software factory practice:
durable artifacts as ground truth;
fresh-context reviewers;
computational checks before inferential ones (Foundry evaluations);
bounded fix rounds, then escalation with evidence; issue waivers only by a human;
human approval at spec and deploy;
self-improvement only through reviewed, measured, revertible diffs that never weaken gates.
Maintainability
One skill with a lean SKILL.md; the phase guides, references and templates load on demand.
The extensions install separately and cannot share modules, so the contracts shared by the skill, workflow and canvas (the AGENTS.md lock markers, the flight-record path and the shared-files list) are pinned by cross-component tests.
Both extensions run their tests with npm test. The skill ships 55 behavioral evals with metadata (mode, capabilities, targets, risk), fixtures and a runner.
Update to existing instruction, prompt, agent, plugin, skill, workflow, or canvas extension.
Other (please specify): dynamic workflow extension (extensions/foundry-agentic-loop-workflow), bundled by the plugin.
Additional Notes
Paid services and affiliation: the plugin targets Azure and Microsoft Foundry, which are paid services. It is authored by Microsoft AI Apps GBB (https://github.com/aiappsgbb).
The plugin README lists the requirements, the billable resources and the teardown steps.
Copilot confirms billable changes before making them.
Teardown (azd down --purge, plus the Entra app registrations the build created) runs only with explicit approval.
Validation (on this branch, merged with the current main)
✅ Passed: syntax, imports, file safety, preview images, manifests, materialize and Copilot CLI install. 0 errors, 3 warnings, all in workflow test files not reachable from extension.mjs
Playwright UI checks of the canvas (light and dark, gallery, picker, deck, dock)
✅ 0 failures
CRLF scan of the changed files
✅ LF line endings only
Tested in the GitHub Copilot App
Each test started from open the agentic loop and a canvas industry template, in a new empty repository, with the plugin installed from a local marketplace.
Round
Mode
Scenario
Result
1
Rapid
IT helpdesk agents
A verified local app (hosted Foundry agent, MCP servers, React/FastAPI) in 46 min, including 4 min answering questions; all six seeded tickets passed end to end. Deployed to Azure Container Apps 13 min after approval.
1
SDD
Automated claims processing and fraud detection
Passed all four gates: 474 unit tests, 98/98 E2E checks, Foundry evaluations ≥ 0.9 and live smoke checks on 22 claims. 465 min wall time with 25 subagents, including 28 min of approval waits.
1
Improve
Both runs above
Mined 57 lessons into 8 root-cause clusters with minimal diffs and 9 new evals, reviewed by a fresh-context subagent and applied after approval.
2
Rapid
HR digital assistant
Completed and deployed: about 3 h to a verified local app (7 min of answers), then an 18-min deploy. It skipped the deploy question, so deployment ran after explicit approval.
2
SDD
Customer service always-on agent
Exposed workflow defects (review convergence, provider-error pauses, redundant redeploys) and stopped at Verify because the delegated sign-in needed tenant consent. These drove the hardening in this PR: fail-closed gates, run leases, from/to reruns, deploy fingerprints and unauthenticated access by default only for sample, synthetic or public data.
3
Rapid
Prompt template from the gallery
Manual run by the author; its lessons (docs/LOOP.md) aligned the Build steps with Chat and added automatic tab switching.
Note: round 1 ran claude-opus-5.5 at medium reasoning effort and round 2 ran gpt-5.6-sol at max effort, so round-2 timings are not directly comparable. The skill recommends medium or high effort for subagents.
Known issue: with a local directory marketplace, the app sometimes listed the plugin's extensions as disabled after an older session was resumed. The skill and the canvas readiness check detect this and guide re-enabling; a new session then picks the extensions up.
By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.
Adds the agentic-loop plugin for building agentic solutions on
Microsoft Foundry, GitHub and Azure:
- agentic-loop router skill with rapid prototyping, spec-driven
delivery (SDD) and improve modes
- Specify, Implement, Verify and Deploy phase skills
- agentic-loop-workflow dynamic workflow that runs the SDD phases with
gated reviews and bounded fix loops
- agentic-loop-canvas with industry scenarios, an SDD workflow view,
Foundry enablement content and a "How it works" deck
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Start from distilled records, locate targets with grep, draft clusters in
parallel and re-verify only disputed claims, so proposals arrive in about
20 minutes instead of 75.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Run affected evals in one batch, rerun only failures once, and compare a
persistent failure against the base commit once instead of iterating.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Apply lessons from the sdd-claims and rapid-it-helpdesk runs:
- Identity: grant the runtime instance identity (not the blueprint) via an
idempotent postdeploy hook, add project Foundry User for skill download,
MCP Easy Auth allow-lists, cross-resource-group Foundry grants.
- Specify: seed and decision rules, well-formed tables, no credential
literals, .gitattributes.
- Versions: pin exact latest-stable versions and image tags served by the
build's index.
- Concurrency: size E2E parallelism from TPM/RPM and reuse it in Deploy.
- Scaffolding into an existing workspace; image parameters that survive
re-provision; Deploy endpoint and hook readback; workflow review prompts.
- Evals 21-29 covering these cases.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1f0362eb-35b9-41c7-b285-56d1577abefb
The contract states the version policy; Implement resolves the latest stable
releases and verifies the github-copilot-sdk API before generating code.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Round-two tests in the GitHub Copilot App (rapid HR assistant and SDD
customer service) exposed five defects, now fixed:
- Provider errors: a subagent that ended without a report re-ran its
step and spent fix loops. Reports are now journaled per label, a
missing report is retried once with continue-from-state guidance,
and a second miss blocks the gate for a human check.
- Specify over-specification: reviews kept adding internal mechanics
(a 1,588-line spec after four rounds). Reviews now report only
verified defects and judge the contract, and fixes tighten text.
- Redundant redeploys: Implement redeployed unchanged and app
services. It now deploys only changed checkpoint services and
reproduces agent defects locally first.
- Stall misdiagnosis: hidden workflow subagents looked stalled.
sdd.md and the workflow README explain liveness and forbid
cancelling or restarting a run to unstick it.
- Skipped deploy question: rapid mode now asks with ask_user before
deploying the app and waits for the answer.
References gain validated lessons on grounding score thresholds,
citation rebuilding, Responses output parsing, SSE parity, toolbox
RAI policy IDs, Container Apps image pulls and evaluator false
negatives on correct refusals. Adds evals 30-36.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
… go to integration
- Defaults: apps ship without end-user sign-in unless the user asks; when
sign-in is requested, the API pre-authorizes the SPA and the spec plans
and Implement proves the automated browser-test token path.
- Specify applies documented defaults before "safest" ones and validates
the app-access default; evals 37-38 cover both cases.
- Workflow: a parallel workstream worker with no report after its retry is
handed to integration as failed instead of blocking the gate; docs and a
regression test updated. Eval 30 cites a real round-1 step label.
- Plugin author: Microsoft AI Apps GBB.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Round 2 inferred Entra sign-in from the "remote reps" persona. The app-access
default now says it holds even when the users are staff, and eval 37 tests
that trap.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Fold agentic-loop-specify, -implement, -verify and -deploy into the
agentic-loop skill as references/{specify,implement,verify,deploy}.md,
move the Specify templates to assets/ and azd-layout.md to references/.
The workflow resolves phase guides inside the one skill and accepts an
override copy only when it is complete; the canvas checks one skill.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Move the lessons file from the workspace root LOOP.md to docs/loop-sri.md
across the skill, references, evals, workflow prompts, canvas and deck.
The workflow and canvas share a LESSONS constant; docs/ already covers
the file in the workflow's shared, lead-owned paths. Also fix two
leftover plural "skills" references from the single-skill merge.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Rename the plugin and skill to foundry-agentic-loop, the workflow to
foundry-agentic-loop-workflow and the canvas to
foundry-agentic-loop-canvas, including extension IDs, canvas and
instance IDs, install commands, prompts, tests and generated indexes.
The "Agentic Loop" display name, the .agentic-loop/ run-record folder
and external aiappsgbb/agentic-loop and aka.ms links are unchanged.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The first build writes a marked Agentic Loop section to the workspace
AGENTS.md that records rapid prototyping or SDD and routes short
commands such as deploy, status, resume and improve to the right step.
Azure settings stay only in .azure/deployment-plan.md.
- Skill: rapid and SDD section templates and the "Lock it in" rule.
- Workflow: setup adds the SDD section when absent, keeps an existing
one and refuses a workspace locked to rapid prototyping.
- Canvas: reads the lock after each turn, disables the other mode with
a lock hint and an Open AGENTS.md shortcut, and rejects conflicting
mode actions. Switching happens only in Chat, with confirmation.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Setup matched extensions by bare name, so the canvas and workflow shipped
by the plugin (listed as plugin:foundry-agentic-loop:<name>) were reported
"Not installed" even while running. Match the last segment of the
source-qualified ID or name, prefer a running copy over a disabled or
failed one, and flag a second active copy because it makes the canvas ID
and tool names ambiguous.
Found by a read-only runtime check in the GitHub Copilot App.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Both rapid prototyping and SDD now share the same four tabs:
- Start: readiness, Foundry project or deployment target, and the brief.
Ready steps collapse to a one-line card; restored choices collapse,
picked ones stay in view. Readiness groups use the step chevron.
- Build: rapid milestones and short commands (run, test, deploy,
convert to SDD), or the live SDD phase view.
- Explore and Optimize: unchanged content.
Adds an optional Work IQ context toggle on Start. When on, brief prompts
ask Copilot to ground clarifications in Microsoft 365 context through the
workiq MCP server. Setup reports its state from mcp.listConfigured without
starting servers, and it never affects readiness.
Retired tab names (setup, resources, workflow, cost) migrate on load.
Docs, deck, skill and workflow wording now refer to the Start and Build tabs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The Rapid prototyping | SDD workflow switch and its hint (including the
AGENTS.md lock and Open AGENTS.md) now open the Start tab, above the
heading they change. The tabs follow the project bar directly, so Build,
Explore and Optimize no longer repeat a control that only matters when
starting. Mode styles move into the Start section of app.css; the README
and the How it works deck describe the new location.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Six slides instead of fourteen: the idea → Work IQ context → rapid
prototype or SDD workflow arc, the Global Black Belt best practices the
loop embeds, recursive improvement and a three-step start. Real scenario
imagery and animated loop motifs, responsive from the side panel to full
width, light and dark, and reduced-motion safe.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The deck's "Start your first loop" slide now shows the App path as UI
chips: Customize > Plugins > search foundry-agentic-loop > Install,
replacing the CLI command. The plugin README leads with the same App
steps and keeps the CLI command as the alternative.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Replace the searchable project list and resource-context card on the
Start tab with Subscription and Project dropdowns. Projects are grouped
by resource group, and one help line names the resource group that
receives solution resources. Loading, empty and access-denied states
are shown in place. Choosing a subscription keeps the step open, and a
rejected selection reverts the dropdown. The SDD deployment target
shares the same field layout.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Replace the Start tab's Shape it with Copilot block and industry scenario
browser with a prompt template gallery. Shape it with Copilot comes first,
then 61 industry templates with search, industry, capability, building block
and pattern filters, sort, and gallery (default) or list views.
- Sending locks the template for the session. Unlock works until Copilot
starts building; in SDD the prompt can be edited to start a new run.
- Boost with Work IQ is a toggle next to Send to Chat.
- With no template, the Build call to action reads "Start with a prompt
template"; the canvas title is Foundry Agentic Loop.
- Infer missing capability, building block and pattern tags from each prompt
with explicit rules, and end every prompt and description with a full
sentence.
- Place facet menus before they paint so they never overflow the panel.
- Use the Foundry Agentic Loop name across the docs, the workflow's
"Needs you" messages and the canvas hold prompts.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Start steps, rapid Build milestones and SDD phases no longer replace their
number with a check mark, so a completed step still reads "1" and "2"
before "3". State is shown by a tinted ring plus a small corner badge
(done, attention, paused, failed or skipped).
- Badges are inline SVG (the CSP blocks data URIs) with a background
ring, and stay aria-hidden like the markers they decorate.
- Paused and failed phases get the same tinted fill as the other states.
- Forced-colors mode renders badges in system colours, keyed by shape.
- The SDD preview phases are numbered 1 to 4.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Signing in with az login fixes Foundry project discovery, the SDD
subscription listing and the FOUNDRY_PROJECT .env sync, but their errors
stayed in step 2 until the header Refresh. Check again now retries only
the listings that failed, once Azure CLI reports a sign-in, and a later
subscription listing clears the stale "Could not list subscriptions" help
while keeping an environment-name validation error.
Passing readiness collapses step 1 under the button, so its summary now
scrolls back into view, showing steps 1 and 2 ready above the gallery.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The Microsoft Foundry project picker moves into the header. A Foundry logo
button beside it opens the project home in Foundry Portal, in the
directory of the project's subscription (?tid=). The header drops from
about 141px to 88px on narrow panels and to a single 60px row at 720px
and wider.
- Server: foundryProjectUrl builds the project home link and adds tid
only for a valid tenant GUID. Discovered projects carry portalUrl, or
null when the portal cannot address them.
- The link stays dimmed and announced as disabled until a linkable
project exists. Its tooltip explains why: choose a project, wait for
the workflow to create it, or wait for the canvas to access the
project named in FOUNDRY_PROJECT.
- The name and the SDD note share one text run with a single ellipsis:
the note is cut first and the name only once the note is gone. The
accessible name separates them with CSS content alt text.
- On narrow panels the Foundry logo sits under the loop logo and the
project name aligns with the title.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The header project picker becomes a select-like field that reads
"Microsoft Foundry project <name>", up to 560px wide, with the Foundry
logo cell opening the project in Foundry Portal. It sits under the title
on narrow panels and inline between the brand and actions from 880px.
fitProjectBar keeps the name whole by giving way in order: the SDD note,
then "Microsoft", then the label. When the name is cut anyway, it keeps
the most explicit label that leaves the name readable. A ResizeObserver
on the field refits on resize; the accessible name never changes.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The GitHub Copilot App does not open the loopback /deck.html link in an
external browser, so the link did nothing. The deck stays in the panel's
dialog. The iframe now uses aria-label instead of title, which keeps its
accessible name without a hover tooltip over the dialog heading.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The App opens canvas target=_blank links in the system browser through
an injected click handler that skips loopback hosts, and that handler
may not run inside the deck iframe.
- Deck: mirror the App's rule in the framed deck so its resource links
open in the system browser exactly once, whichever handler runs first.
- Explore: local frontends keep only "Open in integrated browser"; the
external-browser link is shown only for non-loopback URLs.
- Delivered runs: loopback endpoints render as text instead of dead links.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
…rompts
- Rapid Build shows six milestones read from README headings
(Architecture, Implementation contract, Hosted checkpoint), with
blocked and agent-only states.
- Sending a prompt or the project lock opens Build; a finished rapid
build or completed SDD run opens Explore.
- Prompts after the project is recorded in .env name only the project;
short commands point at the AGENTS.md Agentic Loop section.
- README.md is openable from the canvas.
- Deck rapid track fits six milestones on one row.
- Skill: uv lock and code packaging lessons; README heading conventions
for rapid milestones.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The lessons file is now docs/LOOP.md and its template assets/loop-template.md,
across the skill, workflow, canvas, deck and docs.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
The message is now a flexible span in a non-wrapping row, so long
messages wrap inside it and the close button stays on the right.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
[P2] Keep the target failure until restoration succeeds. If a target save fails and the subsequent /api/state refresh also fails, this clears the failed fields anyway. The next flush() returns {ok: true} without retrying restoration, allowing Send to Chat to use the server's old subscription or region while the controls still show the unsaved choice. Clear the failures only after a successful restore or save.
If restoring the server target after a failed save also failed, the failure
was cleared and the next send could use a target the controls did not show.
Keep failed fields until a restore or a save of that field succeeds; each
flush retries the restore.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Addressed the previously missed P2 "Preserve target failures until restoration succeeds" in 58ac10f: TargetSaver now clears failed fields only after a successful restore or a successful save of that field; a failed restore keeps Send blocked and the next flush retries it. Added a regression test that fails on the old code; all 97 canvas tests pass.
[P2] Fail closed on oversized flight records. With an older verified run and a newer blocked record over 2 MiB, this branch silently selects the older run, and rerunPlan(..., "Deploy") inherits its passed gates despite the newer failure. writeRecord() has no corresponding size cap. Refuse the rerun when a record cannot be inspected safely instead of falling back to stale gate evidence.
latestRecord skipped oversized, linked or unparseable records, so a newer
failed run could be passed over and its gates inherited from an older run.
Any record that cannot be inspected safely now refuses the rerun.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 12f8f9d1-8023-4138-87b5-d2a652056060
Addressed the previously missed P2 "Fail closed when flight records are oversized" in 259dadb: latestRecord now refuses the rerun when any record in .agentic-loop/runs is a link, larger than 2 MiB or not valid JSON, instead of skipping it and falling back to an older run's gates. Added a regression test (oversized and truncated newer record after a verified run) that fails on the old code; workflow tests 79/79 pass.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
Unresolved approval safeguards, RBAC gates, credential handling, configuration parsing, state races, and guidance inconsistencies block approval.
No open issues 🎉
Review effort: Max
This branch has not been deployed
No deployments
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
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.
Pull Request Checklist
npm startand verified thatREADME.mdis up to date.mainbranch for this pull request.Description
Adds the Foundry Agentic Loop plugin for building agentic solutions on Microsoft Foundry, GitHub and Azure from Copilot. It is aimed at the Microsoft field, customers and partners, and has two build modes:
azddeployment.plugins/foundry-agentic-loopskills/foundry-agentic-loopreferences/holds one guide per SDD phase (Specify, Implement, Verify, Deploy), adapted from the lean spec2cloud skills, with the plan phase folded into Specify. Guides load only when a step needs them.extensions/foundry-agentic-loop-workflowfoundry-agentic-loop-workflowdynamic workflow. It runs Specify → Implement → Verify → Deploy in sequence. Each phase has a lead, an independent fresh-context reviewer and bounded fix rounds, and passes only on evidence. It pauses for spec approval and always beforeazd up(approval is bound to a fingerprint of the plan, spec, verify report and Azure target), resumes by journaled replay, supportsfromandtoto rerun one phase or a range, and writes a flight record to.agentic-loop/runs/.extensions/foundry-agentic-loop-canvaspublic/deck.html).Use in the GitHub Copilot App
foundry-agentic-loopand click Install. From the Copilot CLI:copilot plugin install foundry-agentic-loop@awesome-copilot.AGENTS.md. It locks the mode for Chat, the canvas and the workflow, and routes short commands such asdeploy. Azure settings live only in.azure/deployment-plan.md.docs/LOOP.mdand the flight records, proposes evidence-backed skill and workflow changes, measures them withscripts/evals.mjsagainst the base commit, and applies only the changes you approve.Design
The design follows current agentic software factory practice:
Maintainability
SKILL.md; the phase guides, references and templates load on demand.AGENTS.mdlock markers, the flight-record path and the shared-files list) are pinned by cross-component tests.npm test. The skill ships 55 behavioral evals with metadata (mode, capabilities, targets, risk), fixtures and a runner.Credits: builds on aiappsgbb/agentic-loop (MIT) and the lean spec2cloud skills in Azure-Samples/Spec2Cloud (MIT).
Type of Contribution
extensions/foundry-agentic-loop-workflow), bundled by the plugin.Additional Notes
Paid services and affiliation: the plugin targets Azure and Microsoft Foundry, which are paid services. It is authored by Microsoft AI Apps GBB (https://github.com/aiappsgbb).
azd down --purge, plus the Entra app registrations the build created) runs only with explicit approval.Validation (on this branch, merged with the current
main)npm run skill:validatefoundry-agentic-loopis validnpm run plugin:validatefoundry-agentic-loopis validnpm run buildnode --test extensions/foundry-agentic-loop-workflow/tests/*.test.mjs extensions/foundry-agentic-loop-canvas/tests/*.test.mjsnode eng/canvas-smoke-test.mjs --changed-files <changed-files list> --install requireextension.mjsTested in the GitHub Copilot App
Each test started from open the agentic loop and a canvas industry template, in a new empty repository, with the plugin installed from a local marketplace.
from/toreruns, deploy fingerprints and unauthenticated access by default only for sample, synthetic or public data.docs/LOOP.md) aligned the Build steps with Chat and added automatic tab switching.Note: round 1 ran
claude-opus-5.5at medium reasoning effort and round 2 rangpt-5.6-solat max effort, so round-2 timings are not directly comparable. The skill recommends medium or high effort for subagents.Known issue: with a local directory marketplace, the app sometimes listed the plugin's extensions as disabled after an older session was resumed. The skill and the canvas readiness check detect this and guide re-enabling; a new session then picks the extensions up.
By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.