creating-skills
$
npx mdskill add microsoft/FluidFramework/creating-skills<required> *CRITICAL* Add the following steps to your Todo list using TodoWrite:
SKILL.md
.github/skills/creating-skillsView on GitHub ↗
--- name: creating-skills description: Use when you need to create a new custom skill for a profile - guides through gathering requirements, creating directory structure, writing SKILL.md, and optionally adding bundled scripts --- <required> *CRITICAL* Add the following steps to your Todo list using TodoWrite: 1. Gather skill requirements from me 2. Select target profile 3. Create skill directory structure 4. Write SKILL.md with proper frontmatter 5. (Optional) Write and bundle scripts 6. Instruct the user to run /nori-switch-profile to switch profiles. </required> # Overview This skill guides you through creating custom skills that persist across sessions. Skills are stored in profile directories and can include markdown instructions, checklists, and optional bundled scripts. # Writing Skills Every skill must start with a required checklist block: ``` <required> *CRITICAL* Add the following steps to your Todo list using TodoWrite: 1. <step 1> 2. <step 2> ... </required> ``` This is the *most important* part of a skill. Each step may have guidelines underneath. For example: ``` 1. Create a directory. Use `mkdir foo/bar` 2. Make a file. ... ``` # Writing scripts Skills may be bundled with scripts. Scripts are simple code cli tools that do various things deterministically. Any scripts you write should be entirely self contained. Ask the user which language they prefer. The scripts should be callable from the Bash tool. The script should be stored in the same place as the skill. Add a section to the SKILL.md on how to use the script. If the script is required to be called, add that instruction to the <required> block. # Tools and Code Document which tools are necessary for the skill. The SKILL should explicitly encourage writing code. The agent should be told to write code to call a tool any time the agent needs to call any tools more than once. The agent should write code instead of calling tools itself. Steps that reference tools and APIs should inline them in the step by step process. <good-example> - Write a python script that uses the slack api to pull my unread messages. The script should write my messages to a folder, /home/foobar/daily-analysis/<DD-MM-YYYY>/slack - Write a python script that uses the gmail api to pull my inbox. The script should write my emails to a folder, /home/foobar/daily-analysis/<DD-MM-YYYY>/email - Write a python script to identify the most urgent messages that I need to respond to. <system-reminder> Auth credentials can be found at /home/foobar/authentication/auth.txt </good-example> <bad-example> **Tools**: Slack, Gmail API - Summarize my messages by looking through common surfaces that I may use for messages. </bad-example> <good-example> Read https://raw.githubusercontent.com/tilework-tech/nori-skillsets/96012bcfcd9482b248debed7b9a7fc7c345f76e1/src/cli/features/claude-code/profiles/config/amol/skills/finishing-a-development-branch/SKILL.md </good-example> <good-example> Read https://raw.githubusercontent.com/tilework-tech/nori-skillsets/96012bcfcd9482b248debed7b9a7fc7c345f76e1/src/cli/features/claude-code/profiles/config/amol/skills/webapp-testing/SKILL.md </good-example>
More from microsoft/FluidFramework
- api-changesUse when customer-facing API changes were made — i.e., API report .md files differ from main. Guides through release tag assignment, API Council review requirements, breaking change classification, deprecation process, and changeset guidance. Triggered automatically by ci-readiness-check when api-report diffs are detected.
- brainstormingIMMEDIATELY USE THIS SKILL when creating or develop anything and before writing code or implementation plans - refines rough ideas into fully-formed designs through structured Socratic questioning, alternative exploration, and incremental validation
- building-ui-uxUse when implementing user interfaces or user experiences - guides through exploration of design variations, frontend setup, iteration, and proper integration
- ci-readiness-checkUse when the user explicitly asks for a CI check or to push their branch — e.g. "ci readiness", "check ci", "pre-push check", "ready for CI", "ci check", "ready to push", "push my changes", "push the branch", "let's push". Catches common CI failures before pushing — formatting, stale API reports, missing changesets, policy violations.
- creating-debug-tests-and-iteratingUse this skill when faced with a difficult debugging task where you need to replicate some bug or behavior in order to see what is going wrong.
- ff-oce-dashboardGenerate the OCE shift status dashboard. Triggers on: 'generate shift dashboard', 'show dashboard', 'shift status', 'status dashboard', 'what's going on', or any request for a NON-SPECIFIC overview of current OCE status (incidents, pipelines, errors).
- ff-oce-kustoUse this skill for any Kusto query or telemetry investigation specifically related to Fluid Framework or its partners. Triggers include: writing or running a Kusto query against the Office Fluid database, investigating Fluid Framework telemetry or error rates, querying Office_Fluid_FluidRuntime_* tables, looking up a Fluid session by Session_Id or docId, investigating a Fluid-related error in Loop or Whiteboard telemetry, monitoring an FF bump or partner ring deployment, checking Fluid render reliability or Scriptor errors, or when the user mentions Fluid-specific tables (Office_Fluid_FluidRuntime_*, OwhLoads, HostTracker, Scriptor) or Fluid-specific error types (dataCorruptionError, dataProcessingError, DeltaConnectionFailureToConnect, ICE, ACE). Do NOT trigger for general Kusto questions that are not related to Fluid Framework.
- finishing-a-development-branchUse this when you have completed some feature implementation and have written passing tests, and you are ready to create a PR.
- fluid-prUse when creating a pull request in the Fluid Framework repo. Composes a PR title and body following Fluid Framework conventions, proposes them to the user, then pushes the branch and creates the PR on GitHub. Triggers on "create a PR", "make a PR", "open a PR", "submit a PR", or "push and create a PR".
- fluid-pr-guideUse when composing, writing, drafting, or reviewing a PR title, PR description, or PR body in Fluid Framework — provides title style, body template, and section guidance.