OpenWriterControle/plugins
Darren Hinde 1f9f2c0571
fix(plugin): invoke hook via bash to avoid +x permission requirement (#245)
* fix(shellcheck): declare and assign separately in router.sh (SC2155)

* feat(plugin): enhance context management and skill invocation

- Update .context-manifest.json to include profile and detailed source information.
- Revise context-scout.md to clarify context root discovery and navigation.
- Modify commands to replace deprecated skills with updated ones (brainstorming → approach, systematic-debugging → debugger).
- Streamline install-context.md for clarity and remove interactive profile selection.
- Improve oac-status.md to provide a more comprehensive status report.
- Add OAC system paths to session-start.sh for better context management.
- Remove obsolete skills and improve documentation for existing commands.

* fix(plugin): fix hook JSON escaping and unconditional session firing

- Fix double-escaped skill catalogue: use $'\n' real newlines instead of
  literal \n strings so escape_for_json encodes them correctly as \n in JSON
- Fix OAC_SYSTEM_PATHS embedded raw into JSON string: build with real newlines
  and pass through escape_for_json before interpolation
- Remove SessionStart matcher so hook fires on every session start
  unconditionally (startup, resume, clear, compact and any future types)
- Remove redundant async:false field; add explicit timeout:30

* fix(plugin): add Windows hook wrapper, fix manifest check, remove bundled context

- Add run-hook.cmd polyglot wrapper for Windows compatibility — routes
  session-start through bash on Windows (Git Bash, MSYS2, Cygwin) and
  falls back silently if no bash found so plugin still loads
- Fix warning manifest check to look in correct locations: project-local
  .claude/.context-manifest.json and global ~/.claude/.context-manifest.json
  instead of the plugin root (which is never writable for marketplace users)
- Update warning message skill name: install-context -> context-setup
- Restore SessionStart matcher (startup|resume|clear|compact) for explicit
  session type filtering
- Remove bundled scripts/context/ tree (250+ files) — context is downloaded
  at runtime via /install-context, not shipped with the plugin

* fix(plugin): invoke hook via bash to avoid +x permission requirement

Plugin files installed from marketplace are copied with 644 permissions
(no execute bit). Invoking session-start.sh directly requires +x, which
fails silently. Using 'bash "${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh"'
bypasses the execute bit entirely — bash reads the file, not executes it.

- hooks.json: replace run-hook.cmd indirection with direct bash invocation
- hooks.json: add explicit timeout:30, remove async:false (default)
- Remove run-hook.cmd and extensionless session-start (no longer needed)
- Ensure session-start.sh tracked as 100644 (read-only) in git
- plugin.json: bump version 1.0.0 -> 1.0.1 so marketplace picks up changes
- plugin.json: update description to OpenAgentsControl branding
2026-02-23 14:57:46 +00:00
..
claude-code fix(plugin): invoke hook via bash to avoid +x permission requirement (#245) 2026-02-23 14:57:46 +00:00
README.md feat: Add Claude Code Plugin (BETA) (#219) 2026-02-16 10:51:41 +00:00

OpenAgents Control - IDE Plugins

This directory contains IDE-specific plugin implementations for OpenAgents Control.

Structure

plugins/
└── claude-code/          # Claude Code plugin
    ├── .claude-plugin/   # Plugin manifest
    ├── skills/           # Claude-specific skills
    ├── agents/           # Claude-specific agents
    ├── hooks/            # Event-driven automation
    ├── commands/         # Custom slash commands
    ├── context/          # Symlink to .opencode/context/
    └── README.md         # Plugin documentation

Available Plugins

Claude Code (claude-code/)

Plugin Name: oac

Installation:

# From GitHub marketplace
/plugin marketplace add darrenhinde/OpenAgentsControl
/plugin install oac

# Local testing
claude --plugin-dir ./plugins/claude-code

Features:

  • Intelligent code review with security analysis
  • TDD test generation
  • Automated documentation
  • Smart task breakdown
  • Context-aware agents

Documentation: See claude-code/README.md

Future Plugins

  • Cursor - Planned
  • Windsurf - Planned
  • VS Code - Planned

Development

Each plugin is self-contained and can be developed/tested independently.

Adding a New Plugin

  1. Create plugin directory: plugins/your-ide/
  2. Add plugin manifest (IDE-specific format)
  3. Symlink to shared context: ln -s ../../.opencode/context context
  4. Add skills/agents/commands
  5. Update .claude-plugin/marketplace.json if applicable
  6. Document in plugin's README.md

Last Updated: 2026-02-16