# Where Is the Canonical Ruleset for i-have-adhd Located?

> Discover the canonical ruleset for i-have-adhd in the SKILL.md file at ayghri/i-have-adhd. This central document governs all ADHD output rules and persistence.

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

---

**The canonical ruleset for i‑have‑adhd lives at [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)**, which serves as the single source of truth for all ADHD‑focused output rules and persistence semantics.

The `i-have-adhd` repository implements a skill-based architecture where behavioral rules are centralized in dedicated markdown files. Understanding the exact location of the canonical ruleset is essential for developers who need to modify, reference, or programmatically load the ten output rules that govern this mode.

## Locating the Canonical Ruleset

The authoritative ruleset is stored in **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)**. This file contains:

- Ten ADHD‑focused output rules enforced on every response
- **Persistence semantics** defining how the mode maintains state
- **Pre‑send checks** that validate content before dispatch

The project explicitly designates this path as the *single source of truth* according to the "Source‑of‑truth rules" section in [`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md). Any modification to the rules must originate here before propagating to secondary locations.

## Mirror Location and Synchronization

A synchronized copy exists at **[`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md)**. This mirror supports Cursor‑compatible environments but is **not** the canonical version.

The synchronization workflow is:
1. Edit the canonical file in [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)
2. Update the mirror in [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) to match

[`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md) explicitly documents this hierarchy, preventing divergence between environments.

## Programmatic Access to the Ruleset

You can retrieve the canonical ruleset programmatically using either Node.js or shell commands.

### Node.js (using `fs`)

```javascript
const fs = require('fs');
const path = require('path');

const skillPath = path.join(__dirname, 'skills', 'i-have-adhd', 'SKILL.md');
const rules = fs.readFileSync(skillPath, 'utf8');

console.log('📖 i-have-adhd canonical ruleset:\n');
console.log(rules);

```

This snippet resolves the skill path relative to the script location and outputs the complete ruleset contents.

### Shell (Unix)

```bash
#!/usr/bin/env bash

# Print the canonical ruleset

cat "$(git rev-parse --show-toplevel)/skills/i-have-adhd/SKILL.md"

```

This command uses `git rev-parse --show-toplevel` to reliably locate the repository root regardless of the current working directory.

## Key Supporting Files

| File | Purpose |
|------|---------|
| [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) | **Canonical ruleset** — single source of truth |
| [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) | Mirror for Cursor environments |
| [`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md) | Documents source‑of‑truth hierarchy and editing workflow |
| [`README.md`](https://github.com/ayghri/i-have-adhd/blob/main/README.md) | Project overview with skill documentation links |
| [`INSTALL.md`](https://github.com/ayghri/i-have-adhd/blob/main/INSTALL.md) | Installation paths referencing skill file locations |

## Summary

- The **canonical ruleset for i‑have‑adhd** is [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)
- Treat this file as the **single source of truth** for all rule modifications
- The `.cursor/` mirror is a convenience copy, not the authoritative version
- Both Node.js and shell scripts can programmatically load the ruleset for runtime use
- [`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md) governs the synchronization protocol between canonical and mirror files

## Frequently Asked Questions

### What happens if I edit the .cursor mirror instead of the canonical file?

Edits made directly to [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) violate the project's source‑of‑truth protocol. Future synchronizations may overwrite your changes, and the modifications won't propagate to non‑Cursor environments. Always edit [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) first.

### How many rules are defined in the canonical ruleset?

The canonical ruleset defines **ten ADHD‑focused output rules**, along with persistence semantics and pre‑send validation checks that constrain how responses are generated while the mode is active.

### Can I load the ruleset at runtime in my application?

Yes. Both Node.js and shell examples in this article demonstrate loading [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) programmatically. The file is standard markdown, so any language with file‑system access can parse and process its contents.

### Why does the project use a mirror file structure?

The mirror at [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) accommodates Cursor IDE conventions without polluting the canonical location. This separation lets Cursor users access the skill natively while maintaining a clean, tool‑agnostic source of truth in the `skills/` directory.