Engineering Tooling Configuration

Configure AI for an Existing Codebase

Set up Cursor, Copilot, or Claude for a repo that already exists. One profile becomes the rules file your AI assistant reads on every request.

Overview

In-editor assistants are only as good as the context they're configured with — and most repos give them none. This setup configures AI for Relay, a microservices logistics backend where each service owns its data and talks over a bus. Choosing the Copilot output target tailors the install note (.github/copilot-instructions.md); switching to Cursor produces a .cursorrules file instead. The profile carries the architecture principles, the cross-service rules, and the never-assume list, so the assistant respects service boundaries instead of reaching across them.

How to use this resource

  1. Capture the architecture

    Service boundaries, the bus, data ownership — the rules an assistant must respect.

  2. Pick the target tool

    Copilot, Cursor, or Claude — the install note adapts to where the file goes.

  3. Commit the rules file

    The assistant reads it on every request; the whole team gets the same context.

Why This Works

  • The output target tailors the install path for Cursor, Copilot, or Claude exactly
  • Architecture principles keep the assistant inside service boundaries
  • Committing the file means every teammate's assistant shares one source of truth

Best for

  • Repos using Cursor, Copilot, or Claude Projects
  • Microservice and multi-team backends
  • Teams that want shared, version-controlled AI rules

Not for

  • A throwaway prompt for one question — use the Prompt Template Builder
  • Carrying a half-finished task into a new chat — use the Context Handoff Builder

FAQ

Where do I save the file for Copilot versus Cursor with this codebase profile?

The rendered profile carries an install note pointing to `.github/copilot-instructions.md`, which Copilot Chat picks up automatically once committed. Switch the output target in project-context-builder to Cursor and it produces a `.cursorrules` file instead; the same Relay conventions and Never Assume list travel with either path. Your assistant reads whichever file you commit.

How does this profile stop the AI from reaching across microservice boundaries?

The `## Never Assume` and `## Always Remember` sections spell out "each service owns its own data — never reach into another service's database" and "do not assume a relational schema or foreign keys." Because project-context-builder bakes those rules into the committed file the assistant reads on every request, it respects the Relay bus-and-service model instead of inventing JOINs. You still review its output.

Is this the same as a system prompt, or should I use a different NewPrompt tool?

It is project KNOWLEDGE, not behavior — the `## AI Usage Notes` section says so directly. For a task persona with role, tone, and escalation rules, build a System Prompt in the System Prompt Generator; to carry a half-finished task into a new chat, use the Context Handoff Builder. This profile is durable project identity the whole team commits, not work state.

Can I adapt this Relay microservices example for a monolith or a different stack?

Yes — replace the Relay-specific content and re-run project-context-builder. The per-tech tagged conventions like "(MongoDB)" model-documents-not-rows or "(Kubernetes)" treat-pods-as-ephemeral are swappable for your stack, and the `## Team Conventions`, `## Naming Rules`, and `## Glossary` (Service/Bus/Saga/Idempotency) get rewritten to your architecture. The `Profile completeness: 100/100` line reflects your inputs, not this example.

More resources from Project Context Builder

Resources that pair well

Related tools

Workflows that use this resource

Guides for this resource

Tip: Save time by exploring related resources and tools that integrate with this resource.