docs(agents): add gator launch skill#2203
Conversation
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
pimlock
left a comment
There was a problem hiding this comment.
🚢
Couple of nits, around how this skill would be included in the context.
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
PR Review StatusValidation: This is a concentrated repository documentation/agent-skill update for launching supervised OpenShell gator agents, so it is project-valid. Thanks @pimlock, I checked the trigger-scope and intro concerns you raised. The latest commits removed the broad gateway/model trigger wording and trimmed the extra intro, so that feedback appears addressed. Review findings:
Docs: No Fern docs navigation update is needed because this does not change user-facing CLI/API behavior. Next state: |
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>
|
|
||
| - Keep normal gator launches supervised: use `--watch --background` and let the in-sandbox supervisor own sleeping and relaunching bounded cycles. | ||
| - Do not add passive `sleep` loops in the operator session to watch gator. Check logs or status once, then report the current state or launch a proper watcher outside the model session only when explicitly asked. | ||
| - Do not use `--keep` for normal supervised gators. The launcher already keeps watch-mode sandboxes alive through the supervisor. |
There was a problem hiding this comment.
nit: I thought that --keep was deprecated / the default. Does that mean that one needs to specify --no-keep explicitly?
There was a problem hiding this comment.
Yes, it was deprecated a while ago and just got removed (#2126).
If the intention is for the sandbox to be deleted when the command exits, the --no-keep should be used.
| - Do not change the default gator model in `scripts/agents/gator/agent.yaml` for experiments. Use `CODEX_MODEL=...` and, if needed, a temporary `--from` Docker context or `--codex-bin` override. | ||
| - Do not push to contributor branches, approve, merge, post `/ok to test`, or broaden gator scope unless the operator explicitly authorized that action. | ||
| - Scope each launch prompt to the requested issue/PR set. Avoid repo-wide gator scans unless the operator asked for repo-wide processing. | ||
| - Treat `/etc/openshell/agent-payload` as immutable once a sandbox is created. After prompt/skill/runtime/image changes, delete and relaunch the affected gator instead of trying to patch files in-place. |
There was a problem hiding this comment.
Is this something that can be enforced through a policy?
There was a problem hiding this comment.
I don't think we even need this statement. I've been able to adjust a running agent by just pushing updated skills, etc if I want to update it while it's running. I don't think there's a reason for it to treat it as immutable.
There was a problem hiding this comment.
OK. If we don't think there's a reason to enforce it, then let's drop it.
|
|
||
| ### Step 5: Verify Gateway Is Registered And Alive | ||
|
|
||
| Use the target gateway, usually `docker-dev` for local gators. |
There was a problem hiding this comment.
Note: If the user is using an installed openshell, I think this is openshell and not docker-dev.
There was a problem hiding this comment.
good call. removing all the hard coded docker-dev refs so it can be dynamic
| openshell --gateway docker-dev sandbox list | ||
| ``` | ||
|
|
||
| Look for names like `gator-pr-<number>-supervised`. If one exists, inspect its log before deleting or relaunching. |
There was a problem hiding this comment.
When I was using this, my gator sandboxes were something like gator-<TIMESTAMP. There was no PR reference. How do we handle those "conflicts"?
Later in this skill we have issue-specific sandbox names. Should those be checked for conflicts too?
There was a problem hiding this comment.
I would imagine you could steer that w/ the local agent using the skill right and it's going to depend on how the local agent names sandboxes or if you want to direct it to a different naming convention. Nothing in a skill is authoritative.
There was a problem hiding this comment.
Maybe as a follow up: What's the "worst" that can happen if multiple agents are looking at the same PR/issue? Their per-sha state is local, correct.
| ```bash | ||
| issue_number="<digits-only>" | ||
| [[ "$issue_number" =~ ^[0-9]+$ ]] || { echo "invalid issue number" >&2; exit 1; } | ||
| sandbox_name="gator-issue-${issue_number}-supervised" |
There was a problem hiding this comment.
Are we concerned about conflicts for these too?
| --from "$tmp_context" \ | ||
| --watch \ | ||
| --background \ | ||
| "Review and monitor PR #${pr_number} through the gator-gate workflow. Scope this invocation only to PR #${pr_number}." |
There was a problem hiding this comment.
Question: Should the "scope this invocation only to PR ... " be the default?
Signed-off-by: John Myers <johntmyers@users.noreply.github.com>

Summary
Add a main repository skill for launching and supervising OpenShell gator agents through
scripts/agents/run.sh.Related Issue
N/A
Changes
.agents/skills/launch-openshell-gator/SKILL.mdwith preflight, launch, monitoring, restart, and troubleshooting workflows.CONTRIBUTING.mdagent skills inventory.Testing
git diff --checkpassesmise run pre-commitpassesChecklist