Revise the covers spec: both links given directly, static page served by a Cloudflare Worker plus a userscript on one pure core, Bun instead of Node, and R2 rehosting with a 30-day expiry. Move the spec to docs/specs/, merge HANDOVER.md into docs/DECISIONS.md, the spec and docs/TODO.md, and add AGENTS.md, pointer files, PERMISSIONS.md and agent permission configs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
19 lines
1.3 KiB
Plaintext
19 lines
1.3 KiB
Plaintext
# Rendered from docs/PERMISSIONS.md — change both in one commit.
|
|
# Deny
|
|
prefix_rule(pattern = ["git", "push", ["--force", "-f", "--force-with-lease"]], decision = "forbidden",
|
|
justification = "Force-push rewrites shared history.")
|
|
prefix_rule(pattern = ["git", "reset", "--hard"], decision = "forbidden", justification = "Discards work.")
|
|
prefix_rule(pattern = ["git", "clean"], decision = "forbidden", justification = "Deletes untracked files.")
|
|
prefix_rule(pattern = ["git", "add", ["-f", "--force"]], decision = "forbidden",
|
|
justification = "Stages ignored files, e.g. secrets.")
|
|
prefix_rule(pattern = ["git", "commit", ["--no-verify", "-n"]], decision = "forbidden", justification = "Skips hooks.")
|
|
prefix_rule(pattern = ["rm", ["-r", "-R", "-rf", "-fr", "-Rf", "-fR", "--recursive"]], decision = "forbidden",
|
|
justification = "Recursive delete.")
|
|
prefix_rule(pattern = ["sudo"], decision = "forbidden", justification = "No privilege escalation.")
|
|
# Ask
|
|
prefix_rule(pattern = ["git", ["push", "merge", "rebase", "switch", "restore"]], decision = "prompt")
|
|
prefix_rule(pattern = ["git", "commit", "--amend"], decision = "prompt")
|
|
prefix_rule(pattern = ["rm"], decision = "prompt")
|
|
prefix_rule(pattern = ["bun", ["add", "remove", "update", "upgrade"]], decision = "prompt")
|
|
prefix_rule(pattern = [["bunx", "npx"]], decision = "prompt")
|