What this is
You have been added to the Sand Point Studios contributor program. This page walks you through everything from creating your accounts to making your first commit. It is the canonical "where do I start" link — bookmark it.
Read top-to-bottom on your first pass. Once you are set up, you'll mostly need First day of work, Working with Claude, and Troubleshooting.
1. Account setup
You'll create or accept four accounts: an SPS email, a Google account tied to it, a GitHub account, and an Anthropic Team seat. Plan on 30–45 minutes for the full set.
1.1 Your SPS email
SPS admin Teagan provisions your mailbox at FirstName.LastName@sandpointstudios.ltd and sends the temporary password to your personal email.
- Open the email from Teagan. It contains your new SPS address and a temporary password.
- Go to https://mail.sandpointstudios.ltd/SOGo/ and sign in.
- Confirm you can see the inbox and the welcome email.
- Change your password immediately: gear icon (top-right) → Preferences → Password. Use a strong unique password and save it in a password manager.
Keep this tab open — you will need it for verification codes in the next two phases.
1.2 A Google account on your SPS email
You need a Google account tied to your SPS address so you can sign in to your code workspace via Google.
- Open https://accounts.google.com/signup in a new tab.
- Fill in your first and last name.
- Critical: on the username step, click "Use my current email address instead" below the Gmail field. Do not create a new Gmail address.
- Enter your SPS email (e.g.,
FirstName.LastName@sandpointstudios.ltd) and continue. - Google sends a verification code to your SPS inbox — go to your SOGo tab, get the code, paste it in.
- Finish setup: date of birth, optional recovery phone, agree to terms.
If Google rejects your SPS email at signup
This is rare but can happen with newer domains. Don't try workarounds. Email help@sandpointstudios.ltd with the exact error and we'll handle it.
1.3 A GitHub account on your SPS email
GitHub is where all the project code lives. You'll be added as a collaborator to the repos you'll work on.
- Open https://github.com/signup.
- Use your SPS email when prompted.
- Pick a username —
firstname-lastnameorfirstname-spsworks. Pick something professional you wouldn't mind people seeing. - Verify your email via the link GitHub sends to your SOGo inbox.
- Enable two-factor authentication immediately: profile photo → Settings → Password and authentication → Enable two-factor authentication. Use an authenticator app.
- Save your recovery codes in your password manager. If you lose your 2FA device and these codes, account recovery is hard and not guaranteed.
- Send your GitHub username to help@sandpointstudios.ltd. Teagan adds you as a collaborator on the relevant repos. Watch your inbox for an invitation and click Accept invitation.
1.4 Accept your Anthropic Team seat
Your Claude Code access runs through Sand Point Studios' Anthropic Team plan, not a personal Claude account.
- Look in your SPS inbox for an email from Anthropic with a Team plan invitation.
- Click Accept invitation.
- If you don't already have an Anthropic account on your SPS email, click Create account on the page that opens. Use your SPS email — the invite is bound to that address.
- Once you're signed in, you'll see a confirmation that the seat is active.
- Email help@sandpointstudios.ltd when this is done so we can confirm the seat shows as active in the admin panel.
2. Claude Code on your laptop
You will use Claude Code in two places: on your personal laptop (for the initial sign-in) and inside your SPS workspace (for actual project work). The laptop install only exists to bootstrap your workspace credentials — once your workspace is signed in, you'll do all real work there.
2.1 Install Claude Code
Claude Code runs on macOS, Windows, and Linux. Install through Anthropic's CLI:
npm install -g @anthropic-ai/claude-code
If you don't have Node.js installed, get it from nodejs.org first (LTS release is fine).
2.2 Sign in to Claude Code
Open a terminal and run:
claude auth login --claudeai
A browser tab opens. Sign in with the Anthropic account on your SPS email — same account you used to accept the Team seat in step 1.4. After the success page, return to the terminal.
Verify it worked:
claude auth status
You should see loggedIn: true and subscriptionType: team. If it says anything else, see Troubleshooting.
auth status will show subscriptionType: pro or max instead of team. Run claude auth logout and start the login over.
3. Your code-server workspace
Each SPS contributor has a dedicated browser-based VS Code workspace running on the company server. It comes with the entire SPS toolchain pre-installed and Claude Code wired up. You access it from any browser — your laptop, an iPad, anywhere — and your work is persisted on the server.
3.1 Sign in to your workspace
SPS admin Teagan sends you your specific URL once your accounts are ready.
- Open the URL Teagan sent you. It looks like
https://code-yourname.sandpointstudios.ltd. - Cloudflare prompts you to sign in with Google. Use the Google account you created in step 1.2 (the one tied to your SPS email).
- You will land in a VS Code interface running in your browser. This is your workspace.
3.2 Bootstrap Claude Code in your workspace
Your workspace doesn't have Claude Code credentials yet — you have to drop in the credentials from your laptop. This is a one-time step.
- On your laptop, find your Claude Code credentials file:
- macOS / Linux:
~/.claude/.credentials.json - Windows:
%USERPROFILE%\.claude\.credentials.json(typicallyC:\Users\YOU\.claude\.credentials.json)
- macOS / Linux:
- In your code-server browser tab, open the file explorer (the icon in the upper-left sidebar). Navigate to
/tmpif you can browse there, or simply drag the file directly into the file tree at the root of your home folder. - Open a terminal in your workspace: Terminal menu → New Terminal (or
Ctrl+`). - Move the file into place and lock its permissions:
mkdir -p ~/.claude mv ~/.credentials.json ~/.claude/.credentials.json chmod 600 ~/.claude/.credentials.json - Verify you're signed in:
You should seeclaude auth statusloggedIn: trueandsubscriptionType: team. If yes, you're done. If not, see Troubleshooting. - Email help@sandpointstudios.ltd with the output of
claude auth statusso we can confirm everything is wired up.
.credentials.json contains a refresh token that an attacker could use to impersonate your Claude account. Dragging the file directly into your workspace keeps it inside the encrypted Cloudflare Access session — it never touches email, chat, or anyone else's machine.
Where exactly to drop the file in code-server
The file tree on the left side of code-server shows your home directory (/home/coder/). You can drag the .credentials.json file from your laptop's Finder/Explorer window directly onto that file tree — it uploads on drop. The terminal commands above then move it from ~/ (where it landed) into ~/.claude/ (where Claude Code looks for it).
If drag-and-drop doesn't work in your browser, an alternative is to open a new file in code-server, paste the JSON content into it, and save it to the right path manually.
3.3 Confirm your workspace is ready
After Teagan confirms the credential bootstrap, you should be able to:
- Run
claudein the terminal and start a Claude Code session. - Run
gh auth status— GitHub is pre-authenticated for the SPS organization. - Run
git statusin any project under/workspace/.
4. Your first day of work
This section covers the day-to-day workflow: pick a project, make a change, get it reviewed, get it deployed.
4.1 Find your project
SPS projects live under /workspace/ in your code-server container. Open a terminal and look around:
ls /workspace/
Each project has its own CLAUDE.md at the top. Read it before doing anything — it tells you the project's stack, conventions, and where things live.
4.2 Branch — never commit directly to main
The main branch is protected. All changes go through a pull request (PR). Branch naming convention:
git checkout -b feature/yourname/short-description
Examples: feature/lewis/fix-payment-rounding, feature/bert/blade-config-ui.
origin/main. You shouldn't see merge conflicts caused by being out of date — but if Claude tells you the rebase needs your attention, stop and ask before forcing through.
4.3 Commit with conventional-commit prefixes
Commit messages start with one of:
| Prefix | When |
|---|---|
feat: | New user-visible capability |
fix: | Bug fix |
refactor: | Code reorganization without behavior change |
docs: | Documentation only |
chore: | Dependency bumps, tooling, non-product changes |
test: | Adding or fixing tests |
Example: fix: round invoice totals to 2 decimals before display
Claude Code can write the commit message for you — ask "draft a commit message for these changes" and it will summarize the diff. Read the draft before you accept it; commit messages are read-only history.
4.4 Push and open a pull request
git push -u origin feature/yourname/short-description
gh pr create --fill
gh pr create --fill opens a PR using your branch name and last commit as the title and body. Edit on GitHub if you need to add detail.
Every PR needs at least one reviewer who is not the author before it can merge to main. Tag the relevant person, or ask in help@ if you don't know who owns the area.
4.5 Verify the deploy
Most SPS projects auto-deploy on merge to main. A successful git push is not the same as a successful deploy. The remote build can fail, env vars can be wrong, the live endpoint can hang.
After your PR merges:
- Watch the deploy run on GitHub Actions (the Actions tab, or
gh run watch). - Wait for the green check.
- Hit the live endpoint in a browser. Confirm your change is actually visible.
help@ with the run URL.
Working with Claude — what actually works
Claude is a teammate, not an autocomplete. The more context you give, the better the work. The fewer hops between you and a working system, the less time you burn.
Be specific about the goal, not the implementation
Instead of "write a for loop that iterates through the array and..." — say what problem you're solving and what the output should look like. Claude picks the idiomatic implementation better than you can dictate it line by line.
users and if active is true, add to a new list called out, then return it."Strong: "Give me the list of active users from
users."
Show, don't tell — point at the file
When debugging, paste the actual error and the file path. When asking for a change, point at the file. Claude in your workspace can read your repo directly — "look at src/payments/charge.ts" is faster than re-describing the code.
Let it explore before it edits
For changes spanning more than one file, ask Claude to read the surrounding code first. A 30-second exploration avoids a 10-minute wrong rewrite. Phrases that work: "read the relevant files first", "plan before changing anything", "use the Explore agent to map this."
Use the personas we've built
Your workspace comes with Scribe (docs / memory / decisions-log specialist) and Scout (read-only codebase exploration) installed. Type /agents in the Claude Code panel to see them. Delegate when the task fits — Scribe for any documentation change, Scout for mapping unfamiliar code. They're faster and more disciplined than asking the main agent to do it.
Scope is your friend
One focused task per turn gives better results than a five-item wishlist. If you must ask for several things, say so explicitly and let Claude plan the order.
Use the team's weekly limit wisely
Each Team seat has a weekly usage cap. Normal work won't hit it, but a few habits keep you well clear:
- Short, targeted prompts beat long, speculative ones. Twenty lines of "here is exactly what I want" beats two hundred lines of preamble.
- Don't paste whole files Claude can read itself. Say "the charge handler in
src/payments/charge.ts" instead of pasting the file. - Start a new chat when switching topics. Long chats carry forward context you aren't using — costs more, results get worse.
- If it's spiraling, stop and restart. If Claude has tried the same wrong fix twice, tell it to stop and re-read the problem rather than keep hammering.
Reporting bugs and suggestions
Every SPS product has three ways to give feedback:
- In-app bug reporter (when working in a product that has one): use the in-app flow. It captures the page state and user context automatically.
- Email the monitored aliases:
bug@<product-domain>— bug reports (e.g.,bug@wyrdlyre.app,bug@onecutshop.app)enhancements@<product-domain>— feature requestshelp@sandpointstudios.ltd— general questions, onboarding support, anything you're unsure where to send
- Ask Claude in your workspace to log the bug for you. "Log this bug against Wyrdlyre: the audio dropout happens whenever the player crosses minute 14."
All three feed into the same ticketing system (No Wake Zone). For straightforward, low-risk bugs, an automated fix-bot will attempt a patch on a draft PR — humans review before anything merges to production.
Troubleshooting
"claude auth status says I'm not logged in"
On your laptop: run claude auth login --claudeai again. Make sure you sign in with your SPS email's Anthropic account, not a personal one.
In your workspace: the credential file probably didn't make it into the right place. Re-check that:
ls -la ~/.claude/.credentials.json
If the file is missing or 0 bytes, redo step 3.2. If it's there and non-empty but auth still fails, email help@ with the output of:
claude auth status
ls -la ~/.claude/.credentials.json
"auth status shows subscriptionType: pro or max, not team"
You signed in with a personal Anthropic account, not your SPS Team seat. Run claude auth logout, then claude auth login --claudeai again, and use your SPS email this time.
"My branch won't push — it says it's behind"
Your local branch and the remote diverged. Don't force-push. Run:
git fetch origin
git rebase origin/main
If you hit conflicts, ask Claude to walk you through them or email help@ — force-pushing without understanding the conflict can wipe out someone else's work.
"My PR has been sitting unreviewed for a day"
Tag the relevant reviewer in a comment, or ping help@ with the PR link. Don't merge unreviewed work to main, even if you have permission to.
"I lost my GitHub 2FA device"
Use one of your recovery codes (saved during account setup). If you lost those too, email help@ immediately. GitHub account recovery is hard and not guaranteed — the sooner we know, the better.
"The deploy succeeded but the live site shows the old version"
Likely either the CDN is caching, or the deploy didn't actually finish (just reported success early). Hard-refresh the page first (Ctrl/Cmd + Shift + R). If that doesn't fix it, check the GitHub Action's deploy step logs and ping help@ with the run URL.
"I see a workspace error I don't recognize"
Capture: the error message, what you were doing right before, and the URL/file path. Send to help@. Don't restart your workspace yet — it can mask the underlying problem.
Get help
Email help@sandpointstudios.ltd. The mailbox has an AI triage layer that drafts responses Teagan reviews before they go out — so you'll get a reply that's either directly from Teagan or with her sign-off. During onboarding, expect faster turnaround on setup blockers than on general questions.
For anything urgent (you can't access your workspace, you think you exposed a credential, you accidentally pushed something sensitive), email help@ with URGENT in the subject line.