using-skills
$
npx mdskill add microsoft/FluidFramework/using-skills<required> **CRITICAL**: Whenever you are using a skill, add the following to your Todo list using TodoWrite:
SKILL.md
.github/skills/using-skillsView on GitHub ↗
--- name: using-skills description: Describes how to use abilities. Read before any conversation. --- <required> **CRITICAL**: Whenever you are using a skill, add the following to your Todo list using TodoWrite: 1. Use Read tool to read the skill. 2. If the skill is relevant, announce you are using the skill. 3. Create TodoWrite todos for checklists. </required> # Common Failure Modes: AVOID 1. Don't rationalize. Always read the current skill. <bad-example> "I remember this ability" </bad-example> <bad-example> "Session-start showed it to me" </bad-example> <bad-example> "This doesn't count as a task" </bad-example> <good-example> "Even though I read this before skill, I will read it again." </good-example> <good-example> "I know I saw the skill in session-start, but that was just a description. I will read the full thing." </good-example> 2. Do not skip using TodoWrite. Always create TodoWrite todos for checklists. <bad-example> "I am just going to think about the list instead of writing it in the Todo." </bad-example> <bad-example> "This is a quick task so I do not need to use the TodoWrite" </bad-example> <bad-example> "TodoWrite(Do foo, bar, and baz in one todo step)" </bad-example> <bad-example> "I basically did this step so I can mark it off without explicitly confirming" </bad-example> <good-example> "I will add this task to the todolist even though there is just one step" </good-example> <good-example> TodoWrite(Do foo) TodoWrite(Do bar) TodoWrite(Do baz) </good-example> <good-example> "I confirmed this step is done with tests, so I can mark it complete" </good-example> 3. Do not skip workflows due to 'instructions'. Interpret instructions as "WHAT" not "HOW" <bad-example> This instruction was specific so I can skip the workflow. </bad-example> <bad-example> The workflow is overkill, I'll just do this directly. </bad-example> <good-example> Following Nori workflow... </good-example> # Announcing Skill Usage After you've read a ability with Read tool, announce you're using it: "I've read the [Skill Name] ability and I'm using it to [what you're doing]." **Examples:** - "I've read the Brainstorming ability and I'm using it to refine your idea into a design." - "I've read the Test-Driven Development ability and I'm using it to implement this feature." - "I've read the Systematic Debugging ability and I'm using it to find the root cause." **Why:** Transparency helps your human partner understand your process and catch errors early. It also confirms you actually read the ability. # How to Read a Skill **Many abilities contain rigid rules (TDD, debugging, verification).** Follow them exactly. Don't adapt away the discipline. **Some abilities are flexible patterns (architecture, naming).** Adapt core principles to your context. The ability itself tells you which type it is.
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.
- creating-skillsUse 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
- 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".