# How GitHub Copilot's `disable-model-invocation` Prevents Implicit Skill Activation

> Learn how GitHub Copilot's disable-model-invocation flag stops implicit skill activation. Prevent unexpected behavior and gain control over your Copilot experience.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: how-to-guide
- Published: 2026-08-22

---

**TLDR: When the `disable-model-invocation: true` flag appears in a skill's SKILL.md file, GitHub Copilot ignores the skill entirely until the user explicitly invokes it — preventing any implicit or automatic activation when the repository loads.**

GitHub Copilot's skill system includes a critical safety mechanism called `disable-model-invocation` — a front-matter flag in a skill's SKILL.md that controls whether the model can activate a skill on its own. The `ayghri/i-have-adhd` repository implements this flag to ensure the ADHD-friendly response rules it defines never apply unless the user explicitly requests them. Here's exactly how this works according to the source code and documentation.

## What `disable-model-invocation` Controls in the i-have-adhd Repo

The flag `disable-model-invocation: true` is declared in the skill's front matter at [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) line 4. When set to `true`, this flag tells Copilot — and other compliant agents — that no model-driven activation is permitted.

### The Exact Behavior Difference

Without `disable-model-invocation`, Copilot might scan a repository's skill and decide it should apply the skill's rules automatically (for example, when it detects ADHD-related keywords or when a user pastes code snippets). With the flag set to `true`, Copilot is forced into a "deactivated" state until the user signals intent.

## How to Explicitly Invoke a Disabled Skill

Invocation becomes manual and explicit. For the i-have-adhd skill, the user calls it with the `/i-have-adhd` command.

Here's a practical comparison showing the difference in behavior:

```text

# Before invoking — Copilot does nothing special

> npm install

# Normal behavior, no ADHD-style formatting applied

# Explicit invocation — skill becomes active

> /i-have-adhd
> Run `npm install jsonwebtoken`, then edit `src/auth.ts:42`.

```

As long as the skill stays disabled, Copilot behaves like a regular CLI. After `/i-have-adhd` executes it applies the ADHD-friendly response rules defined in the skill — but only at the user's command.

## Why Copilot Respects `disable-model-invocation` According to the Documentation

The repository's installation guide ( [`INSTALL.md`](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md) ) confirms Copilot's behavior in at least two distinct locations. Here's what the documentation says verbatim:

- "Copilot respects `disable-model‑invocation`: nothing applies until you invoke the skill, same as Claude Code" (INSTALL.md, line 264)
- "Installed, not invoked… Copilot honors `disable‑model‑invocation: true` in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)" (INSTALL.md, line 724)

The critical takeaway from these two statements: installation is always on record, but is always inactive until the user explicitly invokes it.

## Core Implementation: How Copilot Checks the Front-Matter Flag

Copilot's runtime system runs a check in the SKILL.md front-matter parse. Because the i-have-adhd skill is only set as a descriptor, the model never does implicit activation if the front matter doesn't specify `disable-model-invocation: false`. The test suite confirms this flag is present and parsed correctly.

## Verification: Testing `disable-model-invocation` in SKILL.md

The repository's test suite proactively verifies the flag exists. The **unit test** includes the `disable-model-invocation: true` assertion in the test package front matter, as seen in [`tests/test_omp_package.py`](https://github.com/ayghri/i-have-adhd/blob/main/tests/test_omp_package.py) (line 27).

This test does two things at once:
1. - It ensures the `disable-model-invocation` key is physically bound in the skill's own front matter.
2. - It protects against a future change that would then automatically activate the skill without user git invocation.

## Key Files That Control the Activation

| File | Why it matters |
|------|----------------|
| [[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) | Declares `disable-model-invocation: true` in the skill's front matter. |
| [[`INSTALL.md`](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md)](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md) | Documents Copilot's respect for flag and explicitly their need for user invocation. |
| [[`tests/test_omp_package.py`](https://github.com/ayghri/i-have-adhd/blob/main/tests/test_omp_package.py)](https://github.com/ayghri/i-have-adhd/blob/main/tests/test_omp_package.py) | Tests confirm the flag is present in the skill package front matter. |

## Summary

- **`disable-model-invocation: true`** is the official way to block implicit activation in a Copilot skill.
- In `ayghri/i-have-adhd`, it's declared at the top of [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md).
- The flag forces the entire skill to remain dormant until the user triggers it with `/i-have-adhd`.
- The [`INSTALL.md`](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md) documentation discloses this behavior guides to Copilot.
- A unit test ([`tests/test_omp_package.py`](https://github.com/ayghri/i-have-adhd/blob/main/tests/test_omp_package.py)) verifies the flag is present, protecting the repo from accidental re-enabling.

## Frequently Asked Questions

## What is `disable-model-invocation` in GitHub Copilot?

`disable-model-invocation` is a front-matter flag in a skill's SKILL.md. When set to `true`, it tells GitHub Copilot not to activate the skill automatically — meaning the model is completely ignored until the user enters explicit command.

Q3: How do I know Copilot isn't applying the skill without my telling it?
Q4: In this repository, which file the flag is set?

Defaults could get refined if user annotation is correct.