AI-generated code is a reality of our time and it is both a blessing and a curse. The problem is not the code in itself but transparency and clarity. At least, that is the working theory of this specification. The suggestion is simple: to invite everyone to include a structured CANDOR.md file like they include other files in a repository to make the AI-usage crystal clear and, more importantly, to make it a widespread convention to do so.
This is not to discourage usage of LLM- and other code-generation in the future. On the contrary, it is an enabler. When you declare what parts of the code were, in fact, generated, a skeptic can immediately look into just those parts to satisfy their urge to re-verify and double-check. And, it lets the creator showcase their skillset with code and their skillset with planning and other soft skills simultaneously and with clarity.
The name is intentional. Candor is a noun meaning:
The quality of being open and honest; frankness.
A CANDOR.md file uses YAML frontmatter for structured fields, followed by a required ## Notes section in the markdown body for human context. At minimum, it requires version, level, and a ## Notes section.
Optionally, you can declare processes, each with their own level. The global level must be the highest level present. Any process not listed is assumed to be none implicitly. You can also list components (file paths or directories) with individual levels.
The specification formally defines version, level, processes, and components.
Below, you will find some examples of different scenarios.
Simple
The simplest CANDOR.md requires version, level, and a ## Notes section.
--- version: "0.1.0" level: none --- ## Notes - No AI tools were used.
--- version: "0.1.0" level: auto --- ## Notes - Claude Code was used to create the whole application.
With Processes
Use processes to granularly declare AI involvement per development phase. The global level must be the highest level present. Any process not listed is assumed to be none implicitly.
--- version: "0.1.0" level: auto processes: design: auto testing: copilot --- ## Notes - AI drove architecture decisions and test generation. All output was reviewed by a human.
With Components
Use components to declare AI involvement for specific files or directories.
--- version: "0.1.0" level: auto components: src/helpers: auto --- ## Notes - The helpers directory was fully generated. All other code is human-written.
Add a badge to your README to declare your CANDOR level at a glance. Please note, this is just for convenience and to comply with the specification, you must include a CANDOR.md file.
CANDOR.md in it, you can use it as a single source of truth.README_<locale>.md e.g. README_es.md. Then, raise a PR. I'll take it from there.CANDOR.md as the primary source of truth. The badge in the README is just a glanceable way for someone to check that A, the CANDOR.md would be available and B, the level.U+4DFC) is one of 64 hexagrams in the Yi (I) Ching to illustrate principles where each line is either Yin (broken) or Yang (solid). (source)