CODE CHANGES
Dreams
Task prompt in. Draft PR out. You merge.
User task prompt → Claude-generated unified diff → human approval → draft PR on the target repo. Never auto-merges. Never touches CI/CD, secrets, lockfiles, or Dockerfiles.
Why Dreams exists
Forge tells you what's wrong. Dreams proposes fixes. Given a task prompt + a repo, it calls Claude to produce a unified diff, shows it for review, and — once approved — opens a draft PR with a markdown proposal the human applies. Never auto-merges.
Routines
What Dreams does every cycle.
Validate + generate
Prompt + repo_url + branch + optional file_scope. Input-path guardrails block CI/CD, secrets, lockfiles, infra, Dockerfiles.
Output-path guardrail
Server checks Claude's generated paths, not just user input — blocks off-limits files even if the prompt was clean.
Draft PR
Creates branch, commits the markdown proposal, opens a draft PR on the target repo. User applies diffs manually before merging.
Session audit
dreams_sessions table records every run — prompt, repo, outcome. Full audit trail.
DATA SOURCES
- →User-supplied task prompt (≤2000 chars)
- →User-supplied repo URL + target branch + optional file-scope glob
- →GitHub API (via user's OAuth token, scoped write)
MODEL USE
MODELS.generate (Sonnet) — single-call, no multi-turn
WHAT IT EMITS
- →Draft PRs on the target repo
- →Session records in dreams_sessions
The rest of the team