Summary
The cronJob tool is not accessible to the orchestrator or any agent that a user would naturally delegate to. Only security-audit and performance agents have it classified, meaning users cannot schedule, list, pause, resume, or trigger cron jobs through the main agent conversation.
Motivation
The cronJob tool is a built-in tool for managing scheduled cron jobs — create, list, update, pause, resume, run, remove. Users expect to be able to ask the main agent "schedule a daily backup at 2am" or "list my cron jobs." However, the orchestrator (the entry-point agent that receives user messages) does not have cronJob in its ORCHESTRATOR_TOOLS list, and no other agent type besides security-audit and performance has it in their classification.
This means the user-facing agent cannot manage cron jobs at all — a gap between the tool's existence and its accessibility.
Proposed Solution
Add cronJob to the orchestrator's tool set so the main agent can manage cron jobs directly.
File: src/tools/index.js
Add cronJob to the ORCHESTRATOR_TOOLS array (around line 148):
export const ORCHESTRATOR_TOOLS = [
"clarify",
"compactContext",
"date",
"memory",
"process",
"reflectionSessions",
"sessionSearch",
"webSearch",
"webExtract",
"scanAgents",
"sampling",
"createSkill",
"cronJob", // <-- add this
];
Also add cronJob to the TOOL_CLASSIFICATIONS for the orchestrator type:
cronJob: ["security-audit", "performance", "orchestrator"],
Alternatives Considered
- Add to all agent types — too broad; not every agent needs cron management
- Add only to
coding agent — too narrow; cron management is a general-purpose capability
- Add to
orchestrator only — the orchestrator is the user-facing agent and the natural entry point for user requests
OpenSpec Note
This project uses OpenSpec for feature development. If this request is approved, I will:
- Run
/opsx:propose to generate a full proposal with specs and tasks
- Iterate on the design before any code is written
- Follow the task-driven implementation workflow
Additional Context
cronJob requires network:outbound permission (already gated)
- The tool is already fully implemented in
src/tools/cron.js with 450+ lines of code
- Only 2 agents currently have access:
security-audit and performance
- The orchestrator has 12 tools but none for schedule management
Audit Findings (for Issue #874)
- src/tools/index.js:81 —
cronJob classified only for ["security-audit", "performance"]. Missing "orchestrator".
- src/tools/index.js:148-161 —
ORCHESTRATOR_TOOLS array does not include "cronJob".
- src/tools/cron.js:454 — Tool implementation is complete and functional; no changes needed to the tool itself.
- README.md:503 — Tool is documented in the Built-in Tools table but agent access is not specified there.
Fix Steps
- Add
cronJob to ORCHESTRATOR_TOOLS — Open src/tools/index.js and add "cronJob" to the ORCHESTRATOR_TOOLS array (line ~161).
- Add
cronJob to TOOL_CLASSIFICATIONS — Add "orchestrator" to the cronJob classification array on line 81: cronJob: ["security-audit", "performance", "orchestrator"].
- Update README.md — Add
orchestrator to the Built-in Tools table's agent access column for cronJob (if the table exists and tracks agent access).
- Write unit tests — Add tests verifying the orchestrator has access to
cronJob in tests/unit/tools_cron.test.js or a new tests/unit/tools_orchestrator.test.js.
- Verify — Run
npm run test, npm run lint, and npm run coverage to confirm no regressions.
Summary
The
cronJobtool is not accessible to the orchestrator or any agent that a user would naturally delegate to. Onlysecurity-auditandperformanceagents have it classified, meaning users cannot schedule, list, pause, resume, or trigger cron jobs through the main agent conversation.Motivation
The
cronJobtool is a built-in tool for managing scheduled cron jobs — create, list, update, pause, resume, run, remove. Users expect to be able to ask the main agent "schedule a daily backup at 2am" or "list my cron jobs." However, the orchestrator (the entry-point agent that receives user messages) does not havecronJobin itsORCHESTRATOR_TOOLSlist, and no other agent type besidessecurity-auditandperformancehas it in their classification.This means the user-facing agent cannot manage cron jobs at all — a gap between the tool's existence and its accessibility.
Proposed Solution
Add
cronJobto the orchestrator's tool set so the main agent can manage cron jobs directly.File:
src/tools/index.jsAdd
cronJobto theORCHESTRATOR_TOOLSarray (around line 148):Also add
cronJobto theTOOL_CLASSIFICATIONSfor theorchestratortype:Alternatives Considered
codingagent — too narrow; cron management is a general-purpose capabilityorchestratoronly — the orchestrator is the user-facing agent and the natural entry point for user requestsOpenSpec Note
This project uses OpenSpec for feature development. If this request is approved, I will:
/opsx:proposeto generate a full proposal with specs and tasksAdditional Context
cronJobrequiresnetwork:outboundpermission (already gated)src/tools/cron.jswith 450+ lines of codesecurity-auditandperformanceAudit Findings (for Issue #874)
cronJobclassified only for["security-audit", "performance"]. Missing"orchestrator".ORCHESTRATOR_TOOLSarray does not include"cronJob".Fix Steps
cronJobto ORCHESTRATOR_TOOLS — Opensrc/tools/index.jsand add"cronJob"to theORCHESTRATOR_TOOLSarray (line ~161).cronJobto TOOL_CLASSIFICATIONS — Add"orchestrator"to thecronJobclassification array on line 81:cronJob: ["security-audit", "performance", "orchestrator"].orchestratorto the Built-in Tools table's agent access column forcronJob(if the table exists and tracks agent access).cronJobintests/unit/tools_cron.test.jsor a newtests/unit/tools_orchestrator.test.js.npm run test,npm run lint, andnpm run coverageto confirm no regressions.