Rule 16 — Security and secrets¶
Requirement¶
No credential, token, refresh token, cookie, or private key is ever committed, echoed into workflow logs, or written into issue or PR bodies. All secrets live in GitHub repository secrets or the local OS keychain. Workflow logs must be assumed public. Credentials exist only in DarkFactory's own environment and are never propagated to consumer repositories; consumers authenticate through their own secrets. No secret value is ever named in a rule or a rule reference.
Rationale¶
Mistakenly captured credentials are permanent: logs and issues outlive rotations. Keeping the system's own credentials private to DarkFactory keeps the fleet secure by construction.
Enforcement¶
- Secret-backed workflows and repository settings; credential-focused tests in the test suite.
- No repository-wide secret scanning gate exists today — any claims of one must not be made.
Exceptions¶
None.
Change control¶
Owned by harness-auth: provider identities, vault access, and secret flows. Rules never list
credential variable names; the manifest declares identities.