GC
Cookbook / Scheduled Code ReviewMenu
6 min read·Updated 2026-04-10

Scheduled Code Review

Daily unattended code review: custom skill + Auto Mode goal + cron schedule. Verify with Run now, iterate on the skill.

What you will build

This recipe wires a recurring, unattended code review: every morning the agent pulls the last day of commits from a repository, reviews them against a custom skill, and writes a summary to workspace/reviews/. The Scheduler triggers the goal; Auto Mode drives the task loop; the diary carries context between runs.

You should already be comfortable with Auto Mode and skills. This recipe does not re-explain how goals, tasks, or the diary work.

Prerequisites

  • GolemCore Bot is running and the dashboard is reachable.
  • At least one coding-tier model is configured in preferences/model-router.json.
  • The repository you want to review is either cloned into the sandbox or reachable via the GitHub MCP skill (see the GitHub MCP recipe).
  • Auto Mode is enabled in preferences/runtime-config.json.

1. Create the review skill

The skill is what makes the review consistent across runs. It pins the tier to coding, names the review output location, and describes what to check.

workspace/skills/daily-review/SKILL.md
yaml
---
name: daily-review
description: Review commits from the last 24 hours for bugs and style issues
tier: coding
---

Review the commits landed in the target repository in the last 24 hours.
For each commit:
  - Summarize the intent in one line.
  - Flag logic errors, missing edge cases, and obvious regressions.
  - Note style violations only if they change readability.
  - Suggest a concrete improvement when you flag something.

Write the output to workspace/reviews/YYYY-MM-DD.md using that date
format. Include a short "No issues" section if nothing needs attention —
never skip writing the file.
Verify the skill is on disk
bash
docker exec golemcore-bot ls /app/workspace/skills/daily-review/
Example output
text
SKILL.md

2. Create the goal and schedule

Open Scheduler in the dashboard and create a goal. The goal owns the task list and the diary; the schedule only decides when the goal advances.

  1. Click New goal. Title: Daily review of alexk-dev/golemcore-bot.
  2. Set the skill to daily-review. The goal will activate this skill on every run.
  3. Plan three tasks: fetch recent commits, review each commit, write the summary file. Auto Mode will walk them in order each trigger.
  4. Add a cron trigger. 0 9 * * *fires every day at 09:00 in the runtime container's timezone.
Scheduler confirmation
text
Goal: Daily review of alexk-dev/golemcore-bot
Skill: daily-review
Tasks: 3 pending
Next trigger: 2026-04-11 09:00 UTC

3. Trigger the first run and verify

Do not wait a day to see if it worked. Use the Run now button on the schedule to trigger the goal immediately. The Sessions page shows the goal activating, each task progressing, and the skill being applied.

Tail the runtime logs while it runs
bash
docker logs -f golemcore-bot | grep -E "goal|task|daily-review"
Example output
text
[auto-mode] goal=daily-review-1 starting trigger=manual
[auto-mode] task=fetch-commits state=IN_PROGRESS
[auto-mode] task=fetch-commits state=COMPLETED
[auto-mode] task=review-commits state=IN_PROGRESS
[skill] activating daily-review tier=coding
[auto-mode] task=review-commits state=COMPLETED
[auto-mode] task=write-summary state=COMPLETED
[auto-mode] goal=daily-review-1 idle next=2026-04-11T09:00Z
Inspect the review that was written
bash
docker exec golemcore-bot cat /app/workspace/reviews/2026-04-10.md | head -n 20

4. Check the output and tune

The review is rarely perfect on the first iteration. Look at the diary to see what the agent noticed, and adjust the skill instructions — not the task list — when the output drifts.

Read the diary

Open Sessions → the daily-review goal → Diary. The diary accumulates across runs and is how the agent carries context forward.

Inspect

Tune the skill, not the tasks

Edit workspace/skills/daily-review/SKILL.md on disk, or through Settings → Skills. Changes take effect on the next trigger without restarting the runtime.

Adjust

Check write permissions

If the output file is missing, check that the sandbox volume is mounted and that write_file is enabled in preferences/tools.json.

Verify

Variants

Local-only repository

Point the skill at workspace/projects/<repo>/ instead of GitHub. The review becomes a local git log walk — no token, no MCP.

No GitHub

Review several times a day

Swap the cron to 0 */4 * * * for a four-hour cadence. Raise startup_timeout on the skill if the review runs long.

Cadence

Deeper review tier

Set the skill tier to deep for slower, higher-reasoning reviews. Expect longer runs and higher token spend; track usage in Settings → Usage.

Quality

Mail or webhook the summary

Add a second task that mails the summary via the Mail plugin, or sends it to a webhook. Keeps the review visible without opening the dashboard.

Delivery

Gotchas

Goal never advances

Check: Sessions → goal → Tasks. If every task is still PENDING, the trigger did not fire. Fix: confirm the cron expression and that the scheduler is enabled in Settings → Scheduler.

no run

Skill does not activate

Check: Logs for [skill] activating daily-review. If missing, the skill name in the goal does not match the SKILL.md name field. Fix: rename one to match the other exactly.

skill

Summary file never updates

Check: the last review file's date. If the file never changes, the task that writes it is skipping. Fix: make sure the instructions explicitly say 'never skip writing the file' — models will otherwise omit an empty report.

output

Token spend grows unbounded

Check: Settings → Usage for the goal's token spend. If it spikes, the skill is pulling too much context per run. Fix: add a hard limit in the SKILL.md instructions (e.g., 'review at most 20 commits per run').

cost

What to do next