Reusable personal agent workflow tooling for repositories that use globally installed agent skills and GitHub Issues.
ralph/ralph.sh- an execution-only Agent Queue runner.ralph/PROMPT.md- the shared prompt used by Ralph work sessions.ralph/init.sh- a plan-then-apply onboarding script for new or existing repositories.ralph/github-blockers.sh- audits, syncs, and checks real GitHub blocked-by relationships.ralph/templates/docs/agents/*- repo-local documentation templates consumed by global skills and Ralph.skills/*- reusable personal skills that can be installed globally by symlink.
Planning and triage are manual, maintainer-triggered steps:
/prototypeanswers unclear product, UI, state, or integration questions with throwaway spikes before work is committed to issues./handoffcompacts a long planning, debugging, or prototyping session so a fresh agent can continue with context./to-prdcreates PRD issues./to-issuescreates vertical-slice implementation issues./triageevaluates readiness and applies triage labels.
Ralph starts after triage. It only consumes issues already marked ready-for-agent. It also treats GitHub's issue dependency graph as the canonical blocker source: issues with open blockedBy dependencies are not eligible for execution.
If upstream skills create issues with ready-for-agent-triage, treat that as a planning/triage queue label. It does not make an issue eligible for Ralph until the repository's triage labels map the issue to ready-for-agent.
Reference: Skills Changelog: /handoff, /prototype, /review and /writing.
From the target repository:
~/Code/GitHub/zainfathoni/agent-workflows/ralph/init.shTo apply without the interactive confirmation:
~/Code/GitHub/zainfathoni/agent-workflows/ralph/init.sh --yesIf the repository uses a GitHub Project dashboard, pass it explicitly:
~/Code/GitHub/zainfathoni/agent-workflows/ralph/init.sh --project-owner zainfathoni --project-number 6The init script creates or updates repo-local docs/agents/*, creates missing canonical labels, and creates local-only Ralph symlinks ignored through .git/info/exclude.
After onboarding, run from the target repository:
./ralph.shDebug resolved configuration without invoking an agent:
./ralph.sh --dry-runRun exactly one iteration:
./ralph.sh 1Force one issue while still validating all Agent Queue rules:
RALPH_ISSUE=168 ./ralph.sh 1Markdown Blocked by: #123 lines are documentation only. GitHub's real issue dependency graph is the canonical blocker source. Use the helper to audit or repair repositories where markdown blockers may not have matching GitHub relationships:
~/Code/GitHub/zainfathoni/agent-workflows/ralph/github-blockers.sh audit --repo OWNER/REPO --state all
~/Code/GitHub/zainfathoni/agent-workflows/ralph/github-blockers.sh sync --repo OWNER/REPO --state allBefore Ralph claims work, it must verify the selected issue has no open real blockers:
~/Code/GitHub/zainfathoni/agent-workflows/ralph/github-blockers.sh check-issue --repo OWNER/REPO --issue 168Common overrides:
RALPH_WORKSPACE- target repository path.RALPH_REPO- GitHub repository, such asOWNER/REPO.RALPH_PROJECT_OWNER- GitHub Project owner when a Project is configured.RALPH_PROJECT_NUMBER- GitHub Project number when a Project is configured.RALPH_RUNNER-opencodeorclaude.RALPH_MODEL- optional runner model override.RALPH_ISSUE- optional forced issue number, still validated by the prompt.RALPH_NOTE- runtime note appended to the prompt.RALPH_BRANCH_PREFIX- issue branch prefix, defaultagent/issue-.RALPH_AUTO_APPROVE- default1; set0to avoid permission auto-approval.RALPH_DRY_RUN- default0; set1to print resolved config and exit before invoking an agent.RALPH_PRINT_CONFIG_ONLY- default0; set1to print resolved config and exit before invoking an agent.
When present, docs/agents/ralph.md supplies default values for RALPH_REPO, RALPH_PROJECT_OWNER, RALPH_PROJECT_NUMBER, and RALPH_BRANCH_PREFIX. Environment variables override those repo-local defaults.
Each onboarded repository should commit:
docs/agents/issue-tracker.mddocs/agents/triage-labels.mddocs/agents/domain.mddocs/agents/ralph.md
These files adapt the global skills and shared Ralph runner to the local repository. They are not an issue tracker or backlog.
~/Code/GitHub/zainfathoni/agent-workflows/skills/install.shBy default this symlinks shared skills into ~/.agents/skills. Set AGENT_SKILLS_DIR to install somewhere else.