feat(chat): run chat turns in CodeAct mode with a JS graph object model #8433
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Interactive Assistant | |
| on: | |
| issue_comment: | |
| types: [created] | |
| pull_request_review_comment: | |
| types: [created] | |
| jobs: | |
| assistant: | |
| if: | | |
| contains(github.event.comment.body, ' /oc') || | |
| startsWith(github.event.comment.body, '/oc') || | |
| contains(github.event.comment.body, ' /opencode') || | |
| startsWith(github.event.comment.body, '/opencode') | |
| runs-on: ubuntu-latest | |
| permissions: | |
| id-token: write | |
| contents: write | |
| pull-requests: write | |
| issues: write | |
| actions: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v7 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: ".nvmrc" | |
| cache: "npm" | |
| - name: Install all workspace dependencies | |
| run: npm ci | |
| env: | |
| ELECTRON_SKIP_BINARY_DOWNLOAD: "1" | |
| - name: Run Claude Code | |
| uses: anthropics/claude-code-action@v1.0.183 | |
| with: | |
| claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} | |
| additional_permissions: | | |
| actions: read | |
| claude_args: | | |
| --model claude-opus-5 | |
| --allowedTools "Bash,WebFetch,Edit,Read,Replace,CreatePullRequest" | |
| --append-system-prompt "Before finalizing any code change or PR, invoke the unslop skill (.claude/skills/unslop/SKILL.md) and apply its checklist to your diff. Strip speculative abstractions, narrating comments, defensive try/catch on trusted paths, useEffect-for-derived-data, raw MUI imports outside ui_primitives/, whole-store Zustand subscriptions, useEffect+fetch instead of useQuery, and prose throat-clearing." | |
| prompt: | | |
| # NodeTool Assistant | |
| You are an assistant for NodeTool, a React/TypeScript visual AI workflow builder. | |
| ## Project | |
| - Stack: React 18.2, TypeScript 5.7, Zustand, ReactFlow, MUI v7 | |
| - Layout: `/web` (React app), `/electron` (desktop), `/mobile` (React Native) | |
| - Backend is a separate Python repo — this repo is frontend only | |
| - Read `AGENTS.md` and `.github/copilot-instructions.md` for coding conventions | |
| ## Respond to the comment | |
| Read the issue/PR comment and do what was asked. This could be: | |
| - Answering a question about the codebase | |
| - Investigating a bug | |
| - Implementing a fix or small feature | |
| - Reviewing code | |
| ## If you make code changes | |
| 1. Keep changes minimal and focused on what was asked | |
| 2. Run `npm run typecheck && npm run lint && npm run test` — all must pass | |
| 3. Create a PR linking back to the issue/PR where `/oc` was invoked | |
| 4. Do not refactor or "improve" code beyond what was requested |