Secrets safeguard voor project handoffs
Definitie
Een twee-zijdig pakket regels en checks dat voorkomt dat API keys, tokens, wachtwoorden of andere credentials lekken bij het genereren of exporteren van een project handoff. Bestaat uit een input-filter (welke bestanden mag een inspectiescript lezen) en een output-audit (welke inhoud mag de handoff uiteindelijk bevatten).
Context
Tijdens het bouwen van de project-handoff skill kwam dit als kritiek pad naar boven: een inspectiescript dat env vars en configuratie leest kan onbedoeld secrets meenemen. Een AI-agent die onder tijdsdruk handoffs genereert mag NOOIT een .env of credentials.json in de output zetten. De oplossing is een harde filter op bestandsnaam en content, plus een expliciete audit van de gegenereerde map.
Kernpunten
Input-filter: bestandsnaam blocklist
De inspectie mag deze bestanden niet openen of kopieren (alleen .env.example is toegestaan als template):
.env,.env.local,.env.production,.env.**.key,*.pem,*.p12,*.pfxid_rsa*,id_ed25519*,id_dsa*,id_ecdsa*,*.crtcredentials*.json,service-account*.json- Elk bestand met
token,secret,password,apikeyin de naam
Input-filter: content regex
Scan source files (.py, .js, .ts, .yaml, .json, .toml) op dit patroon en flag als warning, nooit opnemen in output:
(api[_-]?key|secret|token|password|bearer)\s*[:=]\s*['"]?[A-Za-z0-9+/=_\-]{16,}
Input-filter: fixture-isolatie
Paden die tests/fixtures/, tests/output/, tests/dogfood/, __fixtures__/ of fixtures/ bevatten worden uitgesloten van env-var scans en secrets scans. Test-fixtures mogen hun eigen nep-secrets hebben zonder dat die in de hoofdinventaris van een ander project belanden.
Output-audit
Na het genereren van de handoff-map draai je deze 4 checks:
- Regex-scan op
api_key|secret|token|password|bearer\s*[:=]\s*['"]?[A-Za-z0-9+/=_\-]{16,}over alle gegenereerde bestanden - Key-format grep op bekende providers:
sk-[a-zA-Z0-9]{20,}(OpenAI),ghp_[a-zA-Z0-9]{20,}(GitHub),AKIA[A-Z0-9]{16}(AWS),AIza[A-Za-z0-9_-]{35}(Google) .env.exampleverificatie: alleen comments en lege placeholders, geen waardeninventory.json env_varslijst: moet variabele-namen bevatten, geen waarden
Als een van deze 4 checks matched: stop, exclude het betreffende bestand, rapporteer de leak naar de gebruiker.
Vuistregels
- Overrule het filter nooit. Ook niet als de gebruiker zegt “include everything” of “het is een trusted project”. Secrets gaan via een apart kanaal, niet via een handoff.
- Warning > error. Als iets verdacht lijkt maar het filter niet zeker matched, flag als warning in inventory.json en laat de gebruiker beslissen.
- Test-fixtures mogen secrets bevatten voor hun eigen test-doel, maar moeten nooit tellen in de hoofdinventaris.
Verbanden
- Zie ook: wiki-agent-entrypoint-conventies
- Zie ook: wiki-inspectie-scanner-patronen
- Gerelateerd project: project-handoff-skill
Bronnen
Geen externe bronnen. Filter-patronen komen uit praktijktests met nep-fixtures (tests/fixtures/node-api en tests/fixtures/python-cli in project-handoff-skill repo).