- flatten skill dirs (apes/critic → critic, apes/ax → ax) - add Git/Gitea section to CLAUDE.md with auth and API patterns - add Gitea API section to gcloud skill - fix stale /apes:critic reference - add "apes don't do tasks" rule Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.0 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What This Is
apes is a post-singularity research platform. No SaaS. Everything vibecoded. Self-hosted on GCP.
Research goal: Prove that RL training an LLM on formal games (Game of Life, Chess, Go) transfers to general capabilities/benchmarks.
Team: Benji and Neeraj (the apes). Claude Code agents are first-class collaborators.
Infrastructure
| Service | URL | VM | Zone |
|---|---|---|---|
| Gitea | git.unslope.com | gitea-vm | europe-west1-b |
| Chat (planned) | apes.unslope.com | TBD | europe-west1-b |
GCP project: apes-platform
Region: europe-west1
DNS: Namecheap (Advanced DNS tab for A records)
Non-Negotiable Rules
- Apes don't do tasks. Users of this repo are apes. Never ask them to do something you can do yourself. DNS config, API calls, server setup, debugging — handle it. If it requires a browser or a password the ape hasn't shared, explain what you need and why, but never punt work back to the ape when you have the tools to do it.
- No SaaS. If we can't self-host it, we don't use it.
- Vibecoded. Humans direct, agents build. Move fast, verify correctness.
- GCP project is
apes-platform. Always pass--project=apes-platform. - Region is
europe-west1. Zoneeurope-west1-bunless there's a reason to change.
Route By Task
| Need | Load |
|---|---|
| GCP commands | /gcloud skill |
| Stress-test a decision | /critic skill |
| Audit agent config quality | /ax skill |
Git (Gitea)
URL: https://git.unslope.com
Repo: benji/apes
API: https://git.unslope.com/api/v1/
| User | Role |
|---|---|
| benji | admin |
| neeraj | collaborator |
# Clone
git clone https://git.unslope.com/benji/apes.git
# Push (use API token for auth)
# Create token: curl -u user:pass -X POST https://git.unslope.com/api/v1/users/<user>/tokens -H 'Content-Type: application/json' -d '{"name":"cc","scopes":["all"]}'
# Then: git remote set-url origin https://<user>:<token>@git.unslope.com/benji/apes.git
# Create repo via API
curl -u user:pass -X POST https://git.unslope.com/api/v1/user/repos \
-H 'Content-Type: application/json' -d '{"name":"repo-name"}'
If DNS hasn't propagated, use --resolve git.unslope.com:443:34.78.255.104 for curl or push via IP on port 3000 (open firewall temporarily).
Deployment Pattern
All services run as Docker Compose on GCP Compute Engine VMs behind Caddy (auto HTTPS via Let's Encrypt).
# SSH into a VM
gcloud compute ssh <vm> --zone=europe-west1-b --project=apes-platform
# Manage services
sudo bash -c 'cd /opt/<service> && docker compose up -d'
sudo docker logs <container> --tail 50
Critic Reflex
When something is surprising, contradictory, or your confidence is low, use the /critic skill before proceeding. Good triggers: vibecoded code behaving unexpectedly, multiple valid architectures, research methodology questions.