Repository navigation
feat(handoff)!: delegate to rote guidance ids instead of rote skills - #23
Merged
Merged
Conversation
roberts-pumpurs
force-pushed
the
feat/rote-guidance-ids
branch
from
October 28, 2026 08:13
8f52040 to
bdfea33
Compare
roberts-pumpurs
marked this pull request as ready for review
October 28, 2026 13:22
roberts-pumpurs
requested review from
conikeec,
debasishg and
hubertp
as code owners
October 28, 2026 13:22
hubertp
approved these changes
Oct 30, 2026
hubertp
left a comment
Contributor
There was a problem hiding this comment.
Majority of feedback was already given on the modiqo/rote side. This part looks good.
Rote removes its companion skills and the rote-onboard plugin; every
instruction is served by `rote guidance <id>`. The 13 delegated actions
now name a guidance id, the controller projects `instruction.guidance`
at a `guidance` boundary, and handoff receipts carry
`executor: {kind: guidance, id, digest}`. Explore owners map to
adapters/delegated, shell/essential, browser/essential and
workspace/essential; authentication goes to adapters/config.
Setup instructions name the single `rote` skill and
`rote guidance setup/essential` instead of the rote-onboard skills.
BREAKING CHANGE: Play needs a Rote that serves `rote guidance <id>`;
receipts with executor kind `skill` are rejected.
Rote installs the latest Play, so an older Rote can run a Play that delegates to guidance ids it does not serve. Preflight now probes `rote guidance root --json`; a failure reports `guidance_capability` and puts `rote update` first in the setup commands. DeepSeek setup installs the rote skill with the `universal` target, because the `agents-md` target refuses personal installs.
The prompt hook now adds one rote pointer line to actionable prompts, independent of published-Play discovery, and combines it with any Play suggestion. Explicit Play entries, slash commands, shell lines, and direct:/without play: bypasses get neither. SKILL.md allows rote work from the pointer without activating Play and adds rote execution, compaction, and safety rules.
roberts-pumpurs
force-pushed
the
feat/rote-guidance-ids
branch
from
October 30, 2026 13:43
55a9d44 to
1dc028c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rote is removing its 15 companion skills and the
rote-onboardplugin, so Play's 13 delegated actions, which load a rote skill by name, would hit a skill that no longer exists. The rote side is the stack https://github.com/modiqo/rote/pull/3244, https://github.com/modiqo/rote/pull/3245, https://github.com/modiqo/rote/pull/3246, and https://github.com/modiqo/rote/pull/3248; https://github.com/modiqo/rote/pull/3245 retires the skills.Before
references/controller/actions.yamlnames a skill per delegated action (specialist: rote-flow-authoring).SKILL.mdtells the agent to invokeinstruction.specialistthrough the harness skill mechanism.handoff.pyrejects any receipt whoseexecutor.kindis notskill. Setup instructions send the user to therote-onboardplugin and$rote-setup.After
guidance: play/authoring,registry/org,gate/route,adapters/config, …). The controller projectsinstruction.guidance, and the agent runsrote guidance <id>in its shell and returns the declared receipt.executor: {kind: guidance, id, digest}. Verification requires the id to equal the packet owner and asha256:digest fromrote guidance <id> --json(data.result.digest). The authentication event declaresguidance_digestfor the receipt Play builds itself.adapters/delegated,shell/essential,browser/essential,workspace/essential,play/authoring,troubleshooting/essential,registry/essential.SKILL.mdkeeps Play in charge of each delegated step: Rote documents end with## Nextgates and gate branches, and inside a Play step those are informational. The agent returns a declared event to Play and never follows a Rote gate pastcommand_policy.roteskill (rote install skill --target <harness> --personal --force) androte guidance setup/essential. When rote is not installed, they point at https://getrote.dev.direct:bypass:rote: for API, MCP, browser, registry, or automation work, run \rote guidance root` and follow it.It does not depend on identity, network, or search, and it precedes anyPlay suggestion:` line. Play is the entry point; the rote skill is explicit-only.SKILL.mdlets that pointer and rote work run without activating Play, and adds the working rules: one rote command per shell call with@@next/@@mandatoryread in full, re-read guidance after compaction, findrotevia$ROTE_BINor~/.local/binwhen it is off PATH,rote guidance root/indexoutside a Play step, and no destructive commands unless asked.rote guidance root --json. Rote installs the latest Play, so an older Rote can end up running this Play; the probe fails there, reportsguidance_capability, and putsrote updatefirst in the setup commands.Verification
rote guidance <id> --jsonreturns asha256:digest atdata.result.digestfor each.play-preflight --harness codex --jsonreportsguidance_capability: falseandrote updatewith rote 0.93.0, and is ready with the stack-tip binary.just test(733 tests) andjust checkpass.Compatibility
rote guidance <id>. Receipts withexecutor.kind: skillare rejected.BREAKING CHANGE: Play needs a Rote that serves
rote guidance <id>and delegates to guidance ids instead of rote skills; handoff receipts useexecutor.kind: guidancewith an id and digest.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.