Skip to content

feat(council): add council core and SKILL.md#94

Open
rlaksana wants to merge 8 commits intonicobailon:mainfrom
rlaksana:feat/council-core
Open

feat(council): add council core and SKILL.md#94
rlaksana wants to merge 8 commits intonicobailon:mainfrom
rlaksana:feat/council-core

Conversation

@rlaksana
Copy link
Copy Markdown

@rlaksana rlaksana commented Apr 7, 2026

Summary

  • Add council.cjs with councilQuery() orchestrator for multi-AI parallel queries
  • Add SKILL.md documentation with usage examples
  • Supports parallel execution of ChatGPT, Gemini, and AI Mode providers
  • Automatic synthesis from priority order (chatgpt > gemini > aimode)

Changes

  • skills/surf-council/council.cjs - Core councilQuery() function
  • skills/surf-council/SKILL.md - Documentation with examples
  • skills/surf-council/recovery/zombie-detector.cjs - Zombie window detection (also committed)

Test plan

  • Syntax check passed (node -c)
  • npm run check (pre-existing type errors unrelated to this change)
  • Verified council.cjs follows existing patterns from zombie-detector.cjs

🤖 Generated with Claude Code

rlaksana and others added 8 commits March 11, 2026 14:08
- Add AIMODE support to service worker (AIMODE_EVALUATE, AIMODE_CDP_COMMAND, AIMODE_NEW_TAB, AIMODE_CLOSE_TAB)
- Add aimode-client.cjs and claude-client.cjs
- Update CLAUDE.md with missing npm scripts and troubleshooting section
- Update .gitignore to exclude Claude/FPF/experimental configs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add AIMODE handlers to COMMANDS_WITHOUT_TAB
- Change all AI clients (ChatGPT, Claude, Gemini, Perplexity, Grok, AI Studio, AIMode) to open in new window instead of new tab
- Use focused: false to prevent focus stealing
- Also fix AIMODE_NEW_TAB message type in host.cjs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allows --pro to be placed before or after the query argument
without causing "query required" error.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SURF_ERRORS object with SURF_TIMEOUT, SURF_ZOMBIE_DETECTED, SURF_NOT_RUNNING codes
- Enhance stdin "end" handler with SURF_NOT_RUNNING error hints
- Enhance server "error" handler with fixes for EADDRINUSE, EACCES
- Update cli.cjs socket error handler with SURF_NOT_RUNNING and SURF_TIMEOUT hints
- Update do-executor.cjs with actionable error messages for socket failures

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add council.cjs with councilQuery() orchestrator
- Add SKILL.md documentation with usage examples
- Supports parallel multi-provider queries
- Automatic synthesis from priority order

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix silent cleanup in chatgpt-client.cjs and aimode-client.cjs:
  replace .catch(() => {}) with .catch(e => console.error(...))
- Add chatgpt, gemini, aimode provider wrappers in skills/surf-council/providers/
- Each provider wraps surf CLI with timeout and zombie recovery

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant