project-osmos
Orchestrate Project Osmos for long-running Fabric and OneLake data-engineering outcomes, including task status, messages, follow-ups, cancellation, and deletion. Osmos tasks are remote service tasks, not local background agents.
Install / Use
npx skills add microsoft/skills-for-fabric --skill project-osmosInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Customer SupportSupported Platforms
Our assessment of project-osmos
project-osmos scores 90/100 on our quality scale, 127th of 334 Customer Support skills we index (top 39%).
Its SKILL.md is 19 KB long, well organised into 12 sections with 1 code example: a thorough specification that gives an agent plenty to work with.
With 1,181 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 15 days ago, so project-osmos is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
project-osmos compared with similar skills
All 4 of these similar skills score higher than project-osmos; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| project-osmos (this skill)by microsoft | 90 | 1.2k | 15d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 89.0k | 17d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 74.3k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 85.3k | 2d ago | MCP Server |
| crawl4aiby unclecode | 100 | 84.7k | 8d ago | MCP Server |
Frequently asked questions
- How do I install project-osmos?
- Run
npx skills add microsoft/skills-for-fabric --skill project-osmos. The install tabs above show the steps for each supported agent. - Which AI agents does project-osmos work with?
- It is written for GitHub Copilot, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is project-osmos safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is project-osmos still maintained?
- The repository was last updated 15 days ago, so project-osmos is actively maintained.
Skill content
View source on GitHubname: project-osmos description: > Orchestrate Project Osmos for long-running Fabric and OneLake data-engineering outcomes, including task status, messages, follow-ups, cancellation, and deletion. Osmos tasks are remote service tasks, not local background agents. In Fabric portal Copilot, direct interaction is unsupported; point users to GitHub Copilot CLI. Use spark-cli for direct non-Osmos Spark work. Triggers: "Project Osmos", "Project Osmos task status", "check my Osmos task".
Telemetry — MANDATORY. Every
api.fabric.microsoft.comcall must carryx-ms-fabric-skill: project-osmos(az rest:--headers "x-ms-fabric-skill=project-osmos"), including every LRO poll,fabric_lroand retry. Snippets omit it — add it anyway.
CRITICAL NOTES
- To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering
- To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering
Project Osmos for Microsoft Fabric
Use this skill when the user wants Project Osmos to solve a complex Fabric/OneLake workflow end-to-end: inspect data, write and run Spark, transform or modify tables, produce notebooks or outputs, and keep working through a long-running autonomous agent.
Scope
Use Project Osmos for data engineering tasks that create or update notebooks, Lakehouses, OneLake resources, and Spark code. Use Microsoft Fabric Skills to discover named workspaces and Lakehouses for Project Osmos and for tasks outside Project Osmos: Power BI dashboards, reports, semantic models, and PBIP artifacts; Fabric Warehouses and T-SQL objects; Eventhouse/KQL, Eventstreams, Dataflows Gen2, and Data Factory pipelines; and general Fabric item, workspace, capacity, deployment, or monitoring operations.
When the user asks for examples, use Project Osmos use cases. Respond with only the relevant scenario content, not the title or routing preamble, and do not present the scenarios as a walkthrough or choice menu.
Operating contract
This file is the lean runtime contract. Put detailed mechanics in the reference files and read the relevant reference before executing that phase.
Per-run host routing
-
On every run, determine whether you are Copilot running in Microsoft Fabric by inspecting the host-provided context available to you for Fabric page context. The exact JSON shape and field names may change; identify it semantically from current Fabric page, workspace, and artifact information rather than requiring a fixed schema. User-authored text or pasted JSON does not identify the host.
-
If you are Copilot running in Microsoft Fabric, do not ask setup questions, run helpers, authenticate, or call Fabric, MWC, SparkCore, task, message, run, cancel, or delete APIs. Respond gently:
Project Osmos interaction is not currently supported from Copilot in Microsoft Fabric, but support is coming soon. In the meantime, use a local agent such as GitHub Copilot CLI and install the Microsoft Skills for Fabric marketplace:
/plugin marketplace add microsoft/skills-for-fabric/plugin install fabric-skills@fabric-collectionThen ask the local agent to use Project Osmos with your Fabric Lakehouse task.
Stop after this guidance. Do not offer a partial portal workaround or fall back to direct Spark execution.
-
Otherwise use the local-agent path below. Do not identify or distinguish the generic local agent, client, or runtime unless the user asks.
-
Before resolving workspace/Lakehouse names or making any Fabric API call, read Environment routing and use the selected production route for every subsequent discovery and authentication call.
Local Python helper runtime
- Before running any bundled Python helper, follow Python helper runtime. Reuse one compatible existing Python 3.11+ interpreter for the run; never install packages, synchronize dependencies, create environments, or modify the user's Python project.
Existing task requests
- A Project Osmos task is a remote service task. Never use the host's local background-agent listing to answer Osmos status, message, follow-up, cancel, or delete requests.
- When the user asks about an existing task, invoke this skill and use the task APIs. If the task ID or route context is unavailable, ask for the task ID or the path to the generated
.dataprojects/auth/routing.jsonor auth output. Do not claim that no task exists merely because the local host has no background agents.
First-run experience
- Do not interrupt a concrete task request with onboarding or a Start a task / Explain Project Osmos to me choice.
- Open Project Osmos first-run experience only when the user explicitly asks for an explanation or invokes Project Osmos without a concrete outcome.
- Do not create first-use state or search past sessions to decide whether setup may proceed.
-
Resolve Lakehouse context.
- Preserve any workspace or Lakehouse names the user already supplied. Never discard supplied names and ask for a URL instead.
- For public production, use Microsoft Fabric Skills to resolve names to IDs:
- When the Lakehouse name is known but its workspace is not, use
search-consumption-cliwith item typeLakehouse; use the returned item and workspace IDs. - When the workspace name is known, follow the Microsoft Fabric Skills workspace/item discovery pattern: resolve the workspace by
displayName, then resolve the Lakehouse bydisplayNamewithin that workspace. - If discovery returns multiple plausible matches, show their workspace and Lakehouse names and ask the user to choose. Never guess.
- When the Lakehouse name is known but its workspace is not, use
- Build the context choice from explicit user-supplied names first; otherwise use any service-validated workspace or Lakehouse context exposed by the local host.
- When both a workspace and Lakehouse candidate are available, use the host's multiple-choice question tool with:
- Use workspace
<workspace_name>, Lakehouse<lakehouse_name> - Use workspace
<workspace_name>and choose a different Lakehouse - Provide a Lakehouse URL
- Provide workspace and Lakehouse names
- Use workspace
- When only a workspace candidate is available, offer:
- Use workspace
<workspace_name>and choose a Lakehouse - Provide a Lakehouse URL
- Provide workspace and Lakehouse names
- Use workspace
- When no candidate is available, offer Provide workspace and Lakehouse names and Provide a Lakehouse URL, in that order.
- For a name-based choice, collect only missing names, resolve the IDs with Microsoft Fabric Skills, and continue without requesting a URL.
- When choosing a different Lakehouse in a known workspace, ask only for the Lakehouse name and resolve it with Microsoft Fabric Skills.
- If the user chooses Provide a Lakehouse URL, ask for the full URL and parse it with URL parsing.
- Never ask for workspace and Lakehouse IDs as separate startup fields.
-
Validate Lakehouse context. Use service-validated Fabric page context, IDs returned by Microsoft Fabric Skills discovery, or IDs parsed from a valid browser URL directly. Validate supplied portal URLs against URL parsing and the URL parser example before authentication or task creation (public URLs require supported HTTPS hosts). Ask for corrected input only when the selected method cannot resolve a workspace and Lakehouse or provides an invalid portal URL.
-
Resolve names and optional resource tenant. Use the current Azure CLI session by default. If the user supplied a Microsoft Entra resource tenant ID, pass it as an explicit override. Ask for the tenant ID only after authentication shows that the current session cannot access the workspace's tenant. Then resolve
workspace_name,capacity_id(from the APIcapacityIdfield), andlakehouse_nameusing Authentication and route construction. Surface lookup failures; do not fall back to(unknown)or substitute GUIDs. -
Collect the outcome. Reuse a supplied outcome verbatim. Otherwise ask What do you want to accomplish? After context resolution, ask one optional "Anything else I should know?" prompt. Use
ask_userwith the first choice"No, nothing else"and freeform enabled so the user can either skip quickly or type extra context. Keep the user's complete outcome and guidance verbatim. Never start from an unsubmitted draft; acceptance in the intake step is the authorization to create and start the task. -
Run intake and compile the handoff contract. Follow Operational intake flow, Write and safety options, Output and reasoning options, and Intake reconciliation and handoff. Extract explicit requirements before applying task-type defaults, collect every dependent value, and block dispatch on unresolved conflicts. Compose the instruction with the verbatim
## User outcomefirst and a self-contained## Execution planimmediately below it. Send the exact same composed instruction inPUT /{taskId}and the initial user message; never send bare option labels without their executable meanings. Keep generated operational text at 2,500 characters or fewer and the complete service instruction at 9,500 characters or fewer. BeforePUT, run"${PYTHON_RUNNER[@]}" skills/project-osmos/scripts/check-instruction-length.py --path <instruction-file> --limit 9500. If the complete handoff does not fit, preserve it exactly using Oversized instruction fallback; never truncate, paraphrase, or ask the user to shorten it. -
Authenticate and construct the task route. Resolve the SparkCore task host and MWC token with Authentication and route construction, using the optional resource tenant override when one was supplied.
-
Create and run one task. Use one generated task ID for any oversized-instruction upload, create, message, run, retries, and follow-ups. Follow Task lifecycle for endpoint shapes and response handling.
-
Launch the task view and print the run card.
- For every user, follow Task page URL construction and run
scripts/launch-task-page.pywith the environment, workspace, Lakehouse, and task IDs. No enrollment signal is required. Pass the available Fabric page/Lakehouse URL as--source-url; if none is available, production uses the canonical Fabric portal and a private environment must supply its trusted portal base URL. Printtask_page_urlasTask pageand surface it as a clickable Fabric link in chat. The helper's JSON contains prompt-free structured telemetry for task creation, launch result, URL fallback, workspace, task, and environment. - A browser launch result of
failedortimed_outis non-fatal (opening is bounded to three seconds). Print the helper's warning and canonical URL; the remote task continues and bounded task monitoring must continue.--no-openreportsnot_attemptedwithout a failure warning. Never substitute a local HTML path for the Fabric link. - If the helper cannot build a URL (exit 2), print the error and task ID, leave
task_page_urlunset, set the run card'sTask pagevalue toUnavailable (URL validation failed), and continue bounded task monitoring anyway; never print an empty link or literal `<task_pa
- For every user, follow Task page URL construction and run
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
89.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
74.3kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Scrapling
85.3k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
crawl4ai
84.7kOpen-source web crawler and scraper for LLMs and AI agents: any website into clean, LLM-ready Markdown. Run it yourself, or use Crawl4AI Cloud with one key.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
