| name | auto-ralph-submit |
| description | Non-interactive submission to ralph-o-matic with sensible defaults — pre-flight checks, auto-commit, auto-push, and Teams notification |
Auto Ralph Submit
You are submitting work to ralph-o-matic for iterative refinement with zero user interaction. This skill expects a RALPH.md file to already exist in the repository root (generated by auto-ralph-prep or plan-to-ralph).
Arguments
Parse the following from the user's command or calling skill:
--priority LEVEL: Job priority — high, normal, low (default: high)
--max-iterations N: Max ralph passes (default: 1000)
--local: Use local repo directory (default: true)
--slug SLUG: Feature slug for notification messages (optional)
Workflow
Execute these steps in order. Do not ask for user input at any point.
Step 1: Validate RALPH.md Exists
Check for RALPH.md in the repository root. If missing, send a Teams notification and stop:
ralph-o-matic notify --message "Pipeline failed: RALPH.md not found in $(git remote get-url origin) on branch $(git branch --show-current). Run /auto-ralph-prep first."
Step 2: Pre-flight Checks
Run these checks before submission:
-
Working tree clean — if uncommitted changes exist, stage and commit them:
git add -A
git commit -m "chore: pre-ralph cleanup"
-
Branch pushed to origin — push if the branch isn't tracked remotely or has unpushed commits:
BRANCH=$(git branch --show-current)
git push -u origin "$BRANCH"
-
Server reachable — check with ralph-o-matic status. If unreachable, notify Teams and stop.
-
Branch not already in queue — check via the API. If already queued, notify Teams and stop.
Step 3: Detect Local Mode
Read the configured server URL from ralph-o-matic config. If the server is localhost/127.0.0.1 and --local was not explicitly set to false, use local mode:
LOCAL_DIR=$(git rev-parse --show-toplevel)
If the server is NOT local, skip local mode — remote servers can't access local paths.
Step 4: Submit
ralph-o-matic submit \
--priority {PRIORITY} \
--max-iterations {MAX_ITERATIONS} \
${LOCAL_DIR:+--working-dir "$LOCAL_DIR"}
Capture the job ID from the output.
Step 5: Notify Teams
ralph-o-matic notify --message "Ralph started for {SLUG} on branch {BRANCH} — Job #{JOB_ID}, {MAX_ITERATIONS} max passes. Dashboard: {SERVER_URL}/jobs/{JOB_ID}"
Step 6: Report
Output to the user/calling skill:
Submitted to Ralph-o-matic:
Job ID: #{JOB_ID}
Branch: {BRANCH}
Priority: {PRIORITY}
Max Iterations: {MAX_ITERATIONS}
Mode: {local repo | cloned workspace}
Dashboard: {SERVER_URL}/jobs/{JOB_ID}
Error Handling
On ANY failure:
- Send Teams notification with error details via
ralph-o-matic notify
- Output the error
- Stop — do not retry