POs write intent
GitLab Issues hold the task, acceptance criteria, discussion, and final status.
Gridly routes backlog work from GitLab into versioned process definitions and worker environments. Agents can do the toil; developers keep the specs, review, and delivery value under control.
Use it for toil, tech debt, tests, integrations, migrations, reviews of stale code, or any backlog item that has a clear spec and a repeatable process.
GitLab Issues hold the task, acceptance criteria, discussion, and final status.
Gridly YAML describes which agentic work can run and under what conditions.
Workers run OpenCode jobs while people keep review, merge, and product judgement.
GitLab describes what should happen. Gridly master YAML describes the process. Worker YAML describes where it can run. OpenCode executes and writes the result back.

Issues carry the work description, acceptance notes, labels, comments, and human decisions.
The server config maps labels to job profiles: image, model, prompt, match rules, timeout.
The worker config defines runtime, workspace, network ports, labels, and available capacity.
The worker runs the job, streams logs, returns a result, and GitLab remains the review surface.
The agent does bounded work. Gridly records state. Humans decide what ships.

Every team has important work that customers do not see directly: dependency updates, security checks, docs, test coverage, refactoring, and cleanup. Product teams know it matters, but roadmap work usually wins.
Use placeholders here only. Store real tokens in your shell, secret store, or ignored local config. Never commit them.
git clone https://gitlab.com/openforge/gridly-scheduler.git
cd gridly-scheduler
go build -o bin/gridly ./cmd/gridly
export GITLAB_TOKEN="glpat-your-token"
export GRIDLY_WORKER_JOIN_TOKEN="replace-with-worker-join-token"
./bin/gridly serve -c gridly-server.yaml
./bin/gridly worker run --daemon -c gridly-worker.yaml
Real secrets belong outside Git and outside screenshots.