# What Is the Pre-Send Check Checklist in i-have-adhd and What Does It Remove?

> Discover the pre-send check checklist in i-have-adhd. This 10-rule filter automatically removes preambles, recaps, closers, tangents, and ambiguous language from LLM responses for clearer communication.

- Repository: [Ayoub Ghriss/i-have-adhd](https://github.com/ayghri/i-have-adhd)
- Tags: deep-dive
- Published: 2026-08-21

---

**The pre-send check checklist in `ayghri/i-have-adhd` is a 10-rule filter defined in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) and enforced by `hooks/always-on.mjs` that automatically strips preambles, recaps, closers, tangents, and ambiguous language from LLM responses before they reach the user.**

The `ayghri/i-have-adhd` repository provides a Claude Code skill designed to optimize communication for ADHD cognitive styles. Central to this system is a rigorous pre-send validation process that intercepts every generated response and sanitizes it against a strict behavioral checklist.

## How the Pre-Send Checklist Works in i-have-adhd

The validation logic executes through a persistent hook architecture. The file `hooks/always-on.mjs` implements an interception mechanism that triggers on every outgoing message, passing the content through the 10-rule checklist documented in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md). This programmatic filter acts as a gatekeeper, ensuring only concise, action-oriented text transmits to the user interface.

## What the Pre-Send Checklist Removes (10 Rules)

The checklist targets specific anti-patterns that hinder executive function and attention management. According to the [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) specification, the filter removes or rewrites the following elements:

- **Preambles and hedging language** (Rule 10): Opening phrases like "Sure, let me..." or "Here's what I think..." are deleted entirely.
- **Recaps and conversation summaries** (Rule 10): Any restatement of previous context or history gets excised.
- **Closing statements** (Rule 10): Sign-offs such as "Hope this helps!" or "Let me know if you need anything else" are stripped.
- **Tangential remarks** (Rule 5): Off-topic commentary that distracts from the primary action is suppressed.
- **Excessive list items** (Rule 9): Lists containing more than five items are truncated or restructured to meet the cap.
- **Unnumbered multi-step instructions** (Rule 2): Sequential tasks lacking numeric ordering are reformatted with explicit step numbers.
- **Ambiguous time estimates** (Rule 6): Vague durations like "a bit" or "soon" are replaced with specific minute-based estimates.
- **Missing actionable next steps** (Rule 1): Responses that fail to lead with a clear "Do this next" directive are rewritten to prioritize the concrete action.
- **Vague win statements** (Rule 7): Non-specific success language is converted to explicit win visibility markers (e.g., "✔️ Wins visible").
- **Speculative error language** (Rule 8): Uncertain phrasing like "I think..." or "Maybe..." is replaced with matter-of-fact statements.

## Code Examples: Before and After the Checklist

The transformation occurs automatically at the interception point. Consider a standard LLM response before the pre-send filter:

```text
Sure! Let me think about that.

1. Open the file.
2. Edit the function.
3. Run the tests.

Hope this helps!

```

After processing through `hooks/always-on.mjs`:

```text
1. Open the file.
2. Edit the function.
3. Run the tests.

✔️ Wins visible: the file is now updated.

```

Similarly, vague temporal language undergoes forced precision. The filter transforms:

```text
It will take a little while.

```

Into a specific estimate:

```text
It will take ~5 minutes.

```

## Implementation Files for the Pre-Send Filter

Four critical files define and enforce the checklist behavior within the repository:

- **[`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md)**: Contains the canonical 10-rule checklist that drives the sanitization logic and removal criteria.
- **`hooks/always-on.mjs`**: Implements the interception hook that runs validation on every outgoing message before transmission.
- **[`README.md`](https://github.com/ayghri/i-have-adhd/blob/main/README.md)**: Provides repository overview and architectural references to the checklist system.
- **[`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md)**: Documents installation procedures, hook activation requirements, and configuration guidelines.

## Summary

- The pre-send check checklist in `ayghri/i-have-adhd` applies 10 strict formatting rules defined in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) before any response reaches the user.
- The `hooks/always-on.mjs` file implements the interception logic that programmatically enforces these rules on every generated message.
- Removed elements include conversational preambles, recaps, closing pleasantries, tangents, lists exceeding five items, and ambiguous time estimates.
- The system guarantees every output leads with actionable next steps, uses specific temporal language, and maintains ADHD-friendly concision.

## Frequently Asked Questions

### Which file contains the pre-send check checklist rules?

The checklist rules are defined in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) at the repository root. This markdown file enumerates the 10 specific formatting requirements—including Rule 10 (no preambles/recaps) and Rule 2 (number all steps)—that govern acceptable output structure.

### How does i-have-adhd enforce the checklist on every response?

The skill utilizes the `always-on.mjs` hook located in the `hooks/` directory. This JavaScript module intercepts each generated message and applies the checklist filters programmatically before the content transmits to the user interface, ensuring zero manual intervention is required.

### Can the pre-send checklist be disabled or customized?

According to the repository architecture documented in [`AGENTS.md`](https://github.com/ayghri/i-have-adhd/blob/main/AGENTS.md), the checklist operates as a persistent hook system. While the skill supports installation via standard Claude Code plugin mechanisms, the core 10 rules in [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) function as the default enforcement standard, with customization requiring direct modification of the hook logic in `hooks/always-on.mjs`.

### What happens if a response violates multiple checklist rules simultaneously?

The `hooks/always-on.mjs` filter processes violations sequentially in a single pass. It first strips preambles and closers, then enforces numbering on multi-step tasks, caps list length at five items, validates time specificity, and finally checks for win visibility—delivering a sanitized response that complies with all applicable rules from [`SKILL.md`](https://github.com/ayghri/i-have-adhd/blob/main/SKILL.md) before transmission completes.