{"ArticleId":null,"Name":"The AI Agent Kit","Content":"\u003Cp\u003EThe GrandNode repository ships an AI Agent Kit: an \u003Ccode\u003EAGENTS.md\u003C/code\u003E file at the root and a \u003Ccode\u003E.ai/\u003C/code\u003E folder with the knowledge, rules and procedures that a coding agent \u2014 Claude Code, GitHub Copilot, Cursor, Codex or any other tool that reads repository instructions \u2014 needs to change GrandNode the way its maintainers would. It is plain Markdown, model-agnostic, and just as useful to a human developer new to the codebase. An overview for decision makers is on the \u003Ca href=\u0022/ai-agent-kit\u0022\u003EAI Agent Kit\u003C/a\u003E page.\u003C/p\u003E\n\n\u003Ch2 id=\u0022entry-point\u0022\u003EThe entry point: AGENTS.md\u003C/h2\u003E\n\u003Cp\u003E\u003Ccode\u003EAGENTS.md\u003C/code\u003E is the file agents read first (\u003Ccode\u003ECLAUDE.md\u003C/code\u003E simply includes it). It does not contain the rules itself; it routes the agent to the right material for the task: which prompt to start from, which skills apply to which domain, which checklists to run before calling a change done, and a short list of operating rules \u2014 read the goal first, inspect existing patterns before proposing changes, keep changes in scope, never overwrite unrelated work, report what was and was not verified.\u003C/p\u003E\n\n\u003Ch2 id=\u0022folders\u0022\u003EWhat is in .ai/\u003C/h2\u003E\n\u003Ctable\u003E\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003EFolder\u003C/th\u003E\u003Cth\u003EContains\u003C/th\u003E\u003Cth\u003EUse it to\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\n\u003Ctbody\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eprinciples.md\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EWhy the code is shaped the way it is\u003C/td\u003E\u003Ctd\u003EResolve a judgment call between two valid approaches\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Econstraints.md\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EHard prohibitions (no AutoMapper, no Newtonsoft.Json, no blocking on tasks, no plugin references from core, no package versions in project files)\u003C/td\u003E\u003Ctd\u003EKnow what is never acceptable\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eprompts/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003ETask entry points: implement a feature, create a plugin or theme, add a migration, write tests, review a change, explore the repository\u003C/td\u003E\u003Ctd\u003EStart work when you know what to build\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eworkflows/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EMulti-phase procedures with gates: fix a bug, investigate performance, refactor safely, upgrade a dependency, respond to review\u003C/td\u003E\u003Ctd\u003EStart work when the cause or path is not known yet\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eskills/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EDomain procedures with mandatory rules: plugins by type, themes, admin panels, permissions and navigation, settings and localization, messages, scheduled tasks, MongoDB, security\u003C/td\u003E\u003Ctd\u003EDo or review work in one domain\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eknowledge/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EHow the system works: architecture, request lifecycle, scoping, caching, domain events, MongoDB, async, tests\u003C/td\u003E\u003Ctd\u003EUnderstand before changing\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eglossary/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EThe domain vocabulary, including the renamed terms\u003C/td\u003E\u003Ctd\u003EName things the way GrandNode does\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Estandards/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003ENaming, C# style, Razor and frontend, dependencies, git and pull requests\u003C/td\u003E\u003Ctd\u003EFormat, structure and ship a change\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Echecklists/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EDefinition of done, code review, security, performance, data change, plugin release\u003C/td\u003E\u003Ctd\u003EVerify a change before calling it done\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eexamples/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EWalkthroughs of shipped code: a cached store-scoped service, a payment plugin file by file, a theme override\u003C/td\u003E\u003Ctd\u003ESee the rules applied\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Etemplates/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003ESkeletons for a plugin, an admin configuration screen, a theme and a migration\u003C/td\u003E\u003Ctd\u003EScaffold new code\u003C/td\u003E\u003C/tr\u003E\n\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003Eagents/\u003C/code\u003E\u003C/td\u003E\u003Ctd\u003EAgent definitions (plugin creator, bug fixer, reviewer, migration writer and more)\u003C/td\u003E\u003Ctd\u003EHand a whole recurring task to an agent\u003C/td\u003E\u003C/tr\u003E\n\u003C/tbody\u003E\n\u003C/table\u003E\n\n\u003Ch2 id=\u0022vocabulary\u0022\u003EWhy the glossary matters\u003C/h2\u003E\n\u003Cp\u003EGrandNode renamed much of the vocabulary it inherited: \u003Cem\u003EBrand\u003C/em\u003E not Manufacturer, \u003Cem\u003EPage\u003C/em\u003E not Topic, \u003Cem\u003ECustomer group\u003C/em\u003E not Customer role, \u003Cem\u003EMerchandise return\u003C/em\u003E not Return request, \u003Cem\u003ELoyalty points\u003C/em\u003E not Reward points, \u003Cem\u003EUser field\u003C/em\u003E not Generic attribute. A model trained on older e-commerce code reaches for the old word, produces types that read as foreign and searches that find nothing. \u003Ccode\u003E.ai/glossary/renamed-terms.md\u003C/code\u003E is short and prevents that.\u003C/p\u003E\n\n\u003Ch2 id=\u0022using-it\u0022\u003EUsing it\u003C/h2\u003E\n\u003Col\u003E\n\u003Cli\u003EClone the repository; the kit is part of it, nothing to install.\u003C/li\u003E\n\u003Cli\u003EOpen the repository in your agent. Tools that read \u003Ccode\u003EAGENTS.md\u003C/code\u003E or \u003Ccode\u003ECLAUDE.md\u003C/code\u003E pick it up automatically; for others, point the agent at \u003Ccode\u003EAGENTS.md\u003C/code\u003E in your first message.\u003C/li\u003E\n\u003Cli\u003EDescribe the goal and name the entry point, for example:\n\u003Cpre\u003E\u003Ccode\u003EFollow .ai/prompts/create-plugin.md and create a shipping plugin\nShipping.PostNord that calculates rates by weight and country.\u003C/code\u003E\u003C/pre\u003E\u003C/li\u003E\n\u003Cli\u003EReview the result against \u003Ccode\u003E.ai/checklists/definition-of-done.md\u003C/code\u003E and \u003Ccode\u003E.ai/prompts/review-change.md\u003C/code\u003E \u2014 the same checklists the agent was asked to run.\u003C/li\u003E\n\u003C/ol\u003E\n\u003Cp\u003EFor GitHub Copilot, \u003Ccode\u003E.github/copilot-instructions.md\u003C/code\u003E is a thin adapter that sends Copilot to \u003Ccode\u003EAGENTS.md\u003C/code\u003E. The agent definitions in \u003Ccode\u003E.ai/agents/\u003C/code\u003E follow the GitHub custom agent format; mirror them into \u003Ccode\u003E.github/agents/\u003C/code\u003E if you want Copilot to discover them as custom agents.\u003C/p\u003E\n\n\u003Ch2 id=\u0022for-your-project\u0022\u003EFor your own project\u003C/h2\u003E\n\u003Cp\u003EIf you build a store or plugins on GrandNode, keep the kit in your fork and extend it: add your own knowledge files (your integrations, your naming), your own skills for recurring tasks, and your constraints. Agents then follow both the platform\u0027s rules and yours.\u003C/p\u003E\n\n\u003Ch2 id=\u0022related\u0022\u003ERelated\u003C/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022/ai-agent-kit\u0022\u003EAI Agent Kit\u003C/a\u003E on grandnode.com\u003C/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https://github.com/grandnode/grandnode2/tree/develop/.ai\u0022\u003EThe .ai folder on GitHub\u003C/a\u003E\u003C/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022/developers-contributing\u0022\u003EContributing\u003C/a\u003E\u003C/li\u003E\n\u003C/ul\u003E","ParentCategoryId":"6abdec6d83d2816248229f65","SeName":"developers-ai-agent-kit","MetaKeywords":null,"MetaDescription":"AGENTS.md and the .ai folder in the GrandNode repository: prompts, workflows, skills, knowledge and checklists for AI coding agents.","MetaTitle":null,"AllowComments":false,"Captcha":{"ReCaptchaChallengeField":null,"ReCaptchaResponseField":null,"ReCaptchaResponseValue":null,"ReCaptchaResponse":null},"RelatedArticles":[],"CategoryBreadcrumb":[{"Name":"For developers","Description":null,"IsCurrent":false,"Children":null,"Parent":null,"SeName":"docs-developers","Id":"6abdec6d83d2816248229f65","UserFields":[]}],"AddNewComment":{"CommentText":null,"DisplayCaptcha":false,"Id":null,"UserFields":[]},"Comments":[],"Id":"6abdec6d83d2816248229f75","UserFields":[]}