Why
Plenty of projects involve AI somewhere, and plenty deliberately don't. Either way, it's worth saying so plainly.
Badges and single-number grades flatten that into one verdict. They can't say that an AI wrote most of the CSS while every line of the Rust was written by hand, or that the "help" was explaining an unfamiliar language's idioms rather than writing any code.
An AI manifest lists what's inside, area by area: who produced the work, how carefully a human checked it, and how well that human could judge it. It doesn't grade anything. "No AI was used" and "an AI built this from a brief" are both just entries.
It's ordinary Markdown, written for people to read. A few light conventions make the same text readable by tools, so anyone can point a script at a repository and compare it against their own standards.
What one looks like
An AI-MANIFEST.md in the root of the repository:
# AI manifest
- Format: [ai-manifest/1](https://ai-manifest.ahnlak.com/spec/1)
- Updated: 2026-10-02
- Tools: Claude (hosted)
- Default level: none
Designed and written by me. Anything not listed
below had no AI involvement.
## Styling
- Level: directed
- Review: full
- Paths: `assets/css/**`
Most of the CSS was generated to my direction,
then checked in a browser.
## Code: Kotlin
- Level: suggested
- Review: full
- Familiarity: learning
Mainly explanations of idioms in a language I'm
less experienced with.
A project with no AI involvement needs just the header and one sentence saying so.
The scale
Level records who produced the work, from least to most AI involvement:
| Level | Meaning |
|---|---|
none | No AI involvement. |
consulted | Discussed with AI or had things explained. No AI output in the work. |
suggested | AI proposed approaches or snippets. A human wrote the work. |
co-written | Substantial AI-written parts, reworked and integrated by a human. |
directed | AI wrote most of it, following detailed human instructions. |
delegated | AI wrote it from a brief. The human set goals, not details. |
Review records how carefully a human checked AI
output: none, light or full.
Familiarity records the author's own skill in the
language: expert, proficient or
learning. It shows how well they could judge what the AI
produced.
Getting started
- Download the template
and save it in your repository root as
AI-MANIFEST.md. - Set
Default levelfor everything you don't list, then add a##section for each area that's different. - Check it with the checker. It needs Python 3.8 or later and nothing else.
$ python3 ai-manifest-check.py
AI-MANIFEST.md: ok
$ python3 ai-manifest-check.py --json # parsed record
$ python3 ai-manifest-check.py --strict # warnings fail too
Spec versions
-
2026-10-02
ai-manifest/1current
First release. Markdown source
Each version stays at its own address, so a manifest always points at the spec it was written against.
Checker: ai-manifest-check.py v1.0.0, supports ai-manifest/1.