jules-orchestrator-discipline
Six hard-won orchestrator rules for dispatching, watching, and harvesting Google Jules sessions — derived from the 2026-05-17 silent-fail incidents.
Skill by netzkontrast
Chalk Labs
Need help deploying jules-orchestrator-discipline?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/netzkontrast-jules-orchestrator-discipline
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: research, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/jules-orchestrator-discipline
What's inside
- Skill name
jules-orchestrator-discipline- Description
- Six hard-won orchestrator rules for dispatching, watching, and harvesting Google Jules sessions — derived from the 2026-05-17 silent-fail incidents. Use when the user says "dispatch Jules", "Jules session", "fan out specs", "orchestrate Jules", "Jules COMPLETED", "verify branch on remote", or "Codex bot review", or whenever a fresh Claude Code session begins coordinating any Jules-side work for `the-agency-system`.
- License
- MIT
- Instructions
- 123 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
## The rule (one sentence)
When you orchestrate Jules, verify every COMPLETED state on the remote
*before* trusting it, and never burn a third session on a spec that has
silently failed twice.
## Why this exists
On 2026-05-17 a single orchestration session burned ~15 Jules slots
because the model trusted the `COMPLETED` lifecycle event without
checking whether a branch actually landed on `origin`. The Jules backend
has a real silent-fail mode (see `Plan/JULES_PROTOCOL.md §8`) — the
session reports COMPLETED, the sandbox `git status` is clean, but no
branch ever materialises on the remote. Re-dispatching a fresh session
for the same spec wastes quota; the work already exists on the original
session's API record and only needs extraction.
This skill encodes the six rules so any future session inherits them
without having to re-learn the lesson.
## The six rules
1. **Verify before trust.** After every Jules `COMPLETED`, confirm the
branch exists on `origin` BEFORE acting on the state:
```bash
git ls-remote origin | grep <sid-or-branch-fragment>
```
If the branch is missing, the session silently failed. Recover via
`tools/jules-patch-extract.py <sid>` (see the
`silent-fail-recovery` skill). NEVER re-dispatch a fresh Jules
session on the same spec for the same work.
2. **2 silent-fails → switch.** If two Jules sessions on the same spec
end in silent-fail, do NOT dispatch a third. Spawn a local subagent
(Agent tool) and have it apply the API-extracted patch instead. The
third Jules slot will almost certainly fail the same way and the
quota is more valuable elsewhere.
3. **Patches > 2 KB never `head`/`grep`/`cat`-ed.** Always go through
`tools/jules-patch-extract.py` — it writes the patch to
`/tmp/jules-patches/<sid>-out{i}.patch` and emits only
`{bytes, files, first_files[]}` stats. See the
`context-safe-patch-handling` skill for the rationale.
4. **Wrap every `mcp__github__pull_request_read` in a focused subagent.**
The main thread must never page through PR bodies — they routinely
exceed 20 KB and pollute context. Dispatch a subagent whose only job
is to read the PR and return a structured summary. Spec 106
documents the permanent fix; until it ships, wrap manually.
5. **Wait for Codex bot review before merging non-trivial PRs.** On
2026-05-17 the Codex bot caught 7 P1s that the spec-writing subagent
missed. Non-trivial = touches >3 files OR changes any plugin
surface (skills, MCP, hooks, manifests). Trivial doc/config tweaks
may merge without waiting.
6. **`git rebase origin/Master` before publishing a PR.** Stale
merge-base produces phantom-files in the diff — files the PR did
not actually change appear as deletions. Rebase first, then
`git push --force-with-lease`. The default branch is `Master`
(capitalised); PRs targeting `main` are rejected with HTTP 422.
## Red flags
| Symptom | What it means | Action |
|---|---|---|
| `jules_get` returns `COMPLETED` but `git ls-remote` shows no branch | Silent-fail (Rule 1) | Run `tools/jules-patch-extract.py <sid>` |
| Two sessions on the same spec both silent-failed | Spec or backend is hostile (Rule 2) | Stop. Dispatch a local subagent. |
| About to `cat` a `.patch` file from `/tmp/jules-patches/` | Context poisoning risk (Rule 3) | Stop. Use the extractor's stats output instead. |
| Main thread is calling `mcp__github__pull_request_read` directly | Context bloat (Rule 4) | Wrap the call in a subagent via Agent tool. |
| PR has no `@codex` review yet, planning to merge | Quality regression risk (Rule 5) | Wait for the review unless the diff is trivial. |
| PR diff shows files you didn't touch | Stale base (Rule 6) | `git rebase origin/Master` + `git push --force-with-lease` |
| Creating a PR with `base: main` | Wrong default branch | Use `base: Master`. |
## Decision flow
```
Jules session reports COMPLETED
│
▼
git ls-remote origin | grep <sid>
│
┌────┴────┐
│ │
branch branch
present missing
│ │
│ ▼
│ tools/jules-patch-extract.py <sid>
│ │
│ ▼
│ Was this the 2nd silent-fail on this spec?
│ │
│ ┌───┴───┐
│ │ │
│ yes no
│ │ │
│ ▼ ▼
│ local apply patch,
│ subagent push, open PR
│ │ │
▼ ▼ ▼
rebase origin/Master
│
▼
wait for Codex review (if non-trivial)
│
▼
merge
```
## References
- `Plan/JULES_PROTOCOL.md §8` — canonical recovery flow for silent-fail
- `Plan/_session-state/2026-05-18-next-session-goal.md` — origin of these
six rules (the lessons-learned section)
- `skills/agentic/silent-fail-recovery/SKILL.md` — the recovery runbook
- `skills/agentic/context-safe-patch-handling/SKILL.md` — extractor usage
- `tools/jules-patch-extract.py` — the extractor script itselfFrom netzkontrast/agency, MIT.
More from netzkontrast/agency
- 0.479score
loop-library
netzkontrast
Discover, find, compare, audit, repair, adapt, and design repeatable AI-agent loops with explicit triggers, actions, verification, stopping conditions…
SkillCFreshness: CClaude Code +9 - 0.474score
silent-fail-recovery
netzkontrast
Deterministic recovery for Jules sessions that reach COMPLETED state without producing a remote branch (the "silent-fail" bug).
SkillCFreshness: CClaude Code +9 - 0.474score
context-safe-patch-handling
netzkontrast
Never echo a Jules patch body into the orchestrator's context — always route through `tools/jules-patch-extract.py` which writes the patch to…
SkillCFreshness: CClaude Code +9 - 0.474score
ponytail
netzkontrast
Use when building or reviewing agency's frugal discipline (Spec 332) or multi-agent self-installer (Spec 333), or when you want the minimal-code "lazy senior…
SkillCFreshness: CClaude Code +9 - 0.471score
jules-orchestrator
netzkontrast
Delegates long-running codebase tasks (refactors, multi-file edits, test generation, feature implementation, automated PR creation) to the Google Jules…
SkillCFreshness: CClaude Code +9 - 0.471score
orchestrate
netzkontrast
Run a Jules session through its full lifecycle — dispatch, plan approval, monitor, verify, integrate — driven by the jules-row state machine.
SkillCFreshness: CClaude Code +9 - 0.469score
research
netzkontrast
Research a topic and return findings as a tool-result envelope.
SkillCFreshness: CClaude Code +9 - 0.469score
recover
netzkontrast
Recover a silent-failed Jules session — extract its patch metadata into the ontology and (optionally) apply it locally.
SkillCFreshness: CClaude Code +9 - 0.467score
music-clipboard
netzkontrast
Copies track content (lyrics, style prompts, streaming lyrics) to the system clipboard.
SkillCFreshness: CClaude Code +9 - 0.467score
music-document-hunter
netzkontrast
Searches and retrieves documents from free public sources using automated browser navigation.
SkillCFreshness: CClaude Code +9 - 0.467score
music-cloud-uploader
netzkontrast
Uploads promo videos and content to Cloudflare R2 or AWS S3.
SkillCFreshness: CClaude Code +9 - 0.467score
music-album-conceptualizer
netzkontrast
Designs album concepts, tracklist architecture, and thematic planning through 7 structured phases.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 8, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/netzkontrast/agency
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from netzkontrast
- 0.479score
loop-library
netzkontrast
Discover, find, compare, audit, repair, adapt, and design repeatable AI-agent loops with explicit triggers, actions, verification, stopping conditions…
SkillCFreshness: CClaude Code +9 - 0.474score
silent-fail-recovery
netzkontrast
Deterministic recovery for Jules sessions that reach COMPLETED state without producing a remote branch (the "silent-fail" bug).
SkillCFreshness: CClaude Code +9 - 0.474score
context-safe-patch-handling
netzkontrast
Never echo a Jules patch body into the orchestrator's context — always route through `tools/jules-patch-extract.py` which writes the patch to…
SkillCFreshness: CClaude Code +9 - 0.474score
ponytail
netzkontrast
Use when building or reviewing agency's frugal discipline (Spec 332) or multi-agent self-installer (Spec 333), or when you want the minimal-code "lazy senior…
SkillCFreshness: CClaude Code +9 - 0.471score
orchestrate
netzkontrast
Run a Jules session through its full lifecycle — dispatch, plan approval, monitor, verify, integrate — driven by the jules-row state machine.
SkillCFreshness: CClaude Code +9 - 0.471score
jules-orchestrator
netzkontrast
Delegates long-running codebase tasks (refactors, multi-file edits, test generation, feature implementation, automated PR creation) to the Google Jules…
SkillCFreshness: CClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get jules-orchestrator-discipline running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
jules-orchestrator-discipline skill. Agent Mart. https://agentmart.dev/skills/netzkontrast-jules-orchestrator-discipline (last updated 2026-10-24)