Skip to main content

🤖 Poing AI

Documentation PyPI GitHub Actions Marketplace CI License

Poing AI is an enterprise-grade AI code reviewer, issue triager, and multi-platform dependency updater powered by Google Gemini, Ollama, and OpenAI-compatible models. Built with dedicated static-analysis analyzers for game engine plugins (Godot Engine, Unity, Unreal Engine) and multi-platform native code.

📖 Official Documentation · 🚀 Quickstart · 🏛️ Architecture


🏛️ How It Works

flowchart LR
    subgraph Input["📥 PR & Working Tree"]
        DIFF["PR Diff"]
        FILES["Full File Context"]
    end

    subgraph Intelligence["🧠 Code Intelligence RAG"]
        RAG1["Dynamic Guidelines RAG<br/><i>(AST Breadcrumbs)</i>"]
        RAG2["Test-Suite Pairing<br/><i>(Coverage Context)</i>"]
        RAG3["Symbol Impact Analysis<br/><i>(Cross-File Call Sites)</i>"]
    end

    subgraph Engine["🤖 AI Provider"]
        AI["Gemini / Ollama / OpenAI"]
    end

    subgraph Filter["🛡️ Anti-Hallucination & Memory"]
        FP1["Live GitHub API Verifier"]
        FP2["👎 Thumbs-Down Memory Filter"]
    end

    subgraph Output["📤 Review Output"]
        GH["GitHub PR Review & Line Comments"]
        RESOLVE["Auto-Resolve Fixed Threads"]
        CLI["Terminal Output"]
    end

    DIFF & FILES --> RAG1 & RAG2 & RAG3
    RAG1 & RAG2 & RAG3 --> AI
    AI --> FP1 --> FP2
    FP2 --> GH & RESOLVE & CLI

🚀 Quickstart

Option 1: GitHub Action (Automated PR Reviews)

Create .github/workflows/poing-ai.yml:

name: "Poing AI Review"

on:
  pull_request_target:
    types: [opened, ready_for_review]
  issue_comment:
    types: [created]

