Scheduled tasks gain an optional `rubric`: an acceptance checklist graded
after each run by deepagents' RubricMiddleware (LLM-as-a-judge on the
auxiliary model) with one revision retry. No `rubric` key = no-op.
- cron/schedule.py: create_schedule/run_now carry the rubric in the run
input and cron metadata only when non-blank
- middleware/scheduler.py: schedule_task gains `rubric`; list marks graded rows
- commands/implementation/schedule.py: `/schedule add ... --rubric`,
`/schedule run` forwards the stored rubric, list gets a Rubric column
- subagents/_factory.py: RubricMiddleware mounted last on the scheduler
graph so a needs_revision jump skips the memory lifecycle until the
accepted run; grader is read-only (ls + read_file, eviction off),
bounded by a 12-call budget, and gets an explicit structured-output
strategy on OpenRouter (Gemini JSON mode, Anthropic tool calling);
warns at build for anthropic/claude-fable-5.1 via OpenRouter, which
grades under neither strategy today
- tests: 17 new cases; fix two pre-existing fixture leaks (callable
backend stub in test_hitl, import-under-patch in test_async_subagent_factory)
* feat: add scheduler functionality with cron-style task management
- Implemented a new scheduler subagent to automate recurring tasks using cron expressions.
- Enhanced the subagent factory to include the skill manager and auxiliary chat model for the scheduler.
- Created a YAML configuration for the scheduler with a detailed system prompt and toolset.
- Updated README files to include documentation on scheduled tasks and usage examples.
- Added tests for the scheduler, including command execution, scheduling tools, and middleware integration.
- Introduced new dependencies for timezone handling and ensured compatibility in the project configuration.
* fix(async-notifier): ensure fallback hint is used for unknown notification kinds
* feat: enhance scheduling functionality and improve system message handling