inclusion-md 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INCLUSION.md +421 -0
- package/LICENSE +21 -0
- package/README.md +228 -0
- package/bin/inclusion-md.js +95 -0
- package/examples/backend-api/INCLUSION.md +118 -0
- package/examples/design-system/INCLUSION.md +92 -0
- package/examples/frontend-app/INCLUSION.md +100 -0
- package/lib/colors.js +29 -0
- package/lib/init.js +210 -0
- package/lib/prompt.js +111 -0
- package/lib/template.js +70 -0
- package/package.json +46 -0
package/INCLUSION.md
ADDED
|
@@ -0,0 +1,421 @@
|
|
|
1
|
+
# INCLUSION.md
|
|
2
|
+
|
|
3
|
+
> A repository-level context engineering document that gives AI coding
|
|
4
|
+
> assistants inclusion-oriented guidance during software generation workflows.
|
|
5
|
+
|
|
6
|
+
`INCLUSION.md` is the inclusion-oriented sibling of `A11Y.md`, `CONTRIBUTING.md`,
|
|
7
|
+
and `design.md`. Where `A11Y.md` operationalizes technical accessibility
|
|
8
|
+
compliance, `INCLUSION.md` operationalizes the contextual, representational, and
|
|
9
|
+
sociotechnical considerations that AI-assisted development tends to flatten.
|
|
10
|
+
|
|
11
|
+
This file is intended to be read by **both humans and AI coding assistants**
|
|
12
|
+
(Copilot, Cursor, Claude Code, Windsurf, Continue, etc.) as part of repository
|
|
13
|
+
context. It is a living document. Edit it. Argue with it. Localize it.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 0. How To Use This File
|
|
18
|
+
|
|
19
|
+
1. Copy `INCLUSION.md` into the root of your repository alongside `README.md`,
|
|
20
|
+
`CONTRIBUTING.md`, and `A11Y.md` (if you have one).
|
|
21
|
+
2. Adapt the **Project Context** section to your repository, product, and
|
|
22
|
+
audience. Generic guidance is a starting point - specificity is where this
|
|
23
|
+
file earns its keep.
|
|
24
|
+
3. Reference it explicitly from your AI assistant configuration. For example:
|
|
25
|
+
- GitHub Copilot: add a `.github/copilot-instructions.md` that says
|
|
26
|
+
`Follow the inclusion guidance in /INCLUSION.md.`
|
|
27
|
+
- Cursor: reference it in `.cursor/rules` or `.cursorrules`.
|
|
28
|
+
- Claude Code: reference it from `CLAUDE.md`.
|
|
29
|
+
- Continue / Windsurf / etc.: include it as a workspace context file.
|
|
30
|
+
4. Review and update this file the same way you review and update your
|
|
31
|
+
design system, your accessibility audit, and your dependency manifest.
|
|
32
|
+
Inclusion is not a one-time configuration.
|
|
33
|
+
|
|
34
|
+
> **Important limitation.** This file does not eliminate model bias.
|
|
35
|
+
> Bias mitigation is an unresolved sociotechnical problem and you cannot prompt
|
|
36
|
+
> your way out of it. Inclusion still requires participatory research, disabled
|
|
37
|
+
> practitioners, accessibility expertise, diverse teams, human review, and
|
|
38
|
+
> structural accountability. `INCLUSION.md` is an operational layer, not a
|
|
39
|
+
> substitute.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 1. Project Context
|
|
44
|
+
|
|
45
|
+
<!-- EDIT THIS SECTION FOR YOUR REPOSITORY -->
|
|
46
|
+
|
|
47
|
+
- **Product:** _A short description of what this software does._
|
|
48
|
+
- **Primary users:** _Who you have intentionally designed for._
|
|
49
|
+
- **Known underserved users:** _Who you know you have not yet designed for
|
|
50
|
+
well, and why that matters._
|
|
51
|
+
- **Distribution context:** _Where this software is used - geography, devices,
|
|
52
|
+
network conditions, assistive technologies, language coverage._
|
|
53
|
+
- **Stakes:** _What happens when this software excludes someone? Inconvenience?
|
|
54
|
+
Loss of access to healthcare, civic services, employment, identity?_
|
|
55
|
+
|
|
56
|
+
Generated code, copy, and interaction patterns should be evaluated against the
|
|
57
|
+
context above before being merged.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 2. Core Principle
|
|
62
|
+
|
|
63
|
+
> **Do not optimize for a single "default user."**
|
|
64
|
+
|
|
65
|
+
Inclusive systems support diverse:
|
|
66
|
+
|
|
67
|
+
- cognitive models and processing speeds
|
|
68
|
+
- communication styles and language patterns
|
|
69
|
+
- sensory experiences
|
|
70
|
+
- motor capabilities
|
|
71
|
+
- cultural contexts and lived experiences
|
|
72
|
+
- literacy levels and reading comprehension
|
|
73
|
+
- assistive technologies
|
|
74
|
+
- network, device, and battery conditions
|
|
75
|
+
|
|
76
|
+
When generated output assumes "the average user," it is almost always assuming a
|
|
77
|
+
non-disabled, English-fluent, neurotypical user with a fast connection, a
|
|
78
|
+
modern device, and full sensory and motor capability. That user is a
|
|
79
|
+
statistical artifact, not a person.
|
|
80
|
+
|
|
81
|
+
**Reference:** Kat Holmes, _Mismatch: How Inclusion Shapes Design_,
|
|
82
|
+
<https://mitpress.mit.edu/9780262539485/mismatch/>
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## 3. Known Training Data Risks
|
|
87
|
+
|
|
88
|
+
Large language models are trained largely on public web data, open-source code,
|
|
89
|
+
and curated text corpora. Empirical research has documented systemic biases
|
|
90
|
+
inherited from this distribution. Generated output may reflect:
|
|
91
|
+
|
|
92
|
+
- **Inaccessible implementation patterns.** The public web fails WCAG at
|
|
93
|
+
enormous scale; models trained on it inherit those failures. See WebAIM
|
|
94
|
+
Million.
|
|
95
|
+
- **Western, English-centric assumptions.** Date formats, name structures,
|
|
96
|
+
address formats, currency, units, reading direction, color symbolism.
|
|
97
|
+
- **Ableist language patterns.** "Sanity check," "crippled," "blind to,"
|
|
98
|
+
"tone-deaf," "lame," "dummy variable," "crazy," "insane."
|
|
99
|
+
- **Neurotypical communication defaults.** Implicit assumptions about
|
|
100
|
+
conciseness, eye contact, linear narrative, "professional tone."
|
|
101
|
+
- **Underrepresentation of disability communities.** Disabled users framed as
|
|
102
|
+
edge cases rather than first-class users.
|
|
103
|
+
- **Exclusionary UX conventions.** Hover-only interactions, tiny touch targets,
|
|
104
|
+
color-only state, time-limited flows, motion without preference checks.
|
|
105
|
+
- **Deficit framing.** Disability described as something to overcome,
|
|
106
|
+
inspirational, or tragic rather than as part of human variation.
|
|
107
|
+
- **Intersectional erasure.** Disabled people who are also Black, Indigenous,
|
|
108
|
+
trans, women, non-Western, or non-English-speaking are particularly
|
|
109
|
+
underrepresented in training data.
|
|
110
|
+
|
|
111
|
+
**Research references:**
|
|
112
|
+
|
|
113
|
+
- WebAIM Million Report - <https://webaim.org/projects/million/>
|
|
114
|
+
- _Centering the Margins: Outcomes that Disabled Users Care About_ -
|
|
115
|
+
<https://dl.acm.org/doi/10.1145/3613904.3642233>
|
|
116
|
+
- _ABLEIST: Measuring Ableist Harms in LLMs_ -
|
|
117
|
+
<https://arxiv.org/abs/2510.10998>
|
|
118
|
+
- Brookings, _How AI can better serve people with disabilities_ -
|
|
119
|
+
<https://www.brookings.edu/articles/how-ai-can-better-serve-people-with-disabilities/>
|
|
120
|
+
- Janelle Shane, _You Look Like a Thing and I Love You_ -
|
|
121
|
+
<https://www.hachettebookgroup.com/titles/janelle-shane/you-look-like-a-thing-and-i-love-you/9780316525206/>
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## 4. Communication Diversity Guidance
|
|
126
|
+
|
|
127
|
+
When generating UI copy, error messages, onboarding flows, documentation,
|
|
128
|
+
notifications, or chat-style interactions, **do not assume**:
|
|
129
|
+
|
|
130
|
+
- linear thinking
|
|
131
|
+
- concise communication
|
|
132
|
+
- neurotypical conversational structure
|
|
133
|
+
- high reading comprehension
|
|
134
|
+
- rapid processing speed
|
|
135
|
+
- conventional language patterns
|
|
136
|
+
- English fluency
|
|
137
|
+
- access to context the user is presumed to "already know"
|
|
138
|
+
|
|
139
|
+
Instead, **support**:
|
|
140
|
+
|
|
141
|
+
- progressive disclosure (summary first, detail on demand)
|
|
142
|
+
- multimodal communication (text + visual + audio where appropriate)
|
|
143
|
+
- flexible interaction pacing (no forced timers without an opt-out)
|
|
144
|
+
- non-linear workflows (let users return, restart, branch, undo)
|
|
145
|
+
- redundant comprehension cues (icon + label + tooltip, not icon alone)
|
|
146
|
+
- user-controlled complexity (an "advanced mode" toggle is fine; defaulting
|
|
147
|
+
every user to it is not)
|
|
148
|
+
- plain language by default; reserve jargon for opt-in technical surfaces
|
|
149
|
+
- explicit indication of required vs. optional actions
|
|
150
|
+
- clear, recoverable error states
|
|
151
|
+
|
|
152
|
+
**Suggested reading levels:**
|
|
153
|
+
|
|
154
|
+
- General consumer copy: target US grade 7-8 reading level.
|
|
155
|
+
- Critical flows (sign-up, payment, consent, healthcare, civic services):
|
|
156
|
+
target US grade 6 reading level.
|
|
157
|
+
- Plain language is a hard skill. It is not "dumbing down." See
|
|
158
|
+
<https://www.plainlanguage.gov/>.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 5. Disability Representation Guidance
|
|
163
|
+
|
|
164
|
+
When generating product copy, marketing, imagery prompts, persona
|
|
165
|
+
descriptions, user research artifacts, documentation examples, or fictional
|
|
166
|
+
user names and avatars:
|
|
167
|
+
|
|
168
|
+
**Avoid:**
|
|
169
|
+
|
|
170
|
+
- inspiration-porn framing ("despite their disability...")
|
|
171
|
+
- deficit-based language ("suffers from," "afflicted with," "wheelchair-bound")
|
|
172
|
+
- infantilization of disabled adults
|
|
173
|
+
- framing accessibility as charity, generosity, or a "nice to have"
|
|
174
|
+
- "overcoming disability" narratives
|
|
175
|
+
- tokenized representation (one disabled persona to "cover" inclusion)
|
|
176
|
+
- assuming disability is rare, temporary, or visible
|
|
177
|
+
- assuming disability is incompatible with expertise, leadership, or technical
|
|
178
|
+
fluency
|
|
179
|
+
|
|
180
|
+
**Prefer:**
|
|
181
|
+
|
|
182
|
+
- agency-centered language ("a wheelchair user," "a blind developer,"
|
|
183
|
+
"someone who uses a screen reader")
|
|
184
|
+
- adaptive interaction support over special-case carve-outs
|
|
185
|
+
- disabled users as domain experts, decision-makers, and engineers
|
|
186
|
+
- contextual flexibility (situational, temporary, and permanent disability all
|
|
187
|
+
benefit from the same design choices)
|
|
188
|
+
- representation across intersections (disability + race, gender, age, class,
|
|
189
|
+
language)
|
|
190
|
+
|
|
191
|
+
**Language guidance:**
|
|
192
|
+
|
|
193
|
+
- Identity-first vs. person-first language varies by community. Default to
|
|
194
|
+
identity-first ("disabled person," "Autistic person," "Deaf person") unless
|
|
195
|
+
the specific community or individual prefers otherwise. When in doubt, ask.
|
|
196
|
+
- Avoid euphemisms like "differently abled," "special needs," or "handicapable"
|
|
197
|
+
unless a community has explicitly reclaimed them.
|
|
198
|
+
- Do not use "diverse" as a synonym for "non-white" or "non-male" or
|
|
199
|
+
"non-disabled." A single person is not "diverse."
|
|
200
|
+
|
|
201
|
+
**References:**
|
|
202
|
+
|
|
203
|
+
- Disability Visibility Project - <https://disabilityvisibilityproject.com/>
|
|
204
|
+
- National Center on Disability and Journalism style guide -
|
|
205
|
+
<https://ncdj.org/style-guide/>
|
|
206
|
+
- ADA National Network, _Guidelines for Writing About People With
|
|
207
|
+
Disabilities_ - <https://adata.org/factsheet/ADANN-writing>
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## 6. Cognitive Accessibility Considerations
|
|
212
|
+
|
|
213
|
+
Cognitive accessibility is structurally underrepresented in WCAG, in
|
|
214
|
+
accessibility tooling, and in training data. Treat it as a first-class concern.
|
|
215
|
+
|
|
216
|
+
Generated experiences should:
|
|
217
|
+
|
|
218
|
+
- minimize unnecessary memory load (don't ask users to remember information
|
|
219
|
+
across screens)
|
|
220
|
+
- minimize unnecessary precision (allow approximate input where possible -
|
|
221
|
+
"around $50/mo" is often more useful than forcing exact decimals)
|
|
222
|
+
- chunk long workflows into clearly labeled steps
|
|
223
|
+
- preserve user state aggressively (autosave, restorable drafts, recoverable
|
|
224
|
+
errors)
|
|
225
|
+
- avoid time pressure unless safety-critical
|
|
226
|
+
- avoid surprise modals, surprise redirects, and unexpected context shifts
|
|
227
|
+
- avoid auto-playing media, motion, sound, or animation by default
|
|
228
|
+
- respect `prefers-reduced-motion`, `prefers-reduced-transparency`, and
|
|
229
|
+
`prefers-color-scheme`
|
|
230
|
+
- favor explicit confirmations for destructive or irreversible actions
|
|
231
|
+
- support undo wherever feasible
|
|
232
|
+
- avoid using color, motion, or position as the sole carrier of meaning
|
|
233
|
+
|
|
234
|
+
**Reference:**
|
|
235
|
+
|
|
236
|
+
- W3C Cognitive Accessibility Guidance - <https://www.w3.org/WAI/cognitive/>
|
|
237
|
+
- COGA Task Force - <https://www.w3.org/WAI/GL/task-forces/coga/>
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 7. Inclusive Language Heuristics
|
|
242
|
+
|
|
243
|
+
When generating any natural-language output, prefer the following:
|
|
244
|
+
|
|
245
|
+
| Avoid | Prefer |
|
|
246
|
+
| ---------------------------- | --------------------------------------------- |
|
|
247
|
+
| sanity check | quick check, smoke test, gut check |
|
|
248
|
+
| dummy value / dummy variable | placeholder, sample value |
|
|
249
|
+
| blacklist / whitelist | blocklist / allowlist, denylist / allowlist |
|
|
250
|
+
| master / slave | primary / replica, leader / follower |
|
|
251
|
+
| crazy, insane, nuts, mental | surprising, unexpected, wild, intense |
|
|
252
|
+
| tone-deaf, blind to | unaware of, dismissive of, missing context on |
|
|
253
|
+
| crippled, lame | broken, limited, degraded |
|
|
254
|
+
| guys (addressing a group) | folks, everyone, team, y'all, all |
|
|
255
|
+
| mankind / manpower | humanity / staffing |
|
|
256
|
+
| grandfather clause | legacy clause, exception, carve-out |
|
|
257
|
+
| normal user | typical user, default user, baseline user |
|
|
258
|
+
| handicapped | disabled |
|
|
259
|
+
| suffers from <condition> | has <condition>, lives with <condition> |
|
|
260
|
+
| wheelchair-bound | wheelchair user |
|
|
261
|
+
| the disabled / the blind | disabled people / blind people |
|
|
262
|
+
|
|
263
|
+
This list is not exhaustive. Repositories should extend it with
|
|
264
|
+
domain-specific guidance.
|
|
265
|
+
|
|
266
|
+
**References:**
|
|
267
|
+
|
|
268
|
+
- Conscious Style Guide - <https://consciousstyleguide.com/>
|
|
269
|
+
- Inclusive Naming Initiative - <https://inclusivenaming.org/>
|
|
270
|
+
- Google Developer Documentation Style Guide -
|
|
271
|
+
<https://developers.google.com/style/inclusive-documentation>
|
|
272
|
+
- Microsoft Writing Style Guide, Bias-free communication -
|
|
273
|
+
<https://learn.microsoft.com/style-guide/bias-free-communication>
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## 8. Engineering Guidance
|
|
278
|
+
|
|
279
|
+
Generated code should:
|
|
280
|
+
|
|
281
|
+
- preserve semantic HTML structure (`<button>`, `<nav>`, `<main>`, `<label>`,
|
|
282
|
+
landmarks, headings in order)
|
|
283
|
+
- support keyboard interaction for every interactive element
|
|
284
|
+
- support screen readers (correct roles, names, states, live regions where
|
|
285
|
+
appropriate)
|
|
286
|
+
- avoid inaccessible interaction traps (custom dropdowns without focus
|
|
287
|
+
management, divs with `onClick` and no role/keyboard handling)
|
|
288
|
+
- maintain visible focus indicators that meet WCAG 2.4.11 contrast
|
|
289
|
+
- meet WCAG 2.2 color contrast: 4.5:1 body text, 3:1 large text and UI
|
|
290
|
+
- support text resize up to 200% without loss of content or functionality
|
|
291
|
+
- support `prefers-reduced-motion`, `prefers-color-scheme`,
|
|
292
|
+
`prefers-reduced-transparency`, `forced-colors`
|
|
293
|
+
- support touch targets of at least 24x24 CSS pixels (WCAG 2.2 minimum); 44x44
|
|
294
|
+
is strongly recommended
|
|
295
|
+
- avoid time-limited interactions without an explicit extend/disable option
|
|
296
|
+
- preserve user agency: support undo, cancel, back, save-as-draft
|
|
297
|
+
- localize: never hardcode user-facing strings, dates, numbers, currencies,
|
|
298
|
+
or units
|
|
299
|
+
- internationalize: support RTL layouts, variable text length, non-Latin
|
|
300
|
+
scripts, full Unicode in names
|
|
301
|
+
- avoid PII leakage in logs, error messages, telemetry, and AI tool context
|
|
302
|
+
- handle slow networks, offline, and low-end devices
|
|
303
|
+
|
|
304
|
+
Accessibility compliance alone is not sufficient for inclusion, but it is a
|
|
305
|
+
hard prerequisite. A product cannot be inclusive while being inaccessible.
|
|
306
|
+
|
|
307
|
+
**References:**
|
|
308
|
+
|
|
309
|
+
- WCAG 2.2 - <https://www.w3.org/TR/WCAG22/>
|
|
310
|
+
- ARIA Authoring Practices Guide - <https://www.w3.org/WAI/ARIA/apg/>
|
|
311
|
+
- Inclusive Design Principles - <https://inclusivedesignprinciples.org/>
|
|
312
|
+
- Inclusive Components by Heydon Pickering - <https://inclusive-components.design/>
|
|
313
|
+
- WebAIM - <https://webaim.org/>
|
|
314
|
+
- a11ysupport.io - <https://a11ysupport.io/>
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## 9. AI Generation Review Prompts
|
|
319
|
+
|
|
320
|
+
Before merging AI-generated output - whether code, copy, design, tests, or
|
|
321
|
+
documentation - evaluate it against the following prompts. These are intended
|
|
322
|
+
to be used by humans, by reviewers, and by AI assistants themselves when asked
|
|
323
|
+
to self-review.
|
|
324
|
+
|
|
325
|
+
1. Does this output assume a single "default user"? Who is that user, and who
|
|
326
|
+
does that assumption exclude?
|
|
327
|
+
2. Could this interaction exclude users with cognitive, communication, or
|
|
328
|
+
processing differences?
|
|
329
|
+
3. Does this require unnecessary precision, memory load, or speed?
|
|
330
|
+
4. Are disabled users represented with agency and autonomy, or as
|
|
331
|
+
beneficiaries / inspirations / edge cases?
|
|
332
|
+
5. Would this interaction work across multiple sensory modalities (sight,
|
|
333
|
+
hearing, touch, voice)?
|
|
334
|
+
6. Does generated language reinforce stereotypes, deficit framing, or ableist
|
|
335
|
+
metaphors?
|
|
336
|
+
7. Are alternative workflows available for users who cannot complete the
|
|
337
|
+
"happy path"?
|
|
338
|
+
8. Is complexity user-controlled, or system-imposed?
|
|
339
|
+
9. Could this design exclude users outside dominant cultural, linguistic, or
|
|
340
|
+
regional assumptions?
|
|
341
|
+
10. Does this work with assistive technology - screen readers, switch access,
|
|
342
|
+
voice control, magnification, eye tracking?
|
|
343
|
+
11. Does this work on a slow network, on a low-end device, in a non-English
|
|
344
|
+
language, in a right-to-left script?
|
|
345
|
+
12. Does this respect user consent, privacy, and the right to opt out of
|
|
346
|
+
surveillance and personalization?
|
|
347
|
+
13. Whose lived experience would catch the failure mode I cannot see?
|
|
348
|
+
14. If this were the only software a user could access to do this task, would
|
|
349
|
+
that be acceptable?
|
|
350
|
+
|
|
351
|
+
If you cannot answer these questions, that is the signal to bring in research,
|
|
352
|
+
disabled practitioners, and accessibility expertise before shipping - not
|
|
353
|
+
after.
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## 10. Domain-Specific Extensions
|
|
358
|
+
|
|
359
|
+
The default `INCLUSION.md` is generic. Real inclusion guidance is contextual.
|
|
360
|
+
Extend this document with sections specific to your domain. Examples:
|
|
361
|
+
|
|
362
|
+
- **Healthcare:** PHI handling, plain-language consent, symptom-checker
|
|
363
|
+
framing, mental-health crisis pathways, refusal-of-care safeguards.
|
|
364
|
+
- **Financial services:** plain-language fee disclosure, unbanked / cash-only
|
|
365
|
+
users, predatory dark patterns to avoid, accessibility of debt and credit
|
|
366
|
+
flows.
|
|
367
|
+
- **Civic / government:** literacy, language access, identity documentation
|
|
368
|
+
assumptions, immigrants and undocumented users, accessibility of legal
|
|
369
|
+
remedies.
|
|
370
|
+
- **Education:** age-appropriate language, neurodivergent learners, varied
|
|
371
|
+
literacy levels, shared-device contexts, low-bandwidth learners.
|
|
372
|
+
- **Hiring / HR:** name pronunciation and rendering, gender beyond binary,
|
|
373
|
+
disability disclosure, criminal-record questions, accessibility of
|
|
374
|
+
application flows.
|
|
375
|
+
- **Creative / generative tools:** representation in default outputs, opt-in
|
|
376
|
+
vs. opt-out personalization, consent for likeness and voice, watermarking.
|
|
377
|
+
|
|
378
|
+
Add the section your repository actually needs.
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## 11. What This File Does Not Do
|
|
383
|
+
|
|
384
|
+
`INCLUSION.md` is **not**:
|
|
385
|
+
|
|
386
|
+
- a substitute for participatory research with disabled users
|
|
387
|
+
- a substitute for hiring disabled designers, engineers, and researchers
|
|
388
|
+
- a substitute for accessibility audits and remediation
|
|
389
|
+
- a substitute for legal and regulatory compliance (ADA, EAA, AODA, Section
|
|
390
|
+
508, EN 301 549, etc.)
|
|
391
|
+
- a guarantee that an AI assistant will follow its guidance
|
|
392
|
+
- a one-time deliverable
|
|
393
|
+
|
|
394
|
+
It is an operational scaffold. It lowers the floor. It does not raise the
|
|
395
|
+
ceiling. The ceiling is raised by people - especially disabled people - with
|
|
396
|
+
authority, budget, and time.
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## 12. Maintenance
|
|
401
|
+
|
|
402
|
+
- **Owner:** _Name a specific person or team accountable for this file._
|
|
403
|
+
- **Review cadence:** _Quarterly is a reasonable default. Annually is the
|
|
404
|
+
minimum._
|
|
405
|
+
- **Change log:** Track meaningful changes to this file in
|
|
406
|
+
[`CHANGELOG.md`](./CHANGELOG.md) or in repository releases.
|
|
407
|
+
- **Feedback:** _Provide a contact route for users and contributors to flag
|
|
408
|
+
exclusionary patterns, language, or assumptions in this file or in the
|
|
409
|
+
software it governs._
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## 13. Attribution & License
|
|
414
|
+
|
|
415
|
+
This `INCLUSION.md` template is published at
|
|
416
|
+
<https://github.com/BranonConor/inclusion.md> under the MIT License. It
|
|
417
|
+
originates from the essay _The need for INCLUSION.md_ by Brano Conor
|
|
418
|
+
(<https://branon.dev/blog/posts/the-need-for-inclusion-md>).
|
|
419
|
+
|
|
420
|
+
You are encouraged to adapt, fork, translate, and improve it. Attribution is
|
|
421
|
+
appreciated but not required.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Branon Eusebio
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
# inclusion.md
|
|
4
|
+
|
|
5
|
+
> A repository-level context engineering document for inclusive AI-assisted
|
|
6
|
+
> software development.
|
|
7
|
+
|
|
8
|
+
[**Read INCLUSION.md →**](./INCLUSION.md)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Hi, I'm [Branon](https://branon.dev) 👋
|
|
13
|
+
|
|
14
|
+
I'm a design engineer who cares a lot about accessibility. As AI-assisted
|
|
15
|
+
development started becoming the default in how we build software, I kept
|
|
16
|
+
thinking about what a11y looks like in this new paradigm - where coding
|
|
17
|
+
assistants are quietly making thousands of small decisions about who our
|
|
18
|
+
software is built for.
|
|
19
|
+
|
|
20
|
+
This repo is something I feel is currently missing from the conversation. As
|
|
21
|
+
AI agents increasingly step into the roles of designers and engineers, I feel
|
|
22
|
+
they need to be made aware of their biases from the data they're trained on -
|
|
23
|
+
much like humans need to be made aware of biases in our cognitive schemas
|
|
24
|
+
and our unique understandings of the world. `INCLUSION.md` is a small,
|
|
25
|
+
opinionated, machine-readable scaffold for doing exactly that: giving AI
|
|
26
|
+
coding assistants persistent inclusion-oriented guidance during code
|
|
27
|
+
generation.
|
|
28
|
+
|
|
29
|
+
For the full rationale - training-data bias, the limits of WCAG, why
|
|
30
|
+
inclusion needs an operational layer in AI-native workflows - read the
|
|
31
|
+
companion essay: [_The need for INCLUSION.md_](https://branon.dev/blog/posts/the-need-for-inclusion-md).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## What it is
|
|
36
|
+
|
|
37
|
+
`INCLUSION.md` is a drop-in file that gives AI coding assistants - GitHub
|
|
38
|
+
Copilot, Cursor, Claude Code, Windsurf, Continue, and friends - persistent,
|
|
39
|
+
inclusion-oriented guidance during code generation.
|
|
40
|
+
|
|
41
|
+
It is the inclusion-focused sibling of `A11Y.md`, `CONTRIBUTING.md`, and
|
|
42
|
+
`design.md`:
|
|
43
|
+
|
|
44
|
+
| File | Operationalizes |
|
|
45
|
+
| ----------------- | ------------------------------------------------------ |
|
|
46
|
+
| `README.md` | What this project is |
|
|
47
|
+
| `CONTRIBUTING.md` | How humans contribute |
|
|
48
|
+
| `A11Y.md` | Technical accessibility compliance |
|
|
49
|
+
| `design.md` | Visual and interaction system |
|
|
50
|
+
| `INCLUSION.md` | Contextual, representational, sociotechnical inclusion |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Why this exists
|
|
55
|
+
|
|
56
|
+
AI-assisted development is becoming infrastructure. Coding assistants now sit
|
|
57
|
+
_between_ human intent and the code, copy, and interactions that ship. They
|
|
58
|
+
generate output based on what is statistically likely given their training
|
|
59
|
+
data - and that training data carries the accumulated biases of the public
|
|
60
|
+
web, open-source code, and English-language text.
|
|
61
|
+
|
|
62
|
+
That means AI assistants can quietly amplify two kinds of debt at once:
|
|
63
|
+
|
|
64
|
+
- **Accessibility debt** - inaccessible patterns inherited from the public web.
|
|
65
|
+
- **Representational debt** - narrow assumptions about whose communication
|
|
66
|
+
styles, identities, and lived experiences count as "default."
|
|
67
|
+
|
|
68
|
+
Neither shows up in your bundle size report.
|
|
69
|
+
|
|
70
|
+
`INCLUSION.md` is a small, opinionated, machine-readable scaffold to push back
|
|
71
|
+
on that flattening. It is not a fix. Bias mitigation is an unresolved
|
|
72
|
+
sociotechnical problem. But operational scaffolding lowers the floor.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Quick start
|
|
77
|
+
|
|
78
|
+
### Option A: Use the CLI (recommended)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx inclusion-md init
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
That's it. The CLI walks you through a few questions about your project
|
|
85
|
+
(product, primary users, known underserved users, distribution context,
|
|
86
|
+
stakes, ownership, review cadence), picks a starting template (generic,
|
|
87
|
+
frontend app, design system, or backend API), and writes a customized
|
|
88
|
+
`INCLUSION.md` to your repo root.
|
|
89
|
+
|
|
90
|
+
Useful flags:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx inclusion-md init --variant design-system # start from a domain example
|
|
94
|
+
npx inclusion-md init --out docs/INCLUSION.md # write somewhere else
|
|
95
|
+
npx inclusion-md init --yes # accept defaults, non-interactive
|
|
96
|
+
npx inclusion-md init --force # overwrite without prompting
|
|
97
|
+
npx inclusion-md --help
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Requires Node.js 16+. No dependencies.
|
|
101
|
+
|
|
102
|
+
### Option B: Copy the file by hand
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
curl -O https://raw.githubusercontent.com/BranonConor/inclusion.md/main/INCLUSION.md
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Or just download [`INCLUSION.md`](./INCLUSION.md) from this repo and drop it
|
|
109
|
+
into the root of your project alongside `README.md`.
|
|
110
|
+
|
|
111
|
+
### Customize Section 1 (Project Context)
|
|
112
|
+
|
|
113
|
+
The generic template is a starting point. Inclusion guidance is _contextual_ -
|
|
114
|
+
the section that matters most is the one that describes _your_ product, _your_
|
|
115
|
+
users, and _your_ known blind spots. Fill in:
|
|
116
|
+
|
|
117
|
+
- the product description
|
|
118
|
+
- who you've designed for
|
|
119
|
+
- who you _haven't_ designed for well (yet)
|
|
120
|
+
- distribution context (geography, devices, languages, assistive tech)
|
|
121
|
+
- the stakes when exclusion happens
|
|
122
|
+
|
|
123
|
+
(If you used `npx inclusion-md init`, this is already filled in.)
|
|
124
|
+
|
|
125
|
+
### Reference it from your AI assistant
|
|
126
|
+
|
|
127
|
+
Most AI coding assistants support repository-level context files. Point them
|
|
128
|
+
at `INCLUSION.md`.
|
|
129
|
+
|
|
130
|
+
**GitHub Copilot** - create `.github/copilot-instructions.md`:
|
|
131
|
+
|
|
132
|
+
```md
|
|
133
|
+
This repository contains an `INCLUSION.md` at the project root.
|
|
134
|
+
Follow its guidance when generating UI copy, code, documentation,
|
|
135
|
+
error messages, persona descriptions, and review feedback.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Cursor** - in `.cursor/rules/inclusion.md` or `.cursorrules`:
|
|
139
|
+
|
|
140
|
+
```md
|
|
141
|
+
Always read and follow `/INCLUSION.md` when generating code, copy,
|
|
142
|
+
or design artifacts in this repository.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**Claude Code** - in `CLAUDE.md`:
|
|
146
|
+
|
|
147
|
+
```md
|
|
148
|
+
Read `/INCLUSION.md` and apply its review prompts before
|
|
149
|
+
finalizing any generated output in this repository.
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Continue / Windsurf / Cody / etc.** - add `INCLUSION.md` to your workspace
|
|
153
|
+
context configuration.
|
|
154
|
+
|
|
155
|
+
### 4. Treat it like the rest of your engineering docs
|
|
156
|
+
|
|
157
|
+
- Name an owner.
|
|
158
|
+
- Review on a cadence (quarterly recommended).
|
|
159
|
+
- Track changes in a `CHANGELOG.md` or in releases.
|
|
160
|
+
- Provide a feedback route for users and contributors.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Examples
|
|
165
|
+
|
|
166
|
+
The [`examples/`](./examples) folder contains adapted `INCLUSION.md` files for
|
|
167
|
+
different repo types:
|
|
168
|
+
|
|
169
|
+
- [`examples/frontend-app/INCLUSION.md`](./examples/frontend-app/INCLUSION.md) -
|
|
170
|
+
a consumer-facing web app
|
|
171
|
+
- [`examples/design-system/INCLUSION.md`](./examples/design-system/INCLUSION.md) -
|
|
172
|
+
a component library / design system
|
|
173
|
+
- [`examples/backend-api/INCLUSION.md`](./examples/backend-api/INCLUSION.md) -
|
|
174
|
+
a backend API / SDK
|
|
175
|
+
|
|
176
|
+
These are illustrative, not prescriptive. Adapt them to your context.
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## What this is not
|
|
181
|
+
|
|
182
|
+
`INCLUSION.md` is **not**:
|
|
183
|
+
|
|
184
|
+
- a substitute for participatory research with disabled users
|
|
185
|
+
- a substitute for hiring disabled designers, engineers, and researchers
|
|
186
|
+
- a substitute for accessibility audits and remediation
|
|
187
|
+
- a substitute for legal and regulatory compliance
|
|
188
|
+
- a guarantee that any AI assistant will follow its guidance
|
|
189
|
+
- a finished or final artifact
|
|
190
|
+
|
|
191
|
+
It is an operational scaffold. The ceiling is raised by people - especially
|
|
192
|
+
disabled people - with authority, budget, and time.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Contributing
|
|
197
|
+
|
|
198
|
+
Pull requests, issues, translations, domain-specific extensions, and critiques
|
|
199
|
+
are welcome. See [`CONTRIBUTING.md`](./CONTRIBUTING.md).
|
|
200
|
+
|
|
201
|
+
This project takes language and representation seriously. Contributions that
|
|
202
|
+
improve language guidance, add domain-specific sections, or correct ableist or
|
|
203
|
+
exclusionary defaults are especially appreciated. Contributions from disabled
|
|
204
|
+
practitioners and from communities underrepresented in this kind of tooling
|
|
205
|
+
are prioritized in review.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## License
|
|
210
|
+
|
|
211
|
+
MIT. See [`LICENSE`](./LICENSE).
|
|
212
|
+
|
|
213
|
+
You are encouraged to fork, adapt, translate, and ship this in your own
|
|
214
|
+
projects. Attribution is appreciated but not required.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Citation
|
|
219
|
+
|
|
220
|
+
If you cite this work academically or in industry writing:
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
Conor, B. (2026). INCLUSION.md: A context engineering scaffold for
|
|
224
|
+
inclusive AI-assisted software development. https://github.com/BranonConor/inclusion.md
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Companion essay: _The need for INCLUSION.md_,
|
|
228
|
+
<https://branon.dev/blog/posts/the-need-for-inclusion-md>.
|