Issue 1585, S19: the strict parser, every manifest problem function and the judge's tables (192 declarations, about 5,200 lines) and their 244 tests leave; composition keeps its own refusals and the helpers it uses. The catalogue's tests decode the manifests they build. ParseManifest, ParseManifestWith, ParseManifestForInputs, CatalogueProblems and the rest are gone; mesh-delivery-indexer/judge holds them. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
16 lines
1002 B
Go
16 lines
1002 B
Go
package catalogue
|
|
|
|
// A five-field cron validator, enough to refuse a malformed schedule near its author
|
|
// (novox/hq ADR 0053).
|
|
//
|
|
// **Validation only, and written rather than pulled in.** The control plane's part in a scheduled
|
|
// step is small and exact: carry the field to the host unchanged, and refuse a `schedule` that is
|
|
// not a well-formed cron here rather than on the machine — the same near-versus-far discipline the
|
|
// manifest keeps for an action a module may not declare and a run-once that is not a boolean. What
|
|
// *when to run it again* means is the host's to evaluate; the control plane only checks the string
|
|
// is one it could. A cron library would be a dependency carried for evaluation nobody does here.
|
|
//
|
|
// The ordinary five fields — minute, hour, day-of-month, month, day-of-week — with `*`, lists
|
|
// (`,`), ranges (`-`) and steps (`/`). No names (jan, mon): a numeric cron is what the host
|
|
// evaluates, and refusing a name here is refusing it near whoever wrote it.
|