email-formatting
Markdown formatting conventions for email summary documents — heading depth, list style, line length, emoji policy, and a…
Canonical shape of the .workflow/emails/emails.json file passed between the fetch and summarize states — required fields (sender, recipient, subject, date, body), types, and field semantics. Read this whenever you write or read emails.json so producer and consumer agree on the
$ npx -y skills add provos/ironcurtain --skill json-schema-emails --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/json-schema-emailsContext preview
The summary Claude sees to decide when to auto-load this skill.
Canonical shape of the .workflow/emails/emails.json file passed between the fetch and summarize states — required fields (sender, recipient, subject, date, body), types, and field semantics. Read this whenever you write or read emails.json so producer and consumer agree on the
name: json-schema-emails description: Canonical shape of the .workflow/emails/emails.json file passed between the fetch and summarize states — required fields (sender, recipient, subject, date, body), types, and field semantics. Read this whenever you write or read emails.json so producer and consumer agree on the shape.
The fetch state writes `.workflow/emails/emails.json` and the summarize state reads it. The file is a single JSON array of email objects. The canonical JSON Schema is in the sibling file `schema.json`; this document explains the fields and their semantics.
A JSON array. Each element is an email object. The array order is preservation order — the consumer renders emails in the order they appear, so the producer should write them in the order it wants them rendered (typically newest-first as returned by the API).
All fields are required and must be strings unless noted.
source provides a display name, else the bare address.
multiple To recipients they are joined with `, ` (comma + space). CC and BCC are not represented in this schema.
if the source has no subject; do not substitute "(no subject)".
whatever the API returns). Do not reformat or normalize the timezone.
producer is responsible for stripping tags before writing. Newlines are preserved; tabs are replaced with two spaces.
The sibling `schema.json` is a draft-2020-12 JSON Schema. Tooling that needs to validate the file structurally should load it from there; this document is the human-readable companion.
A secure\* runtime for autonomous AI agents, where security policy is derived from a human-readable constitution. _\*When someone writes "secure," you should immediately be skeptical. What do we mean by secure?_
Markdown formatting conventions for email summary documents — heading depth, list style, line length, emoji policy, and a…
Reference for Gmail's search query syntax — operators like is:sent, newer_than:, from:, has:attachment, label:, and how they…
Tone and length conventions for email summaries — voice, verb tense, what to include vs omit, and target sentence count. Read…
Reference vocabulary for designing instrumented harnesses that drive vulnerability discovery — design classes (trigger-driven vs…
Reference vocabulary for memory-safety vulnerabilities in native C/C++ code — bug-class taxonomy, common arithmetic patterns that…
Reference vocabulary for interpreting vulnerability findings — detector-vs-impact distinction, severity anchoring on demonstrated…