From 9fdec4fa0ddf1a0c4668d8549d19f6d96009d9d3 Mon Sep 17 00:00:00 2001 From: ic-builder Date: Sun, 6 Sep 2026 17:21:48 -0500 Subject: [PATCH] =?UTF-8?q?retire=20the=20~/.creds=20textfile=20pattern=20?= =?UTF-8?q?=E2=80=94=20Bitwarden=20via=20smcli=20only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Founder ruling 2026-09-06: all secrets via the TSGCOO vault through the KNELSecretsManager Go CLI (sm); no upstream Rust bw, no textfile creds. Legacy dir archived (root-only). Ticket: https://projects.knownelement.com/issues/829 --- agents/global/AGENTS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/agents/global/AGENTS.md b/agents/global/AGENTS.md index 1e188bf..c68be80 100644 --- a/agents/global/AGENTS.md +++ b/agents/global/AGENTS.md @@ -29,10 +29,10 @@ question (see Questions). Effective 2026-08-31. ## Hard rules - ALL builds/tests through the repo's compose lifecycle services (pinned-builder `check`). NEVER run toolchains on the host. Host runs only git, docker, unix utils. NO dev.sh, NO Makefile — docker compose is the only lifecycle interface (k8s/gitops-portable; template: go-cli-mcp-template #578). -- Secrets: ONE place — ~/.creds (0600 env files). NEVER in repos, images, compose files, app databases, logs, or error strings. Configs hold refs (env:/file:), never material. +- Secrets: ONE place — the TSGCOO Bitwarden vault, accessed ONLY via the KNELSecretsManager Go CLI (`sm`, container ukrrs-secretsmgr-cli). RULING 2026-09-06: the legacy ~/.creds textfile pattern is RETIRED and ARCHIVED (/root/knel-creds-archive-20260906.zip, 400) — no new textfile creds, no upstream Rust bw CLI. NEVER in repos, images, compose files, app databases, logs, or error strings. - Host hygiene (ruling 2026-08-31, RETIRES the old curl ban): common shell commands on the host are fine, curl included. NOT fine: package installs on the host (apt-get/pip/etc) or piling work/toolchains onto it — ALL work runs in containers (python inside dev/build containers is fine). Keep the host a thin, clean layer. - Missing CLI on the host? DOCKER PULL IT (ruling 2026-08-31, standing permission): agents may pull tooling images freely — anything that makes the work easier (jq, ripgrep, etc. already fine from host; grab whatever else via `docker run --rm `). No permission needed; never apt/pip instead. -- New gitea repos default to PUBLIC (ruling 2026-08-31): create with `--private=false`; go private only when the human asks or the content demands it (secrets are never repo content anyway — ~/.creds is the only home for those). +- New gitea repos default to PUBLIC (ruling 2026-08-31): create with `--private=false`; go private only when the human asks or the content demands it (secrets are never repo content anyway — the Bitwarden vault (via `sm`) is the only home for those). - NO Python from agents, ever (ruling 2026-08-31, human preference): ALL text/JSON/CSV processing = bash, sed, awk, perl, cut, jq, sort/uniq. Never python one-liners; HTTP = curl. Same rule for anything you hand the human: shell only. - 100% compose lifecycle: every container is a compose service with container_name; storage in named volumes; no ad-hoc docker run for services, no manual renames. Scoped ops only — NEVER bare `down`. - Image tags: digests or pinned versions, NEVER :latest. @@ -115,5 +115,5 @@ question (see Questions). Effective 2026-08-31. - All LLM traffic flows through the gateway (z.ai plan is the shared, metered budget: demand shaping is fleet-wide; per-request policy ladder normal -> peak -> cooldown -> hard; /status publishes the signal). - There are NO per-key quotas; never mint credentials. Identity is platform-level; X-Consumer is attribution only. -- Master key stays env-only (~/.creds/gateway.env), ops/bootstrap only. +- Master key stays vault-only (KNELSecretsManager `sm`), ops/bootstrap only. - Gateway repo work follows its own promote.sh pipeline; see tiers above.