refactoring-the-assembled-ui

refactoring-the-assembled-ui is a skill for Claude Code from AleksandarBisevac/claude-plugins. It costs 189 tokens per session (6,530 once invoked), scanned A, original, MIT.

A guide for changing CSS and JavaScript that Python combines into a self-contained HTML page. It explains how the source parts are joined and how tests protect the resulting file.

In plain words
What is it for?
Use it when splitting, sharing, or editing the assembled page’s styles and scripts, and when updating the tests that check its exact structure.
Why use it?
It prevents edits from breaking the assembly process or producing incorrect HTML. It also helps avoid confusing source files with the final page they create.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths.

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python3 tools/count-ui-pins.py # --json for a machine-readable shape.

Good fit Use it when splitting, sharing, or editing the assembled page’s styles and scripts, and when updating the tests that check its exact structure.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/AleksandarBisevac/claude-plugins
agentmods
npx agentmods add skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for refactoring-the-assembled-ui

README.md
[![agentmods](https://agentmods.dev/badge/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui/github.svg)](https://agentmods.dev/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui)
Your own site
<a href="https://agentmods.dev/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui"><img src="https://agentmods.dev/badge/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for refactoring-the-assembled-ui

Your own site · 80×15
<a href="https://agentmods.dev/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui"><img src="https://agentmods.dev/badge/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 189 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,530 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00189 $0.06530
Opus 5.5 $0.00076 $0.02612
Sonnet 5.5 $0.00038 $0.01306
Haiku 4.5 $0.00019 $0.00653

Measured 15d ago against content hash 7c9faea3d349, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

refactoring-the-assembled-ui scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 15d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/refactoring-the-assembled-ui/SKILL.md · 397 lines

How it starts

The opening of the file, as written. The whole thing — 397 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Refactoring the assembled UI

scripts/ui/ does not hold standalone files. It holds ordered parts of one artifact. _report_ui.py, _panel_ui.py and panel-server.py read them at import and join them into a single self-contained HTML page. Almost every surprise in this area comes from forgetting that.

The assembly contract

  • One inline <style>, and one inline <script> carrying code. The tags live in the Python modules, never in the assets — selftests pin both, and pin that the .js files carry no <script> tags of their own.

    Carrying code is not hedging. The panel emits one of each; the shipped report emits three <script> tags — window.AUDIT_USAGE (2.6 KB of data), window.AUDIT_MD_B64 (the 6.9 KB base64 Markdown twin), and the code (81 KB). Check the artifact, not this sentence: grep -c '<script' examples/acme-store/acme-store-audit.html prints 3.

    The pin that reads SCRIPT.count("<script>") == 1 counts tags in a Python string — the code block alone — not in the page. It has never contradicted the above, which is exactly why the wrong version of this bullet survived: the pin that looked like it was guarding the claim was guarding something else.

  • No external resources, ever. CI asserts the rendered report contains no <script src, <img , <link , <iframe or url(http. No CDN, no web font, no separate stylesheet.

  • A module script, but no cross-file import. The report's code block is <script type="module">: that is where its scope and its strict mode come from, and it is why no IIFE wraps it. What a module does NOT buy here is loading — import/export cannot work on an opaque file:// origin. There is no build step and there will not be one.

  • The panel is different in kind, and it has been measured. It is served over http://127.0.0.1, where a real cross-file import DOES work — verified in Chromium against the panel server's exact response profile, with a file:// control in the same run reproducing the report's net::ERR_FAILED. What blocks it is not the browser: panel-server.py has no static route (a module fetch gets 403 without the session token, 404 with it), a relative specifier inherits the path but never the ?t= query, module scripts are strictly MIME-checked, and the __*__ placeholders substituted into the script text would need a new home. The panel's script is also still a CLASSIC <script>, so it has neither module scope nor strict mode; it boots unchanged as type="module" (measured by rewriting only the response body), which removes every top-level function declaration from window. Until a route is decided, Python joins the parts — but do not repeat "ES modules are impossible here" as if it covered both surfaces.

  • Order is load-bearing. TOKEN_CSS must come first — both stylesheets are individually invalid without it (undeclared custom properties, and panel.css alone fails the color-scheme check). Then base, then components, then the surface file, because report.css's @media (max-width:52rem) thead th{position:static} beats the shared rule by source order alone.

  • Every part ends with \n. panel-server.py runs a line-based lint over UI_HTML.splitlines(); a part without a trailing newline joins two lines and can hide a real offender or manufacture a false one.

  • .gitattributes pins scripts/ui/** text eol=lf as a glob, so new parts inherit it. No .py may ever land in scripts/ui/ — a selftest pins that directory as Python-free.

Read the full file on GitHub · 397 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 15d ago Changed · -3 tokens per session 7c9faea3d349
  2. 16d ago Changed · -4 lines 5fa7b5a747f3
  3. 2mo ago First seen · 401 lines · 192 tokens per session scan A 82dcc2a28789

Subscribe to this mod's changes

refactoring-the-assembled-ui is a skill published in the GitHub repository AleksandarBisevac/claude-plugins (4 stars, last pushed yesterday), licensed MIT. It adds 189 tokens to every session and 6,530 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

refactoring-the-assembled-ui compared with skills from other repositories

refactoring-the-assembled-ui next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
refactoring-the-assembled-uiAleksandarBisevac/claude-pluginsSkill4yesterdayMITA189Claude Code
prism-audittonone-ai/tononeSkill7723d agoMITA42Claude Code
touch-audittonone-ai/tononeSkill7723d agoMITA47Claude Code
lens-audittonone-ai/tononeSkill7723d agoMITA58Claude Code
forge-audittonone-ai/tononeSkill7723d agoMITA54Claude Code
relay-audittonone-ai/tononeSkill7723d agoMITA45Claude Code
warden-audittonone-ai/tononeSkill7723d agoMITA52Claude Code