|
1 | | -# CLAUDE.md - Rules for AI agents working on this repo |
2 | | - |
3 | | -## Branch protection |
4 | | -- Never bypass branch protection or force merge failing checks |
5 | | -- Never use --no-verify or skip pre-commit hooks |
6 | | -- All changes to main must pass required status checks (sdk-integration, staging-integration) |
7 | | -- If a check fails, fix the root cause before merging |
8 | | - |
9 | | -## Publishing |
10 | | -- PyPI publish triggers only on version tags (v*) |
11 | | -- Uses trusted publishing (OIDC) - no API tokens |
12 | | -- Never store PYPI_TOKEN in source or secrets |
13 | | - |
14 | | -## Security |
15 | | -- Never hardcode API keys, secrets, or tokens in source code |
16 | | -- Use environment variables or GitHub secrets for all credentials |
17 | | -- All GitHub Actions must be pinned to commit SHAs, not version tags |
18 | | -- Staging keys go in CUEAPI_STAGING_API_KEY GitHub secret, never in code |
19 | | - |
20 | | -## Code quality |
21 | | -- Run tests locally before pushing: pytest tests/ -v |
22 | | -- Do not use em dashes in any user-facing content |
| 1 | +# Claude Code Rules |
| 2 | + |
| 3 | +## Who Does What |
| 4 | + |
| 5 | +**Claude Code** - writes code, opens PRs, merges when CI passes, deploys to staging and frontend sites |
| 6 | +**Argus** - tests staging, promotes to production, cuts PyPI release tags, tests docs and blog accuracy |
| 7 | + |
| 8 | +## PR Process - Non-Negotiable |
| 9 | + |
| 10 | +Every change must go through a PR. No direct pushes to main under any circumstances. |
| 11 | +PRs are the permanent audit trail of every change made to this codebase. |
| 12 | +Claude Code opens PRs and merges them once CI passes. No human reviewer required. |
| 13 | +CI must pass before merging - no exceptions. |
| 14 | +Never bypass branch protection or force merge. |
| 15 | +Never merge a failing CI check - fix the root cause first. |
| 16 | + |
| 17 | +## Complete Pipeline |
| 18 | + |
| 19 | +### cueapi (hosted API - private repo) |
| 20 | +Claude Code: code change -> open PR -> sdk-integration + deploy-staging CI must pass -> merge -> Railway staging deploy |
| 21 | +Argus: runs 246 staging tests -> all pass -> promotes to production |
| 22 | + |
| 23 | +### cueapi-core (open source) |
| 24 | +Claude Code: code change -> open PR -> sdk-integration CI must pass -> merge |
| 25 | +Argus: runs full pytest suite -> confirms green |
| 26 | + |
| 27 | +### cueapi-python |
| 28 | +Claude Code: code change -> open PR -> sdk-integration CI must pass -> merge |
| 29 | +Argus: runs SDK tests -> all pass -> cuts version tag -> PyPI auto-publishes |
| 30 | + |
| 31 | +### cueapi-cli |
| 32 | +Claude Code: code change -> open PR -> test CI must pass -> merge |
| 33 | +Argus: runs CLI tests -> all pass -> cuts version tag -> PyPI auto-publishes |
| 34 | + |
| 35 | +### Marketing site (cueapi.ai) |
| 36 | +Claude Code: code change -> open PR -> CI passes -> merge -> Cloudflare Pages auto-deploys to production |
| 37 | +Argus: not involved |
| 38 | + |
| 39 | +### Docs (docs.cueapi.ai) |
| 40 | +Claude Code: code change -> open PR -> CI passes -> merge -> Cloudflare Pages auto-deploys |
| 41 | +Argus: crawls after deploy -> tests all code examples against real API -> verifies all links -> flags inaccuracies |
| 42 | + |
| 43 | +### Blog (blog.cueapi.ai) |
| 44 | +Claude Code: code change -> open PR -> CI passes -> merge -> Cloudflare Pages auto-deploys |
| 45 | +Argus: crawls after deploy -> tests all code snippets -> verifies package versions -> flags inaccuracies |
| 46 | + |
| 47 | +## Required CI Checks |
| 48 | +cueapi-core: sdk-integration, deploy-staging |
| 49 | +cueapi-python: sdk-integration |
| 50 | +cueapi-cli: test |
| 51 | +No PR review required - CI and Argus are the gates |
| 52 | + |
| 53 | +## Security Rules |
| 54 | +1. Never hardcode secrets, API keys, or tokens anywhere |
| 55 | +2. Always use environment variables: os.environ.get("SECRET_NAME") |
| 56 | +3. Never commit .env files |
| 57 | +4. All GitHub Actions must be pinned to commit SHAs not tags |
| 58 | +5. If you find a hardcoded secret, remove it and rotate it immediately |
| 59 | + |
| 60 | +## Style Rules |
| 61 | +1. No em dashes anywhere in any content |
| 62 | +2. No AI-sounding language or corporate speak |
| 63 | +3. Short, direct sentences |
| 64 | + |
0 commit comments