Skip to main content

full-stack-panel-authoring

Facilitates the creation of complete dashboard panel features in vanilla TypeScript, ensuring consistency across server and component layers.

Install this skill

or
20/100

Security score

The full-stack-panel-authoring skill was audited on May 20, 2026 and we found 16 security issues across 1 threat category. Review the findings below before installing.

Categories Tested

Security Issues

medium line 172

Template literal with variable interpolation in command context

SourceSKILL.md
172const url = `/api/panels/{feature}${action ? `?action=${encodeURIComponent(action)}` : ''}`;
medium line 174

Template literal with variable interpolation in command context

SourceSKILL.md
174headers: { Authorization: `Bearer ${localStorage.getItem('token') ?? ''}` }
medium line 176

Template literal with variable interpolation in command context

SourceSKILL.md
176if (!res.ok) throw new Error(`HTTP ${res.status}`);
medium line 431

Template literal with variable interpolation in command context

SourceSKILL.md
431console.warn(`[${this.name}] Circuit open -- cooldown ${this.cooldownMs / 1000}s`);
medium line 444

Template literal with variable interpolation in command context

SourceSKILL.md
444console.error(`[${this.name}] Request failed:`, e);
medium line 477

Template literal with variable interpolation in command context

SourceSKILL.md
477return `${x.toFixed(1)},${y.toFixed(1)}`;
medium line 479

Template literal with variable interpolation in command context

SourceSKILL.md
479return `<svg width="${w}" height="${h}" viewBox="0 0 ${w} ${h}">` +
medium line 480

Template literal with variable interpolation in command context

SourceSKILL.md
480`<polyline points="${points}" fill="none" stroke="${color}" ` +
medium line 516

Template literal with variable interpolation in command context

SourceSKILL.md
516this.element.className = `panel ${options.className ?? ''}`;
medium line 539

Template literal with variable interpolation in command context

SourceSKILL.md
539this.content.id = `${options.id}Content`;
medium line 549

Template literal with variable interpolation in command context

SourceSKILL.md
549this.content.innerHTML = `
medium line 557

Template literal with variable interpolation in command context

SourceSKILL.md
557this.content.innerHTML = `
medium line 584

Template literal with variable interpolation in command context

SourceSKILL.md
584if (!response.ok) throw new Error(`HTTP ${response.status}`);
medium line 589

Template literal with variable interpolation in command context

SourceSKILL.md
589throw new Error(`Failed after ${this.maxRetries} attempts: ${(error as Error).message}`);
medium line 598

Template literal with variable interpolation in command context

SourceSKILL.md
598localStorage.setItem(`panelState_${this.panelId}`, JSON.stringify({
medium line 606

Template literal with variable interpolation in command context

SourceSKILL.md
606const raw = localStorage.getItem(`panelState_${this.panelId}`);
Scanned on May 20, 2026
View Security Dashboard
Installation guide →