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.
git clone --depth 1 https://github.com/AleksandarBisevac/claude-pluginsnpx agentmods add skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-uiWrote 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.
[](https://agentmods.dev/skills/aleksandarbisevac/claude-plugins/refactoring-the-assembled-ui)<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.
<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>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.
| Model | Per session | Once 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 |
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.
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.jsfiles 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.htmlprints 3.The pin that reads
SCRIPT.count("<script>") == 1counts 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,<iframeorurl(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/exportcannot work on an opaquefile://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-fileimportDOES work — verified in Chromium against the panel server's exact response profile, with afile://control in the same run reproducing the report'snet::ERR_FAILED. What blocks it is not the browser:panel-server.pyhas 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 astype="module"(measured by rewriting only the response body), which removes every top-levelfunctiondeclaration fromwindow. 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_CSSmust come first — both stylesheets are individually invalid without it (undeclared custom properties, andpanel.cssalone fails thecolor-schemecheck). Then base, then components, then the surface file, becausereport.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.pyruns a line-based lint overUI_HTML.splitlines(); a part without a trailing newline joins two lines and can hide a real offender or manufacture a false one. -
.gitattributespinsscripts/ui/** text eol=lfas a glob, so new parts inherit it. No.pymay ever land inscripts/ui/— a selftest pins that directory as Python-free.
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.
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.
- 15d ago Changed · -3 tokens per session 7c9faea3d349
- 16d ago Changed · -4 lines 5fa7b5a747f3
- 2mo ago First seen · 401 lines · 192 tokens per session scan A 82dcc2a28789
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.
refactoring-the-assembled-ui compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| refactoring-the-assembled-uiAleksandarBisevac/claude-plugins | Skill | 4 | yesterday | MIT | A | 189 | Claude Code |
| prism-audittonone-ai/tonone | Skill | 77 | 23d ago | MIT | A | 42 | Claude Code |
| touch-audittonone-ai/tonone | Skill | 77 | 23d ago | MIT | A | 47 | Claude Code |
| lens-audittonone-ai/tonone | Skill | 77 | 23d ago | MIT | A | 58 | Claude Code |
| forge-audittonone-ai/tonone | Skill | 77 | 23d ago | MIT | A | 54 | Claude Code |
| relay-audittonone-ai/tonone | Skill | 77 | 23d ago | MIT | A | 45 | Claude Code |
| warden-audittonone-ai/tonone | Skill | 77 | 23d ago | MIT | A | 52 | Claude Code |