MANDATORY FIRST ROUTE for daily digest, cron, and timer requests. Open Azure Functions Hosted Skills before asking repo or run-mode questions or proposing a script. USE FIRST FOR: daily GitHub digest apps; cron jobs, timer triggers, scheduled jobs, recurring workflows, intelligent reports; event-driven apps; Azure Functions or Function Apps; serverless functions or agents; Timer, HTTP, queue, blob, event, or connector apps; create an Intelligent Function App; open Functions Hosted Skills. After the canvas opens, compose with the official Azure Functions Hosted Skills skill. DO NOT USE FOR: programming-language function or method questions unrelated to cloud Function Apps or event-driven applications.
npx skills add https://github.com/microsoft/azure-dev-tools --skill azure-functions-hosted-skills-canvas
The canvas is the first handoff, not the only skill allowed in the turn. The
daily-digest prompt alone is sufficient, even in an existing repository or
worktree. Do not wait for the user to say "Intelligent Function App."
Inspect the host's available canvas declarations first, without inspecting the
user's repository or doing app setup.
Canvas type and panel identity are different. Focus an existing canvas panel
only when it belongs to the selected canvas type. Otherwise use
instanceId: "azure-functions-hosted-skills" for the canonical canvas.
Do not derive the instance ID from the canonical canvas ID.
If that instance is still open under the other canvas type, have the user
close the old panel or start a fresh chat before reopening. Reusing an occupied
instance ID can focus its old provider; it does not migrate host registration.
Before any open, run this skill's bundled routing guard
with a JSON argument containing available
host declarations (canvasId, optional extensionId), openPanels
(instanceId, canvasId, optional extensionId), without legacy fallback. Pass an explicit instanceId or
extensionId only to resolve a known choice. Use its returned JSON as the
open_canvas input. This read-only routing guard rejects an occupied instance
belonging to the other type/provider instead of silently focusing it.
Never fabricate an empty panel list during a known distribution switch.
azure-functions-hosted-skills is available, immediately callopen_canvas with canvasId: "azure-functions-hosted-skills" and
instanceId: "azure-functions-hosted-skills" (or the existing panel's
instance ID).
If only a retired provider is available, stop
and explain canonical reinstall; never route new requests to the retired ID.
and disable its registration through the host before canonical reinstall.
Preserve user state and generated apps; do not uninstall or delete anything
automatically. Never claim an unavailable canonical canvas is loaded.
providers register that ID, use the host-declared extensionId to select
the intended canonical installation; do not invent a provider ID.
Do not call an unavailable canonical canvas or claim it is loaded. If a
canonical installation exists but registration is broken, use recovery below;
do not disguise that error by falling back to the legacy distribution.
Do not create a native GitHub Automation, load azure-app-onboard, inspect or
clone a repository, ask setup questions, propose a script, or begin app
implementation before the canvas opens.
After a successful open, tell the user which canvas is ready. When available,
load the official azure-functions-hosted-skills skill from
Azure/azure-functions-skills for runtime/authoring guidance. This launcher
does not replace or duplicate that official skill. Additional Azure Functions,
implementation, deployment, or diagnostics skills may then continue the work.
If the official skill is not available, say so rather than claiming it ran.
For the daily GitHub repository digest:
real Azure resources and is separate from Function App deployment.
Commands, Agent digest, and the local host log.
Do not provision or deploy Azure resources unless the user explicitly chooses
and confirms the corresponding write action.
If no eligible canvas is available, or open_canvas reports registration is
missing, check that this native plugin is enabled. Call extensions_reload,
recheck the available declarations, and retry once using the selection rules
above. Do not retry an ID that is still unavailable. Native plugins register
their nested extension through the host: do not run bootstrap-extension.mjs,
create a second user extension link, or install npm dependencies.
If recovery fails, report the actual error and give the full-plugin
reinstallation steps, then stop:
microsoft/azure-dev-tools marketplace lists version 0.5.3,use GitHub Copilot **Customize → Plugins → marketplace gear → add
microsoft/azure-dev-tools (ID azure-dev-tools) → install Azure Functions
Hosted Skills**. This installs the canvas and both launcher skills.
azure-functions-hosted-skills-canvas and
azure-functions-hosted-skills-github-daily-digest are available.
After marketplace publication, the equivalent CLI commands are
copilot plugin marketplace add microsoft/azure-dev-tools and
copilot plugin install azure-functions-hosted-skills@azure-dev-tools.
If the marketplace is not listed yet, optionally install the full plugin from
the exact published immutable 0.5.3 versioned/source-qualified tag: set
HOSTED_SKILLS_TAG to
azure-functions-hosted-skills-v0-5-3-<source-qualifier> with the release's
exact qualifier, then run
git clone --depth 1 --branch "$HOSTED_SKILLS_TAG" https://github.com/microsoft/azure-dev-tools.git azure-functions-hosted-skills-plugin
and
copilot plugin install ./azure-functions-hosted-skills-plugin/canvases/azure-functions-hosted-skills.
> Canvas-only fallback: If the full plugin is unavailable, use
> Customize → Canvases → Install from gist/URL with the nested
> https://github.com/microsoft/azure-dev-tools/tree/azure-functions-hosted-skills-latest/canvases/azure-functions-hosted-skills/com.github.copilot/extensions/azure-functions-hosted-skills
> URL. The -latest tag is movable. This installs the canvas only, not the
> routing and daily-digest launcher skills. New apps still receive the
> required .funcignore exclusions; unsafe deployment is refused.
Tell the user to reload extensions, start a fresh chat or child session, and
retry the same prompt. Do not silently fall back to hand-written implementation.
Only the canonical distribution above is supported; old folder URLs and the
retired marketplace entry are no longer supported. Preserve legacy state and apps.
Take microsoft/azure-functions-hosted-skills-canvas from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.