← ClaudeAtlas

doctrine-panelisted

Use when the user asks you to pop a pane, ssh into a box, log into a router or switch, get onto a console, or tail or monitor a log while you work — any interactive terminal session they want to watch live and be able to take over. Not for automated work, which stays on its MCP server or a plain command.
scottcrosby-securebine/doctrine-skills · ★ 0 · AI & Automation · score 70
Install: claude install-skill scottcrosby-securebine/doctrine-skills
# doctrine-pane An interactive terminal session in a herdr pane, so the user sees exactly what you see and can take the keyboard whenever they want it. This skill does **not** require the `doctrine` hub. You are usually invoked mid-task, and loading the whole posture to run two commands would be wrong. A doctrine run may still reach for this skill; `doctrine-debug` names it. ## When this fires, and when it does not **Interactive → a pane. Automated → whatever the project already uses.** That split is the user's and it is not yours to re-decide. A bulk read you were not asked to watch belongs on an MCP server or a script, because parsed output is what makes many results comparable. If the user asks to see the connects, that is a request and it gets panes. **The axis is the request, never the shape of the work**: ten devices you were asked to watch is ten sessions, and one device you were not is still a script. A pane is for the session a human wants to watch or join. **Never open a pane the user did not ask for.** There is no heuristic here and there should not be: "pop a pane" is a request, and everything else is not. Two kinds, and only one has any state: - **Session** — a login you may drive and the user may take over. - **Monitor** — a stream beside the work, `docker logs -f` or a firewall tail. You never write to it. The user interrupts it the way they interrupt any terminal, by typing in it. ## The launcher `node <plugin-root>/hooks/dctr-pane.mjs`, two directo