diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-08 15:11:34 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-08 15:11:34 +0200 |
| commit | d5dbf6328b9f38fe938d79e11769337b390ab9ba (patch) | |
| tree | 1e50ffb0a5d8ab43367bb1e70b5549356e5834f3 /tests/fixtures/with-attachment.eml | |
| parent | 4ea2cffd2c901b652b1236a3d0eb3ce39cc62c1d (diff) | |
| download | abusectl-d5dbf6328b9f38fe938d79e11769337b390ab9ba.tar.gz abusectl-d5dbf6328b9f38fe938d79e11769337b390ab9ba.zip | |
docs: AGENTS.md, with CLAUDE.md pointing at it
Same arrangement as qtmaildir: one source of truth, and a thin pointer
beside it so every agent tool reads the same file.
It leads with the three properties that are not negotiable, because each
has a concrete victim and each is a thing a later change could quietly
break. Recipient identifiers must never reach a report, and the guarantee
is structural rather than a step someone remembers. Nothing is fetched or
resolved, which the suite verifies by running with sockets disabled. The
trust boundary is configured rather than guessed, and its test is
mutation-checked because walking one hop too far reports an innocent party
the attacker named.
It also records the traps that were found the hard way rather than
reasoned about: ipaddress.ip_network(42) returning 0.0.0.42/32 instead of
raising, a string trusted_relays iterating characters, goog.json looking
like the right SPF source while listing all of Google, and the provider
table having been wrong in every entry when it was first written from
memory.
The hand-testing rule is stated with its evidence: the prompts are the
user's to test, and one pass over them found five defects, four being the
same mistake of validating an answer somewhere other than where it was
given.
Every factual claim in it was checked against the code before committing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KphFXTc2QajxXsHWyvGJ4R
Diffstat (limited to 'tests/fixtures/with-attachment.eml')
0 files changed, 0 insertions, 0 deletions
