From 1d3667ef23b0ca37a4ba92f75dc0102ef0b9d72a Mon Sep 17 00:00:00 2001 From: Hayodea Hekol Date: Wed, 1 Apr 2026 21:55:53 -0400 Subject: [PATCH] Add AGENTS.md --- AGENTS.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..8e22dfa --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,10 @@ +# Project Instructions + +- Always break functions into logical subfunctions. No long-scrolling functions, in any language. This applies to source code, scripts, build scripts, CMake, Makefiles, and similar project files. Preserve this subfunction splitting discipline during refactors. +- Modularity is non-negotiable. Always group logically related functions together into a module. Preserve modularity during refactors. +- Reuse or extend existing abstractions instead of duplicating logic wherever possible. Don't repeat yourself. The goal here is to prevent duplication. Not to discourage appropriate logical separation of prior abstractions into new logical abstractions where sensible. +- Always isolate configurable behaviour into configuration variables appropriate for the language and framework being used. +- Never bake in literals; at minimum, declare them at the top of the file with a semantically meaningful name. +- UI should be responsive. Always prefer to use pre-packaged UI toolkit widgets, containers and colour sets harmoniously, instead of writing custom CSS overrides. Write custom CSS only if there's no UI toolkit mechanism available. +- Aggressively isolate, split off, deduplicate and reuse code which can be made into common library code. Do the same with UI elements. Do this both when implementing new features and opportunistically while refactoring or changing old code/UI elements. +- Names of files, functions, classes, abstractions, database fields, etc should be aimed at disambiguating purpose and function, rather than at brevity.