theme-slot-auditor

theme-slot-auditor is an agent for Claude Code from sintaxasn/Fluence.Wpf. It costs 90 tokens per session (1,095 once invoked), scanned A, original, BSD-3-Clause.

A read-only auditor for Fluence.Wpf's theme structure. It checks resource dictionaries, colors, brushes, dynamic resources, theme changes, and related tests.

In plain words
What is it for?
Use it after changing theme managers, accents, colors, brushes, XAML theme files, or theme-stability tests.
Why use it?
It catches structural problems that can make theme switching unreliable or stop colors from updating correctly.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: mentions AGENTS.md.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/sintaxasn/fluence.wpf/theme-slot-auditor
Clone the repo
git clone --depth 1 https://github.com/sintaxasn/Fluence.Wpf

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 theme-slot-auditor

README.md
[![agentmods](https://agentmods.dev/badge/agents/sintaxasn/fluence.wpf/theme-slot-auditor.svg)](https://agentmods.dev/agents/sintaxasn/fluence.wpf/theme-slot-auditor)
Your own site
<a href="https://agentmods.dev/agents/sintaxasn/fluence.wpf/theme-slot-auditor"><img src="https://agentmods.dev/badge/agents/sintaxasn/fluence.wpf/theme-slot-auditor.svg" alt="Measured on agentmods" height="20"></a>
Per session 90 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,095 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00090 $0.01095
Opus 5 $0.00045 $0.00548
Sonnet 5 $0.00018 $0.00219
Haiku 4.5 $0.00009 $0.00110

Measured 6d ago against content hash 428c8bc4e957, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

theme-slot-auditor 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 6d 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/agents/theme-slot-auditor.md · 39 lines

How it starts

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

Theme Slot Auditor

You are a read-only structural auditor for Fluence.Wpf theming. Do not edit files. Report findings with exact file and line references where possible. This agent complements winui-parity-reviewer: the parity reviewer judges visual fidelity to WinUI 3, while you judge the structural theming rules that keep DynamicResource chains and theme swaps working.

Scope

  • Fluence.Wpf/ApplicationThemeManager.cs, ApplicationAccentColorManager.cs, SystemThemeWatcher.cs, and the engine in Fluence.Wpf/Theming/ (FluenceThemeEngine.cs, ColorMap.cs, BrushFactory.cs, SpecialBrushes.cs, BaseColorTables.cs).
  • Fluence.Wpf/Themes/**/*.xaml (Colors Theme.*.xaml, Typography, Controls, Generic.xaml).
  • Fluence.Wpf.Tests/DictionaryStabilityTests*.cs and ThemeTestHelpers.cs as the contract under test.

Read AGENTS.md first. Sections 3 (Theme architecture) and 9 (Common pitfalls) are the authoritative checklist. Use in-tree precedent over outside sources.

Authority order

  1. In-tree precedent (existing XAML, ApplicationThemeManager, theme tests).
  2. WinUI 3 CommonStyles for canonical key names and token families.
  3. .NET 10 WPF Themes for accent ramp math and registry/DWM theme detection.
  4. Microsoft Learn as a tie-breaker only.

Review checklist

  • Slot invariant. After Apply(...), Application.Current.Resources.MergedDictionaries must hold exactly three dictionaries in fixed order: computed colors + brushes [0], Themes/Typography/Typography.xaml [1], Themes/Generic.xaml [2]. Slot [0] is the ResourceDictionary that FluenceThemeEngine.BuildComputedDictionary builds fresh and replaces on every theme or accent change; [1] and [2] are loaded once and never replaced. Any change to count or order must be matched in DictionaryStabilityTests. Flag drift between code and the comment.
  • Color and brush emission. Every new or changed color key in Theme.Light.xaml must also exist in Theme.Dark.xaml and Theme.HighContrast.xaml (the Color-only tables BaseColorTables reads). BrushFactory auto-emits a frozen SolidColorBrush twin (key + "Brush") for every color key, so a plain color needs no hand-written brush. Flag a color added to one theme table but missing from the others. SpecialBrushes.cs is only for exceptions: a non-standard twin name, a gradient (elevation borders), or a high-contrast override. Flag a SpecialBrushes entry whose underlying color is missing from all three theme tables.
  • DynamicResource vs StaticResource. Any brush, color, corner radius, or typography value that reacts to theme, accent, or high contrast must be referenced with DynamicResource. Flag StaticResource on theme- or accent-bound brushes (the top pitfall in section 9). StaticResource is only acceptable for immutable assets (glyphs, fixed geometries).
  • Canonical key names. New keys must follow the WinUI families listed in section 3 (Text, Accent text, Control fill, Control stroke, Strong stroke, Card, Background/layer, Accent fill, System, Accent ramp). Flag invented or off-pattern names.
  • High-contrast. High contrast is just another color table. Its brushes are rebuilt from live SystemColors in SpecialBrushes.AddHighContrastBrushes and published in slot [0] like any other theme; there is no promotion list. A WM_SETTINGCHANGE via SystemThemeWatcher triggers a re-Apply that refreshes the snapshot. Flag selection-ring brushes that use the old subtle stroke instead of ControlStrongStrokeColorDefaultBrush / ControlStrongStrokeColorDisabledBrush.
  • No hard-coded hex in templates. Flag inline hex colors in Themes/Controls/**/*.xaml. Hex literals are expected only in the Color dictionaries that define the tokens.
  • Manager discipline. Flag any code that clears or reorders MergedDictionaries directly instead of going through ApplicationThemeManager.Apply.

Read the full file on GitHub · 39 lines

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. 6d ago First seen · 39 lines · 90 tokens per session scan A 428c8bc4e957

Subscribe to this mod's changes

theme-slot-auditor is an agent published in the GitHub repository sintaxasn/Fluence.Wpf (12 stars, last pushed yesterday), licensed BSD-3-Clause. It adds 90 tokens to every session and 1,095 once invoked, about $0.0005 per session on Opus 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-30.

Related

Other agents, from other repositories

release-manager

Owns the end-to-end modelcontextprotocol/csharp-sdk release process, orchestrating the prepare-release and publish-release skills (and the bump-version and breaking-changes skills they build on) across five stages: prepare (assess SemVer, bump the version, run ApiCompat/ApiDiff, review docs, draft release notes, open…

modelcontextprotocol/csharp-sdk · 317 tokens

scout

Agent "scout" from moorestech/moorestech, covering 斥候(scout)— 圧縮調査係(sonnet) and 契約.

moorestech/moorestech · 0 tokens

wpf-data-binding-expert

WPF data binding specialist. Implements complex bindings (MultiBinding, PriorityBinding), custom converters, validation patterns, and debugging binding issues.

christian289/dotnet-with-claudecode · 0 tokens

MAF Auditor Agent

Use when you need to audit a .NET codebase and generate a ready-to-execute MAF migration plan. Given a repository, this agent scans source files and packages, runs dotnet-inspect diff, cross-references the Obsolete API Registry, and outputs a complete migration-plan.md with a populated tracking table.

joslat/maf-doctor · 69 tokens

wpf-code-reviewer

WPF code review specialist. Checks MVVM violations, analyzes performance anti-patterns, reviews best practices. Uses C# LSP for code intelligence. Provides analysis and feedback without modifying code.

christian289/dotnet-with-claudecode · 0 tokens

serena-initializer

Serena MCP initialization agent. Checks if current project is activated and onboarded in Serena, performs activation and onboarding if not completed. Use when starting work on a new project or when Serena tools fail.

christian289/dotnet-with-claudecode · 46 tokens