| 1 | # Agent rules for sigit-si |
| 2 | |
| 3 | Rules for agents working in this repo and across the siGit / smbCloud codebases. |
| 4 | Read this before writing code or docs. |
| 5 | |
| 6 | ## Repositories and the public boundary |
| 7 | |
| 8 | | Repo | Visibility | What it is | |
| 9 | |------|------------|------------| |
| 10 | | `sigit` (`getsigit/sigit`) | **public** | siGit Code: the Rust CLI / ACP coding agent | |
| 11 | | `sigit-si` | private | the Rails app, account API, and these agent docs | |
| 12 | | `sigit-app` | private | the desktop client (Tauri) | |
| 13 | | `onde-cloud` | private | the OpenAI-compatible inference service | |
| 14 | | `onde` | open source | the on-device inference crate | |
| 15 | |
| 16 | **Cardinal rule: `sigit` is public.** Everything committed there is world-readable: |
| 17 | code, comments, doc strings, tests, commit messages. Never put any of the |
| 18 | following in the public repo: |
| 19 | |
| 20 | - secrets, API keys, tokens, or credentials; |
| 21 | - the identity of the upstream model providers behind siGit Code Cloud, or the |
| 22 | fact that any specific provider sits behind it; |
| 23 | - business strategy, pricing, or positioning; |
| 24 | - internal smbCloud auth mechanics (`app_secret`, validation flows, trust |
| 25 | boundaries); |
| 26 | - customer names or internal infrastructure detail. |
| 27 | |
| 28 | That material belongs in `sigit-si` (server and strategy) or `sigit-app` |
| 29 | (desktop), which are private. When in doubt, put the explanation in a private |
| 30 | skill and keep the public comment purely about what the code does. |
| 31 | |
| 32 | ## Writing for the public repo |
| 33 | |
| 34 | - Keep comments and docs technical and neutral. Say what the code does, not why |
| 35 | it is a good business. |
| 36 | - Strip AI-writing tells: no em dashes, no forced groups of three, no |
| 37 | promotional or significance-inflating language, no "not just X but Y". Plain is |
| 38 | correct for reference text. |
| 39 | - User- and client-facing error messages must not name a provider or echo |
| 40 | upstream error bodies. Log the detail server-side; return something neutral. |
| 41 | |
| 42 | ## Branding |
| 43 | |
| 44 | Names are case-sensitive: `siGit Code` (product), `siGit Code Cloud` (hosted |
| 45 | tier), `sigit` (CLI and crate), `smbCloud` (company), `Onde Cloud` / `Onde |
| 46 | Inference` (infrastructure), `onde` (crate). The public `sigit` repo has a |
| 47 | `branding` skill with the full rules. |
| 48 | |
| 49 | ## Skills in this repo |
| 50 | |
| 51 | - `sigit-code`: engineering reference for siGit Code and how it connects to the |
| 52 | ecosystem (accounts, the cloud tier, cross-repo work). |
| 53 | - `sigit-code-cloud`: the hosted inference product: auth, tiers, backend |
| 54 | selection, and the `onde-cloud` API behind it. |
| 55 | - `smbcloud-auth`: the auth service integration. |
| 56 | - `sigit-app`: the desktop client. |
| 57 | - `deployment`, `design-system`, `local-environment`: as named. |
| 58 | |
| 59 | The public `sigit` repo carries its own skills (`ai-assisted-coding`, |
| 60 | `agent-client-protocol`, `tool-calling`, `branding`, `sigit-code-release`). Those |
| 61 | stay public-safe. |
| 62 | |
| 63 | ## Validation |
| 64 | |
| 65 | - Rust (`sigit`, `onde-cloud`): `cargo build`, `cargo test`, `cargo clippy`. |
| 66 | - Rails (`sigit-si`): `bundle exec rails routes`, `ruby -c` on touched files, |
| 67 | `rails db:migrate` when the schema changes. |
| 68 | |
| 69 | ## Common mistakes |
| 70 | |
| 71 | - Putting strategy, a provider name, or a secret into the public `sigit` repo. |
| 72 | - Leaving AI-writing tells in public prose. |
| 73 | - Mixing the product, CLI, and company names. |