LogoIgnis

AI Disclosure

Documents human-AI authorship.

I, @misha, am not a proponent of generative AI, especially in the context of game development. I will never use AI to create game assets like art and music. Despite this predisposition, I recognize that in the context of software engineering, generative AI can be a potent tool. I also believe its usage does not excuse the programmer from reviewing, and ultimately understanding, the generated code.

For Ignis, I have elected to use AI to help me write, maintain, and test the engine. The alternative would be the inability to ship it in an acceptable time frame, and I would rather have it exist with some AI-generated code today than not at all.

Authorship Tracking#

In the near future, I will target certain authorship thresholds, e.g. "the core library must be 100% human-authored". In order to enforce this, authorship is explicitly tracked using this AI Disclosure convention. It is not a well-known convention, but after some research, I judged it well-written and suitable for this project.

The convention is documented by AI_DISCLOSURE.md at the repository root. Disclosure is per-file, and any file can override the default it with an SPDX-AI-Disclosure: tag in a comment. The possible values for the tag are as follows:

ValueMeans
none No AI involvement. Use when you want to positively assert human authorship.
ai-assisted Human-authored; AI edited, refined, or filled in boilerplate.
ai-generatedAI-generated with human prompting and review.
autonomousAI-generated without meaningful human oversight.

The default disclosure value is ai-generated. This will never change unless the project is rewritten, from scratch, without AI assistance. If it does change, you may consider the custody of the engine thoroughly compromised.

I explicitly forbid autonomous AI contributions, so there will never be an autonomous file in the repository.

Automated Reporting#

Whenever this documentation site is built, it also generates an AI disclosure report via tool/disclosure.dart. The tool allows me to assert that every file is accounted for; group files together to help understand progress towards goals; and exclude ineligible files from reporting concerns, such as assets, goldens, and source code managed by non-AI codegen tools.

Disclosure#

315 files. 146 state their own disclosure; the rest inherit ai-generated.

GroupFilesDisclosure
Library 123 86 none · 22 ai-assisted · 15 ai-generated
Tests113ai-generated
Benchmarks 22 ai-generated
Site26ai-generated
Site Content29none
Tools1ai-generated
Github1ai-generated

Exclusions#

The following file groups have no provenance.

GroupFilesReason
Barrels13Export lists.
Project Configuration 17 Structured data.
Jaspr Codegen 7 Generated by jaspr_builder.
Site Configuration 3 Structured data.
Flutter Scaffolding 11 Generated by flutter create.
Lockfiles 1 Resolved by pub.
Goldens 104 Generated by the tests.
Test Assets9Assets.
Art & Fonts 55 Assets.
Internal Documents 12 Maintainer-authored.
License 1 Standard MIT license text.