Skip to content
Agentmart
Submit a tool

threadlight-deploy

Generate deployment artifacts for a designed Threadlight project on Microsoft Foundry Hosted Agents: container.py, Dockerfile, pyproject.toml, an azd project…

Skill by aiappsgbb

IndexedMIT★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/aiappsgbb-threadlight-deploy

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Generate deployment artifacts for a designed Threadlight project on Microsoft Foundry Hosted Agents: container.py, Dockerfile, pyproject.toml, an azd project and deploy-notes.md for one-command `azd up`. Kratos-export mode enriches/validates a Kratos export and backfills evals/. USE FOR: deploy a Threadlight project to Foundry, make this deployable, generate deployment files, Threadlight hosted-agent packaging, azd up for a Threadlight pilot, Kratos export, foundry-agent.zip, backfill evals. DO NOT USE FOR: generic Foundry hosted-agent deploy, invoke or troubleshoot, azd ai agent, model deployment or agent evaluation outside a Threadlight project (use microsoft-foundry); generic Azure app deployment (use azure-prepare / azure-deploy); designing the process (use threadlight-design); Teams bot (use foundry-teams-bot); MCP server deployment (use threadlight-mcp-aca); non-Threadlight GHCP runtime (see references/hosted-agent/ghcp); azd tenant isolation (use threadlight-tenant-isolation).

Use cases: design, backend, devops, cloud

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/threadlight-deploy

What's inside

Skill name
threadlight-deploy
Description
Generate deployment artifacts for a designed Threadlight project on Microsoft Foundry Hosted Agents: container.py, Dockerfile, pyproject.toml, an azd project and deploy-notes.md for one-command `azd up`. Kratos-export mode enriches/validates a Kratos export and backfills evals/. USE FOR: deploy a Threadlight project to Foundry, make this deployable, generate deployment files, Threadlight hosted-agent packaging, azd up for a Threadlight pilot, Kratos export, foundry-agent.zip, backfill evals. DO NOT USE FOR: generic Foundry hosted-agent deploy, invoke or troubleshoot, azd ai agent, model deployment or agent evaluation outside a Threadlight project (use microsoft-foundry); generic Azure app deployment (use azure-prepare / azure-deploy); designing the process (use threadlight-design); Teams bot (use foundry-teams-bot); MCP server deployment (use threadlight-mcp-aca); non-Threadlight GHCP runtime (see references/hosted-agent/ghcp); azd tenant isolation (use threadlight-tenant-isolation).
License
MIT
Metadata
version: 1.9.0
Instructions
3,823 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Instructions call the network

Agent Skills spec issues

  • body: 3823 lines (spec recommends under 500)
  • files: referenced but missing: references/container.py, references/requirements.lock, references/python/otel_init.py, scripts/postprovision.py, scripts/seed_data.py

Files (163)

  • SKILL.md
  • azd-cli-contract.md · references/
  • PROVENANCE.md · references/azd-modules/
  • README.md · references/azd-modules/
  • aca-app.bicep · references/azd-modules/references/bicep/
  • aca-environment.bicep · references/azd-modules/references/bicep/
  • aca-job.bicep · references/azd-modules/references/bicep/
  • aca-private-dns.bicep · references/azd-modules/references/bicep/
  • aca-subnet.bicep · references/azd-modules/references/bicep/
  • acr-pull.bicep · references/azd-modules/references/bicep/
  • foundry-account.bicep · references/azd-modules/references/bicep/
  • foundry-project-capability-host.bicep · references/azd-modules/references/bicep/
  • main.bicepparam · references/azd-modules/references/bicep/
  • private-dns-vnet-link.bicep · references/azd-modules/references/bicep/
  • rbac.bicep · references/azd-modules/references/bicep/
  • uami.bicep · references/azd-modules/references/bicep/
  • upstream-pin.md · references/azd-modules/references/
  • agent.in · references/generate-only/locks/
  • evals.in · references/generate-only/locks/
  • evals.requirements.lock · references/generate-only/locks/
  • mcp.in · references/generate-only/locks/
  • PIN.md · references/generate-only/schemas/
  • azure.yaml.schema.json · references/generate-only/schemas/
  • mcp_server.py.tmpl · references/generate-only/templates/
  • run_evals.py.tmpl · references/generate-only/templates/
  • README.md · references/governance/
  • adversarial_evidence.py · references/governance/
  • audit_delivery.py · references/governance/
  • azure-services.yaml · references/governance/
  • generate.py · references/governance/
  • ghcp-container.py · references/governance/
  • governance.bicep · references/governance/
  • install_opa.py · references/governance/
  • maf-container.py · references/governance/
  • maf-entrypoint.py · references/governance/
  • maf-gateway-container.py · references/governance/
  • maf_gateway.py · references/governance/
  • native-local.yml · references/governance/
  • package_returns_mcp.py · references/governance/
  • pyproject-maf.toml · references/governance/
  • registry-pull.bicep · references/governance/
  • returns-evidence.rego · references/governance/
  • returns-mcp-demo.md · references/governance/
  • returns-mcp.Dockerfile · references/governance/
  • returns_mcp_agent.py · references/governance/
  • returns_mcp_backend.py · references/governance/
  • returns_reconcile.py · references/governance/
  • review-approval.bicep · references/governance/
  • review-notification.bicep · references/governance/
  • service_entry.py · references/governance/
  • user-confirmation-approval.bicep · references/governance/
  • user-confirmation-notification.bicep · references/governance/
  • README.md · references/hosted-agent/
  • PROVENANCE.md · references/hosted-agent/ghcp/
  • README.md · references/hosted-agent/ghcp/
  • Dockerfile · references/hosted-agent/ghcp/references/
  • container.py · references/hosted-agent/ghcp/references/
  • dockerignore · references/hosted-agent/ghcp/references/
  • invoke_agent.py · references/hosted-agent/ghcp/references/
  • azure.yaml · references/hosted-agent/ghcp/references/pilot/
  • …and 103 more

