harness
Detect which agent harness you are running in and translate pstack's neutral operations into that harness's tools and paths.
Skill by theoklitosBam7
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/theoklitosbam7-harness
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: 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/harness
What's inside
- Skill name
harness- Description
- Detect which agent harness you are running in and translate pstack's neutral operations into that harness's tools and paths. Read before any pstack skill that spawns subagents, asks a structured question, routes models, or reads transcripts. Use for /harness, "which agents does pstack run on", or setting pstack up on a new harness.
- License
- MIT
- Instructions
- 67 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (13)
- SKILL.md
- openai.yaml · agents/
- amp.md · references/
- claude-code.md · references/
- codex.md · references/
- copilot-cli.md · references/
- crush.md · references/
- cursor.md · references/
- droid.md · references/
- gemini-cli.md · references/
- goose.md · references/
- opencode.md · references/
- pi.md · references/
SKILL.md (first lines)
# Harness pstack skills are written against a small set of neutral operations. They do not name tools or paths. This skill maps the operations onto the harness you are in right now. Every other pstack skill defers here. ## Detect once per session Run this before the first pstack operation, then keep the answer for the session. Do not re-detect per skill. 1. Environment variables first. `COPILOT_CLI=1` means GitHub Copilot CLI, adapter `copilot-cli`. `CLAUDECODE=1` means Claude Code. `OPENCODE=1` or `OPENCODE_PID` set means opencode. `AI_AGENT=pi` or `PI_CODING_AGENT=true` means pi. `CODEX_SANDBOX` set means Codex CLI, a weak signal because it only appears under sandboxing. 2. Tool fingerprints next. `AskUserQuestion` plus an `Agent` tool means Claude Code. `request_user_input` plus `update_plan` means Codex CLI. `ask_user` plus `write_todos` means Gemini CLI. A `task` tool with `subagent_type` plus `todowrite` means opencode. `AskUser` plus `TaskOutput` means Factory Droid. `delegate` plus `load` means Goose. A read-only `agent` tool plus `crush_info` means Crush. Built-in specialists named `Review`, `Search`, or `Oracle` with no markdown persona support means Amp. `AskQuestion` plus a `Task` tool means Cursor. A `task` tool plus `read_agent`, `list_agents`, and `write_agent` means GitHub Copilot CLI, adapter `copilot-cli`. 3. Still unknown after both checks: ask the user once which harness this is, then remember it. After detection, read `references/<harness>.md` from this skill and apply it for the rest of the session. ## Neutral operations - **ask-user(question, options).** One structured question, two to five options, free-form always allowed. Use it where a pstack skill says to ask with options. - **todolist(items).** A tracked task list the user can see. Update it as steps complete. - **spawn-subagent(brief, model-role, mode).** One subagent with a standalone brief. Mode is `foreground`, `background`, or `readonly`. Fan-outs spawn all subagents in one message. The model-role names a line from the model config below, or `session` for the current model. Briefs stand alone and include goal, scope, verification, and report format. - **persona(name).** pstack ships two personas, `poteto-agent` and `comment-sicko`, as markdown files in the plugin's `agents/` directory. When the harness supports custom subagent personas, install or reference them there. Otherwise paste the persona file's full text at the top of the subagent brief. - **discover-mcps.** List the MCP servers configured in this harness, so a skill can pick evidence sources. - **find-transcripts.** Locate this workspace's session transcripts on disk. - **cloud-run(brief).** Run a subagent on managed remote compute instead of this machine. Used when a skill calls for parallel isolated workers that do not need local state. ## Model roles Skills name roles, never model ids. Roles resolve in this order: 1. `~/.config/pstack/<harness>/models`, the active harness's config written by `/setup-pstack`. Replace `<harness>` with the adapter filename without `.md`, such as `pi`, `codex`, or `claude-code`. The adapter's Config section gives the exact path. One line per role, `role: model` or a comma-separated panel list. 2. The harness mirror named in the adapter. Cursor mirrors to `~/.cursor/rules/pstack-models.mdc` so the choices inject every session. 3. The adapter's defaults. Read only the active harness's config and mirror. Ignore the old shared file at `~/.config/pstack/models` and other harnesses' configs. If the active config is absent, use its mirror or adapter defaults, not the shared file. A role that resolves to nothing runs on the session model. The value `inherit-parent` or `auto` also means the session model. When a multi-model panel collapses to one model because the harness cannot spawn per-subagent models, say so in the reply. The panel still runs, sequentially if it must. Roles in use: `code`, `fast`, `judgment`, `hardest`, plus the panel roles `how explorer`, `how explainer`, `why investigators`, `why synthesizer`, `reflect tooling`, `reflect judgment`, `arena runners`, `arena cross-judge pool`, `swarm workers`, `architect runners`, `interrogate reviewers`. Legacy config lines naming playbooks, like `bug-fix` or `feature, refactoring`, map onto the matching role as the adapter notes. ## Fallback policy A missing capability never skips a step. Substitute the fallback and note it in the reply. - No subagents: do the work in the main thread, sequentially, and keep raw outputs out of the context window where the skill said to. - No per-subagent models: the session model plays every role. Panels become sequential passes with the same briefs. - No structured ask-user: ask in plain text and list the options as a markdown list. - No todo tool: keep a markdown checklist in the reply and update it in place. - No MCP discovery: name which evidence sources you could not query and proceed with the rest. - No transcripts: state the limit, then rebuild context from git history and the shared record. - No cloud runs: use local git worktrees plus background subagents. ## Installing pstack on a harness Cursor installs the plugin as usual with `/add-plugin pstack`. Every other harness in the adapters reads skills from `.agents/skills/` or `~/.agents/skills/` or both, so one copy covers them: clone or place this repository, then symlink each skill into the shared directory, from the repo root: ```bash mkdir -p ~/.agents/skills && ln -sfn "$PWD"/skills/* ~/.agents/skills/ ``` If the link command fails because the destination is an existing real directory, the shared directory already holds that name from another skills provider. `ln` replaces symlinks but never directories, so move or remove that copy first. The `$PWD` prefix matters: `ln` stores the source text verbatim as the link's target, so a relative source such as plain `skills/*` resolves against the link's own directory, not yours, and ends up dangling. Only absolute operands produce working symlinks. Keep the checkout intact. Skills reference their own files and sibling skills by relative path, so the symlinks must point into this tree rather than copying files out of it. After installation, run [setup-pstack](../setup-pstack/SKILL.md#6-write-the-config) to choose models for pstack roles and save them in `~/.config/pstack/<harness>/models`. Step 6 adds a config-reading instruction to the user-level file named in your adapter, or writes the Cursor mirror. This makes the model choices available to later sessions across projects. Skill and persona use follows the relevant skill instructions.
From theoklitosBam7/pstack-portable, MIT.
More from theoklitosBam7/pstack-portable
- 0.584score
verify-pstack
theoklitosBam7
Drive and prove pstack-portable's user-facing behavior: the ~/.agents/skills install is valid, every skill file loads cold, and the model config parses.
SkillAFreshness: A★ 1Claude Code +9 - 0.564score
architect
theoklitosBam7
Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in.
SkillAFreshness: A★ 1Claude Code +9 - 0.564score
poteto-mode
theoklitosBam7
poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work.
SkillAFreshness: A★ 1Claude Code +9 - 0.564score
interrogate
theoklitosBam7
Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart".
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
automate-me
theoklitosBam7
Use for "automate me", "create/update/refresh my -mode skill", "turn/capture my preferences or working style into a skill", or wanting agents to follow how…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
benchmark-checklist
theoklitosBam7
Vet a perf measurement (limiter, tuning, limits, errors, repeatability, relevance, and whether the work happened) before you report or act on it.
SkillAFreshness: A★ 1Claude Code +9 - 0.559score
arena
theoklitosBam7
Spawn N parallel candidates at the same task, pick a base, graft the strongest parts of the losers into it.
SkillAFreshness: A★ 1Claude Code +9 - 0.556score
no-comments
theoklitosBam7
Spawn Comment Sicko, fix accepted findings, and offer encodings for claimed constraints.
SkillAFreshness: A★ 1Claude Code +9 - 0.524score
create-verification-skill
theoklitosBam7
Generate a project-local verification skill that drives your app the way a user does — any language, framework, or platform.
SkillBFreshness: B★ 1Claude Code +9 - 0.519score
maintain-verification-skill
theoklitosBam7
Periodic pass that keeps a project's verification skill and feature map honest: parallel source readers per feature, one live session driving every feature…
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (6 days ago)
- Last release
- Sep 6, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from theoklitosBam7
- 0.584score
verify-pstack
theoklitosBam7
Drive and prove pstack-portable's user-facing behavior: the ~/.agents/skills install is valid, every skill file loads cold, and the model config parses.
SkillAFreshness: A★ 1Claude Code +9 - 0.564score
architect
theoklitosBam7
Sketch types, signatures, and module structure before code, then stay in the loop while implementation fills in.
SkillAFreshness: A★ 1Claude Code +9 - 0.564score
poteto-mode
theoklitosBam7
poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work.
SkillAFreshness: A★ 1Claude Code +9 - 0.564score
interrogate
theoklitosBam7
Use for "interrogate", "adversarial review", "multi-model review", "challenge this", "stress test this code", "find blind spots", or "tear this apart".
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
automate-me
theoklitosBam7
Use for "automate me", "create/update/refresh my -mode skill", "turn/capture my preferences or working style into a skill", or wanting agents to follow how…
SkillAFreshness: A★ 1Claude Code +9 - 0.562score
benchmark-checklist
theoklitosBam7
Vet a perf measurement (limiter, tuning, limits, errors, repeatability, relevance, and whether the work happened) before you report or act on it.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
harness skill. Agent Mart. https://agentmart.dev/skills/theoklitosbam7-harness (last updated 2026-10-24)