diff --git a/.claude/skills/apes/ax/SKILL.md b/.claude/skills/ax/SKILL.md similarity index 100% rename from .claude/skills/apes/ax/SKILL.md rename to .claude/skills/ax/SKILL.md diff --git a/.claude/skills/apes/critic/SKILL.md b/.claude/skills/critic/SKILL.md similarity index 100% rename from .claude/skills/apes/critic/SKILL.md rename to .claude/skills/critic/SKILL.md diff --git a/.claude/skills/gcloud/SKILL.md b/.claude/skills/gcloud/SKILL.md index 84ee5b7..c5de9dd 100644 --- a/.claude/skills/gcloud/SKILL.md +++ b/.claude/skills/gcloud/SKILL.md @@ -76,6 +76,29 @@ gcloud compute instances create \ --metadata-from-file=startup-script= ``` +## Gitea API (git.unslope.com) + +```bash +# Auth: basic auth or token +# Create API token: +curl -u user:pass -X POST 'https://git.unslope.com/api/v1/users//tokens' \ + -H 'Content-Type: application/json' -d '{"name":"my-token","scopes":["all"]}' + +# Create repo +curl -u user:token -X POST 'https://git.unslope.com/api/v1/user/repos' \ + -H 'Content-Type: application/json' -d '{"name":"repo-name"}' + +# Add collaborator +curl -u user:token -X PUT 'https://git.unslope.com/api/v1/repos/owner/repo/collaborators/username' \ + -H 'Content-Type: application/json' -d '{"permission":"write"}' + +# Create user (admin only) +sudo docker exec -u git gitea gitea admin user create --username --password '' --email '' + +# DNS not resolved? Use --resolve flag: +curl --resolve git.unslope.com:443:34.78.255.104 ... +``` + ## IAM ```bash diff --git a/CLAUDE.md b/CLAUDE.md index 0356a32..49bcd28 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -23,6 +23,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## 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`. @@ -32,9 +33,35 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co | Need | Load | |------|------| -| GCP commands | `/apes:gcloud` skill | -| Stress-test a decision | `/apes:critic` skill | -| Audit agent config quality | `/apes:ax` skill | +| 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//tokens -H 'Content-Type: application/json' -d '{"name":"cc","scopes":["all"]}' +# Then: git remote set-url origin https://:@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 @@ -51,4 +78,4 @@ sudo docker logs --tail 50 ## Critic Reflex -When something is surprising, contradictory, or your confidence is low, use the `/apes:critic` skill before proceeding. Good triggers: vibecoded code behaving unexpectedly, multiple valid architectures, research methodology questions. +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.