companion-feedback-file-pattern

Creates a new split-file feedback category and wires it into the feedback.ts aggregator for Bitfocus Companion modules.

Updated May 19, 2026
One-click install
npx skills add https://github.com/digitaldrummerj/bitfocus-companion-skills --skill companion-feedback-file-pattern-digitaldrummerj
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: companion-feedback-file-pattern
Source: https://github.com/digitaldrummerj/bitfocus-companion-skills/tree/main/plugins/companion-feedback-file-pattern
Command: npx skills add https://github.com/digitaldrummerj/bitfocus-companion-skills --skill companion-feedback-file-pattern-digitaldrummerj

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @companion-module/base.

What problem does it solve? Bitfocus Companion modules split feedback definitions across one file per category, and adding a brand-new category requires creating a correctly typed file plus wiring imports, union types, and spreads into the feedback.ts aggregator. This Skill documents the exact structure and steps so the new category compiles cleanly on the first try. ## Core Features & Use Cases - New Category File Creation: Provides a complete template for src/feedbacks/feedback-{category}.ts with typed enums, factory functions, and guarded callbacks. - Aggregator Wiring: Shows how to import the new factory, type the local variable, extend the union type, and spread results in feedback.ts. - Shared Helpers: Explains when and how to use feedback-utils.ts factories like getRoomOption so dropdowns read live instance state. - Use Case: You are adding NDI feedbacks to a Companion module that has no NDI category file yet. Use this Skill to scaffold the file, wire it into the aggregator, and verify with a zero-error yarn build. ## Quick Start Ask the agent to create a new feedback category file for your Companion module and wire it into feedback.ts using the split-file pattern.

Frequently Asked Questions about companion-feedback-file-pattern

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

FAQPage Schema
How do I add a new feedback category to a Bitfocus Companion module?▼

Create a new src/feedbacks/feedback-{category}.ts file exporting a typed enum and a GetFeedbacks{Category} factory, then import it in feedback.ts, call the factory, extend the union type, and spread the result into the combined feedbacks object.

When should I create a new feedback file versus editing an existing one?▼

Create a new file only when no src/feedbacks/feedback-{category}.ts exists for your category. If the category file already exists, add the enum member and feedback definition directly to that file without touching the aggregator.

What is the difference between boolean and advanced feedbacks in Companion?▼

Boolean feedbacks return true or false and Companion applies the defaultStyle when true. Advanced feedbacks return a full CompanionAdvancedFeedbackResult object, letting you set custom text, colors, or images that vary by state value.

Why is my Companion feedback dropdown always empty?▼

The option factory was likely called at module load time instead of inside the factory function. Call helpers like getRoomOption(instance) inside GetFeedbacks{Category} so choices read live instance state when feedbacks are registered.

Why does TypeScript error after adding a new feedback file?▼

Common causes are forgetting to add the new enum to the union type in feedback.ts, missing the .js extension on ESM relative imports, or duplicating a feedback ID that already exists in another enum.