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>
Tested Claude Opus 4.5 on btop and GitHub screenshots.
Findings: excellent text/state/layout, approximate coordinates.
Recommendation: hybrid AT-SPI + vision approach.
Current simpler approach working well:
- Skills as standalone entrypoints
- Agent judgment sufficient for invocation
- Molecules not actively used
Revisit when complex orchestration is needed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ADR-002: Skill manifest format with JSON Schema, path bases, preconditions
- ADR-003: Versioning with Nix store paths, lockfiles, interface contracts
- ADR-004: Trace security with HMAC redaction, entropy detection, trace modes
Refined based on orch consensus feedback from GPT and Gemini.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove 2>&1 from nix build capture. When repo is dirty, nix emits
warnings to stderr which were being merged into $out and used as
symlink targets, creating broken symlinks like:
orch -> warning: Git tree '...' is dirty\n/nix/store/...
Now stderr goes to terminal, only stdout (store path) captured.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds Vale discovery, spin-off decision, migration details,
and updated session metrics to the design session worklog.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Code review found upstream STATIC_DATA.md was better quality despite
being 5 lines shorter. Added comprehensive session worklog.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Includes:
- New 'web-search' skill
- New 'web-research' skill with multi-backend support (claude, llm, kagi)
- Automated deployment in bin/deploy-skill.sh
- Sops-nix integration for Kagi API key
- Documentation updates