Skip to content

[process-manager PM-1] Process-graph contract v1 (ProcessGraphShape/ProcessSpecShape + state vocabulary + restart policies) #512

Description

@rickylabs

Summary

The typed foundation of the epic: ProcessGraphShape/ProcessSpecShape Zod schemas (exported as Standard Schema, JSON Schema derived — E11), the canonical state vocabulary (E2: engine FSM canonical, wire enum a projection with an explicit mapping table), and restart/start-policy sub-schemas with S7 pm2-floor defaults (E3: backoff double-to-cap-15000ms, reset-after-30000ms).

Scope

Design source

  • research/design/d5-config-scaffold-docs-rfc.md §1 + d1-supervision-engine-core.md (state machine) · plan.md §4 PM-1, E2/E3/E11

Acceptance criteria

  • gate: schemas Zod-authored, Standard Schema exported, JSON Schema derived (not hand-maintained)
  • gate: one state vocabulary — wire ProcessState defined once in contracts/v1 as a projection of the engine FSM with a mapping table
  • gate: restart defaults are D1 controller constants (15000/30000), not D5's stale 30000/10000
  • gate: WorkerTaskPermissions re-exported from workers-core mod.ts; pm imports it from the public surface
  • gate: deno doc --lint clean on the full export map; public surface ≤ 20 per mod.ts
  • gate: scoped check/lint/fmt wrappers green (--ext ts,tsx)

Non-scope

  • No instances > 1 semantics (E9 hard-errors — PM-35 owns clustering); no deploy-facing target schema (PM-21).

Drift / Debt

  • none

RFC #820 amendment (owner-ratified 2026-07-17 — PR #822)

  • gate: readiness-probe vocabulary includes tcp and process-lingering kinds (POC-validated: Garnet exposes no HTTP; background workers expose no port). Public contract types — jsr rubric applies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:configpackages/config and runtime-configarea:pluginsplugins/* and plugin-core packagesepic:process-managerProcess manager plugin epic (bare-metal supervisor + admin console, child of #327)priority:p1Highstatus:planHarness plan phasetype:featwave:v1-min

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions