# Em 0002

- Object ID: `em:task:sha256:49c208d33f98a47a5ac837f1cfcb4187a93cf9ec858b7e8d112a9a269be2e3b8`
- Kind: `task`
- Repository path: [`tasks/contracts/EM-0002.json`](https://github.com/yoheinakajima/epistemedia/blob/f92846570180dfa4511263f8ba98ecd18f7772c9/tasks/contracts/EM-0002.json)
- Content digest: `966db21f459ec742e900377ce8fa987b7a6578db563d079b1ca0b5dbef46bb88`

**Also filed under:** [Agent Operations](https://epistemedia.org/topics/agent-operations/), [Research Program](https://epistemedia.org/topics/research-program/)

## Source content

{
  "$schema": "https://epistemedia.com/schemas/task-contract-v1.json",
  "id": "EM-0002",
  "title": "Specify and implement the normative event envelope v0.1",
  "status": "ready",
  "change_class": "protocol-normative",
  "objective": "Turn the draft event envelope into a canonical, replay-tested protocol object covering identity, parents, actor lineage, valid/observed/recorded time, payload digest, visibility, signatures, and supersession.",
  "depends_on": ["EM-0001"],
  "authority": {
    "allowed_paths": ["schemas/**", "src/**", "tests/**", "docs/**", "tasks/**", "governance/proposals/**"],
    "protected_paths": ["schemas/event-envelope-v1.json", "constitution/**", "policies/**"]
  },
  "required_evaluation": [
    "independent protocol evaluator",
    "replay and canonicalization property tests",
    "cross-language canonical byte fixtures",
    "backward/forward compatibility analysis",
    "disclosure metadata review"
  ],
  "acceptance": [
    "canonical bytes and event IDs are specified without implementation ambiguity",
    "parent and chain validation reject missing, cyclic, and equivocated history",
    "three-time semantics are represented without forcing false precision",
    "unknown actor lineage remains explicit",
    "supersession never mutates accepted prior events",
    "reference fixtures replay identically in a clean clone"
  ]
}
