Skip to content

Latest commit

 

History

History
68 lines (53 loc) · 3.19 KB

File metadata and controls

68 lines (53 loc) · 3.19 KB

AGENTS.md

Read automatically by Jules — and by Cursor, Copilot, and most other AGENTS.md-aware tools — at the start of every task. This is the persistent version of the "Standing Rules" block in docs/designs/2026-07-08-jules- prompts.md. Once this file is committed to the repo root, you no longer need to paste that block before each prompt.

This file is the cross-tool entry point. .ai/agents.md remains the internal, MCP/skill-oriented convention for IDE agents working in a local checkout (Antigravity, Cursor, VS Code) — the two complement each other and should not drift apart. Deeper per-workstream detail lives in docs/designs/ and in each PROMPT's own text; this file stays short on purpose.

Commands

npm run check-types && npm test && npm run validate:skills   # run + paste output before opening any PR
npm run format:check && npm run lint                          # must also pass

Stack quirks

This project pins a Next.js version with breaking changes from what most training data expects — APIs, conventions, and file structure may differ. Read the relevant guide in node_modules/next/dist/docs/ before writing any Next.js code. Heed deprecation notices. This is Pillar 1 in practice: ground decisions in what's actually installed, not what's familiar.

MCP tool naming

If your client connects to the tech-lead-stack MCP server (e.g. Cursor, Antigravity, or a web chat UI) and a tool call like get_skills or verify_mission_alignment fails as "not found," the client may have prefixed the tool name — check for mcp_tech-lead-stack_<tool> or tech-lead-stack_<tool> in your available tools list and call the resolved name. Not applicable if your environment doesn't connect to this MCP server.

Four Pillars — non-negotiable, and how your output is graded

  1. G-Stack / Diagnosis-First — Phase 0 before any code: read package.json, tsconfig.json, prisma/schema.prisma, and the files named in your task. Ground every decision in what actually exists here.
  2. MinimumCD / Atomic Batches — vertical slices under 100 LOC per commit, each independently verifiable. Never one big-bang commit.
  3. Production-Grade Ethos — no "tests later," no "seems right." Every slice ends with real command output pasted into the PR. Catching yourself rationalizing a shortcut is the signal to stop and do it properly instead.
  4. Modern Web Guidance — UI/web-facing code uses Server Components, Zod validation, semantic HTML/ARIA. No legacy workarounds.

Git discipline

Work only on the feature branch named in your task. Never merge, never touch main, never force-push. Deliver via a single PR. (Extends .ai/agents.md, which forbids git push/git add for agents in local checkouts — as a cloud agent you may commit, but to your own branch only.)

Code style

Strict TypeScript, no any without a justifying comment, early returns, Zod validation on every API payload and external input.

Scope

Don't rename, move, or "improve" files outside your task. If something out-of-scope looks broken, write it in the PR under "Observed friction" instead of fixing it — friction reports are first-class input here, not noise.