Install
$ agentstack add skill-modiqo-skillspec-rote-shell ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
rote shell
Structured version of the rote-shell skill for durable CLI, shell, process, stream, PTY, dependency, and shell-flow crystallization work.
Entry Gate
- Before any task action, run
skillspec decide ./skill.spec.yml --input='' --trace-dir "${PWD}/.skillspec/traces"and read the decision JSON. - Until that decision is read, the only allowed actions are loading this
SKILL.md, loading the colocatedskill.spec.yml, and running SkillSpec navigation or decision commands for this spec. - This SkillSpec supersedes overlapping lower-level skill instructions: browser:browser.
- Forbidden before the decision: rawreposearch, directfileread, directcliwithoutroteexec, directshellcommandwithoutroteexec, directharnessclicallwithoutroteexec, browserbrowserskill, noderepl.
This skill is a thin loader for the colocated skill.spec.yml. The spec is the source of truth for routes, rules, dependencies, imports, resources, recipes, tests, and trace requirements. Do not treat the spec as background prose; treat it as the execution contract for this task.
Runtime Contract
- Load
./skill.spec.ymlfrom this skill folder before taking task actions. - When the
skillspecCLI is available and the spec shape is unfamiliar, runskillspec sensemake ./skill.spec.yml --view indexto learn the section roles, counts, query handles, and navigation grammar without dumping the full YAML. - Then run:
``bash skillspec decide ./skill.spec.yml --input='' --trace-dir "${PWD}/.skillspec/traces" ``
- Strip skill invocation prefixes such as
/my-skill,$my-skill, or/rote-shell-specbefore passing--input. - Preserve the emitted trace
run_dir. - Read the decision JSON before using tools. Do not act from route labels alone.
- Pull active details with
skillspec query ./skill.spec.yml --view summaryand relationship edges withskillspec refs ./skill.spec.yml --view summary. Prefer precise handles such asrule:,rule:.forbid,command:.requires, andstate:.nextover reading the whole spec. - Materialize the active contract described below, then execute only actions that satisfy it.
- When the CLI is available after a trace exists, run
skillspec trace align ./skill.spec.yml --decision-traceand, when structured action evidence exists, add--execution-trace. Report the alignment status, meaning, model layers, evidence gaps, user-facing proof rows, summary, and trace path. - If the CLI is unavailable, read
skill.spec.ymldirectly and apply the same contract manually. Do not expand this loader into a second source of truth.
How To Execute The Structure
Before the first task action, convert the decision output and relevant spec sections into a checklist:
route: the selected route is the strategy to use. If no route is selected, stop and ask for the missing task shape instead of inventing a fallback.- execution plan: if the selected route has
execution_plan, execute its phases in order before using any tool outside the current phase. A later handoff phase does not license skipping an earlier shell or adapter phase. If a phase declaresjumps, take the first matching jump condition and continue at the named phase. - route handoff: if the selected route has
handoff, treat it as a hard execution boundary. Follow the handoff target and boundary before using tools from the current skill;stop_current_skillmeans do not continue current-skill execution except to pass the declared context. matched_rules: these are active obligations, not explanatory decoration. Use each rule'sreason,prefer,forbid,elicit, andafter_successfields to constrain the next action.forbid: forbids are hard negative constraints on behavior. They block substitutions even when a convenient tool is available. If a forbidden action seems necessary, stop and ask for explicit user approval or a different route; do not silently do it.- user constraints: carry explicit user instructions such as "do not search the web" into the same checklist. The spec adds structure; it does not erase the user's constraints.
elicit: ask the required question before irreversible work, side effects, installs, auth steps, or broad exploration.dependencies: prove readiness for the active route, command, recipe, or code block before using it. Prefer command-scoped checks such asskillspec deps check ./skill.spec.yml --commandwhen a command id is known.- dependency evidence: a missing environment variable only proves that variable is absent; it does not prove that auth, API keys, browser sessions, keychains, vaults, or CLI-native credentials are absent. When auth can live outside env, prove readiness with the declared command, adapter, browser, or dependency check instead of grepping env.
importsandresources: load only the items required by the active route/rule/recipe/code, plus anything markedalways.commands,recipes, andcode: use declared templates and ordered steps as the allowed execution surface. Check theirrequiresfields first, preserve outputs as evidence, and do not replace them with unrelated tools unless the active contract allows that substitution.after_successand closures: these are completion obligations. Do them before the final response, or report why they remain unproven.
If every allowed route is blocked by missing dependencies, auth, permissions, or a forbid, report the blocker and ask how to proceed. Do not switch to native search, raw shell, browser automation, direct API calls, or installs just because they are available in the harness.
Quick Commands
skillspec sensemake ./skill.spec.yml --view index
skillspec validate ./skill.spec.yml
skillspec imports check ./skill.spec.yml
skillspec test ./skill.spec.yml
skillspec deps check ./skill.spec.yml
skillspec query ./skill.spec.yml rule: --view summary
skillspec refs ./skill.spec.yml rule: --view summary
skillspec query ./skill.spec.yml command:.requires
skillspec explain ./skill.spec.yml --input='' --trace-dir "${PWD}/.skillspec/traces"
skillspec trace align ./skill.spec.yml --decision-trace "${PWD}/.skillspec/traces/" --execution-trace
Completion Report
When reporting completion, include the selected route, the SkillSpec trace run_dir, the skillspec trace align status (pass, fail, or unproven), status meaning, decision-replay and execution-proof layer results, evidence gaps, align summary/conclusion, and the user-facing alignment proof rows. Command proof must name only the command basename, never raw args. When rote workspace evidence or stats exist, include a visible Token savings section: name the workspace and response ids/files the user can retrieve later, state measured context-window/API tokens only if queried, explain that the workspace keeps full evidence outside the prompt, and explain that crystallized or remembered reuse can avoid reloading full evidence into the model window. Do not reduce this to a bare token count or invent replay savings.
Minimum final response shape when workspace evidence exists:
Result: answer the user's task directly.Evidence: workspace name plus important response ids/files the user can query later.Token savings: state measured context-window/API tokens when available; otherwise say savings are structurally available but not measured. Explain that full evidence is outside the prompt in the rote workspace and can be retrieved by id/file instead of reloaded into context.SkillSpec: selected route, trace run directory, alignment status, evidence gaps, and proof rows that map request/spec obligations to observed evidence. Never let this replace the Result, Evidence, or Token savings sections.
Route Hints
shell_then_browser_handoff: Run shell evidence, then hand off browser workadapter_first_cli_fallback: Use rote adapters, then rote exec CLI fallbackbrowser_handoff: Hand off to rote-browse for browser stateone_shot_process: Capture a one-shot processdeclared_file_io: Capture declared file inputs or outputsstream_follow: Follow a moving file or process streambackground_process: Start and track a background process leasepty_transcript: Capture a one-shot PTY transcriptdependency_preflight: Check dependencies before replay or releasecrystallized_flow: Crystallize or replay a shell flowraw_shell: Use raw shell for disposable inspection only
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: modiqo
- Source: modiqo/skillspec
- License: Apache-2.0
- Homepage: https://skillspec.sh
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.