Initial AGENTS.md commit

This commit is contained in:
kinther 2025-12-30 10:12:10 -08:00
parent 59a38beb3d
commit 8fe4702bbc

220
AGENTS.md Normal file
View file

@ -0,0 +1,220 @@
# AGENTS.md
## Purpose
This file defines the rules, expectations, and constraints for **automated agents**
(including AI coding assistants, LLMs, bots, and scripted tools) contributing to this
codebase.
The goal is to:
- Preserve long-term maintainability
- Avoid licensing and provenance risk
- Prevent architectural drift
- Ensure consistency with established design decisions
- Make human review straightforward and reliable
All automated agents MUST comply with the requirements in this document.
---
## Scope
This repository is a **C-based MUD engine** derived from CircleMUD/tbaMUD and is
under active development, including significant refactors to core systems such as:
- Skills and proficiency
- Combat resolution
- Object and mobile data models
- Online Creation (OLC)
- Persistence and serialization
- Builder and immortal tooling
Changes often have **far-reaching consequences** across gameplay, balance, and
world data integrity.
---
## General Rules for Automated Agents
### 1. No Unreviewed Structural Changes
Automated agents MUST NOT:
- Reorganize directories
- Rename files
- Merge or split source files
- Introduce new subsystems
- Replace existing systems wholesale
Unless **explicitly instructed** to do so.
Incremental, targeted changes are required.
---
### 2. Preserve Existing Behavior Unless Directed
If a function, macro, or subsystem already exists:
- Do NOT change semantics
- Do NOT “simplify” logic
- Do NOT remove edge-case handling
- Do NOT refactor stylistically
Unless the user **explicitly requests** that behavior be changed.
Backward compatibility is a priority.
---
### 3. Minimal Diffs Are Mandatory
Automated agents must:
- Change only what is necessary
- Avoid drive-by formatting edits
- Avoid re-indentation unless required
- Avoid renaming variables unless necessary for correctness
If a fix can be achieved with a 3-line change, a 30-line rewrite is unacceptable.
---
### 4. Follow Existing Code Style Exactly
This codebase intentionally reflects legacy CircleMUD conventions.
Agents MUST:
- Match indentation style
- Match brace placement
- Match naming conventions
- Match macro usage patterns
Do not introduce modern C idioms, new abstractions, or stylistic preferences.
---
## Licensing and Provenance Requirements
### 5. No Third-Party Code Injection
Automated agents MUST NOT:
- Paste code from external projects
- Introduce snippets from blogs, gists, StackOverflow, or forums
- Reproduce code from GPL-incompatible sources
All code must be **original**, **derivative of existing repository code**, or
**explicitly authorized** by the user.
If uncertain, ask before proceeding.
---
### 6. Do Not Assume License Changes
Do NOT:
- Modify license headers
- Remove attribution
- Add new license files
- Assume relicensing is permitted
Licensing is handled deliberately and conservatively.
---
## Technical Expectations
### 7. Full-Context Awareness Required
Before modifying a subsystem, automated agents MUST:
- Read all related `.c` and `.h` files
- Identify existing macros, helpers, and patterns
- Understand how data flows through the system
Guessing or partial understanding is not acceptable.
---
### 8. Prefer Existing Helpers and Macros
If functionality already exists:
- Reuse it
- Extend it minimally if needed
- Do not reimplement logic elsewhere
Duplication increases maintenance cost and risk.
---
### 9. Explicitly Note Assumptions
When producing code or recommendations, agents MUST:
- State assumptions clearly
- Identify uncertainties
- Call out areas that require human confirmation
Silent assumptions are dangerous.
---
## Data Integrity and World Safety
### 10. Protect World Files and Player Data
Automated agents must treat:
- World files
- Player files
- OLC data
- Serialized objects/mobs/rooms
As **production data**.
Do NOT:
- Change file formats casually
- Break backward compatibility
- Introduce implicit migrations
Any data format change must be explicit and documented.
---
## Communication Expectations
### 11. Be Direct and Precise
Agent output should:
- Use technical language appropriate to experienced developers
- Avoid verbosity for its own sake
- Avoid motivational or conversational filler
- Focus on correctness and clarity
---
### 12. Ask Before Acting When Uncertain
If instructions are ambiguous or risky:
- STOP
- Ask clarifying questions
- Do not guess intent
Incorrect confidence is worse than delay.
---
## Enforcement
Failure to comply with this document may result in:
- Rejection of changes
- Reversion of commits
- Loss of permission to contribute
This applies equally to humans and automated agents.
---
## Summary
This codebase prioritizes:
- Stability over novelty
- Clarity over cleverness
- Intentional design over convenience
Automated agents are welcome collaborators **only** when they operate within
these constraints.