# How to Fork and Customize the i‑have‑adhd Skill While Preserving the Upgrade Path

> Learn to fork and customize the i-have-adhd skill while preserving the upgrade path. Edit the SKILL.md file and use the CI workflow to sync changes for seamless updates.

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

---

**Fork the `ayghri/i-have-adhd` repository, edit the canonical [`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md) file as the single source of truth, allow the CI workflow to sync changes to runtime mirrors, and register your fork under a distinct marketplace namespace to maintain a clean upgrade path for future upstream updates.**

The `i-have-adhd` skill is designed around a single-source-of-truth architecture that enables safe customization without fragmenting from the main codebase. Because all runtimes—including Claude, Codex, Pi, OMP, and OpenCode—read their rule definitions from one authoritative file, you can fork and customize the skill while preserving the upgrade path by treating the canonical definition as your primary edit target and leveraging automated sync workflows to propagate changes.

## Understand the Single-Source-of-Truth Architecture

The repository centralizes behavior inside **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)**. This file is the authoritative rule definition that drives behavior across every supported runtime.

Runtime-specific mirrors—such as **[`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md)**—are automatically generated copies, not independent sources. As documented in **[`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md)**, editing the canonical file first ensures that your changes propagate consistently to all runtime environments through the repository’s automated synchronization logic.

## Fork the Repository and Edit the Canonical Skill

Start by creating your own GitHub fork to isolate your modifications from the upstream version.

1.  Fork the repository via the GitHub UI, then clone your fork locally:

    ```bash
    git clone https://github.com/<your-username>/i-have-adhd.git
    cd i-have-adhd
    ```

2.  Open **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)** and modify the rules to add, remove, or rearrange behavior. This is the only file you should edit directly; it serves as the source of truth for all customizations.

3.  Commit and push your changes:

    ```bash
    git commit -am "Customize ADHD skill rules"
    git push origin main
    ```

## Automate Runtime Sync with the CI Workflow

After you push changes to the canonical file, the repository’s included workflow handles propagation to runtime-specific paths.

The file **[`.github/workflows/cursor-skill-sync.yml`](https://github.com/ayghri/i-have-adhd/blob/main/.github/workflows/cursor-skill-sync.yml)** defines a CI pipeline that automatically copies **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)** to **[`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md)** on every push to the main branch. This ensures that tools like Cursor receive your updates without manual file copying or risk of drift between the canonical definition and the runtime mirror.

## Publish Your Fork to the Plugin Marketplace

To use your customized version while keeping the upstream skill available for reference, you must register your fork under a unique marketplace entry.

Run the following commands to uninstall the upstream plugin, detach the original namespace, and install your forked version:

```bash
claude plugin uninstall i-have-adhd
claude plugin marketplace remove i-have-adhd
claude plugin marketplace add <your-username>/i-have-adhd
claude plugin install i-have-adhd@i-have-adhd

```

These commands ensure the runtime loads your customized rules from your fork rather than the original `ayghri/i-have-adhd` repository.

## Maintain the Upgrade Path with Upstream Changes

Preserving the upgrade path requires periodically pulling changes from the upstream repository into your fork.

Because your customizations live in the same **[`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)** file as the upstream rules, standard Git merge workflows apply. When you pull upstream updates, Git merges new rules while preserving your modifications. After resolving any merge conflicts and pushing the result, the **[`.github/workflows/cursor-skill-sync.yml`](https://github.com/ayghri/i-have-adhd/blob/main/.github/workflows/cursor-skill-sync.yml)** workflow automatically updates the cursor mirror, and your distinct marketplace entry continues to point to the latest commit in your fork.

## Summary

- **Edit the canonical file:** Treat **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)** as the single source of truth; never modify runtime mirrors like [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) directly.
- **Leverage automated sync:** The **[`.github/workflows/cursor-skill-sync.yml`](https://github.com/ayghri/i-have-adhd/blob/main/.github/workflows/cursor-skill-sync.yml)** CI workflow propagates canonical changes to the Cursor-compatible path automatically.
- **Use a distinct marketplace namespace:** Register your fork with `claude plugin marketplace add <your-username>/i-have-adhd` to avoid conflicts with the upstream plugin.
- **Sync upstream periodically:** Pull upstream changes into your fork to receive new rules while Git preserves your custom modifications in the canonical file.

## Frequently Asked Questions

### What happens if I edit the [`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md) file directly?

Any changes made directly to the mirror file will be overwritten by the CI workflow on the next push. The file **[`.cursor/skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/.cursor/skills/i-have-adhd/SKILL.md)** is a build artifact generated from the canonical **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)**, so you must edit the source file to make persistent changes.

### How do I receive updates from the original repository after forking?

You can add the upstream repository as a remote and periodically pull changes into your fork. Because both versions use the same **[`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)** structure, Git will merge upstream additions with your customizations. After merging, push the result to trigger the sync workflow and update your marketplace entry automatically.

### Why do I need to uninstall the upstream plugin before adding my fork?

The `claude plugin marketplace remove i-have-adhd` command detaches the association between the skill name and the original author namespace. Without this step, the runtime may continue to resolve `i-have-adhd` to the upstream version rather than your forked copy, causing your customizations to be ignored.

### Does the sync workflow handle runtimes other than Cursor?

Currently, the repository includes **[`.github/workflows/cursor-skill-sync.yml`](https://github.com/ayghri/i-have-adhd/blob/main/.github/workflows/cursor-skill-sync.yml)** specifically for the Cursor 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)**. However, because all runtimes ultimately read from the canonical **[`skills/i-have-adhd/SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/skills/i-have-adhd/SKILL.md)**, maintaining that file ensures compatibility across Claude, Codex, Pi, OMP, and OpenCode regardless of their specific mirror locations.