# Em 0012

- Object ID: `em:task:sha256:afd265b5a67578e2569e0c6fda5080538712956310abd124abf506196546c03c`
- Kind: `task`
- Repository path: [`tasks/contracts/EM-0012.json`](https://github.com/yoheinakajima/epistemedia/blob/f92846570180dfa4511263f8ba98ecd18f7772c9/tasks/contracts/EM-0012.json)
- Content digest: `9d4c98f937f18cb8cb98b315224b66ce35d459f8caed6025de81ca01d1704f71`

**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-0012",
  "title": "Remove the legacy repository clock injection hook",
  "status": "ready",
  "change_class": "maintenance",
  "objective": "Remove the root-level CI-only usercustomize hook after EM-0010 makes reproducible timestamp semantics explicit in the compiler, so validation no longer mutates Python global clock behavior at interpreter startup.",
  "depends_on": [
    "EM-0010"
  ],
  "authority": {
    "allowed_paths": [
      "usercustomize.py",
      "tests/**",
      "docs/**",
      "runs/**"
    ],
    "forbidden_paths": [
      "constitution/**",
      "schemas/**",
      "policies/**",
      "catalog/**",
      "governance/events/**",
      "tasks/contracts/EM-0001.json",
      "tasks/contracts/EM-0002.json",
      "tasks/contracts/EM-0003.json",
      "tasks/contracts/EM-0004.json",
      "tasks/contracts/EM-0005.json",
      "tasks/contracts/EM-0006.json",
      "tasks/contracts/EM-0007.json",
      "tasks/contracts/EM-0008.json",
      "tasks/contracts/EM-0009.json",
      "tasks/contracts/EM-0010.json",
      "tasks/contracts/EM-0011.json"
    ]
  },
  "acceptance": [
    "the root-level usercustomize.py hook is absent",
    "CI does not monkeypatch datetime globally at Python interpreter startup",
    "make check proves deterministic output through EM-0010 compiler semantics without an environment-specific clock hook",
    "the accepted repository remains clean after validation"
  ],
  "limitations": [
    "This task does not redefine generated_at semantics; EM-0010 owns that implementation.",
    "This task must not be implemented before EM-0010 is accepted."
  ]
}
