Skip to content
Protocol

community safe

core by Curtis Mercier v2.1.0 heat: cold
privacysafetyself-awareness
Tiercore
Version2.1.0
Heatcold
AuthorCurtis Mercier
SourceGitHub ↗
/install protocol community-safe

Run in a Soma session to add to your project.

curl -sO https://raw.githubusercontent.com/meetsoma/community/main/protocols/community-safe.md

Download and copy to .soma/protocols/community-safe.md — or view on GitHub ↗

Tags

Applies to
always

Details

Community Safe

TL;DR

Private data stays private. 🔴 The channel guard does NOT block PII — it blocks pro/private keywords and credential file shapes; emails, API keys and IP addresses pass straight through. Run a PII check yourself before publishing. Protocols and muscles must be generic (no emails, paths, project names). When sharing to the hub, strip absolute paths and private repo references. Private data belongs in .soma/secrets/, identity files, or env vars.

How Soma keeps private data out of public content. The guard catches a NARROW mechanical class —
this protocol covers the judgment, and names the check the guard will not run for you.

What's Automated — and what isn't

🔴 Nothing blocks PII at push time. Do not rely on a hook to catch a leaked email.

Corrected 2026-08-10. This protocol previously stated: *"If it finds PII in a public repo
commit, it blocks the push" — listing emails, IP addresses and API keys as blocked. *That was
false**, and false in the reassuring direction, which is the dangerous one: it credited the
pre-push guard with a job a different, non-blocking, on-demand script does, and credited
nobody with IP addresses. Verified by reading the guard: it contains no email or API-key
matching at all.

Two different mechanisms, and only one of them blocks:

what when blocks?
Pro/private keywords (vault paths, private-tier names, absolute home paths) pre-push hook yes
Credential FILE SHAPES (id_rsa, *.pem, credentials.json, .env.local) pre-push hook yes
_-prefixed branch guard pre-push hook ✅ yes
Email addresses, API keys on-demand PII audit only — no hook wiring no
IP addresses detected by nothing

Run a PII scan over your diff yourself before publishing. The channel guard will not do it for

you, and a clean push is not evidence your diff is PII-free.

🔑 The general lesson, worth more than this one file: a control that is documented as blocking

and is implemented as advisory is worse than no control — it buys confidence it has not earned.

When a doc tells you something is enforced, read the enforcer.

What Needs Judgment

The guard catches obvious shapes. These need your awareness:

Private data belongs in:

  • .soma/secrets/ (gitignored)
  • .soma/body/soul.md (project-local, not pushed to public repos)
  • Environment variables / .env files (gitignored)

Protocols and muscles must be generic:

  • ✅ "Read before edit" — universal pattern
  • ❌ "User prefers tabs over spaces" — personal preference in a public protocol
  • ✅ "Check git config before committing" — universal
  • ❌ "Set email to user@example.com" — private data

When sharing to the hub:

  • Strip all absolute paths
  • Remove references to private repos, internal tools, specific projects
  • Keep patterns universal — if it only works for your setup, it's local, not community

Source

  • Channel guard — the pre-push hook: keyword and filename shapes only
  • Guard extensionsoma-guard (path/command gates)
  • PII audit — on demand via soma-audit pii; never blocks, never runs itself
View source on GitHub →