AI manifest

A plain-Markdown record of how AI was, or wasn't, used in a project.

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:

LevelMeaning
noneNo AI involvement.
consultedDiscussed with AI or had things explained. No AI output in the work.
suggestedAI proposed approaches or snippets. A human wrote the work.
co-writtenSubstantial AI-written parts, reworked and integrated by a human.
directedAI wrote most of it, following detailed human instructions.
delegatedAI 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

  1. Download the template and save it in your repository root as AI-MANIFEST.md.
  2. Set Default level for everything you don't list, then add a ## section for each area that's different.
  3. 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

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.