Pre-Commit Analysis

SkillDev tools

Pre-commit implementation analysis for Retail-Agentic-Commerce. Use before commits, after significant changes, or when validating Apps SDK tools, mock data, MCP communication, widget isolation, or implementation quality.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Pre-Commit Analysis skill

What this skill tells your AI

The instructions your AI receives, as published by nvidia-ai-blueprints/retail-agentic-commerce in skills/pre-commit-analysis/SKILL.md and read by ahel’s review.

Use this skill before committing significant changes or when the user asks for implementation-quality validation.

If multi-agent tools are available, run the analysis areas in parallel. If not, perform the same checks directly with local commands.

Analysis Areas

  1. MCP tools: verify tool implementations use real APIs or shared data sources.
  2. Apps SDK web isolation: verify widget code communicates through postMessage and MCP boundaries.
  3. Mock data completeness: verify mock data exists and stays synchronized with the shared catalog.
  4. Communication flow: verify message types and handlers match across parent UI and widget code.

MCP Tools Verification

Files to inspect:

  • src/apps_sdk/tools/*.py
  • src/apps_sdk/main.py

Red flags:

  • Hardcoded product lists instead of shared catalog data.
  • Hardcoded responses where API calls or shared services are expected.
  • Mock data drifting from src/data/product_catalog.py.
  • Missing error handling for API failures.

Commands:

rg "MOCK_PRODUCTS|mock_products" src/apps_sdk/
rg "from src.data.product_catalog import" src/apps_sdk/
rg "httpx|requests|fetch" src/apps_sdk/tools/

Expected patterns:

from src.data.product_catalog import PRODUCTS
async with httpx.AsyncClient() as client:
    response = await client.get(f"{merchant_url}/products/{id}")

Apps SDK Web Isolation

Files to inspect:

  • src/apps_sdk/web/src/**/*.tsx
  • src/apps_sdk/web/src/**/*.ts
  • src/apps_sdk/web/package.json

Red flags:

  • Imports from parent UI directories.
  • Direct calls to localhost backend ports from widget code.
  • Shared state with the parent app.
  • Direct window.parent usage except for postMessage.

Commands:

rg "from ['\"]\\.\\./\\.\\./\\.\\." src/apps_sdk/web/src/
rg "localhost:8000|localhost:8001" src/apps_sdk/web/src/
rg "postMessage|window\\.parent" src/apps_sdk/web/src/

Expected pattern:

window.parent.postMessage({ type: "GET_RECOMMENDATIONS" }, "*");
const result = await window.openai.callTool("add-to-cart", args);

Mock Data Completeness

Files to inspect:

  • src/data/product_catalog.py
  • src/ui/data/mock-data.ts
  • src/apps_sdk/tools/recommendations.py

Red flags:

  • Product count mismatch.
  • Missing development or test mock data.
  • Hardcoded data instead of catalog imports.
  • Missing fallbacks when agent services are unavailable.

Commands:

rg '"id": "prod_' src/data/product_catalog.py | wc -l
rg "CATALOG_PRODUCTS|from src.data.product_catalog" src/apps_sdk/

Communication Flow

Files to inspect:

  • src/ui/components/agent/MerchantIframeContainer.tsx
  • src/ui/hooks/useMCPClient.ts
  • src/apps_sdk/web/src/App.tsx
  • src/apps_sdk/web/src/main.tsx

Message types to verify:

DirectionMessage TypePurpose
Widget to ParentGET_RECOMMENDATIONSRequest product recommendations
Parent to WidgetRECOMMENDATIONS_RESULTReturn recommendation data
Widget to ParentCHECKOUT_COMPLETENotify checkout success
Widget to ParentCALL_TOOLMCP tool invocation through the bridge

Commands:

rg "message\\.type.*==|case.*:" src/ui/components/agent/MerchantIframeContainer.tsx
rg "postMessage.*type:" src/apps_sdk/web/src/

Validation Checklist

Track these before committing:

Pre-Commit Analysis:
- [ ] MCP tools use shared catalog data where applicable.
- [ ] MCP tools make real API calls where needed.
- [ ] Apps SDK web has no forbidden parent imports.
- [ ] Widget uses postMessage for parent communication.
- [ ] Widget makes no direct backend API calls.
- [ ] Mock data is synced with product catalog expectations.
- [ ] Agent fallbacks exist when services are unavailable.
- [ ] Message types match between sender and receiver.
- [ ] Relevant tests pass.
- [ ] Relevant linter and type checks pass.

Post-Analysis Commands

Run relevant checks for the changed areas:

uv run pytest tests/apps_sdk/ -v
uv run ruff check src/apps_sdk/
uv run pyright src/apps_sdk/
cd src/apps_sdk/web && pnpm build

Broaden to the full quality gates from skills/features/SKILL.md and skills/ui/SKILL.md when shared backend or frontend behavior changed.

Report Format

## Pre-Commit Analysis Report

### MCP Tools
- Status: PASS/FAIL
- Issues: [list any issues]

### Apps SDK Isolation
- Status: PASS/FAIL
- Issues: [list any issues]

### Mock Data
- Status: PASS/FAIL
- Product count: X/17
- Issues: [list any issues]

### Communication Flow
- Status: PASS/FAIL
- Issues: [list any issues]

### Recommendations
1. [High priority fixes]
2. [Medium priority improvements]
3. [Low priority enhancements]

Signals

GitHub stars
74
Forks
39
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
pre-commit-analysis
Source
github.com/nvidia-ai-blueprints/retail-agentic-commerce