Orchestrata Ultimate / RTM / 068-schedule-cron-tool
RTM: 068-schedule-cron-tool
Requirement to symbol to test rows for 068-schedule-cron-tool: ScheduleCronTool - Cron Job Scheduling with Timezone Support.
At a glance
| Item | Value |
|---|---|
| Requirement IDs | 30 |
Traced from src/ |
23 (76.7%) |
| Untraced | 7 |
Cited from tests/ |
0 (0.0%) |
Traced in src/ but not cited from tests/ |
23 |
Reading this matrix
This matrix lists each of the 30 requirement IDs of spec 068-schedule-cron-tool with the src/ symbols that cite it and the tests that cite it. 23 of them (76.7%) have at least one citing symbol and 7 have none.
0 requirements are also cited from tests/, and 23 are traced in code but never named by a test. A test citation is a @traces on a test function; it shows intent to cover, not that the test runs or reaches the symbol.
Rows showing none in the symbols column are the gaps to close first. The densest untraced groups are REQ-068-* (4), REQ-068-EXT (3).
Requirement to symbols to tests
| Requirement | Symbols in src/ |
Tests citing it |
|---|---|---|
REQ-068-001 Support standard 5-field cron expressions (minute, hour, day, month, weekday),... |
orchestrata_ultimate/tools/schedule_cron_tool CronExpression L338orchestrata_ultimate/tools/schedule_cron_tool JobScheduleResult L250orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronTool L794+5 more |
none |
REQ-068-002 Support named months and weekdays (JAN-DEC, SUN-SAT), case-insensitive |
orchestrata_ultimate/tools/schedule_cron_tool CronExpression L338orchestrata_ultimate/tools/schedule_cron_tool _parse_field L286orchestrata_ultimate/tools/schedule_cron_tool _resolve_token L276+1 more |
none |
REQ-068-003 Validate expression syntax before scheduling (validate_cron_expression) |
orchestrata_ultimate/tools/schedule_cron_tool CronExpression L338orchestrata_ultimate/tools/schedule_cron_tool validate_cron_expression L1138 |
none |
REQ-068-004 Support extended 6-field format with seconds, and L/W/# special characters — MVP... |
orchestrata_ultimate/tools/schedule_cron_tool CronParseError L125 |
none |
REQ-068-005 Accept IANA timezone database names (e.g. America/New_York) via stdlib zoneinfo |
orchestrata_ultimate/tools/schedule_cron_tool JobScheduleResult L250orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronTool L794orchestrata_ultimate/tools/schedule_cron_tool schedule_job L872 |
none |
REQ-068-006 Store all timestamps in UTC internally; job-timezone wall-clock fields are only used... |
none | none |
REQ-068-007 Handle DST transitions automatically (search is carried out in the job's local... |
orchestrata_ultimate/tools/schedule_cron_tool CronExpression L338orchestrata_ultimate/tools/schedule_cron_tool next_fire_time L402 |
none |
REQ-068-008 Support UTC offset notation (e.g. +05:30) as a timezone value — not implemented;... |
none | none |
REQ-068-009 Persist job definitions across restarts — via Redis (ScheduleCronStore), not SQLite... |
orchestrata_ultimate/tools/schedule_cron_tool CronJob L204orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronStore L506orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronTool L794+10 more |
none |
REQ-068-010 Maintain execution history — per-job and global Redis sorted sets of execution records |
orchestrata_ultimate/tools/schedule_cron_tool JobExecution L233orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronStore L506orchestrata_ultimate/tools/schedule_cron_tool _exec_all_key L541+6 more |
none |
REQ-068-011 Support job import/export — not implemented; out of MVP scope |
none | none |
REQ-068-012 miss_policy is stored on every job so a future recovery daemon has the bookkeeping... |
orchestrata_ultimate/tools/schedule_cron_tool MissedJobPolicy L169 |
none |
REQ-068-EXT-001 Detect missed executions on startup and apply the recovery policy automatically —... |
none | none |
REQ-068-013 Acquire a distributed lock (Redis SET NX EX) before execution when... |
orchestrata_ultimate/tools/schedule_cron_tool ConcurrencyPolicy L179orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronStore L506orchestrata_ultimate/tools/schedule_cron_tool _lock_key L545+3 more |
none |
REQ-068-014 Lock has a TTL equal to timeout_seconds, so a stuck/crashed holder's lock... |
orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronStore L506orchestrata_ultimate/tools/schedule_cron_tool _lock_key L545orchestrata_ultimate/tools/schedule_cron_tool get_job_status L1056+2 more |
none |
REQ-068-EXT-002 True FIFO queue concurrency semantics — not implemented: ALLOW and QUEUE... |
none | none |
REQ-068-015 Execute jobs asynchronously via asyncio.create_subprocess_shell |
orchestrata_ultimate/tools/schedule_cron_tool JobStatus L189orchestrata_ultimate/tools/schedule_cron_tool _run_command_once L1162orchestrata_ultimate/tools/schedule_cron_tool run_job_now L1206 |
none |
REQ-068-016 Support timeout enforcement (asyncio.wait_for + subprocess kill on expiry) and... |
orchestrata_ultimate/tools/schedule_cron_tool JobExecutionResult L261orchestrata_ultimate/tools/schedule_cron_tool _run_command_once L1162orchestrata_ultimate/tools/schedule_cron_tool run_job_now L1206 |
none |
REQ-068-017 Handle execution errors gracefully (non-zero exit, COMMAND_NOT_FOUND, timeout)... |
orchestrata_ultimate/tools/schedule_cron_tool JobExecution L233orchestrata_ultimate/tools/schedule_cron_tool JobExecutionResult L261orchestrata_ultimate/tools/schedule_cron_tool _run_command_once L1162+1 more |
none |
REQ-068-EXT-003 Exponential backoff option — not implemented; delay is fixed per spec's... |
none | none |
REQ-068-019 List jobs with enabled_only/tags/limit filters |
orchestrata_ultimate/tools/schedule_cron_tool CronJob L204orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronTool L794orchestrata_ultimate/tools/schedule_cron_tool find_by_name L582+2 more |
none |
REQ-068-020 Update job configuration (update_job), re-validating cron expression/timezone and... |
orchestrata_ultimate/tools/schedule_cron_tool CronJob L204orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronError L148orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronErrorCode L130+2 more |
none |
REQ-068-021 Pause/resume jobs (disable/enable without removing) |
orchestrata_ultimate/tools/schedule_cron_tool CronJob L204orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronErrorCode L130orchestrata_ultimate/tools/schedule_cron_tool _set_enabled L1086+2 more |
none |
REQ-068-022 Delete (unschedule_job) a job and its execution history |
orchestrata_ultimate/tools/schedule_cron_tool CronJob L204orchestrata_ultimate/tools/schedule_cron_tool ScheduleCronErrorCode L130orchestrata_ultimate/tools/schedule_cron_tool delete_all_executions_for_job L628+2 more |
none |
REQ-068-023 Manual trigger support (run_job_now, with a force override for disabled jobs /... |
orchestrata_ultimate/tools/schedule_cron_tool run_job_now L1206 |
none |
REQ-068-024 Cancel a running job (cancel_job) — in-process only: cancels the... |
orchestrata_ultimate/tools/schedule_cron_tool cancel_job L1323 |
none |
REQ-068-025 get_next_runs computes the next N upcoming fire times |
orchestrata_ultimate/tools/schedule_cron_tool get_next_runs L1114orchestrata_ultimate/tools/schedule_cron_tool next_fire_time L402 |
none |
REQ-068-026 get_execution_history with job_id/status/limit filters |
orchestrata_ultimate/tools/schedule_cron_tool _execution_public_dict L716orchestrata_ultimate/tools/schedule_cron_tool _hydrate L603orchestrata_ultimate/tools/schedule_cron_tool get_execution_history L1356+2 more |
none |
REQ-068-027 clear_history deletes execution records older than a cutoff (older_than_days),... |
orchestrata_ultimate/tools/schedule_cron_tool clear_history L1375orchestrata_ultimate/tools/schedule_cron_tool delete_executions_older_than L641 |
none |
REQ-068-028 Bulk operations across multiple jobs in one call — not implemented; out of MVP scope |
none | none |