create-gantt-page-interceptor

Generates and registers a TypeScript interceptor class customizing Glyvio Gantt page design, queries, and drag actions.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Customizing an existing Glyvio SimpleGanttPage view requires writing a correctly-typed interceptor class that extends the right abstract base, binds to the right route, and hooks into design, query, and drag events — a process that is error-prone without knowing the page's actual runtime design structure. ## Core Features & Use Cases - Design Capture Workflow: Uses a temporary SpyInterceptor plus the chrome_inspector.js script to extract the live page design JSON from a running Chrome session, ensuring generated code targets real widget keys. - Full Hook Blueprint: Generates overrides for getDesign, getDesignForGroup, getDesignForBar, populateQueryBuilder, populateIntervalFilter, onBarChange, and lifecycle/event hooks. - Use Case: A developer needs to highlight overdue task bars in red and add an audit log entry whenever a bar is rescheduled on TaskGanttPage; the skill collects the design JSON, analyzes it, and emits a registered interceptor implementing both behaviors. ## Quick Start Ask the agent to create a Gantt page interceptor for your target page, providing the page name, route class, base interceptor class, state classes, entity name, and the modifications you want.

Frequently Asked Questions about create-gantt-page-interceptor

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

FAQPage Schema
How do I customize a Glyvio Gantt page with an interceptor?▼

Create a class extending the page's abstract SimpleGanttPageInterceptor, override hooks like getDesignForBar or onBarChange, and register it via appInterceptorService. This skill automates the file creation, blueprint code, and registration steps.

How do I get the design JSON of a Gantt page?▼

Register a temporary SpyInterceptor that stores the design on window.__finalDesign, then run the chrome_inspector.js script against Chrome with remote debugging on port 9222. The script saves the JSON to .agents/temp for analysis.

What hooks does a Gantt page interceptor support?▼

It supports getDesign, getDesignForGroup, getDesignForBar, populateQueryBuilder, populateMainFilter, populateIntervalFilter, onBarChange, onInitState, onRefreshState, and onEvent. The group and bar hooks mirror Kanban column and cell hooks, while populateIntervalFilter handles the date-window query.

Why must I not create a separate queue in onBarChange?▼

The queue parameter is the same EntityServiceQueue instance the page's own onBarChange already uses. Creating or saving a separate queue would double-save entities or race against the page's own persistence, so you must push entries onto the shared queue.

How is the correct base interceptor class determined?▼

Search the plugin's .d.ts declaration files for the abstract interceptor bound to the target route. If a specialized subclass carries the JSDoc comment "You MUST extend this instead.", that class must be used as the parent; never invent a parent class.