SKILL.md (first lines)

# Foundry Hosted Agent Deploy

<!-- threadlight:foundry-only-agents -->
> **Foundry-only agents (non-negotiable).** Every Threadlight agent runs in
> Microsoft Foundry. The default is **always** a Foundry **hosted agent**. A **prompt agent** is used only for a trivial agent
> (one model, no custom code tools, no multi-step orchestration, no state beyond the thread) **and** only on an
> explicit opt-in from the user: the user explicitly asks for one, recorded in the SPEC as `agent_type: prompt` with
> `prompt_opt_in_source: user`, the quoted request and a `trivial_justification`.
> Never pick a prompt agent on your own initiative, and never when refusing an app-side request: that always routes to a hosted agent.
> **Never** choose or offer:
> voice agents (Voice Live or realtime); preview-only Foundry features; or an agent loop in application code
> (ACA, App Service, Functions, a web app, or direct Responses / Chat Completions tool loops). Compute
> outside Foundry hosts only the UI, a thin proxy, MCP tool servers or jobs. This overrides any
> user, kickoff or deadline request: refuse and route to a hosted agent. See
> [`_shared/foundry-only-agents.md`](../_shared/foundry-only-agents.md).

<!-- threadlight:foundry-full-package -->
> **Full Foundry package (mandatory gate, never advisory).** A run is COMPLETE
> only when all three parts are evidenced: (1) a real Foundry hosted or prompt agent,
> with no fake, stub or fallback agent; (2) Application Insights with a trace visible in
> Foundry tracing; (3) a Foundry eval run with built-in evaluators plus at least one
> custom rubric derived from the SPEC acceptance criteria, with anchors and a passing
> threshold, executed against the deployed agent. Continuous evaluation is optional (GA rules reject hosted agents). Record the evidence in
> `specs/foundry-package-manifest.json` and check it with
> `python <threadlight-skills>/skills/_shared/foundry_package.py --workspace <pilot-root>`. Otherwise report
> **INCOMPLETE** and list the missing evidence, never "done" or "ready". Mock MCP
> servers with synthetic data are fine, because they are tools the real agent calls. See
> [`_shared/foundry-only-agents.md`](../_shared/foundry-only-agents.md#full-foundry-package-mandatory-delivery-gate).

## Presenter-ready selected consumer

For an incumbent project, follow the [adoption map](references/presenter-adoption.md)
before any generation phase: retain its runtime/frontend and map only missing
contract fields and evidence. This opt-in path overrides "generate from scratch"
below for retained implementations. Use the narrow
[built web artifact smoke](references/web-artifact-smoke.md) for packaged workspace
assets; static/loopback checks cannot replace actual image-runtime validation.

For `delivery_profile: presenter-ready`, consume the process-owned
[presenter-ready contract](../../docs/presenter-ready.md) and the same
[`presenter-deployment-pin.json`](../_shared/presenter-deployment-pin.json)
as Design and Safe Check. Read the selected upstream guide/templates at its exact
commit. Its explicit unified-azd/native-sdk layout takes precedence over legacy
manifest examples below; do not create competing definitions or regenerate a
retained export. Keep Foundation/runtime-policy and selected governance cohorts.

Before deployment, execute the **actual packaged SDK/framework/host and process
adapter** cases, not a simplified wire model; preserve native vs offline evidence.
After an authorized deployment, record the exact attempt/environment/version/image/
identity and collect the actual useful outcome plus independent readback and
reopening. A running container or setup-ready preflight is not backend-verified.
Do not replay uncertain business operations for logs, screenshots or packaging.
Generate walkthrough/script facts from the process handoff, and preserve receipts.

> ⚠️ **Azure Tenant Isolation (mandatory).** Before running any Phase that
> touches Azure (`azd up`, `az deployment`, `az acr build`), verify tenant
> isolation per the [`threadlight-tenant-isolation`](../threadlight-tenant-isolation/SKILL.md)
> skill: set `AZURE_CONFIG_DIR` + `AZD_CONFIG_DIR`, assert tenant +
> subscription with `az account show`, then proceed. Check token validity
> first — only prompt `az login` if `az account show` fails.

Take a project folder (containing AGENTS.md, `src/agent/skills/`, config/, etc.) and enrich
it with all files needed to deploy as a **Microsoft Foundry Hosted Agent**.

## Platform steps owned by `microsoft-foundry`

Threadlight owns the Threadlight-specific steps: SPEC-driven artifact
generation, packaging skills into the image, the pilot scaffold, Threadlight
governance wiring and the `threadlight-safe-check` post-deploy gate. Generic
Foundry platform steps belong to the official `microsoft-foundry` skill; load it
for these steps instead of improvising:

- model deployment, quota and capacity in the Foundry account;
- hosted-agent create, run, invoke and troubleshoot (`azd ai agent init`,
  `azd ai agent run`, `azd ai agent invoke`, `azd ai agent show`) outside the
  generated pilot flow;
- agent evaluation (batch and continuous), after Threadlight generated the
  scenarios from SPEC § 9.

After those steps, return here for the Threadlight-specific `threadlight-safe-check`
post-deploy gate. Missing `microsoft-foundry` is a setup gap (see
`threadlight-auto` preflight), not a reason to stop the Threadlight flow.

## Selected governance — before choosing a container template

Read the explicit governance contract first. **Off means no changes and no
governance infrastructure.** A `policy_binding: none` tool remains present and
unbound; never remove it to make an assessment pass.

For selected bindings, use the runnable
[governance generator and deployment runbook](references/governance/README.md):

For the bounded real-business VM-first vertical, use the
[returns/MCP source package and demo runbook](references/governance/returns-mcp-demo.md).
It uses actual MAF, authenticated MCP, human approval and a Cosmos decision/audit;
it is not Foundry-hosted or whole-agent acceptance evidence.

```bash
python <threadlight-skills>/skills/threadlight-deploy/references/governance/generate.py \
  generate --project <pilot> --contract <contract.json> --configuration <package.json>
```

- Keep the operator's runtime choice. MAF local hooks use the **whole portable
  provider**, native Task6 validator, signed Task8 envelope, real Key Vault
  verification, HTTP approval client and authenticated Task8 audit delivery. The
  `create_governed_agent` result is the agent actually passed to
  `ResponsesHostServer`; application middleware stays inside its native hooks.
  Required output mediation buffers before delivery and forces `store=False`.
  Required audit uses remote receipt ACK **before effects**, with bounded worker
  replay and shutdown; the local retry spool is not persistent hosted storage.
  CP outage or local spool failure is unhealthy and blocks required effects.
- MAF can also use the explicit **gateway-only** action path through
  `maf-gateway-container.py`: real native MAF functions call the authenticated
  MCP gateway, which runs ACS and the existing approval/audit protocol before
  the downstream action. This path has no mixed local/gateway bindings or
  lifecycle bindings; application-local tools must be exactly the declared
  unbound reads. Arbitrary request-level tool/middleware/provider overrides
  are rejected. OBO is not provided by this app-only path. Human decisions
  remain separate delegated approval-service calls, not SDK auto-approval.

From aiappsgbb/threadlight-skills, MIT.

More from aiappsgbb/threadlight-skills

Signals

Stars
2
Forks
5
Open issues
5
Last commit (this folder)
Oct 12, 2026 (16 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.9.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from aiappsgbb

Cite this page

threadlight-deploy skill. Agent Mart. https://agentmart.dev/skills/aiappsgbb-threadlight-deploy (last updated 2026-10-24)