AI Policy

“A computer can never be held accountable, therefore a computer must never make a management decision.”

IBM Training Manual, 1979

This document is intended to encourage the responsible use of AI in the ongoing development of Concrete CMS, while clarifying the expectations we have for how these tools should be used within the project.

AI tools are now part of how many people design, write, document, and ship software. They offer the opportunity to significantly increase velocity. We are not interested in banning useful tools; we are interested in maintaining a healthy open source project. That means we need high-quality contributions, clear authorship, respectful collaboration, and sustainable reviewer load.

Our policy is simple: you may use AI to assist your work, but you may not outsource responsibility for your work.

If you submit code, documentation, tests, designs, issue summaries, or other project assets, you are accountable for them. That means you understand what you are submitting, you can explain the choices you made, you have verified that the contribution is correct and appropriately licensed, and you are available to engage with feedback from maintainers and the community.

We do not accept low-accountability AI usage. That includes large unreviewed code dumps, generic issue reports, hallucinated references, inadequate or nonsensical testing, or contributions that ignore prior discussion and project conventions. If a contributor cannot explain or defend what they submitted, we will treat that as a quality and ownership problem, not an AI problem.

As always, your code is still responsible for passing existing tests, integrating cleanly into any existing codebase, and conforming to our coding standards. In this way, AI-assisted code is no different from community contributions we have always accepted.

Before submitting AI-assisted work, contributors should do the same things good contributors already do: read every line, ensure sufficient and useful commenting, remove anything they cannot explain, verify behavior in a real environment, ensure that existing tests pass and that new, relevant tests are added where necessary. Contributors should ensure that the final submission reflects their best work.

Reviewers and maintainers may ask for additional explanation, testing, or simplification when a contribution appears heavily AI-assisted. We reserve the right to close or reject contributions that create reviewer burden.

Consider using AI tools to improve understanding, not just generate output. They can be very helpful traversing complex code bases, tracing how systems evolved over time, summarizing architectural patterns, and explaining historical design decisions. AI can also assist with the chores that exist around coding, like the generation of helpful docblocks, edge case identification, and the writing of tests. In many cases, these tools make it easier for contributors to spend more time reasoning about systems, improving the last 10% of any fix or feature, and improving user outcomes rather than getting stuck on repetitive mechanical work.

AI coding is a powerful tool, but it is not a substitute for thoughtful design. It should be used to accelerate development, but not at the expense of human understanding. This policy is meant to encourage the enthusiastic adoption of AI coding technologies, while reminding everyone that it is ultimately in the service of the project's human users, editors, developers and maintainers.