feat: add GMapReview AI reputation intelligence agent#261
Conversation
Signed-off-by: Cvr421 <chandravijayk42187@gmail.com>
Signed-off-by: Cvr421 <chandravijayk42187@gmail.com>
Signed-off-by: Cvr421 <chandravijayk42187@gmail.com>
:robot_face: AgentKit Structural ValidationNew Contributions Detected
Check Results
|
|
Failure recorded at 2026-07-17T09:00:07Z UTC. If this PR is not fixed within 4 weeks it will be automatically closed. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds the GMapReviewAI Lamatic kit with a review-fetching flow, evidence-based LLM report generation, model and safety configuration, a Next.js interface, environment setup, documentation, and a sample report. ChangesGMapReviewAI kit
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Signed-off-by: Cvr421 <chandravijayk42187@gmail.com>
|
Caution Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted. Error details |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 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/gmap-review-ai/agent.md`:
- Line 3: Replace the TODO in agent.md with a complete agent identity dossier
covering the agent’s identity, purpose, capabilities, operational flow,
guardrails, and integration references. Ensure the documentation is sufficiently
detailed for deployment and removes the placeholder entirely.
In `@kits/gmap-review-ai/assets/lamatic-flow-config.yaml`:
- Around line 17-24: Update the advance_schema definition in the Lamatic flow
configuration so max_reviews_per_place and reviews_since are required, matching
the schema in gmap-review-ai.ts; remove the optional markers while leaving the
other fields unchanged.
- Around line 33-52: Update obsolete reputation-pulse and GMapReviewAI
references: in kits/gmap-review-ai/assets/lamatic-flow-config.yaml lines 33-52,
use `@scripts/gmap-review-ai_code-node-310_code.ts` and the corresponding
gmap-review-ai_* prompt paths for LLMNode_540; in kits/gmap-review-ai/README.md
lines 78-81 and 108, point all script references to
gmap-review-ai_code-node-310_code.ts; and in
kits/gmap-review-ai/assets/sample-report.md line 4, use the exact
gmap-review-ai_code-node-310_code.ts filename.
In `@kits/gmap-review-ai/assets/sample-report.md`:
- Around line 24-36: The sample report headers must match the system prompt’s
current output format. Rename “Headline” to “Executive Summary,” “What’s
Working” to “Top Positive Themes,” and “What Needs Fixing” to “Highest Priority
Improvements,” while preserving the existing report content and structure.
🪄 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: a9198b7a-f704-4f7e-bcf1-2fb32524322e
⛔ Files ignored due to path filters (2)
kits/gmap-review-ai/assets/GMapReviewAI.svgis excluded by!**/*.svgkits/gmap-review-ai/assets/playground.pngis excluded by!**/*.png
📒 Files selected for processing (12)
kits/gmap-review-ai/.env.examplekits/gmap-review-ai/.gitignorekits/gmap-review-ai/README.mdkits/gmap-review-ai/agent.mdkits/gmap-review-ai/assets/lamatic-flow-config.yamlkits/gmap-review-ai/assets/sample-report.mdkits/gmap-review-ai/constitutions/default.mdkits/gmap-review-ai/flows/gmap-review-ai.tskits/gmap-review-ai/lamatic.config.tskits/gmap-review-ai/model-configs/gmap-review-ai_llmnode-540_generative-model-name.tskits/gmap-review-ai/prompts/gmap-review-ai_llmnode-540_system_0.mdkits/gmap-review-ai/prompts/gmap-review-ai_llmnode-540_user_1.md
|
Hi @Cvr421! 👋 Before this PR can be reviewed by maintainers, please resolve all comments and requested changes from the CodeRabbit automated review. Steps to follow:
This helps keep the review process efficient for everyone. Thank you! 🙏 |
Signed-off-by: Cvr421 <chandravijayk42187@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 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/gmap-review-ai/app/app/layout.tsx`:
- Around line 15-18: Update the exported metadata object in the layout to
replace the default Next.js title and description with application-specific
GMapReview AI branding and purpose, leaving the Metadata export structure
unchanged.
In `@kits/gmap-review-ai/app/components/AnalysisForm.tsx`:
- Around line 78-96: Explicitly type formData.competitor_maps_urls as string[]
in AnalysisForm’s initial state so TypeScript infers the intended array element
type. Remove the `as never` casts from addCompetitor and handleCompetitorChange
while preserving their existing behavior.
- Around line 1-72: Remove the entire commented-out duplicate AnalysisForm
implementation, including its unused imports, component definition, handlers,
JSX, and surrounding separator comments. Preserve the active AnalysisForm
implementation that follows.
In `@kits/gmap-review-ai/app/lib/lamatic.ts`:
- Around line 27-36: Update triggerGMapAnalysis to read the Lamatic
configuration from server-only environment variable names by removing the
NEXT_PUBLIC_ prefix from the API key, project ID, workflow ID, and GraphQL URL
lookups. Keep the existing validation behavior and ensure the corresponding
.env.local variable names are updated to match.
- Around line 1-2: Add the Next.js Server Action directive at the top of the
lamatic module so its exported operations execute exclusively on the server and
keep the classified keys out of browser code.
🪄 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: 49f3cc72-f1f7-448b-9f84-a94d74d9ce00
⛔ Files ignored due to path filters (4)
kits/gmap-review-ai/app/app/favicon.icois excluded by!**/*.icokits/gmap-review-ai/app/package-lock.jsonis excluded by!**/package-lock.jsonkits/gmap-review-ai/app/public/next.svgis excluded by!**/*.svgkits/gmap-review-ai/app/public/vercel.svgis excluded by!**/*.svg
📒 Files selected for processing (18)
kits/gmap-review-ai/agent.mdkits/gmap-review-ai/app/.gitignorekits/gmap-review-ai/app/AGENTS.mdkits/gmap-review-ai/app/CLAUDE.mdkits/gmap-review-ai/app/README.mdkits/gmap-review-ai/app/app/globals.csskits/gmap-review-ai/app/app/layout.tsxkits/gmap-review-ai/app/app/page.tsxkits/gmap-review-ai/app/components/AnalysisForm.tsxkits/gmap-review-ai/app/components/ReportDashboard.tsxkits/gmap-review-ai/app/components/SentimentCard.tsxkits/gmap-review-ai/app/eslint.config.mjskits/gmap-review-ai/app/lib/lamatic.tskits/gmap-review-ai/app/next.config.tskits/gmap-review-ai/app/package.jsonkits/gmap-review-ai/app/postcss.config.mjskits/gmap-review-ai/app/tailwind.config.tskits/gmap-review-ai/app/tsconfig.json
Signed-off-by: Cvr421 <chandravijayk42187@gmail.com>
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/gmap-review-ai/app/components/AnalysisForm.tsx`:
- Around line 13-18: Update addCompetitor to use the functional setFormData
updater, deriving the new competitor_maps_urls array from the latest previous
state rather than the captured formData value; preserve all other form fields
unchanged.
🪄 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: 216812c4-f544-4dca-9491-c84fc6a7226c
📒 Files selected for processing (3)
kits/gmap-review-ai/app/README.mdkits/gmap-review-ai/app/app/layout.tsxkits/gmap-review-ai/app/components/AnalysisForm.tsx
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/gmap-review-ai/app/components/AnalysisForm.tsx`:
- Around line 14-17: Update handleCompetitorChange and the Trash2 removal
handler to use functional setFormData updates, deriving competitor_maps_urls
from the prev state rather than the formData closure. Preserve the existing
index replacement and removal behavior while applying the same stale-state-safe
pattern already used by the add operation.
🪄 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: be16c319-2add-4d04-a4f9-05b29818e880
📒 Files selected for processing (1)
kits/gmap-review-ai/app/components/AnalysisForm.tsx
Summary
This PR adds *GMapReview AI, an AI-powered reputation intelligence kit for local businesses built with Lamatic.
GMapReview AI automatically collects live Google Maps reviews using Apify, analyzes customer sentiment with an LLM, identifies recurring strengths and improvement areas, benchmarks competitors, and generates professional owner replies for unanswered negative reviews.
The generated report helps business owners quickly understand customer feedback without manually reading hundreds of reviews.
Features
Technologies
Testing
Successfully tested with:
The workflow was validated end-to-end using Lamatic Playground.
PR Checklist
1. Select Contribution Type
kits/<category>/<kit-name>/)bundles/<bundle-name>/)templates/<template-name>/)2. General Requirements
kebab-caseand matches the flow IDREADME.md(purpose, setup, usage)3. File Structure (Check what applies)
.env.examplewith placeholder values only (kits only)4. Validation
[kit] Add <name> for <use case>)kits/gmap-review-ai/(GMapReviewAI / Reputation Pulse)kits/gmap-review-ai/.env.example(addsAPIFY_API_TOKEN,LLM_API_KEYplaceholders)kits/gmap-review-ai/.gitignorekits/gmap-review-ai/app/.gitignorekits/gmap-review-ai/README.mdkits/gmap-review-ai/agent.mdkits/gmap-review-ai/constitutions/default.mdkits/gmap-review-ai/app/README.mdkits/gmap-review-ai/app/AGENTS.mdkits/gmap-review-ai/app/CLAUDE.mdkits/gmap-review-ai/lamatic.config.tskits/gmap-review-ai/flows/gmap-review-ai.tskits/gmap-review-ai/assets/lamatic-flow-config.yamlkits/gmap-review-ai/model-configs/gmap-review-ai_llmnode-540_generative-model-name.tskits/gmap-review-ai/prompts/gmap-review-ai_llmnode-540_system_0.mdkits/gmap-review-ai/prompts/gmap-review-ai_llmnode-540_user_1.mdkits/gmap-review-ai/assets/sample-report.mdkits/gmap-review-ai/assets/GMapReviewAI.svgkits/gmap-review-ai/assets/playground.pngkits/gmap-review-ai/app/package.jsonkits/gmap-review-ai/app/package-lock.jsonkits/gmap-review-ai/app/tsconfig.jsonkits/gmap-review-ai/app/eslint.config.mjskits/gmap-review-ai/app/next.config.tskits/gmap-review-ai/app/postcss.config.mjskits/gmap-review-ai/app/tailwind.config.tskits/gmap-review-ai/app/app/layout.tsxkits/gmap-review-ai/app/app/page.tsxkits/gmap-review-ai/app/app/globals.csskits/gmap-review-ai/app/app/favicon.icokits/gmap-review-ai/app/lib/lamatic.tskits/gmap-review-ai/app/components/AnalysisForm.tsxkits/gmap-review-ai/app/components/SentimentCard.tsxkits/gmap-review-ai/app/components/ReportDashboard.tsxkits/gmap-review-ai/app/public/next.svgkits/gmap-review-ai/app/public/vercel.svgFlow high-level behavior (from
kits/gmap-review-ai/flows/gmap-review-ai.tsandassets/lamatic-flow-config.yaml):triggerNode(GraphQL trigger;nodeType: graphqlNode)dynamicNodefor:codeNode(“Fetch Reviews (Apify)”;code:@scripts/gmap-review-ai_code-node-310_code.ts`` referenced)LLMNode(“Generate Reputation Pulse”; uses referenced system/user prompt files + generative model config)responseNode(GraphQL response;nodeType: graphqlResponseNode)defaultEdge(main chain) andresponseEdge(response wiring)triggerNode_1→codeNode_310→LLMNode_540→responseNode_triggerNode_1triggerNode_1→responseNode_triggerNode_1via aresponseEdgebusiness_name,business_maps_url,competitor_maps_urls,max_reviews_per_place,reviews_sincereport←LLMNode_540.output.generatedResponsebusiness_average_rating←codeNode_310.output.businessReviewData.sampleAverageRatingbusiness_total_reviews_fetched←codeNode_310.output.businessReviewData.reviewsFetchedInThisRun