Agent Plugins Marketplace
← All plugins

harness-ops

v3.8.10

Claude Code operations: audit-skill-visibility (skills the listing budget hides), inventory (all commands, skills, agents, tools, plugins), audit-install-state (~/.claude), audit-performance (slowness), audit-native-overlap (skills duplicating built-ins), observability (telemetry), known-issues (Claude bugs, status), changelog, prerequisites, check, machine-profile, plugins (update the fleet), morning-brief, lanes (background loop sessions), setup. Plus opt-in hook event logs.

Claude Code15 Skills

By Melodic SoftwareLicense: MIT21 GitHub starsUpdated 2 days ago

Directory evidence

Runtimes
Claude Code
Parsed components
15 skill or MCP entries
Source updated
Oct 4, 2026
Manifest status
Canonical path parsed

The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →

Install harness-ops for Claude Code

Installs for the current user
claude plugin marketplace add IchenDEV/agent-plugin-mkt
claude plugin marketplace update agent-plugin-marketplace
claude plugin install harness-ops@agent-plugin-marketplace

Paste and run these commands in a terminal with Claude Code. They add and refresh the PluginsMP catalog, then install this plugin.

The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.

Get the source manually
git clone https://github.com/melodic-software/claude-code-plugins

Clone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is plugins/harness-ops/.

Plugin files

plugins/harness-ops/
├── .claude-plugin/plugin.json
├── skills/audit-install-state/SKILL.md
├── skills/audit-native-overlap/SKILL.md
├── skills/audit-performance/SKILL.md
├── skills/audit-skill-visibility/SKILL.md
├── skills/changelog/SKILL.md
├── skills/check/SKILL.md
├── skills/inventory/SKILL.md
├── skills/known-issues/SKILL.md
├── skills/lanes/SKILL.md
├── skills/machine-profile/SKILL.md
├── skills/morning-brief/SKILL.md
├── skills/observability/SKILL.md
├── skills/plugins/SKILL.md
├── skills/prerequisites/SKILL.md
└── skills/setup/SKILL.md

Included Skills15

audit-install-stateskills/audit-install-state/SKILL.md

Read-only audit of `~/.claude` and `~/.claude.json`: the deep inventory of unmanaged files. Use when: 'audit my .claude folder', 'what is in my ~/.claude', 'why is my Claude Code install so big', 'is anything stale in my Claude directory', 'does Claude Code clean up after itself', 'check cleanupPeriodDays', 'is this lock file dead', 'tidy my Claude Code install'. Deleting: /disk-hygiene:clean.

audit-native-overlapskills/audit-native-overlap/SKILL.md

Find where this repo's skills and agents duplicate a native Claude Code surface. Read-only unless `apply` bakes an approved reference. Enumerating what is invocable: /harness-ops:inventory. Use when: 'does this skill duplicate a built-in', 'what does Claude Code already ship for this', 'audit native overlap', 'is our install-state audit the same as /doctor', 'refresh the native-surfaces registry', 'bake the native reference into this skill', 'which of our skills overlap bundled skills'.

audit-performanceskills/audit-performance/SKILL.md

Slowness diagnostic that never 'fixes', run before restarting or deleting: version, retention sweep, install bloat, hook/subagent fan-out, kernel-leak census. Use when: 'Claude Code is slow', 'typing lags', 'my machine freezes when Claude runs', 'audit performance', 'why is this session sluggish', 'diagnose Claude slowness before I nuke anything', 'my hooks are slowing everything down', 'too many subagents'. Upstream bugs: /harness-ops:known-issues. Stale files: /harness-ops:audit-install-state.

audit-skill-visibilityskills/audit-skill-visibility/SKILL.md

When the built-in skill-doctor command resolves in this session, prefer it for cost; this skill for unseen ones. Use when: 'why do I never use most of my skills', 'why does Claude never suggest this skill', 'are my skill descriptions being dropped', 'is my skill listing over budget', 'which skills can the model actually see', 'which skills are starved', 'I have too many skills to know when to use them', 'audit skill visibility'.

changelogskills/changelog/SKILL.md

Ingest Claude Code changelog entries and integrate them into the current repo. Fetch (read-only display), diff (impact analysis over a release range, no edits), status (read marker, default range, replay cap), and apply (executes the decisions in scope one PR per owner plugin and hands larger ones off as work items, explicit user intent only). Use when: 'new cc version', 'what changed in claude code', 'apply changelog', a new CC release is mentioned, or the user pastes changelog text.

checkskills/check/SKILL.md

Read-only check that node and jq resolve for the harness-ops hooks. Use when a hook notice says node or jq is missing, or before assuming harness-ops hooks ran. Does not install.

inventoryskills/inventory/SKILL.md

List every Claude Code surface this machine can invoke: built-in commands, subagents, tools, bundled skills and workflows, and installed plugin components. Use when: 'what slash commands do I have', 'list all my skills', 'what agents are available', 'show me every plugin component', 'what does Claude Code ship built-in', 'is /foo a real command', 'what changed after the update', 'what does marketplace X give me'. On-disk audit: /harness-ops:audit-install-state.

known-issuesskills/known-issues/SKILL.md

Looks up and tracks known Claude product issues. Searches known GitHub bugs, checks service health and model quality, and maintains a persistent registry of tracked issues. Use when: 'is this broken', 'known CC bugs', 'troubleshoot Claude Code', 'any workarounds', 'feature behaves unexpectedly', 'scan repo for issues', 'file a bug'. Actions: status (default), search FEATURE, check-all, scan, list, quality, create.

lanesskills/lanes/SKILL.md

Start, restart, stop, and check loop lanes as named background Claude Code sessions seeded from canonical prompt files, the scripted replacement for the manual morning refresh (cancel loop, clear, re-paste the canonical prompt) across N lanes on a machine. `start`/`restart` first pull the repo and refresh the plugin marketplace, then launch each configured lane with its per-lane model/effort. `consume-restarts` reads each configured lane's telemetry `restart_request` and relaunches the stopped lanes that asked, the scheduled headless reader. Use when: 'launch my lanes', 'restart the loop lanes', 'start the work lanes', 'morning lane refresh', 'stop a lane', 'which lanes are running', 'lane status', 'consume restart requests', 'lane restart consumer', 'relaunch the lanes that asked'. Mutating and operator-initiated; never touches a session whose name is not a configured lane.

machine-profileskills/machine-profile/SKILL.md

Discovers this machine's facts and identity domains, stores them as a re-runnable profile, and reports drift between the stored profile and the host now. Read-only unless the operator confirms a write. Use when: 'machine profile', 'profile this machine', 'what does this host have configured', 'has this machine changed', 'diff my machine profile', 'which identity domains exist here', 'hand my machine facts to setup'. Never installs and never reapplies a stored value on its own.

morning-briefskills/morning-brief/SKILL.md

Prints the operator's read-only morning view of the current GitHub repo in one pass: open counts per queue label, merge-ready PRs, parked decisions with their RECOMMENDED lines, and loop-lane telemetry freshness. Use when: 'morning brief', 'morning view', 'ops dashboard', 'what needs attention', 'daily standup view', 'operator morning pass', 'queues and merge-ready'. Never mutates issues, PRs, labels, or comments.

observabilityskills/observability/SKILL.md

When the bundled explain-usage skill resolves in this session, prefer it for a plain-language breakdown of this session's tokens; this skill for cross-session trends, cost, hooks, and the local telemetry stores (OTEL DuckDB, hook event log, ccusage). Use when: 'claude observability', 'OTEL', 'token burn rate', 'hook latency', 'cost breakdown', 'how am I doing', 'what did this session do', 'which hooks fired', 'compare two sessions'; read-only except the explicit clean action.

pluginsskills/plugins/SKILL.md

Bring a machine's plugin fleet current on demand: marketplace refresh, update the plugins that actually load (including in-repo project/local-scope installs), install new catalog plugins per policy, detect scope divergence, and surface (never silently fix) drift, with a terse actionable report; refuses to downgrade by default. Actions: sync (default, mutating), audit (read-only dry run), converge (explicit scope consolidation). Use when: 'sync plugins', 'update my plugins', 'are my plugins current', 'check plugin drift', 'converge plugin scopes', or before relying on a plugin that might be stale.

prerequisitesskills/prerequisites/SKILL.md

Read-only report of external tools the enabled plugin fleet declares, and which of them are missing. Use when a hook says a formatter or CLI is missing, or when asking whether this machine has what the enabled plugins need. Never installs.

setupskills/setup/SKILL.md

