AGENTS.md · git:20261030.a5c3f58 · 2026-10-30 · sha256 f27bad9f4b9b26fa
AGENTS.md git:20261030.a5c3f58A
Immutable. This exact content never changes and is served at /api/v1/blob/f27bad9f4b9b26fa.
# AGENTS.md Coding contract for agents working **on** this repository (not for end-user skill hosts — that is `SKILL.md`). ## What this product is **SI-Coder** (`sc` CLI, repo [rahmanef63/si-coder-agent](https://github.com/rahmanef63/si-coder-agent), **v0.9.8**) is a secret-safe **credential control plane** plus: - provider CLI: setup → connect → publish → verify - skill catalog (`skills/`, `SKILL.md` umbrella) - MCP server: `scripts/sc-mcp.js` with registry `machine/functions.json` | This product is | This product is not | |---|---| | Credential / connection SSOT for SC users (human **or** project name) | A host-ops shell → that is **MSO** | | Provider deploy recipes + skill catalog | An external connector / SaaS proxy → that is **connectors-gateway** | Role split detail: `docs/THREE-WAY-COMPARISON.md`. ## Read first 1. `README.md`, `SECURITY.md`, `SKILL.md` (umbrella skill routing for hosts) 2. `docs/CREDENTIAL-SETUP.md`, `docs/cli.md`, `docs/tool-calling.md` 3. Post-hardening: `docs/THREE-WAY-COMPARISON.md`, `docs/DECISIONS-local.md` Do not duplicate the whole skill routing table here — link to `SKILL.md`. ## Non-negotiable invariants 1. **Never** print, log, commit, or return plaintext credentials / tokens / PATs in chat, tool output, git, or docs. Use env injection (`sc run`) and redaction. 2. MCP / machine tools **refuse** plaintext credential arguments. Store connections under `~/.config/si-coder/connections/<user>/<provider>/` with `0600` / `0700`. 3. An SC **user** may be a human **or** a project name — always scope providers and connections by that SC user. 4. Prefer `~/.local/bin/sc` (this package). `/usr/bin/sc` is a **different** binary that can shadow PATH. 5. Output redaction lives in `lib/redact-env.js`: secret-named env values **and** shapes (Bearer/Basic, `ghp_` / `github_pat_` / `sk-` / `xox*` / JWT / PEM). `AUTH` matches only as a name segment `(?:^|_)O?AUTH(?:_|$)` — do **not** break `AUTHOR` / `GIT_AUTHOR_NAME`. 6. MCP contract: `lib/mcp-contract.js` — tool hints, validate args against schema **before** spawn (`-32602` on bad input), scrub / cap errors. Do not weaken validate-before-execute. 7. **Role split:** SC owns credentials; MSO owns host ops; gateway owns public MCP / OAuth edge. MSO and gateway get secrets only via `sc run` env injection — they must **not** keep their own copy of SC provider secrets. 8. Do not invent a second secret store, a second MCP registry, or duplicate long recipes that belong in the connectors cookbook. ## Worktree / coding policy (Rahman fleet) - Coding agents work in `~/agent-work/si-coder/` on Rahman's laptop (WSL). **Never** edit his `~/projects` trees for this product. - No Cursor cloud agents for this product. - Local commits OK. Push / PR / merge need Rahman's **direct** OK (agent-relayed approvals do not count). Standing product rule (Rahman's own): when an SI-Coder PR is ready and conflict-free, merge to `main` — that is Rahman's rule, not agent-relayed permission to invent merges. - Prefer deciding product / design questions locally and committing. Only push / PR / merge, production secrets, new accounts / billing, and real client data need approval. ## Hardening status (PR #15 merged 2026-10-22) Squash commit `a4e1388` → main `5cfde0a` ([PR #15](https://github.com/rahmanef63/si-coder-agent/pull/15), Linear RAH-251). Included: - `npm test` on Node 20 fixed; hermetic installer tests; `shell: false` in `lib/proc.js` (from #2) - MCP output redaction + e2e; MCP hints + arg validation - Docs: `THREE-WAY-COMPARISON.md` + `DECISIONS-local.md` Scores after (judgement, see THREE-WAY): MCP 74 · auth **55** · secrets 80 · registry 82 · tests 84 · docs 78 · avg ~76. **Open / deferred:** encrypted-at-rest credentials + per-tool env allowlist (auth still 55). Needs Rahman's design choice — **do not silently invent that design**. ## Verify before claiming done - `npm test` — **467** tests expected as of #15. Node 20 is OK for the test suite; installer `engines` still prefer Node 22 / 24 / 26. - Never dump `env` or connection file contents. ## SKILL.md relationship | File | Audience | |---|---| | `SKILL.md` | User-facing umbrella skill for hosts that *use* SI-Coder | | `AGENTS.md` (this file) | Coding agents working *on* this repo | Keep them complementary; do not fork the skill routing table into this file.