CRED Way of Working โ Meta SOP
Version: 1.0 ยท February 2026
Owner: Tom Dwyer
Applies to: Everyone โ read this once before reading your role doc
Resources
The Four Mindset Shifts
These are not suggestions. If you find yourself working against any of these, stop.
1. Everyone Is Full-Stack. Full Stop.
There are no front-end engineers. No back-end engineers. No "I don't do that" engineers. Everyone builds the full feature โ UI, API, database โ end to end.
AI handles the parts you don't know. If you're stuck on something outside your comfort zone, the answer is ask Cursor, not hand it off. The only specialist roles are DE and DS โ data engineering and data science require domain expertise that genuinely can't be agentic-coded away. Everything else is fair game.
2. No Figma Unless Cursor Can't Build It First.
Figma is not a starting point. It is a last resort for net-new components that don't exist in Storybook and cannot be achieved by iterating with Claude.
Claude first โ iterate โ if genuinely blocked โ then Figma.
Opening Figma before trying Claude means handoffs, review cycles, and re-implementation. Build it. Iterate it. Escalate to Figma only when you're truly stuck.
3. No Human Publishes AI Slop.
No AI-generated content meant for another human to consume gets published without manual review. Tickets, docs, PRs, Slack messages โ if a human will read it, a human must review it first. Read it. Trim the filler. Sharpen the language. If it reads like a machine wrote it, rewrite it until it doesn't.
4. GitHub Is the System of Record. Fix First, Document After.
Do not write documentation before you have working code. Do not create tickets for problems you can fix right now.
Fix it, then record it if it matters.
GitHub history, merged PRs, and Linear are the record of what happened. A spec that exists before the code is a story you told yourself. Build the thing. Documentation follows.
How We Work
Kanban, Not Sprints
There are no sprints. Every developer has a personal backlog managed by their PM. You pick up the next highest-priority item, work it to completion, and move on. This is a Kanban-style workflow โ continuous flow, not time-boxed iterations.
Pods
Work is organised into pods. Each pod has a PM, engineers, and shared access to Design and QA. Your PM runs daily/bi-weekly pod calls to keep work moving, unblock issues, and reprioritise as needed.
Merge Often, Merge Small
To prevent complex conflicts, merge smaller PRs frequently. Every merge should be protected by a feature flag so incomplete work never reaches customers. Large, long-lived branches are the enemy โ break work into the smallest mergeable unit and ship it behind a flag.
Deployment Cadence
Merges to the develop branch stop on Fridays. Monday to Wednesday is dedicated QA testing on a stable staging environment. Production deploys happen on Wednesday after QA sign-off. This creates a buffer to catch regressions before they hit customers.
Always Use the Top-Performing Model
Use the highest-ranked model for web development as measured by the Code Arena Leaderboard. At the time of writing, this is Claude Opus 4.6.
Check the leaderboard periodically โ the top model changes. Always configure Cursor to use whatever is currently #1 for code/web development. Using a weaker model when a better one is available means slower work and worse output.
Architecture Primer
The Five Repos
| Repo | What It Is | Language |
|---|---|---|
cred-web-commercial |
Product UI โ what customers see | React / TypeScript |
cred-api-commercial |
Customer-facing GraphQL API. User data, accounts, collections, Salesforce | Node.js / GraphQL |
cred-model-api |
CRED data GraphQL API. Enrichment data โ companies, people, brand interactions, scoring | Node.js / GraphQL |
cred-dbt |
Data transformation layer. BigQuery tables that feed cred-model-api via Postgres |
SQL / dbt |
cred-wiki |
Internal architecture documentation. Always open in your Cursor workspace. | Markdown |
Commercial vs Model โ The Simple Rule
Commercial = customer data. User accounts, workspace settings, collections, Salesforce, transcripts.
Model = our data. CRED's enrichment pipeline โ companies, people, LinkedIn signals, brand interactions, scoring.
How Data Flows
Enrichment (CRED data):
Sources โ BigQuery (raw) โ dbt (transform) โ Postgres sync โ cred-model-api โโโ
โโ Supergraph API โ cred-web-commercial
Commercial (customer data): โ
Postgres โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ cred-api-commercial โโโโโโโ
cred-web-commercial talks to the Supergraph API (api.credplatform.com/graphql), which federates both cred-model-api and cred-api-commercial into a single GraphQL endpoint. The front-end never calls the sub-APIs directly.
When to Involve DE / DS
New data pipelines, external source integrations, scoring model changes, or significant BigQuery restructuring. Flag to Tom before any BE work in these areas.
Prerequisites โ Do This Before Anything Else
Complete every item below before your first piece of certified work.
1. Clone All Five Repos
git clone git@github.com:credinvest/cred-web-commercial.git
git clone git@github.com:credinvest/cred-api-commercial.git
git clone git@github.com:credinvest/cred-model-api.git
git clone git@github.com:credinvest/cred-dbt.git
git clone git@github.com:credinvest/cred-wiki.git
Open all five as a Cursor Workspace (File โ Add Folder to Workspace for each). cred-wiki must be in every session โ this is not optional.
Using Git Worktrees
Use git worktrees to run localhost on multiple branches simultaneously. This lets you compare branches, test a feature while reviewing another PR, or keep develop running while building on a feature branch.
# Create a worktree for a branch (from inside any repo)
git worktree add ../web-commercial-feature-branch feature/my-feature
# List active worktrees
git worktree list
# Remove a worktree when done
git worktree remove ../web-commercial-feature-branch
Each worktree is a separate folder with its own branch checked out. Open each in its own Cursor window and run localhost on different ports to compare side by side.
2. Install Local Tools
| Tool | Purpose | Install |
|---|---|---|
| Cursor | AI IDE โ primary coding environment | cursor.sh |
| Docker Desktop | Required for cred-api-commercial and cred-model-api locally |
docker.com |
| DB Beaver (Community) | Postgres desktop client | dbeaver.io |
| 1Password | Secrets management โ .env files, DB credentials, 2FA |
Team signup |
| Node.js (LTS) | Required for cred-web-commercial |
nodejs.org |
3. Configure .env Files โ Every Repo
Every repo requires a correctly populated .env at its root. This is the most common reason local environments fail.
- 1Password โ search repo name โ download
.envโ place in repo root - If download fails: ask Alex to share in Slack, copy it, ask Alex to delete the message immediately
- Verify every key variable is non-empty before starting the server
| Repo | Variables to Check |
|---|---|
cred-model-api |
API_TOKEN, Postgres host/port/password, Elasticsearch node |
cred-api-commercial |
Database connection string, Salesforce credentials |
cred-web-commercial |
API endpoint URLs (cred-model-api + cred-api-commercial) |
cred-dbt |
BigQuery project ID and credentials |
Never commit
.envfiles to GitHub. They are in.gitignoreโ do not override this.
4. Install MCPs in Cursor
Open Cursor Settings โ MCP and install and enable the following:
| MCP | Purpose | Enable State |
|---|---|---|
| bigquery | Agent reads schemas, runs SQL, creates jobs | Enabled โ 9 tools |
| dbt | Agent triggers builds, checks status, switches branches | Enabled โ 46 tools. โ ๏ธ Select BigQuery model project only during auth |
| figma | Agent reads component specs | Installed โ disable during BE-only work |
| gcloud | Agent runs GCP jobs directly | Enabled โ 1 tool |
| gcp-observability | Agent reads workflow logs and execution status | Enabled โ 13 tools |
| gcp-storage | Agent reads GCP storage and job config | Enabled โ 17 tools |
| github | Agent reads PRs, fixes conflicts, opens PRs | Enabled โ 40 tools, 2 prompts |
| linear | Agent creates and updates tickets | Enabled โ 39 tools |
| vercel | Agent reads build/deploy errors | Enabled โ 12 tools, 12 prompts |
| circleci | Agent reads CI pipeline status, build logs, and test results | Enabled |
โ ๏ธ GCP permissions required first: Text Alex with your Google email and ask for
Cloud Workflows Viewer+Cloud Scheduler Job Runnerbefore your first session.Tool limit: If Cursor complains about too many tools, disable MCPs not in use. Expected behaviour.
5. Install Cursor Skills
Add the following skills to Cursor so the agent has the right context for design and product work. Run this prompt in Cursor:
/create-skill Help me create this skill for Cursor:
@frontend-design-SKILL.md @product-self-knowledge-SKILL.md
| Skill | Purpose |
|---|---|
| frontend-design | Generates distinctive, production-grade frontend interfaces that avoid generic AI aesthetics. Covers typography, colour, motion, spatial composition, and visual details. |
| product-self-knowledge | Ensures accurate answers about Anthropic products (Claude API, Claude Code, Claude.ai) by routing to official docs instead of guessing. |
Download the skill files from 1Password under Cursor Skills and place them in your Downloads folder before running the prompt.
6. DBT Account Setup
Credentials in 1Password under DBT dev account. Log in at cloud.getdbt.com. Use 1Password for 2FA. One person logged in at a time โ coordinate with the team.
โ ๏ธ First login requires one-time BigQuery credential linking. Message Alex if you see a credential error.
7. Confirm Permissions
| Tool | What You Need | Who Grants It |
|---|---|---|
| GitHub | Write access to all five repos | Cherry |
| Linear | Member + ability to create issues | Cherry |
| BigQuery | BigQuery Data Viewer + BigQuery Job User |
Alex |
| GCP Cloud Scheduler | Cloud Scheduler Job Runner |
Alex |
| GCP Workflows | Cloud Workflows Viewer |
Alex |
| DBT Cloud | Shared dev account (1Password) | Cherry |
| Vercel | Member of CRED Investments org | Cherry |
| Figma | Member of CRED workspace | Cherry |
| PostHog | Member of CRED project | Cherry |
| 1Password | Self-serve signup | Self-serve |
8. Certification
Complete the enablement session (planning, FE, BE, API) before working independently. Contact Tom to book.
Role SOPs
Once prerequisites are done, go to your role doc:
- Engineer โ Engineer SOP
- Product โ Product SOP
- Design โ Design SOP
- QA โ QA SOP