I don't add them as submodule but just symlink and ignore them globally so they never find their way into codebase; I have colleagues that frown upon using LLMs, and. I am not going to start a war over their preferences.
This is just for my personal projects. I noticed I was copy-pasting the same crap to claude/gemini/cursor/windsurf/whatever and figured out a git submodule would be the easiest way to have the latest set of rules in every project
That way I can just add new stuff to llm-shared/, commit, push and other projects will get the same things. It also forces me to keep it generic so it fits every project.
Then I just tell whatever LLM to look into @llm-shared/ for instructions and refer to files there when needed instead of having them in the "main" context file.
Then I add it as a git submodule to my projects and tell whatever agents to look at @llm-shared/ and update its own rule file(s) accordingly