Verify harness-ops's personal path configuration for this repository (where the known-issues registry, the skill-usage log and the per-session hook event log resolve), check the self-ignoring guard on the hook log root, check that node and jq resolve for the hooks, detect retired conventions, and explain how to change the options through Claude Code. Use when: 'set up harness-ops', 'configure harness-ops', 'harness-ops setup', 'where does the known-issues registry live', 'where is skill usage logged', 'set up hook logging', 'where does the hook event log live', or 'turn on session event logging'. check (read-only, default) verifies and reports; apply writes exactly one file, the guard inside the hook log root, and runs the gated retired-convention cleanup. Every option itself is reconfigured through Claude Code, never by this skill. Re-runnable and safe.

Plugin manifests1

plugins/harness-ops/.claude-plugin/plugin.json
{
  "name": "harness-ops",
  "version": "3.8.10",
  "description": "Claude Code operations: audit-skill-visibility (skills the listing budget hides), inventory (all commands, skills, agents, tools, plugins), audit-install-state (~/.claude), audit-performance (slowness), audit-native-overlap (skills duplicating built-ins), observability (telemetry), known-issues (Claude bugs, status), changelog, prerequisites, check, machine-profile, plugins (update the fleet), morning-brief, lanes (background loop sessions), setup. Plus opt-in hook event logs.",
  "author": {
    "name": "Melodic Software",
    "email": "[email protected]"
  },
  "license": "MIT",
  "keywords": [
    "claude-code",
    "operations",
    "observability",
    "otel",
    "troubleshooting",
    "changelog",
    "monitoring",
    "hooks",
    "telemetry",
    "audit",
    "plugins",
    "marketplace",
    "dashboard",
    "performance",
    "diagnostics"
  ],
  "userConfig": {
    "registry_dir": {
      "type": "string",
      "title": "Known-issues registry directory",
      "description": "Project-relative directory holding the known-issues registry (registry.json). Leave unset to keep the registry in the plugin data directory, ${CLAUDE_PLUGIN_DATA}. Absolute, drive, UNC, traversal, and escaping-symlink paths are invalid."
    },
    "install_new": {
      "type": "string",
      "title": "New-plugin install policy",
      "description": "What the plugins skill's sync action does with catalog plugins not yet installed. ask (default) offers them in one batched multi-select prompt, then installs and enables each pick, including one the CLI installs disabled; all installs every one automatically; none reports them and never installs.",
      "default": "ask",
      "options": [
        "ask",
        "all",
        "none"
      ]
    },
    "skill_usage_audit_enabled": {
      "type": "boolean",
      "title": "Skill-usage-audit hook",
      "description": "Emits telemetry on skill usage, on by default. Shared by both skill-usage audit hooks (the Skill-tool and slash-command expansion paths), and also gates the shared skill-usage.jsonl store.",
      "default": true
    },
    "skill_usage_scope": {
      "type": "string",
      "title": "Skill-usage log scope",
      "description": "Where the skill-usage store lives. repo (default) keeps it in the project tree, out of git status via a machine-local .git/info/exclude entry; user puts the skill_usage_dir subpath under $HOME as one cross-repo store; data-dir uses ${CLAUDE_PLUGIN_DATA}/skill-usage/<repo-slug>.",
      "default": "repo",
      "options": [
        "repo",
        "user",
        "data-dir"
      ]
    },
    "skill_usage_dir": {
      "type": "string",
      "title": "Skill-usage log directory",
      "description": "Relative directory where the skill-usage-audit hooks write skill-usage.jsonl, under the skill_usage_scope root (repo: the project root; user: $HOME). Leave unset to use .claude/observability. The data-dir scope ignores it. Absolute, drive, UNC, traversal, and escaping-symlink paths are invalid."
    },
    "skill_usage_git_exclude": {
      "type": "boolean",
      "title": "Git exclude for the repo-scope store",
      "description": "Adds the repo-scope store's directory to .git/info/exclude when it sits inside a git work tree, so git status stays clean. On by default; machine-local, and never touches .gitignore or tracked files. Set false if your team deliberately commits the telemetry.",
      "default": true
    },
    "api_error_audit_enabled": {
      "type": "boolean",
      "title": "API-error-audit hook",
      "description": "Emits turn-failure telemetry on API errors. On by default.",
      "default": true
    },
    "config_change_audit_enabled": {
      "type": "boolean",
      "title": "Config-change-audit hook",
      "description": "Emits telemetry on config-source mutations. On by default.",
      "default": true
    },
    "instructions_loaded_audit_enabled": {
      "type": "boolean",
      "title": "Instructions-loaded-audit hook",
      "description": "Emits telemetry on rule and instruction file loads. On by default.",
      "default": true
    },
    "instructions_loaded_audit_log_session_start": {
      "type": "boolean",
      "title": "Session-start instruction-load logging",
      "description": "Makes the instructions-loaded-audit hook log session_start instruction loads. Off by default, because those loads are deterministic and high-volume.",
      "default": false
    },
    "permission_denied_audit_enabled": {
      "type": "boolean",
      "title": "Permission-denied-audit hook",
      "description": "Emits telemetry on permission denials. On by default.",
      "default": true
    },
    "pre_compact_audit_enabled": {
      "type": "boolean",
      "title": "Pre-compact-audit hook",
      "description": "Emits telemetry on context-compaction events. On by default.",
      "default": true
    },
    "tool_failure_audit_enabled": {
      "type": "boolean",
      "title": "Tool-failure-audit hook",
      "description": "Emits telemetry on Write, Edit, and Bash tool failures. On by default.",
      "default": true
    },
    "hook_failure_audit_enabled": {
      "type": "boolean",
      "title": "Hook-failure-audit hook",
      "description": "Warns once per session per hook when the transcript records hook launch or exec failures Claude Code never surfaced. On by default.",
      "default": true
    },
    "session_event_log_enabled": {
      "type": "boolean",
      "title": "Session-event-log hook",
      "description": "Appends one JSON line per hook event to <session_event_log_dir>/sessions/<session_id>.jsonl, on every event the generated registry marks observable. Off by default; while off, the only cost is reading this switch. It also gates the SessionEnd retention hook.",
      "default": false
    },
    "session_event_log_dir": {
      "type": "string",
      "title": "Hook log root directory",
      "description": "Project-relative directory holding the per-session hook event log (sessions/) and the telemetry sink's hook-events.jsonl. Default .observability/claude. Absolute, drive, UNC, traversal and escaping paths are invalid, and the project root itself is refused.",
      "default": ".observability/claude"
    },
    "session_event_log_categories": {
      "type": "string",
      "title": "Session-event-log categories",
      "description": "Comma-separated event categories to record (session, prompt, tool, permission, agent, task, turn, config, worktree, compaction, model, mcp, display, other). Empty, the default, records every category the registry marks observable.",
      "default": ""
    },
    "session_event_log_content": {
      "type": "boolean",
      "title": "Session-event-log content fields",
      "description": "Also records each event's top-level content strings (prompt, last_assistant_message, message, task text, error and the like) in the session event log; content the 64 KB read cap cuts is marked truncated. Off by default; has no effect while session_event_log_enabled is off.",
      "default": false
    },
    "session_log_keep_sessions": {
      "type": "number",
      "title": "Session files to keep",
      "description": "At SessionEnd, keeps the newest N session files regardless of age; default 30. A file is kept when it is among the newest N OR younger than session_log_keep_days.",
      "default": 30,
      "min": 1
    },
    "session_log_keep_days": {
      "type": "number",
      "title": "Session file retention (days)",
      "description": "At SessionEnd, keeps every session file younger than N days regardless of count; default 14. A file is kept when it is younger than N days OR among the newest session_log_keep_sessions.",
      "default": 14,
      "min": 1
    },
    "session_log_pre_prune_command": {
      "type": "string",
      "title": "Pre-prune command",
      "description": "Command run detached at SessionEnd with one argument: a directory holding the session files about to be pruned, deleted on the next retention run after 24 hours. Leave unset to delete directly. Runs through bash -c, so only your own user settings can supply it.",
      "default": ""
    },
    "hook_events_max_bytes": {
      "type": "number",
      "title": "Hook events file size cap (bytes)",
      "description": "Size at which the telemetry sink rotates the shared hook-events.jsonl to hook-events.jsonl.1, replacing any older .1, so the pair stays near twice this value. Default 10485760. Applies whether or not the per-session event log is on.",
      "default": 10485760,
      "min": 1
    },
    "stdin_read_timeout": {
      "type": "number",
      "title": "Hook stdin read timeout (seconds)",
      "description": "Idle bound on reading the hook payload from stdin: how long the pipe may go silent before the hook gives up and fails open. Default 2.",
      "default": 2,
      "min": 1
    }
  }
}

If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.

[harness-ops on Agent Plugins Marketplace](https://pluginsmp.com/plugins/harness-ops)