Agent base: Albert through OpenCode in GitHub Actions, with a global queue
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 12/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- ai-infra-agents, ci-cd, devops
Research direction
This is a design-level epic: a reusable agent.yml workflow, a single-repository queue with a global concurrency lock, and ported scripts (scaffold.sh, run-opencode.sh, finalize.sh) from ocourses/agents. Start by reading the proposal and the linked ocourses/agents repository to understand the existing protocol. Done means the design decisions are settled and the listed tasks are split into smaller issues, not that the workflow is written.
Written by the indexing model from the issue text.
Description
Part of the epic on releases without a local agent. Generic: the same base would serve other recipes (for example harmonize).
Goal
A reusable way to run an agent (OpenCode with Albert) in GitHub Actions on a control-toolbox repository, with a complete trace and a global lock, as in ocourses/agents.
Proposal
- Reusable
agent.ymlin CTActions. Issue, branch, tracking file, draft PR, work, final report as a comment; the orchestration is scripts, the work is OpenCode. A role is a Markdown file (ct-agents/roles/<role>.md, with an override in the repository). - One queue, in one repository. The lock is global only if the queue workflow runs in a single repository (
concurrency: group: agent-albert-global,cancel-in-progress: false), because aworkflow_callhas a lock per calling repository. The Albert budget is per minute for the whole account, so only one agent runs at a time. The queue holds the lock for the whole run of the remote workflow. - No cron. The queue starts on
workflow_dispatchonly (releases are rare and started by a person); ocourses lost time to a scheduled workflow that never fired. - No issue per request is needed: the dispatch carries the repository and the role; the tracking issue of the work (for a release, the
[RELEASE]issue of the package) is the trace. - Secrets.
ALBERT_API_KEYand a read token for the roles, per repository if the organization secrets do not reach it. The agent job gets a read-only token for GitHub; it never holds the powers of a release.
Tasks
- Port
agent.yml,scaffold.sh,run-opencode.shandfinalize.shfrom ocourses/agents, adapted to Julia packages (no LaTeX). - The queue workflow with the global lock; a dispatch input for the repository, the role and the task.
- The base instructions injected in
AGENTS.md: the conventions pinned in the repository (AGENTS.md), English everywhere. - Token scopes of the agent job: read-only, no merge, no registration.
- Test on a harmless role (a spell-check fix, for example) before any release role.
- Document in
docs/workflows/and keep the local protocol as a fallback.
- Dominant language
- Julia
- Stars
- 1
- Forks
- 0
- Avg merge
- 1h 39m
- Merged PRs (30d)
- 45
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from control-toolbox/CTActions
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
control-toolbox/CTActions#139 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
control-toolbox/CTActions#133 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
control-toolbox/CTActions#132 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 18/100
control-toolbox/CTActions#131 ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 8/100
control-toolbox/CTActions#129 · 1 comment ·
Maintainers usually reply within 1 day
All issues in control-toolbox/CTActions
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Add project: Typst_jll.jlPossibly taken @github-actions claimed this today. Openadd-project
Difficulty 1/5 Under an hour Newbie friendliness 76/100
YDX-2147483647/best-of-typst#590 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100