Skip to content
Back to skills

Harness Methodology Openspec

ASecurity

Install and initialize OpenSpec (Fission-AI/OpenSpec) for one repo or an entire se-harness workspace, gated on methodology:openspec actually being selected — setup only, /harness-goal drives the actual propose/archive lifecycle.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 7, 2026
ai-agentsgonodegit

Works with

  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 7, 2026

npx -y skills add rbhattarai/se-harness --skill harness-methodology-openspec --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Harness Methodology Openspec?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Harness Methodology Openspec
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rbhattarai-harness-methodology-openspec/badge)](https://www.skillsdirectory.com/skills/rbhattarai-harness-methodology-openspec)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: harness-methodology-openspec
description: Install and initialize OpenSpec (Fission-AI/OpenSpec) for one repo or an entire se-harness workspace, gated on methodology:openspec actually being selected — setup only, /harness-goal drives the actual propose/archive lifecycle.
---


# /harness-methodology-openspec — OpenSpec setup

Get [OpenSpec](https://github.com/Fission-AI/OpenSpec) installed and initialized wherever
`methodology: openspec` was actually chosen. **Setup only** — it never runs `/opsx:propose`,
`/opsx:apply`, or `/opsx:archive` itself; `/harness-goal` steps 3 and 10 do that, as part of
driving an actual goal, not as a standalone action here.

## Step 1 — Scope

1. **Single repo** (`$ARGUMENTS` has a `repo_name`): process that one only. Validate against
   `workspace.yaml`'s `units:` or `repos.txt` and resolve its path beneath the workspace root.
2. **No repo given**: look for `workspace.yaml` or `repos.txt`. If found, ask whether to
   process every unit listed there, name one, or stop — don't infer consent from silence. If
   neither file exists, this is a single, non-workspace repo: process it alone.
3. Use the workspace root resolved from `workspace.yaml`/`repos.txt`, not wherever the plugin
   itself is installed.
4. Skip any unit whose directory doesn't exist and report it. Never clone anything.

## Step 2 — Confirm OpenSpec is actually the chosen methodology, then install it

Never install or initialize OpenSpec for a unit that didn't choose it:

1. Check `workspace.yaml`'s `shared.methodology` and the target unit's `.harness/profile.yaml`
   `methodology` field for `openspec`. An explicit different choice recorded in that unit's own
   `profile.yaml` (a documented deviation, per `/harness-init` Step 4) overrides an inherited
   workspace default — skip that unit unless the user explicitly selects OpenSpec for it in
   this invocation.
2. If OpenSpec wasn't selected anywhere relevant, ask before installing or initializing it for
   this invocation. If declined, stop.
3. If the `openspec` CLI already runs (`openspec --version`), reuse it — don't reinstall.
4. If it needs installing: check **Node 20+** first (`node --version`). Missing or below 20 →
   ask the user to install/upgrade it themselves and stop this run until they confirm it's
   ready. **Never install Node yourself.** Then:
   `npm install -g @fission-ai/openspec@latest` (confirm with the user first — third-party
   code). A Homebrew alternative (`brew install openspec`) exists on macOS/Linux if the user
   prefers it; ask which, don't assume.
5. Verify `openspec --version` before processing any unit.
6. For each unit:
   - **No `openspec/` directory yet**: run `openspec init` in that unit. This registers the
     `/opsx:*` slash commands for whichever client surface this session is running in — don't
     assume a fixed install path for those command files; `/harness-goal` discovers them by
     search when it actually needs one, not here.
   - **`openspec/` already exists**: run `openspec update` instead, to refresh the installed
     agent instructions/slash commands to the current OpenSpec version. Never re-run `init`
     over an existing setup — report what `update` changed, if anything.
7. Record a successful install in that unit's `.harness/agentstack.lock` (`components`): name
   `openspec`, source `Fission-AI/OpenSpec (npm: @fission-ai/openspec)`, installed version,
   install method, today's date, status `installed`. Never flip a prior `declined` status
   without the user's explicit choice in this invocation.

## Step 3 — Report

Per unit: already-installed vs newly-installed vs newly-updated, installed version, whether
`openspec init`/`update` reported any errors. Call out every skipped unit (didn't choose
OpenSpec, or declined) explicitly. Close with: OpenSpec is ready for `/harness-goal` to use on
the next goal for each unit listed as installed — nothing further to run here.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.