Skip to content

feat: Add github-commit-agent kit(agentkit-challenge)#202

Open
Kritiman2005 wants to merge 2 commits into
Lamatic:mainfrom
Kritiman2005:Kritiman
Open

feat: Add github-commit-agent kit(agentkit-challenge)#202
Kritiman2005 wants to merge 2 commits into
Lamatic:mainfrom
Kritiman2005:Kritiman

Conversation

@Kritiman2005

@Kritiman2005 Kritiman2005 commented Jul 9, 2026

Copy link
Copy Markdown

GitHub Commit Agent by Lamatic.ai

GitHub Registry

GitHub Commit Agent is an AI-powered release notes and commit history summarization tool built with Lamatic.ai. It turns raw git commit history into clean, structured, human-readable developer updates. Users can simply paste a GitHub repository URL (e.g. https://github.com/facebook/react) or ask a natural language question (e.g. "What changed in Lamatic/AgentKit since v1.0.0?") into a single search input to automatically locate tags, branch ranges, and diff limits.

Deploy with Vercel


The Problem

Every software team ships code constantly. But writing meaningful release notes, changelog entries, sprint updates, or change audits is tedious, always skipped, or reduced to lazy, uninformative commit copy-pastes like "bug fixes and improvements".

When an incident occurs or stakeholders ask what shipped, team members waste 15-20 minutes digging through pull requests, diff ranges, and commit logs to figure out what changed and why.

There is a clear need for a tool that sits directly between raw git history and human stakeholder communications, translating technical logs into plain English.


Who is it for?

  • Open-Source Maintainers — Generate clean CHANGELOG.md updates before tagging new releases.
  • Engineering Teams & Managers — Auto-summarize sprint changes to answer "what shipped this sprint?" instantly.
  • DevOps & SREs — Quickly audit what went out before or after a production incident.
  • Product Managers — Get non-technical, human-readable release notes ready for customer updates.
  • Junior Developers — Understand an unfamiliar codebase's commit history in plain English.

The Approach

GitHub Commit Agent is a single-purpose tool: input a natural language request, get a structured commit review, instantly.

How it works:

  1. User Message Trigger: The user enters a query in natural language (e.g. "What changed in Lamatic/AgentKit since v1.0.0?" or "Show vercel/next.js changes since last release").
  2. Intent Parsing: An LLM parses the message, extracting the repo, base_ref, and head_ref as structured JSON.
  3. Commit Fetching & Auto-Detection: A custom Code Node executes the GitHub Compare API. If refs are omitted (like asking "since last release"), it automatically queries repo tags or default branches to resolve the range.
  4. LLM Summarization: A second LLM analyzes the subject lines of all commits in the range and writes a structured markdown document.

Tech stack:

  • Lamatic AI — orchestrates the intent parsing, script execution, and commit analysis.
  • GitHub API — retrieves commits, repository data, and tag references.
  • Next.js — clean, fast frontend utilizing Tailwind CSS and Radix UI.
  • ReactMarkdown — renders release notes with full GitHub Flavored Markdown (GFM) support.

The Result

A clean, single-page app where users query repositories and get structured changelogs in seconds:

  • Features — new enhancements, additions, and tools.
  • Bug Fixes — resolved issues and stability improvements.
  • Maintenance — documentation updates, dependency updates, and refactoring.
  • Ref Range Metadata — displays the exact tag range or SHAs compared for maximum audit transparency.

Setup & Run

1. Import the flow into Lamatic Studio

  1. Go to studio.lamatic.ai and open your project
  2. Connect your GitHub account and import flows/github-commit-agent.ts
  3. Configure your preferred LLM provider in the model configs:
    • model-configs/github-commit-agent_parse-intent.ts
    • model-configs/github-commit-agent_llm-node.ts
  4. Deploy the flow and copy your Flow ID

2. Configure environment variables

Create a .env.local file inside the apps directory:

Variable Required Description
LAMATIC_API_KEY Your Lamatic API key (Settings → API Keys)
LAMATIC_PROJECT_ID Your Lamatic project ID
LAMATIC_API_URL Your Lamatic endpoint URL
GITHUB_COMMIT_AGENT_FLOW_ID Flow ID from Lamatic Studio after deployment
GITHUB_TOKEN ⚠️ Optional GitHub Personal Access Token — only needed for private repos or to avoid rate limits. Note: For deployed/production flows, configure this directly inside Lamatic Studio Environment Variables (Settings → Environment Variables).

3. Run the App Locally

cd apps
npm install
npm run dev

Open http://localhost:3000 to use the UI.


Extending & Connecting to Other Apps (Slack, Notion, Google Drive, etc.)

Because this agent is built on Lamatic Studio, you can easily connect the generated changelogs to your other work applications without writing any integration code:

  1. Open your flow in Lamatic Studio.
  2. Click the + button directly after the Classify & Summarise Commits node.
  3. In the right-hand panel, select the Apps category.
  4. Choose the application you want to connect:
    • Slack: Automatically post release notes to your #announcements or engineering channel.
    • Notion: Save changelog summaries into your release databases.
    • Google Drive: Export release summaries directly as text files to sharing folders.
    • Gmail / Email: Email updates to managers or stakeholders.
  5. Securely authorize your account inside Lamatic, configure the action fields, and click Deploy.

Smart Auto-Detection & Fallbacks

To ensure a frictionless user experience, the custom Code Node dynamically resolves references if they are omitted in the natural language message:

  • Both Refs Omitted (e.g. "Show changes for owner/repo"):
    • Automatically queries the repository /tags API.
    • If tags exist: Diffs the second-latest tag against the latest tag (ideal for standard release notes).
    • If no tags exist: Falls back to fetching the default branch (e.g., main) and compares the latest 10 commits.
  • Only Base Ref Omitted (e.g. "up to v1.2.0"):
    • Queries tags and diffs against the tag immediately preceding v1.2.0.
  • Only Head Ref Omitted (e.g. "since v1.0.0"):
    • Defaults the head ref to the default branch (e.g., main).

Tip

No Bottleneck: When the user explicitly states both refs (e.g. "Compare v1.0.0 and v1.1.0"), the auto-detection is completely bypassed and calls the Compare API directly, ensuring maximum speed.


Tradeoffs & Assumptions

  • Subject line vs. full commit diffs: The agent fetches and processes commit subject lines rather than full code diff files. This ensures low latency and fits within LLM context windows, but depends on clean commit messages.
  • 250 commit limit: The GitHub Compare API caps returned commits at 250 per response. This is sufficient for standard releases and sprints, but extremely large ranges will truncate.
  • Rate limiting: Public requests are subject to GitHub's 60 req/hr rate limit per IP. Setting a GITHUB_TOKEN is highly recommended for production endpoints.

Tags

github, devtools, generative, automation, release


Contributed by Kritiman Talukdar — AgentKit Challenge Submission

  • Added a new GitHub Commit Agent kit, including kit metadata, setup docs, env templates, and ignore/config files.
  • Added the Next.js app scaffold for the kit: app layout/page, global styles, Tailwind/Shadcn component set, hooks, utilities, Lamatic client wiring, and orchestration entrypoints.
  • Added a complete flows/github-commit-agent.ts workflow that:
    • takes a user message,
    • parses intent into repo, base_ref, and head_ref,
    • resolves refs / falls back to sensible defaults,
    • fetches commits from GitHub’s Compare API,
    • summarizes commits into release-note-style markdown,
    • returns summary plus compared metadata.
  • The flow uses a 5-step pipeline with node types:
    • trigger
    • LLM parse-intent
    • code node to fetch commits
    • LLM classify & summarize
    • GraphQL-style response mapping
  • Added supporting prompt/model-config files for both the intent parser and summarization LLM.
  • Added a large set of reusable UI primitives for the app (dialog, sheet, sidebar, menu, form, table, tabs, select, tooltip, toast, chart, carousel, etc.) to support the kit UI.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@Kritiman2005, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 34 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6d5fc150-69f7-4cb0-aa5f-f170d116cc9c

📥 Commits

Reviewing files that changed from the base of the PR and between b923190 and 3ca9f6e.

📒 Files selected for processing (2)
  • kits/github-commit-agent/apps/README.md
  • kits/github-commit-agent/prompts/github-commit-agent_llm-node_user.md

Mission accepted, agent. This tape will self-destruct in five seconds — but not before I brief you.

Walkthrough

This PR introduces a new "github-commit-agent" AgentKit: a flow definition, prompts, model-configs, constitution, and docs that convert git commit history into classified markdown release notes. It also adds a companion Next.js app with a server action, page UI, full shadcn/ui component library, hooks, and build tooling.

Changes

GitHub Commit Agent Kit + App

Layer / File(s) Summary
Agent flow, prompts, model-configs, docs
kits/github-commit-agent/flows/github-commit-agent.ts, kits/github-commit-agent/prompts/*, kits/github-commit-agent/model-configs/*, kits/github-commit-agent/constitutions/default.md, kits/github-commit-agent/lamatic.config.ts, kits/github-commit-agent/README.md, kits/github-commit-agent/agent.md, kits/github-commit-agent/.env.example, kits/github-commit-agent/.gitignore
Defines the trigger → parse-intent → fetch-commits → summarise → response pipeline, its prompts/model-configs, kit config, constitution, and documentation.
Server action and Lamatic client wiring
kits/github-commit-agent/apps/actions/orchestrate.ts, kits/github-commit-agent/apps/lib/lamatic-client.ts, kits/github-commit-agent/apps/lib/utils.ts, kits/github-commit-agent/apps/orchestrate.js
Implements runCommitAgent calling lamaticClient.executeFlow, env-validated Lamatic client singleton, flow orchestration config, and the cn classname helper.
App shell, page, styling, toast/mobile hooks
kits/github-commit-agent/apps/app/*, kits/github-commit-agent/apps/components/header.tsx, kits/github-commit-agent/apps/components/theme-provider.tsx, kits/github-commit-agent/apps/components/ui/{toaster,sonner,use-mobile}.tsx, kits/github-commit-agent/apps/hooks/*
Adds root layout, theming CSS, the search/loading/results page calling runCommitAgent, header/theme wrappers, and toast/mobile hooks.
Complex shadcn/ui components
kits/github-commit-agent/apps/components/ui/{calendar,carousel,chart,command,form,field,sidebar,item,input-group,menubar,navigation-menu,select,context-menu,dropdown-menu,drawer,alert-dialog,dialog,sheet,toast}.tsx
Adds stateful/composite UI primitives wrapping Radix and other libraries with themed styling.
Primitive shadcn/ui components
kits/github-commit-agent/apps/components/ui/{accordion,alert,aspect-ratio,avatar,badge,breadcrumb,button-group,button,card,checkbox,collapsible,empty,hover-card,input-otp,input,item,kbd,label,pagination,popover,progress,radio-group,resizable,scroll-area,separator,skeleton,slider,spinner,switch,table,tabs,textarea,toggle-group,toggle,tooltip}.tsx
Adds stateless styled UI wrapper components used throughout the app.
App tooling, config, and docs
kits/github-commit-agent/apps/.env.example, apps/.gitignore, apps/.npmrc, apps/README.md, apps/components.json, apps/next.config.mjs, apps/package.json, apps/postcss.config.mjs, apps/tsconfig.json
Configures env/ignore files, README, shadcn config, Next.js/TypeScript/PostCSS tooling for the app.

Suggested reviewers: amanintech, d-pamneja

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.46% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning It covers purpose, setup, env vars, and behavior, but it doesn't follow the required PR checklist/template sections. Add the PR Checklist sections from the template, including contribution type, validation, file-structure checks, and no-secrets confirmation.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed Clear, specific, and directly describes the main change: adding the GitHub Commit Agent kit.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

:robot_face: AgentKit Structural Validation

New Contributions Detected

  • Kit: kits/github-commit-agent

Check Results

Check Status
No edits to existing kits ✅ Pass
Required root files present ✅ Pass
Flow .ts files present ✅ Pass
lamatic.config.ts valid ✅ Pass
No changes outside kits/ ✅ Pass

🎉 All checks passed! This contribution follows the AgentKit structure.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Failure recorded at 2026-07-09T18:31:17Z UTC. If this PR is not fixed within 4 weeks it will be automatically closed.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 27

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
kits/github-commit-agent/apps/README.md (1)

1-156: 📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift

Rewrite this README for the GitHub Commit Agent kit.

It still documents “Reddit Scout”, links to the wrong repo/demo, and shows the wrong env vars and root directory (REDDIT_SCOUT_FLOW_ID, kits/agentic/reddit-scout). Following it will wire the wrong project and break setup. Please update the title, deploy links, env example, and repo structure to match this kit.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@kits/github-commit-agent/apps/README.md` around lines 1 - 156, The README
still describes the Reddit Scout app and points to the wrong demo, repo,
environment variables, and root directory, so rewrite it for the GitHub Commit
Agent kit. Update the title, overview, deploy badge/link targets, and setup
steps to match this kit, and replace the Reddit-specific symbols like
REDDIT_SCOUT_FLOW_ID and kits/agentic/reddit-scout with the correct GitHub
Commit Agent flow/env names. Also refresh the repo structure and feature
sections so they reference the actual app files and workflow names in this kit.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@kits/github-commit-agent/.env.example`:
- Around line 11-15: The token guidance in the .env.example comment is mixing
classic PAT scopes with fine-grained token permissions, which can mislead users
setting up private-repo access. Update the note near the PAT example so it
clearly separates classic Personal Access Token scopes from fine-grained
repository permissions, and make the required access for private repositories
unambiguous by referencing the existing token comment block without changing the
surrounding setup instructions.

In `@kits/github-commit-agent/apps/.env.example`:
- Around line 1-4: The env example is using the wrong flow variable name, so
update the example in the .env template to match what lamatic-client.ts and
orchestrate.js actually read, namely GITHUB_COMMIT_AGENT_FLOW_ID instead of
REDDIT_SCOUT_FLOW_ID. Also normalize the sample dotenv entries by removing the
spaces around the equals signs so the placeholders match standard .env syntax
and the app can be started from the example without configuration mismatches.

In `@kits/github-commit-agent/apps/.gitignore`:
- Around line 19-21: The .gitignore entry for environment files only excludes
.env, so .env.local can still be committed and leak credentials. Update the
existing env-files ignore section to also cover .env.local (and keep the current
.env rule), so the app’s runtime config file is ignored by default.

In `@kits/github-commit-agent/apps/actions/orchestrate.ts`:
- Around line 48-62: The error handling in orchestrate.ts is still exposing raw
provider details through the returned error message. Update the error
normalization in the orchestration flow so that the response from the function
using errorMessage always returns a generic user-facing failure string, while
keeping the specific error.message only for server-side logging or telemetry.
Use the existing orchestrate response object and the error handling branch that
checks error instanceof Error to map all failures to a safe message instead of
echoing internal fetch/API details.
- Around line 22-29: The current logging in orchestrate.ts is exposing sensitive
user input and raw Lamatic payloads through the console. Update the logging
around the message handling and lamaticClient.executeFlow path so that Commit
Agent input, inputs, and resData are only logged behind a debug-only guard or
removed entirely in production. Keep any remaining logs generic and use the
existing orchestration flow symbols like lamaticClient.executeFlow, FLOW_ID, and
the message/inputs handling to make the change in the right place.

In `@kits/github-commit-agent/apps/app/page.tsx`:
- Around line 172-179: The search field in the app page’s Input component is
missing an accessible name, so update the existing Input with an appropriate
aria-label while preserving the current minimalist UI. Use the Input element
tied to query state (the one with id="query" and onChange={setQuery}) and ensure
screen readers can announce it without relying on the placeholder text.

In `@kits/github-commit-agent/apps/components/theme-provider.tsx`:
- Around line 9-11: The app shell is rendering without the theme context, so
`components/ui/sonner.tsx` can’t follow user theme changes. Wrap the root
content in `ThemeProvider` (or a shared `providers.tsx`) from
`ThemeProvider`/`NextThemesProvider` before `Analytics`, and ensure
`app/layout.tsx` no longer renders `children` directly outside that provider.

In `@kits/github-commit-agent/apps/components/ui/button-group.tsx`:
- Around line 1-5: The button-group component is using React.ComponentProps
without importing React, so add the missing React import at the top of the
button-group component alongside Slot, cva, cn, and Separator. Update the
component to follow the same pattern as the other UI files by explicitly
importing React so the React.ComponentProps references in the component
definitions resolve consistently.

In `@kits/github-commit-agent/apps/components/ui/carousel.tsx`:
- Around line 102-111: The effect in carousel.tsx registers both
api.on('reInit', onSelect) and api.on('select', onSelect), but the cleanup in
the React.useEffect block only removes the select listener. Update the cleanup
to also unsubscribe the reInit listener using the same api and onSelect
callback, keeping the listener lifecycle symmetric in this effect.

In `@kits/github-commit-agent/apps/components/ui/collapsible.tsx`:
- Around line 1-33: Add the missing React import at the top of Collapsible so
the React.ComponentProps type references are explicit and consistent with the
other UI components; update the Collapsible, CollapsibleTrigger, and
CollapsibleContent definitions in this file to rely on an imported React
namespace rather than an implicit global type.

In `@kits/github-commit-agent/apps/components/ui/empty.tsx`:
- Around line 71-82: EmptyDescription has a props/type mismatch because it is
declared with React.ComponentProps<'p'> but actually renders a div. Update the
component to keep the type and rendered element consistent in EmptyDescription:
either switch the JSX root to a p element or, if div is intended, change the
props typing to React.ComponentProps<'div'> so consumers get the correct
attributes and semantics.
- Around line 1-104: The Empty component file uses React.ComponentProps in
Empty, EmptyHeader, EmptyMedia, EmptyTitle, EmptyDescription, and EmptyContent
without importing React. Add the missing React import at the top of the module
so those type references resolve consistently, following the same pattern used
in related components like collapsible.tsx.

In `@kits/github-commit-agent/apps/components/ui/input-group.tsx`:
- Around line 70-75: The addon click handler in the input group only focuses an
input, so it misses the textarea control used by InputGroupTextarea. Update the
onClick logic in the relevant addon handler to target both control types with a
compound selector, and keep the existing button guard so clicks on nested
buttons still do nothing. Use the same parentElement/querySelector flow in the
input-group component so both input and textarea receive focus when an addon is
clicked.
- Around line 70-76: The div-level click handler in InputGroup is being
overridden by consumer props because `{...props}` is spread after `onClick`, so
the built-in focus behavior can disappear. Update the `InputGroup` component to
destructure `onClick` from props and merge it with the internal click handler so
both run, while preserving the existing button-click guard and input-focus
logic. Keep the behavior in the same wrapper element that currently calls
`e.currentTarget.parentElement?.querySelector('input')?.focus()`.

In `@kits/github-commit-agent/apps/components/ui/kbd.tsx`:
- Around line 18-26: KbdGroup is using React.ComponentProps<'div'> but renders a
kbd element, so align the component with the intended container semantics.
Update KbdGroup to render a div instead of kbd, keeping the existing className
merge and props spread, so the component type and markup match.

In `@kits/github-commit-agent/apps/components/ui/sidebar.tsx`:
- Around line 21-26: The sidebar component has a case-sensitive import path
mismatch that will break builds on Linux/Vercel. Update the Tooltip-related
import in sidebar.tsx to match the actual lowercase tooltip module name used
under `@/components/ui`, keeping the same named imports (Tooltip, TooltipContent,
TooltipProvider, TooltipTrigger). Verify any other imports in the sidebar
component follow the exact filesystem casing to avoid module-not-found errors
with forceConsistentCasingInFileNames.

In `@kits/github-commit-agent/apps/components/ui/toast.tsx`:
- Around line 12-113: The forwardRef typings in ToastViewport, Toast,
ToastAction, ToastClose, ToastTitle, and ToastDescription still use the
deprecated React.ElementRef API. Update each of these declarations in toast.tsx
to use React.ComponentRef for the underlying ToastPrimitives components instead,
keeping the existing generic structure and ref wiring unchanged.

In `@kits/github-commit-agent/apps/components/ui/toggle-group.tsx`:
- Line 8: The import for toggleVariants uses the wrong path casing, so update
the import in toggle-group.tsx to reference the lowercase toggle module instead
of the capitalized Toggle path. Use the existing toggleVariants import statement
in the toggle-group component as the locator, and make sure the module specifier
matches the actual file name exactly so it works consistently across
filesystems.

In `@kits/github-commit-agent/apps/components/ui/toggle.tsx`:
- Around line 1-47: The import in toggle-group.tsx uses the wrong casing for the
toggle module path, which will fail on case-sensitive filesystems. Update the
import to point to the actual toggle.tsx module using the same lowercase path as
the file, and keep the reference to toggleVariants intact so ToggleGroup
continues to use the shared variants correctly.

In `@kits/github-commit-agent/apps/components/ui/use-mobile.tsx`:
- Around line 1-19: The hook implementation is duplicated in useIsMobile,
creating two identical sources of truth; remove the extra copy in the
components/ui version and keep the existing apps/hooks/use-mobile.ts export as
the single implementation. Update any nearby imports or references so components
like sidebar.tsx continue to use `@/hooks/use-mobile`, and ensure only one
useIsMobile definition remains in the codebase.

In `@kits/github-commit-agent/apps/hooks/use-toast.ts`:
- Around line 174-182: The `useEffect` in `useToast` is resubscribing on every
`state` change because the dependency array is `[state]`, which creates a gap
where `setState` is temporarily removed and `dispatch()` updates can be missed.
Update the subscription effect to run only once on mount by using an empty
dependency array, keeping the `listeners.push(setState)` registration and
cleanup logic intact so the toast store stays continuously subscribed.

In `@kits/github-commit-agent/apps/lib/lamatic-client.ts`:
- Around line 16-20: The Lamatic client initialization still hides missing
config by falling back to empty or null values even though the env validation
already guarantees these settings should exist. In lamaticClient, remove the
fallback defaults for endpoint, projectId, and apiKey, or switch the validation
to check config.api directly so the Lamatic constructor only receives verified
values and fails fast if any are absent.

In `@kits/github-commit-agent/apps/next.config.mjs`:
- Around line 3-8: The Next.js config is currently suppressing TypeScript
failures via the typescript ignoreBuildErrors setting, which can hide real
contract breaks during build. Remove that override from next.config.mjs and let
next build fail on type errors, then fix the underlying TypeScript issues in the
affected kit code rather than masking them. Use the typescript and images config
blocks in next.config.mjs to locate the change.

In `@kits/github-commit-agent/apps/package.json`:
- Line 54: The package dependency for lamatic is still using a moving latest
tag, which should be pinned to the published version for reproducible installs.
Update the dependency entry in package.json so lamatic is locked to the
requested version and verify react-markdown is also pinned to its published
version in the same dependencies block, keeping the package manifest auditable
and stable.

In `@kits/github-commit-agent/flows/github-commit-agent.ts`:
- Line 99: The trigger configuration in github-commit-agent.ts has a typo in the
realtime node options: `responeType` should be `responseType`. Update the object
used in the GitHub commit agent flow so the Lamatic runtime receives the
expected key, and verify the change in the trigger setup around the flow
configuration where this property is defined.
- Around line 78-84: Add the missing script entry or correct the alias used by
github_commit_agent_code_node in github_commit-agent.ts so it points to an
existing loadable script. Verify the referenced script file is present under the
expected scripts area for the Fetch Commits from GitHub node, and update the
script mapping and any related references so the node can resolve its
implementation at runtime.

In `@kits/github-commit-agent/prompts/github-commit-agent_llm-node_user.md`:
- Around line 3-7: The prompt currently injects the raw commit list directly
into the instruction text, so treat `{{codeNode_100.output.commits}}` as
untrusted input. Update the `github-commit-agent_llm-node_user.md` prompt to
fence that variable inside a code block and add an explicit instruction to
ignore any directives contained within it. Keep the summarization request
outside the fenced block so the model only classifies and summarizes the commit
messages.

---

Outside diff comments:
In `@kits/github-commit-agent/apps/README.md`:
- Around line 1-156: The README still describes the Reddit Scout app and points
to the wrong demo, repo, environment variables, and root directory, so rewrite
it for the GitHub Commit Agent kit. Update the title, overview, deploy
badge/link targets, and setup steps to match this kit, and replace the
Reddit-specific symbols like REDDIT_SCOUT_FLOW_ID and kits/agentic/reddit-scout
with the correct GitHub Commit Agent flow/env names. Also refresh the repo
structure and feature sections so they reference the actual app files and
workflow names in this kit.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro

Run ID: 2e88c994-6aa8-4cdf-90dd-0db20a594f31

📥 Commits

Reviewing files that changed from the base of the PR and between dafde4c and b923190.

⛔ Files ignored due to path filters (9)
  • kits/github-commit-agent/apps/package-lock.json is excluded by !**/package-lock.json
  • kits/github-commit-agent/apps/public/apple-icon.png is excluded by !**/*.png
  • kits/github-commit-agent/apps/public/icon-dark-32x32.png is excluded by !**/*.png
  • kits/github-commit-agent/apps/public/icon-light-32x32.png is excluded by !**/*.png
  • kits/github-commit-agent/apps/public/icon.svg is excluded by !**/*.svg
  • kits/github-commit-agent/apps/public/lamatic-logo.png is excluded by !**/*.png
  • kits/github-commit-agent/apps/public/placeholder-logo.png is excluded by !**/*.png
  • kits/github-commit-agent/apps/public/placeholder-logo.svg is excluded by !**/*.svg
  • kits/github-commit-agent/apps/public/placeholder.svg is excluded by !**/*.svg
📒 Files selected for processing (89)
  • kits/github-commit-agent/.env.example
  • kits/github-commit-agent/.gitignore
  • kits/github-commit-agent/README.md
  • kits/github-commit-agent/agent.md
  • kits/github-commit-agent/apps/.env.example
  • kits/github-commit-agent/apps/.gitignore
  • kits/github-commit-agent/apps/.npmrc
  • kits/github-commit-agent/apps/README.md
  • kits/github-commit-agent/apps/actions/orchestrate.ts
  • kits/github-commit-agent/apps/app/globals.css
  • kits/github-commit-agent/apps/app/layout.tsx
  • kits/github-commit-agent/apps/app/page.tsx
  • kits/github-commit-agent/apps/components.json
  • kits/github-commit-agent/apps/components/header.tsx
  • kits/github-commit-agent/apps/components/theme-provider.tsx
  • kits/github-commit-agent/apps/components/ui/accordion.tsx
  • kits/github-commit-agent/apps/components/ui/alert-dialog.tsx
  • kits/github-commit-agent/apps/components/ui/alert.tsx
  • kits/github-commit-agent/apps/components/ui/aspect-ratio.tsx
  • kits/github-commit-agent/apps/components/ui/avatar.tsx
  • kits/github-commit-agent/apps/components/ui/badge.tsx
  • kits/github-commit-agent/apps/components/ui/breadcrumb.tsx
  • kits/github-commit-agent/apps/components/ui/button-group.tsx
  • kits/github-commit-agent/apps/components/ui/button.tsx
  • kits/github-commit-agent/apps/components/ui/calendar.tsx
  • kits/github-commit-agent/apps/components/ui/card.tsx
  • kits/github-commit-agent/apps/components/ui/carousel.tsx
  • kits/github-commit-agent/apps/components/ui/chart.tsx
  • kits/github-commit-agent/apps/components/ui/checkbox.tsx
  • kits/github-commit-agent/apps/components/ui/collapsible.tsx
  • kits/github-commit-agent/apps/components/ui/command.tsx
  • kits/github-commit-agent/apps/components/ui/context-menu.tsx
  • kits/github-commit-agent/apps/components/ui/dialog.tsx
  • kits/github-commit-agent/apps/components/ui/drawer.tsx
  • kits/github-commit-agent/apps/components/ui/dropdown-menu.tsx
  • kits/github-commit-agent/apps/components/ui/empty.tsx
  • kits/github-commit-agent/apps/components/ui/field.tsx
  • kits/github-commit-agent/apps/components/ui/form.tsx
  • kits/github-commit-agent/apps/components/ui/hover-card.tsx
  • kits/github-commit-agent/apps/components/ui/input-group.tsx
  • kits/github-commit-agent/apps/components/ui/input-otp.tsx
  • kits/github-commit-agent/apps/components/ui/input.tsx
  • kits/github-commit-agent/apps/components/ui/item.tsx
  • kits/github-commit-agent/apps/components/ui/kbd.tsx
  • kits/github-commit-agent/apps/components/ui/label.tsx
  • kits/github-commit-agent/apps/components/ui/menubar.tsx
  • kits/github-commit-agent/apps/components/ui/navigation-menu.tsx
  • kits/github-commit-agent/apps/components/ui/pagination.tsx
  • kits/github-commit-agent/apps/components/ui/popover.tsx
  • kits/github-commit-agent/apps/components/ui/progress.tsx
  • kits/github-commit-agent/apps/components/ui/radio-group.tsx
  • kits/github-commit-agent/apps/components/ui/resizable.tsx
  • kits/github-commit-agent/apps/components/ui/scroll-area.tsx
  • kits/github-commit-agent/apps/components/ui/select.tsx
  • kits/github-commit-agent/apps/components/ui/separator.tsx
  • kits/github-commit-agent/apps/components/ui/sheet.tsx
  • kits/github-commit-agent/apps/components/ui/sidebar.tsx
  • kits/github-commit-agent/apps/components/ui/skeleton.tsx
  • kits/github-commit-agent/apps/components/ui/slider.tsx
  • kits/github-commit-agent/apps/components/ui/sonner.tsx
  • kits/github-commit-agent/apps/components/ui/spinner.tsx
  • kits/github-commit-agent/apps/components/ui/switch.tsx
  • kits/github-commit-agent/apps/components/ui/table.tsx
  • kits/github-commit-agent/apps/components/ui/tabs.tsx
  • kits/github-commit-agent/apps/components/ui/textarea.tsx
  • kits/github-commit-agent/apps/components/ui/toast.tsx
  • kits/github-commit-agent/apps/components/ui/toaster.tsx
  • kits/github-commit-agent/apps/components/ui/toggle-group.tsx
  • kits/github-commit-agent/apps/components/ui/toggle.tsx
  • kits/github-commit-agent/apps/components/ui/tooltip.tsx
  • kits/github-commit-agent/apps/components/ui/use-mobile.tsx
  • kits/github-commit-agent/apps/hooks/use-mobile.ts
  • kits/github-commit-agent/apps/hooks/use-toast.ts
  • kits/github-commit-agent/apps/lib/lamatic-client.ts
  • kits/github-commit-agent/apps/lib/utils.ts
  • kits/github-commit-agent/apps/next.config.mjs
  • kits/github-commit-agent/apps/orchestrate.js
  • kits/github-commit-agent/apps/package.json
  • kits/github-commit-agent/apps/postcss.config.mjs
  • kits/github-commit-agent/apps/tsconfig.json
  • kits/github-commit-agent/constitutions/default.md
  • kits/github-commit-agent/flows/github-commit-agent.ts
  • kits/github-commit-agent/lamatic.config.ts
  • kits/github-commit-agent/model-configs/github-commit-agent_llm-node.ts
  • kits/github-commit-agent/model-configs/github-commit-agent_parse-intent.ts
  • kits/github-commit-agent/prompts/github-commit-agent_llm-node_system.md
  • kits/github-commit-agent/prompts/github-commit-agent_llm-node_user.md
  • kits/github-commit-agent/prompts/github-commit-agent_parse-intent_system.md
  • kits/github-commit-agent/prompts/github-commit-agent_parse-intent_user.md

Comment thread kits/github-commit-agent/.env.example
Comment thread kits/github-commit-agent/apps/.env.example
Comment thread kits/github-commit-agent/apps/.gitignore
Comment thread kits/github-commit-agent/apps/actions/orchestrate.ts
Comment thread kits/github-commit-agent/apps/actions/orchestrate.ts
Comment thread kits/github-commit-agent/apps/next.config.mjs
Comment thread kits/github-commit-agent/apps/package.json
Comment thread kits/github-commit-agent/flows/github-commit-agent.ts
Comment thread kits/github-commit-agent/flows/github-commit-agent.ts
Comment thread kits/github-commit-agent/prompts/github-commit-agent_llm-node_user.md Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Hi @Kritiman2005! 👋

Before this PR can be reviewed by maintainers, please resolve all comments and requested changes from the CodeRabbit automated review.

Steps to follow:

  1. Read through all CodeRabbit comments carefully
  2. Address each issue raised (or reply explaining why you disagree)
  3. Push your fixes as new commits
  4. Once all issues are resolved, comment here so we can re-review

This helps keep the review process efficient for everyone. Thank you! 🙏

@Kritiman2005

Copy link
Copy Markdown
Author

Hi @Kritiman2005! 👋

Before this PR can be reviewed by maintainers, please resolve all comments and requested changes from the CodeRabbit automated review.

Steps to follow:

  1. Read through all CodeRabbit comments carefully
  2. Address each issue raised (or reply explaining why you disagree)
  3. Push your fixes as new commits
  4. Once all issues are resolved, comment here so we can re-review

This helps keep the review process efficient for everyone. Thank you! 🙏

@Kritiman2005

Copy link
Copy Markdown
Author

Hi @github-actions, All CodeRabbit comments and requested changes have been fully resolved.

  • Resolved the prompt-injection guardrails by isolating dynamic variables inside secure code blocks.
  • Added detailed environment variables and fallback logic documentation to the README.
  • CodeRabbit has marked this PR as approved and all checks are passing.

Ready for maintainer review! 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant