create-batch-page-interceptor

Generates and registers a TypeScript interceptor class extending SimpleBatchPageInterceptor to customize Glyvio batch pages.

1|Updated Jun 11, 2026
One-click install
npx skills add https://github.com/devena/glyvio-forge --skill create-batch-page-interceptor-devena
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: create-batch-page-interceptor
Source: https://github.com/devena/glyvio-forge/tree/main/claude/skills/create-batch-page-interceptor
Command: npx skills add https://github.com/devena/glyvio-forge --skill create-batch-page-interceptor-devena

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Customizing an existing Glyvio SimpleBatchPage view (buttons, spreadsheet mappings, row styling, validation, save payloads) requires writing a correctly-typed interceptor class against abstract base classes and registering it, which is error-prone without knowing the exact design tree and type definitions. ## Core Features & Use Cases - Design Capture via SpyInterceptor: Temporarily injects a spy interceptor and uses the chrome_inspector.js script to extract the live page design JSON as ground truth before writing any code. - Full Interceptor Blueprint: Generates a class overriding getDesign, getDesignForRow, getDtoSpreadsheetFromLine, getEntitiesFromDto, getSpreadsheetLayout, getDtoLayout, onUpdateItem, and lifecycle hooks. - Base Class Resolution: Searches .d.ts declaration files to select the correct abstract interceptor, honoring "You MUST extend this instead." JSDoc markers. - Use Case: Add a custom export column and red error-row highlighting to ProductBatchPage by generating a registered interceptor in the plugin's src/interceptors/views directory. ## Quick Start Ask the agent to create a batch page interceptor for ProductBatchPage that hides a specific widget key and appends a custom spreadsheet export column.

Frequently Asked Questions about create-batch-page-interceptor

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I customize a Glyvio SimpleBatchPage view?▼

Create a class extending the page's abstract SimpleBatchPageInterceptor, override hooks like getDesign or getDtoLayout, and register it via glyvio_core.appInterceptorService.registerInterceptors in src/index.ts with a unique listener ID.

How do I find the correct base interceptor class to extend?▼

Search the plugin's .d.ts declaration files for the abstract interceptor whose getListenerRoute returns your target route class. If a subclass carries the JSDoc comment "You MUST extend this instead.", extend that class rather than the generic parent.

Why capture the design JSON before writing interceptor code?▼

The design JSON is the ground truth for the page's widget tree, so every navigation and modification decision must derive from it. The skill captures it using a temporary SpyInterceptor and the chrome_inspector.js script against a Chrome instance with remote debugging on port 9222.

Can I import Glyvio core classes directly in the interceptor?▼

No. Glyvio classes, services, and entities are injected globally at runtime, so reference them via globals like glyvio_core and glyvio_entity instead of importing from core packages. Only target page, route, state, and interceptor classes are imported from the defining plugin.

What happens if Chrome remote debugging is unavailable?▼

The skill falls back to asking the user to provide the current design JSON manually, obtained from page.getDesignRaw(state) or the browser console, and save it to .agents/temp/<BatchPageName>_design.json before code generation proceeds.