surface-regimes
Skill1 starsChanged 19 days agoApache-2.0View on GitHub
Detect the session's regime (interactive, autonomous or programmatic) from its capabilities and adjust working-preferences and document rules. Trigger on Cowork, Routine, headless, Agent SDK, raw API, CLI/IDE agents or a regime field.
In this repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/agents.mdcCursor rule
- commandsSkill
- daily-dashboardSkill
- daily-reviewSkill
- document-standardsSkill
- jotSkill
- merge-proxySkill
- monthly-reviewSkill
- orientSkill
- redaction-gateSkill
- session-closeSkill
- session-logSkill
- skill-creationSkill
- skill-discoverySkill
- technical-documentsSkill
- touchSkill
- weekly-reviewSkill
- working-preferencesSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
If a capability profile is present in context, for example on an agent reference in a relay message from the multi-agent orchestration …
- Very specific: line 15
If a stated regime is present without a capability profile, use it.
- Very specific: line 16
If only a surface identifier is present, resolve it against orchestration/registry/ to get its capability profile, then derive.
- Distinctive: line 18
If inference is ambiguous, default to interactive-synchronous.
- Distinctive: line 34
Autonomous-asynchronous: No human present during execution.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Purpose
working-preferences states mechanics (Q1-3, propose-before-generating, dial baselines) as if one register fits every session. It does not, because "a human is present and can respond before the next step" is true in a chat window and false in a Routine running unattended. This skill states which mechanics apply, and at what dial setting, based on which of three regimes the current session actually runs under. It does not replace working-preferences; it sets the dial before that skill's task-specific override applies.
Regime is a property of what a session can do. Product names are a label on top of that property, so the same three regimes hold whether a session runs on Anthropic's surfaces, another vendor's, or a locally hosted model.
Regime Detection
- If a
capabilityprofile is present in context, for example on an agent reference in a relay message from the multi-agent orchestration protocol, derive the regime from it using the rule below. Authoritative, skip inference. - If a stated
regimeis present without a capability profile, use it. If both are present and disagree, the capability profile governs and the mismatch is worth surfacing rather than silently resolving. - If only a
surfaceidentifier is present, resolve it againstorchestration/registry/to get its capability profile, then derive. - Otherwise infer from session context: which interface is described in the system prompt or surrounding tooling (a chat window, a desktop agent app, a terminal or IDE coding agent, or an API call with no chat UI), whether a human can plausibly respond before the next step executes, whether the output is consumed by a program as a data contract rather than read by a person.
- If inference is ambiguous, default to interactive-synchronous. This is the safe default: it keeps every confirmation gate and dial baseline active rather than silently assuming no human is present.
The derivation rule
Three clauses, first match wins:
interfaceisprogrammaticandautonomyisnone, then programmatic-contractual.human_presenceisrequired, then interactive-synchronous.- Otherwise, autonomous-asynchronous.
The full capability vector and the evidence that this rule reproduces every row of the surface taxonomy it was extracted from live in orchestration/taxonomy.md. Treat human_presence: optional as required for gating purposes until a human's absence is actually confirmed, per step 5's default.
Three Regimes
Interactive-synchronous. A human is present for the current exchange and can respond before the next step happens. Chat, an interactive desktop agent session, an interactive terminal or IDE coding session.
Autonomous-asynchronous. No human present during execution. Output is reviewed after the fact, if at all. A delegated desktop agent run, a scheduled or event-triggered headless routine, a local unattended routine, an agent SDK loop owned by a calling application.
Programmatic-contractual. A single request and response with no chat UI, called by another program. Output is a data contract, not prose for a human reader, unless the caller's request explicitly asks for prose.
Mechanic Adjustments by Regime
| Mechanic | Interactive-synchronous | Autonomous-asynchronous | Programmatic-contractual |
| Q1-3 follow-up questions | Applies as stated in working-preferences | Suppressed; nothing present reads them mid-run | N/A, no prose output |
| Propose-before-generating | Applies as stated | Converted to a logged decision in the handoff note, not a pause | N/A |
| Dialog before large builds | Applies as stated | Front-loaded into the initiating request's parameters; no mid-run dialog is possible | Calibration lives in the request schema itself |
| AUTONOMY dial | Stated baseline, roughly 3 by default | Defaults to 8-10; overridable by an explicit instruction in the initiating request | Caller controls via request parameters |
| RIGOR dial | Stated baseline | Defaults to baseline +1 to +2; overridable by an explicit instruction in the initiating request | Caller-defined |
| Register, anti-slop rules | Applies as stated | Applies to any prose meant for later human review, handoff notes and deliverables | Doesn't apply to the contract itself; applies only if the caller separately requests prose |
| Command vocabulary | Applies as stated | Usable only by a human reviewing after the fact, not during the run | N/A |
Skill Activation by Regime
Both document skills always load together when producing a technical document. technical-documents' own trigger conditions (declared audience, document type, netadmin/DevOps/DevSecOps register) decide preset priority, not which surface the session runs on. document-standards is never fully displaced; it supplies the dial mechanism, Content Read step, pre-flight checklist, and generic presets that technical-documents extends rather than replaces.
| Regime | Skills active by default | Note |
| Interactive-synchronous | working-preferences; document-standards when producing a standalone document; technical-documents alongside it when a technical audience or type is declared or evident | Baseline case |
| Autonomous-asynchronous | working-preferences under autonomous-asynchronous mechanics; document-standards and technical-documents together whenever the deliverable is technical | Decisions logged, not gated |
| Programmatic-contractual | None by default | Register rules don't apply to a bare data contract; they apply to any prose the caller separately requests |
Capability modifiers within a regime
Regime sets the mechanics. Two capability fields shift the dials further inside a regime, and neither is a reason to change regime.
tool_execution: hostwithworkspace: localorremote. The session is acting on a real tree rather than producing text about one. Dials shift denser and more technical, and the stale-dependency check inworking-preferencesbecomes live rather than advisory.interface: programmaticwithautonomy: full. The domain comes from the calling application's request parameters. Preset priority is still decided bytechnical-documents' own trigger conditions rather than by the caller's declared domain alone.
Relationship to Other Skills
This skill does not claim authority over working-preferences, document-standards, or technical-documents. It sets which of their stated mechanics are live for the current regime and where a dial starts before that session's task-specific override applies. Those three remain the source of truth for what the mechanics themselves are.
Making a new skill is covered by skill-creation, and deciding whether a need justifies one, or locating an existing skill, by skill-discovery.
Multi-Agent Relay Use
Inside the orchestration protocol's relay message template, an agent reference carries a required capability profile and the regime derived from it. The handoff note template names only an agent_id and its surface, which step 3 above resolves. The regime field is stated explicitly on the wire so a receiving agent without this skill loaded still sees it, and it is derived rather than typed freely so it cannot drift from the derivation rule above.
active_skills is operator-side configuration. It names whatever behavioral configuration a given agent has loaded, in whatever form its vendor provides. An empty array is valid and expected for a vendor with no skill mechanism, and an empty array is not evidence that an agent is unconfigured.
A receiving agent that has this skill loaded can recompute the regime from the stated capability and compare it against the stated regime. A mismatch is worth surfacing, not silently trusting either side.
Failure-Mode Note
AUTONOMY and RIGOR default high under autonomous-asynchronous because a stated baseline of 3 with no human present to answer a confirmation gate produces a stall, not caution, a gate nobody can answer is not a safety mechanism. The default is not forced: an explicit instruction in the initiating request can override it downward (for example, a Routine intentionally run at low autonomy with a human reviewing every logged decision before the next step proceeds). What is not available is the silent case, an unstated baseline of 3 with nobody present to raise it when the gate stalls. Forcing with no override erased legitimate low-autonomy Routine designs; the corrected version keeps the safe default while leaving room for a deliberate, stated choice to run otherwise.
<!--
SPDX-FileCopyrightText: 2026 Aidan Naveja
SPDX-License-Identifier: Apache-2.0
-->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

