When Claude continues after a Stop hook block, the next Stop hook
invocation has stop_hook_active: true. Detect this and allow exit
to break the loop and prevent stack overflow crash.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change exit code to 2 (Claude Code blocking signal)
- Output JSON to stderr with decision: block and reason fields
- Add integration test harness for live Claude testing
- Update unit tests for new JSON output format
- Add hooks.json example for Stop hook
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests cover:
- All CLI commands (check, enable, approve, reject, status, list, clean)
- Exit codes (0 for allow, 1 for block)
- State file creation and JSON structure
- Session ID auto-detection from env vars
- Multiple issues in reject
- Workflow reset (re-enable after approve)
- Error handling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- CLI tool with check/enable/approve/reject/status commands
- Stop hook integration for Claude Code blocking
- Adversarial reviewer prompt template
- Dual-publish structure (SKILL.md + .claude-plugin)
- Session ID auto-detection from env vars or git state
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive comparison of Claude Code, Gemini CLI, OpenCode, and Codex:
- Hooks/lifecycle events (Claude/Gemini best, OpenCode most comprehensive)
- Subagent spawning (MCP is universal bridge)
- File access (Gemini has path restrictions - skills-bo8)
- Sandboxing (Codex has OS-level, others approval-based)
- State persistence (need external store for cross-agent)
Key finding: Orchestrator pattern works across all agents.
Stop hooks only in Claude/Gemini - others need protocol-based gates.
Closes: skills-fqu
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
alice is for reviewing AGENT work in unattended/autonomous contexts,
not code review. Key use cases:
- Autonomous runs on ops-jrz1
- CI/CD pipelines with agents
- High-stakes changes without human oversight
Added hybrid approach recommendation: use alice concepts (Stop hook,
adversarial methodology) with our infrastructure (beads, orch).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comprehensive analysis of emes idle/alice plugin:
- Hook chain (6 hooks, Stop is key blocker)
- State management via jwz (topic-based messaging)
- alice agent (read-only Opus reviewer)
- Circuit breakers against infinite loops
Conclusion: alice pattern is overkill for code-review (we ARE the
reviewer). More useful: "review reminder" hook that checks if
code-review was run before exit on significant changes.
Closes: skills-9jk
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Local (skills, dotfiles): beads + our dual-publish
Remote (ops-jrz1 VPS): tissue + emes ecosystem
They coexist by environment, not replacing each other.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Compares three approaches:
- Our system: cross-agent, Nix, lenses
- Claude plugins: official, hooks, marketplace
- emes: mechanical enforcement, tissue, idle, jwz
Living document for iterating on architecture.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Captures the decision to maintain both:
- Nix deployment (cross-agent: Gemini, OpenCode)
- Claude plugin system (hooks, marketplace)
Documents trade-offs, consequences, and mitigations.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create .claude-plugin/marketplace.json at repo root
- Register orch as first dual-publish plugin
- Update emes-conversion-guide.md to explain dual-publish pattern
- Cross-agent support (Gemini, OpenCode) via Nix
- Claude plugin system for hooks and /plugin install UX
Part of skills-6x1 (emes plugin architecture epic)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add .claude-plugin/plugin.json with metadata
- Copy SKILL.md to skills/orch.md for auto-discovery
- Keep original SKILL.md for Nix backward compat
- Add emes-conversion-guide.md documenting the pattern
Part of skills-6x1 (emes plugin architecture epic)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Tests the new worklog template with YAML frontmatter.
Documents ops-review Phase 3 completion and worklog migration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Convert template to markdown with YAML frontmatter
- Update suggest-filename.sh to output .md extension
- Update find-related-logs.sh to parse both formats (backward compat)
- Update SKILL.md references
Existing .org worklogs remain readable by find-related-logs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>