From 2b542b576ce7f5bcc15f702610f534eefa517599 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Thu, 29 Jan 2026 23:21:10 -0600 Subject: [PATCH] docs: add AGENTS.md for model-agnostic agent guidelines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Context management strategies - Workflow patterns (branch → PR → merge → close) - tea/curl CLI patterns for Gitea - TDD requirements - Token-saving tips Works for Claude, MiniMax, GPT, Llama, etc. --- AGENTS.md | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..fafcedb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,101 @@ +# AGENTS.md — Mosaic Stack + +Guidelines for AI agents working on this codebase. + +## Quick Start + +1. Read `CLAUDE.md` for project-specific patterns +2. Check this file for workflow and context management +3. Use `TOOLS.md` patterns (if present) before fumbling with CLIs + +## Context Management + +Context = tokens = cost. Be smart. + +| Strategy | When | +|----------|------| +| **Spawn sub-agents** | Isolated coding tasks, research, anything that can report back | +| **Batch operations** | Group related API calls, don't do one-at-a-time | +| **Check existing patterns** | Before writing new code, see how similar features were built | +| **Minimize re-reading** | Don't re-read files you just wrote | +| **Summarize before clearing** | Extract learnings to memory before context reset | + +## Workflow (Non-Negotiable) + +### Code Changes + +``` +1. Branch → git checkout -b feature/XX-description +2. Code → TDD: write test (RED), implement (GREEN), refactor +3. Test → pnpm test (must pass) +4. Push → git push origin feature/XX-description +5. PR → Create PR to develop (not main) +6. Review → Wait for approval or self-merge if authorized +7. Close → Close related issues via API +``` + +**Never merge directly to develop without a PR.** + +### Issue Management + +```bash +# Get Gitea token +TOKEN="$(jq -r '.gitea.mosaicstack.token' ~/src/jarvis-brain/credentials.json)" + +# Create issue +curl -s -H "Authorization: token $TOKEN" -H "Content-Type: application/json" \ + "https://git.mosaicstack.dev/api/v1/repos/mosaic/stack/issues" \ + -d '{"title":"Title","body":"Description","milestone":54}' + +# Close issue (REQUIRED after merge) +curl -s -X PATCH -H "Authorization: token $TOKEN" -H "Content-Type: application/json" \ + "https://git.mosaicstack.dev/api/v1/repos/mosaic/stack/issues/XX" \ + -d '{"state":"closed"}' + +# Create PR (tea CLI works for this) +tea pulls create --repo mosaic/stack --base develop --head feature/XX-name \ + --title "feat(#XX): Title" --description "Description" +``` + +### Commit Messages + +``` +(#issue): Brief description + +Detailed explanation if needed. + +Closes #XX, #YY +``` + +Types: `feat`, `fix`, `docs`, `test`, `refactor`, `chore` + +## TDD Requirements + +**All code must follow TDD. This is non-negotiable.** + +1. **RED** — Write failing test first +2. **GREEN** — Minimal code to pass +3. **REFACTOR** — Clean up while tests stay green + +Minimum 85% coverage for new code. + +## Token-Saving Tips + +- **Sub-agents die after task** — their context doesn't pollute main session +- **API over CLI** when CLI needs TTY or confirmation prompts +- **One commit** with all issue numbers, not separate commits per issue +- **Don't re-read** files you just wrote +- **Batch similar operations** — create all issues at once, close all at once + +## Key Files + +| File | Purpose | +|------|---------| +| `CLAUDE.md` | Project overview, tech stack, conventions | +| `CONTRIBUTING.md` | Human contributor guide | +| `apps/api/prisma/schema.prisma` | Database schema | +| `docs/` | Architecture and setup docs | + +--- + +*Model-agnostic. Works for Claude, MiniMax, GPT, Llama, etc.*