jobs:
  review:
    if: >
      (github.event_name == 'pull_request_target' && !github.event.pull_request.draft) ||
      (github.event_name == 'issue_comment' && github.event.issue.pull_request && (contains(github.event.comment.body, '/review') || contains(github.event.comment.body, '@poing-ai review')))
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - name: 1. Checkout Code
        uses: actions/checkout@v7
        with:
          fetch-depth: 0

      - name: Checkout PR (for /review comment trigger)
        if: github.event_name == 'issue_comment'
        run: gh pr checkout "$PR_NUMBER"
        env:
          PR_NUMBER: ${{ github.event.issue.number }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: 2. Run Poing AI
        uses: poingstudios/poing-ai@v1
        with:
          gemini-api-key: ${{ secrets.GEMINI_API_KEY }}

(Add a free GEMINI_API_KEY from Google AI Studio to your GitHub repository secrets).


Option 2: Local Terminal CLI

Install Poing AI via PyPI:

pip install --upgrade poing-ai

Run code reviews directly on your local git changes before pushing:

# Review uncommitted changes (uses free Gemini or local Ollama)
poing --local

# Review staged changes only
poing --local --staged

# Run 100% offline using a local Ollama model
poing --local --provider ollama --model deepseek-r1:latest

🤖 Option 3: 1-Click AI Setup Prompt

Click Copy below and paste it directly into Cursor, ChatGPT, Claude, or Antigravity:

Please set up Poing AI in this repository:
1. Inspect this repository to detect the project type and game engine (Godot, Unity, Unreal, or multi-platform native).
2. Create `.github/workflows/poing-ai.yml` using `poingstudios/poing-ai@v1` with `pull_request_target` (opened, ready_for_review) and `issue_comment` (/review) triggers.
3. (Optional) Create `.github/poing.json` tailored to this project's architecture and guidelines directories.
4. Remind me to configure the `GEMINI_API_KEY` repository secret (free from https://aistudio.google.com/).
5. Install the local CLI via `pip install --upgrade poing-ai` and run `poing --local` to verify.

📖 For full IDE skill files (SKILL.md / .cursor/rules/), see the AI Agent Skills Guide.


💬 PR Commands

Interact with Poing AI inside GitHub Pull Requests:

Command Description
/review Triggers a fresh, immediate code review
@poing-ai review Alternative mention to request a review

🔍 Deep Dive & Advanced Architecture

🧠 1. Code Intelligence RAG Pipeline

Poing AI incorporates a 5-pillar context retrieval architecture:

  • Hierarchical AST Markdown Breadcrumbs: Chunks guidelines while preserving structural breadcrumbs (e.g. [AGENTS.md > GDScript Rules > Type Inference]).
  • Dynamic Diff-Aware Querying: Inspects modified file extensions, paths, and language tokens to retrieve only relevant rules.
  • Test-Suite Pairing: Automatically discovers and provides matching unit test files to verify test coverage.
  • Cross-File Symbol Impact: Scans repository files for external usages and callers of functions modified in the PR.
  • Full-File Ground Truth: Passes the entire modified files to ensure the model never hallucinates missing imports or scope errors.
🎮 2. Game Engine & Ecosystem Analyzers

Poing AI includes native architectural rules for specialized ecosystems:

  • Godot Engine: Enforces := type inference, node lifecycle safety (_ready / _physics_process), signal conventions, and internal/ folder encapsulation without class_name.
  • Unity: Detects null comparison gotchas with UnityEngine.Object, GC allocations in Update(), and memory leaks with native textures/meshes.
  • Unreal Engine: Enforces UCLASS / UPROPERTY garbage collection hygiene, TArray reallocations, and Smart Pointer conventions.
  • Generic / Multi-Platform: Strict API parity validation across Android (Kotlin/JNI), iOS (Swift/Obj-C), C#, and C++.
🛡️ 3. Anti-Hallucination & Developer Feedback Loop
  • Live GitHub Release API Checking: Verifies GitHub Action tags and package versions against live GitHub APIs in real-time before flagging them as invalid.
  • Thumbs-Down Memory Filter: If a developer reacts with 👎 to a comment, Poing AI hashes and suppresses that finding across future PR reviews.
  • Automatic Thread Resolution: Automatically resolves fixed review threads via GitHub GraphQL when the issue is corrected in a subsequent commit.
📦 4. Issue Triage & Multi-Platform Dependency Sync
  • Issue & PR Triage (mode: triage): Automatically categorizes issues, assigns labels (bug, enhancement, ios, android), assigns priority, and detects duplicates.
  • Upstream Dependency Automation (mode: sync): Checks Google Maven, Maven Central, SPM, Godot Releases, Unity UPM, and NuGet, updates manifests, and generates changelogs.
⚙️ 5. Repository Configuration (`.github/poing.json`)

Customize behavior per repository with a .github/poing.json file:

{
  "provider": "gemini",
  "review": {
    "model": "gemini-3.7-flash",
    "strict_ground_truth": true,
    "rag": {
      "provider": "local",
      "guidelines_dirs": [".agents", "docs"]
    }
  },
  "triage": {
    "auto_assign_priority": true
  }
}

📖 Complete Documentation

For detailed configuration references, CLI flags, self-hosted webhooks, and AI provider setup guides:

👉 https://poingstudios.github.io/poing-ai/


📜 License

Poing AI is open-source software licensed under the Apache License 2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poing_ai-1.0.2.tar.gz (73.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poing_ai-1.0.2-py3-none-any.whl (105.5 kB view details)

Uploaded Python 3

File details

Details for the file poing_ai-1.0.2.tar.gz.

File metadata

  • Download URL: poing_ai-1.0.2.tar.gz
  • Upload date:
  • Size: 73.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for poing_ai-1.0.2.tar.gz
Algorithm Hash digest
SHA256 10b886c87e184f5a1cd201a1bb92da8d4318720647d92c8c36ebeadc9913c3ad
MD5 6d71224348e80b14729cf242f2c3bb26
BLAKE2b-256 1f9698cff8cc638f20786a5e69fe104a82fd09a495aa58a16db4d6ca3b78fb9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for poing_ai-1.0.2.tar.gz:

Publisher: publish-pypi.yml on poingstudios/poing-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file poing_ai-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: poing_ai-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 105.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for poing_ai-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 49f5dedf30d5f908e9f3c12633d117c36c3362b8b5e665ef68ddd2c1a9c27b56
MD5 b2adbbe661c7811543e964cc92a9b686
BLAKE2b-256 326005e418a46a4fc18ee8f319966a11162270b4e0b6ae9c6bec888a8ec301f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for poing_ai-1.0.2-py3-none-any.whl:

Publisher: publish-pypi.yml on poingstudios/poing-ai

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.2.0

2 files

1.1.0

2 files

This release

1.0.2 This release

2 files

1.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page