Skip to content

Workspace Configuration

Who is this for? Engineers setting up a workspace (in the VS Code sense) for the first time, so AI coding agents work well in it.

When should I read this? After you connect Rosetta (see Quick Start), and before you start real coding or modernization work.


Why this matters

AI agents do not see your source code or your business. They only know what the workspace tells them. Good setup gives the agent three things: business context, technical context, and reference code it can read. With these, the agent makes fewer wrong guesses and produces more consistent, correct code. This page is the checklist to provide them.

If you are migrating or modernizing a codebase, do the steps below first, then read Modernization Additional Setup for the extra steps.


1. Install and Onboard

  1. Connect Rosetta to your IDE — follow the Quick Start.
  2. Onboard the repository to Rosetta (Quick Start, Step 3). This is required before the steps below.

2. Set Up the Repository

Work through these five steps once per repository.

Step 1 — Capture business context in CONTEXT.md

Record the non-technical facts about the project:

Step 2 — Capture technical context in ARCHITECTURE.md

Record how the project is built and run:

Step 3 — Provide reference source code

Give the agent read-only code it cannot otherwise see. Clone each codebase into refsrc/ as its own subfolder (for example, refsrc/fastmcp-3.3.1 or refsrc/private-ui-lib).

Provide code such as:

Then add these Rosetta exceptions to the repository root .gitignore if they are missing:

agents/TEMP/
refsrc/
!refsrc/INDEX.md

Finally, create or update refsrc/INDEX.md, using a Markdown header per entry to say what each folder is for:

## "refsrc/fastmcp-3.3.1" - main framework for MCP handling
## "refsrc/private-ui-lib" - must use corporate styles for TailwindCSS

Step 4 — Define reusable patterns

List the patterns the agent should reuse so generated code stays consistent — for example: components, state management, databases, API protocols, messaging, controllers, and CRUD verticals.

Step 5 — Configure the ecosystem

Prefer a CLI over the matching MCP when one exists — it costs no context.

Available CLIs

Useful MCPs

MCPs are the eyes and hands of the AI — add them, but keep it balanced. Enable only what the task needs. MUST confirm with client!

Essential

MCP URL Use it for
Context7 https://github.com/upstash/context7 Up-to-date library documentation.
Playwright MCP https://github.com/microsoft/playwright-mcp Drive web pages via accessibility snapshots — no screenshots or vision models needed.
Fetch https://github.com/modelcontextprotocol/servers/tree/main/src/fetch Retrieve and process content from web pages and APIs.
Chrome DevTools https://github.com/ChromeDevTools/chrome-devtools-mcp Full browser control: console, network tab, snapshots.
GitNexus https://github.com/abhigyanpatwari/GitNexus Index a large codebase into a knowledge graph.

Use either Playwright or Chrome DevTools, not both.

Recommended

MCP URL Use it for
Figma MCP https://github.com/GLips/Figma-Context-MCP Read designs directly from Figma.
Jira & Confluence MCP https://www.atlassian.com/platform/remote-mcp-server Tickets, comments, and documentation.
Repomix MCP https://repomix.com/guide/mcp-server Docs for using existing client libraries.
DeepWiki https://docs.devin.ai/work-with-devin/deepwiki-mcp Up-to-date documentation.
Database MCPs https://glama.ai/mcp/servers?attributes=category%3Adatabases Read schema and data.

3. Modernization Additional Setup

Read this section only if you are converting, migrating, upgrading, or re-architecting a codebase. These steps are in addition to Section 2 — do those first.

Onboard both repositories

Onboard the old repository and the new repository. If everything lives in one repository, state clearly in CONTEXT.md what is old and what is new.

The old code in refsrc/ keeps its own docs/CONTEXT.md and docs/ARCHITECTURE.md — reference them rather than copying their content.

Add to each setup step

Generate specs and test coverage for the old code

Choose a workspace layout

Pick one of two layouts.

Option 1 — Single Repo with Reference Source. The workspace is just the new repository; it pulls in the old code through refsrc/. This is the easiest and fastest option. The downside: you can only edit one repository, so you need a separate window per repository.

<new git repo root>
├── docs/
│   ├── ARCHITECTURE.md   # new app + modernization target; references the old code's docs/ARCHITECTURE.md
│   └── CONTEXT.md        # new app + modernization process; references the old code's docs/CONTEXT.md
├── refsrc/
│   └── <old code>/
│       ├── docs/ARCHITECTURE.md
│       ├── docs/CONTEXT.md
│       └── <source files>
└── <new code>

Option 2 — Composite Workspace. A top-level folder holds the old and new repositories together, plus any others. This is useful for cross-service work. The downsides: the workspace itself must be tracked in git, the .gitignore and doc routing need care, and overall complexity is higher. This layout needs the large-workspace-handling skill.

<workspace git repo>
├── docs/
│   ├── ARCHITECTURE.md   # short index: technical purpose of each sub-repo, modernization processes, etc.
│   └── CONTEXT.md        # short index: business purpose of each sub-repo, modernization target, etc.
├── <old repo 1>/
│   ├── docs/ARCHITECTURE.md
│   ├── docs/CONTEXT.md
│   └── <source files>
├── <old repo 2>/
│   ├── docs/ARCHITECTURE.md
│   ├── docs/CONTEXT.md
│   └── <source files>
├── <new repo>/
│   ├── docs/ARCHITECTURE.md
│   ├── docs/CONTEXT.md
│   └── <source files>
└── .gitignore            # excludes the cloned repo folders (old 1, old 2, new)