google-github-actions / google-github-actions/run-gemini-cli

Natural Language Intent Routing

Open
#216 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/workflows kind/enhancement priority/p2
Dominant language
TypeScript
Stars
2.1k
Forks
285
Avg merge
8h 8m
Merged PRs (30d)
1

Description

Problem

The current dispatcher pattern relies on slash commands (@gemini-cli /review, @gemini-cli /triage) limits the natural interaction experience:

  • Rigid syntax: Users must remember exact slash commands (/review, /triage)
  • Poor discoverability: No way to know what commands are available except by reading workflows
  • Unnatural interaction: Doesn't leverage Gemini's natural language understanding capabilities
  • Limited flexibility: Can't handle variations or synonyms (e.g., "please review this" vs "/review")
  • User friction: Have to context-switch to remember command syntax

Solution

Intent routing involves:

  • Parse natural language requests instead of requiring slash commands
  • Automatically detect intent from user requests
  • Route to appropriate workflows based on semantic understanding
  • Provide fallback handling for ambiguous requests

Here are some examples:

  • Review intent: "review", "analyze", "check", "examine", "audit"
  • Triage intent: "categorize", "label", "classify", "organize", "tag"
  • Implement intent: "fix", "update", "change", "modify", "improve"
  • General query intent: "explain", "help", "what", "how", "why"

Example

This is an example routing step:

# Example enhanced dispatcher logic
- name: 'Classify intent'
  if: |-
    ${{ !startsWith(github.event.comment.body, '@gemini-cli /') }}
  env:
    REQUEST_BODY: '${{ github.event.comment.body || github.event.review.body || github.event.issue.body }}'
  uses: 'google-github-actions/run-gemini-cli@main'
  with:
    prompt: |-
      Classify this request into one of: review, triage, invoke
      Request: "${REQUEST_BODY}"
      Return only the classification.

This would be the outcome:

❌ Before: "@gemini-cli /review focus on security"
✅ After: "@gemini-cli please review this PR for security issues"

❌ Before: "@gemini-cli /triage" 
✅ After: "@gemini-cli can you help categorize this issue?"

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing dispatcher workflows and their slash-command handling, then examine the proposed classification step using run-gemini-cli. Define how review, triage, invoke, and ambiguous requests are routed, and verify that natural-language examples work while existing slash commands remain handled appropriately.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
ai, ci-cd
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.