enterprise-spring-xml
Spring Bean Factory XML — Dasel v3 Query Patterns
<when_to_use>
Load this skill when querying any Spring bean XML file — applicationContext.xml, *_beans.xml, spring-context.xml, or any Spring ApplicationContext XML — for bean discovery, dependency analysis, JMS wiring, property injection auditing, or cross-bean reference tracing.
</when_to_use>
Dasel v3 selector patterns for Spring bean factory XML. Always pass -i xml explicitly.
Attribute prefix rule: Dasel friendly mode (default) prefixes XML attributes with -. The id attribute is -id, class is -class. Text content is #text.
Bean Discovery
# All bean IDs
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(has("-id")).map("-id")'
# All bean classes
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(has("-class")).map("-class")'
# Map -class across every bean (includes beans without -id)
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.map("-class")'
Class Pattern Matching
Filter beans by class name via regex on -class.
# Beans whose class contains JmsTemplate
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(-class ~ ".*JmsTemplate.*").map("-id")'
# Count beans matching a class pattern
dasel -f beans.xml -i xml 'len(beans.bean.filter(-class ~ ".*Jms.*"))'
Dependency Wiring Analysis
Find beans referencing other beans via the -ref attribute on property child elements.
Pattern: parentCollection.filter(childElement.filter(condition).len($this) > 0) — filters the parent by testing whether a matching child exists (length > 0).
# Beans that reference a specific bean ID via ref attribute
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(property.filter(-ref == "targetBeanId").len($this) > 0).map("-id")'
JMS Destination Mapping
Find which beans consume which JMS destinations via property child elements.
# Beans wired to a specific destination property
dasel -f integrationpoint_beans.xml -i xml 'beans.bean.filter(property.filter(-name == "destination").len($this) > 0).map("-id")'
Property Injection Extraction
Extract externalized ${...} placeholder values from bean definitions.
# All property values using ${...} placeholders
dasel -f storage_beans.xml -i xml 'beans.bean.property.filter(-value ~ ".*\\$\\{.*\\}.*").map("-value")'
Attribute and Text Content Access
# <bean id="myBean" class="com.example.Foo">some text</bean>
dasel -f beans.xml -i xml 'beans.bean[0].-id' # myBean
dasel -f beans.xml -i xml 'beans.bean[0].-class' # com.example.Foo
dasel -f beans.xml -i xml 'beans.bean[0].#text' # some text
# Discover all keys (attributes + child elements) on first bean
dasel -f beans.xml -i xml 'beans.bean[0].keys($this)'
Namespace Handling
Friendly mode strips namespace prefixes from element names — works for most Spring queries.
When namespace prefixes cause selector failures (element not found despite existing), switch to structured mode:
dasel -f spring-context.xml -i xml --read-flag xml-mode=structured 'beans.bean[0]'
Cross-File Analysis
Write intermediate results to /tmp/ — never to the source tree.
# Extract bean IDs from multiple files, compare
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(has("-id")).map("-id")' > /tmp/chaosrouter_beans.txt
dasel -f integrationpoint_beans.xml -i xml 'beans.bean.filter(has("-id")).map("-id")' > /tmp/integration_beans.txt
diff /tmp/chaosrouter_beans.txt /tmp/integration_beans.txt
More from jamie-bitflight/claude_skills
perl-lint
This skill should be used when the user asks to lint Perl code, run perlcritic, check Perl style, format Perl code, run perltidy, or mentions Perl Critic policies, code formatting, or style checking.
24brainstorming-skill
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or when users request help with ideation, marketing, and strategic planning. Explores user intent, requirements, and design before implementation using 30+ research-validated prompt patterns.
11design-anti-patterns
Enforce anti-AI UI design rules based on the Uncodixfy methodology. Use when generating HTML, CSS, React, Vue, Svelte, or any frontend UI code. Prevents "Codex UI" — the generic AI aesthetic of soft gradients, floating panels, oversized rounded corners, glassmorphism, hero sections in dashboards, and decorative copy. Applies constraints from Linear/Raycast/Stripe/GitHub design philosophy: functional, honest, human-designed interfaces. Triggers on: UI generation, dashboard building, frontend component creation, CSS styling, landing page design, or any task producing visual interface code.
7python3-review
Comprehensive Python code review checking patterns, types, security, and performance. Use when reviewing Python code for quality issues, when auditing code before merge, or when assessing technical debt in a Python codebase.
7hooks-guide
Cross-platform hooks reference for AI coding assistants — Claude Code, GitHub Copilot, Cursor, Windsurf, Amp. Covers hook authoring in Node.js CJS and Python, per-platform event schemas, inline-agent hooks and MCP in agent frontmatter, common JSON I/O, exit codes, best practices, and a fetch script to refresh docs from official sources. Use when writing, reviewing, or debugging hooks for any AI assistant.
7agent-creator
Create high-quality Claude Code agents from scratch or by adapting existing agents as templates. Use when the user wants to create a new agent, modify agent configurations, build specialized subagents, or design agent architectures. Guides through requirements gathering, template selection, and agent file generation following Anthropic best practices (v2.1.63+).
6