Fake commits fail at the CI gate because they're unsigned.
Previously framed as IDE keystroke surveillance to detect "sessionless" commits. Reframed: configure Git + CI to reject any unsigned commit on protected branches and any PR merge without a fresh Manav receipt. Bots can open PRs. Bots can write code. Bots cannot merge without consensual signed authority, from a human, or from a delegation chain that traces back to one.
- Git commit signing is a 20-year-old primitive; Manav supplies the custody and verification.
- Agent-authored commits land, if the agent carries a delegation receipt chained to a human.
- No anonymous code reaches production. There is no third option.
The bad framing, IDE keystroke surveillance
"We monitor every keystroke in the developer's IDE and flag commits that land without an active typing session." Requires installing a telemetry agent on every developer's machine. Generates false positives on copy-paste. Hostile to remote work and to developer trust.
The privacy-preserving framing, repository policy
Configure Git to require commit signing on protected branches. Configure CI to reject any unsigned commit. Configure GitHub/GitLab branch protection to reject any merge without a fresh Manav approval receipt. Manav supplies the signing key custody and verification; Git supplies the signing primitive.
Sample protected-branch policy
branches:
main:
require_signed_commits: true
accepted_signing_keys: "manav-managed"
require_manav_merge_proof: true
delegation_allowed: true // agents can commit if delegated
delegation_max_chain: 1
Three commit attempts
git push origin main (unsigned)
⛔ Rejected, no Manav signature on commit
PR merge by bot (no merge receipt)
⛔ Rejected, protected branch requires Manav merge proofPR merge by Asha (with Manav approval)
✓ Accepted, receipt mnav_proof_pr_92a8No anonymous code lands. The developer's IDE is never touched. The repo enforces the rule; Manav supplies the cryptographic proof.
Want to ship this in your own app?
Three lines of JavaScript. Demo key mnav_test_demo works on localhost.
Manav