set-openspec-path

set-openspec-path is a skill for Claude Code, Codex from atman-33/workhub. It costs 38 tokens per session (486 once invoked), scanned A, original, MIT.

A guided way to change which project's OpenSpec folder is used by the agent. OpenSpec is a project documentation area used to provide specifications or context during a session.

In plain words
What is it for?
It is for selecting a registered project's OpenSpec directory or clearing the selection so the agent uses the current project's folder.
Why use it?
It replaces manual editing of an absolute path with a project choice and can restore the default folder in the current project.

Skill for Claude CodeCodex

Part of the engineering plugin — 21 skills, 4 agents, 3 hooks, 2 MCP servers shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/atman-33/workhub/set-openspec-path
Any agent
npx skills add atman-33/workhub --skill set-openspec-path
Clone the repo
git clone --depth 1 https://github.com/atman-33/workhub

Made for: Claude Code, Codex.

Or install engineering, the plugin that ships this one along with the rest of its 21 skills, 4 agents, 3 hooks, 2 MCP servers.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for set-openspec-path

README.md
[![agentmods](https://agentmods.dev/badge/skills/atman-33/workhub/set-openspec-path.svg)](https://agentmods.dev/skills/atman-33/workhub/set-openspec-path)
Your own site
<a href="https://agentmods.dev/skills/atman-33/workhub/set-openspec-path"><img src="https://agentmods.dev/badge/skills/atman-33/workhub/set-openspec-path.svg" alt="Measured on agentmods" height="20"></a>
Per session 38 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 486 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00038 $0.00486
Opus 5 $0.00019 $0.00243
Sonnet 5 $0.00008 $0.00097
Haiku 4.5 $0.00004 $0.00049

Measured 3d ago against content hash 57783f123ddc, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

set-openspec-path scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/engineering/skills/set-openspec-path/SKILL.md · 41 lines

What it actually says

Update openspecPath in .claude/project-context.json so the SessionStart hook injects the chosen project's openspec docs folder. This replaces hand-editing the absolute path with a menu choice.

Steps:

  1. Read .claude/project-context.json from the current project root.

    • If the file does not exist, tell the user to run setup-project-context first and stop.
    • If it cannot be parsed as JSON, show the parse error and stop.
  2. Collect the projects array (entries with a non-empty path). Present the choices to the user with AskUserQuestion:

    • One option per registered project, labelled by name (falling back to path), with the resulting <path>/openspec shown in the description.
    • Plus a "Clear (use working-dir openspec)" option that sets openspecPath to "" — the hook then falls back to <project-root>/openspec automatically.
    • If projects is empty, tell the user there are no registered projects to pick from and stop.
  3. Write the result back into .claude/project-context.json:

    • For a project choice, set openspecPath to <chosen project path>/openspec (forward slashes, no trailing slash).
    • For "Clear", set openspecPath to "".
    • Preserve every other field (roleBasedDelegation, projects, ordering, formatting) unchanged — only the openspecPath value is modified.
  4. Report the new openspecPath value and remind the user:

    • The change takes effect on the next session start/reload-plugins does not re-run SessionStart, so start a new session or /clear.
    • If the chosen project has no openspec folder, the hook automatically falls back to the working-directory openspec at injection time.
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 41 lines · 38 tokens per session scan A 57783f123ddc

Subscribe to this mod's changes

set-openspec-path is a skill published in the GitHub repository atman-33/workhub (2 stars, last pushed today), licensed MIT. It adds 38 tokens to every session and 486 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

gonavi-cli

Operate databases through the GoNavi headless CLI — the gonavi executable shipped in verified GitHub Release archives. Covers listing/adding/importing saved connections, running SQL queries against saved connections or ad-hoc connection files, exporting result sets to csv/json/md/html/xlsx, batch-executing SQL files…

Syngnat/GoNavi · 144 tokens

superbrain-distill

Internal SuperBrain skill — run by the detached capture child to distill a session-event delta into routed Obsidian notes. Not for direct user invocation.

m3talux/superbrain · 36 tokens

memory

Use this skill when Pioneer should proactively use durable memory or recalled context: decide whether memory can improve a turn, answer from remembered user/project facts, request memory tools, search/list/get stored memories, save durable preferences or project decisions, forget memories, audit or clean up memory, or…

pioneerdotai/pioneer · 64 tokens

memo-writing

How to write effective session memos — format, frontmatter schema, observation extraction, topic-signal append. Trigger on /memex:save, "save this for later", "remember this", "save what we discussed", "document this session", "create a memo", or when the [memex] activity nudge appears in context. Do NOT trigger for…

linxule/memex-plugin · 125 tokens

superbrain-recall

Search the user's SuperBrain second-brain vault. Use whenever the user references past work, prior decisions, "how did we", "did we already", earlier sessions, a project's history, or anything that may already be recorded — before answering from scratch.

m3talux/superbrain · 56 tokens

trellis-brainstorm

Guides collaborative requirements discovery before implementation. Creates task directory, seeds PRD, asks high-value questions one at a time, researches technical choices, and converges on MVP scope. Use when requirements are unclear, there are multiple valid approaches, or the user describes a new feature or complex…

fy-agent/fyagent · 65 tokens