- 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>
82 lines
3.0 KiB
Markdown
82 lines
3.0 KiB
Markdown
# 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`.** Zone `europe-west1-b` unless 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 |
|
|
|
|
```bash
|
|
# 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).
|
|
|
|
```bash
|
|
# 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.
|