Part of #72 (open issue A).
Today each program owns its state.json schema independently (link-health and dep-bump differ; the PR reviewer uses a distinct eviction-TTL pattern). Propose a common envelope:
{
"schema_version": 1,
"program": "link-health-scanner",
"acted_on": { "<dedup_key>": { "at": "ISO8601", "ttl_days": 30 } },
"program_data": { }
}
program_data is program-specific and unvalidated at the envelope level. Backward compatible: programs migrate their state files on first write after the change. Blocks nothing pre-launch; standardization enables future cross-program tooling such as a unified eviction GC.
Assisted-By: Claude Code
Part of #72 (open issue A).
Today each program owns its
state.jsonschema independently (link-health and dep-bump differ; the PR reviewer uses a distinct eviction-TTL pattern). Propose a common envelope:{ "schema_version": 1, "program": "link-health-scanner", "acted_on": { "<dedup_key>": { "at": "ISO8601", "ttl_days": 30 } }, "program_data": { } }program_datais program-specific and unvalidated at the envelope level. Backward compatible: programs migrate their state files on first write after the change. Blocks nothing pre-launch; standardization enables future cross-program tooling such as a unified eviction GC.Assisted-By: Claude Code