A curated collection of Agent Skills for working with PYXLL, to help AI agents write and understand code using the PyXLL Excel add-in.
99
90%
Does it follow best practices?
Impact
100%
1.56xAverage score across 17 eval scenarios
Advisory
Suggest reviewing before use
Fetches index first
0%
100%
Fetches UDF docs page
100%
100%
Multiple pages fetched
100%
100%
Documented decorator used
100%
100%
No undocumented decorator parameters
66%
100%
Correct type annotation syntax
70%
100%
Array input annotation
100%
100%
Both functions defined
100%
100%
Docs log completeness
100%
100%
No training-only claim
70%
100%
Fetches index first
0%
100%
Fetches async or long-running docs
100%
100%
Uses built-in PyXLL async mechanism
100%
100%
Async feature named in log
100%
100%
No raw threading as primary solution
100%
100%
Documented decorator parameters only
100%
100%
Function retains xl_func decorator
100%
100%
Return type documented
100%
100%
Multiple pages fetched
100%
100%
Research log notes present
100%
100%
Fetches VBA guide
100%
100%
Fetches index first
0%
100%
Value syntax for cell reads
100%
100%
Documented macro decorator
100%
100%
Cell access via documented method
100%
100%
No parameterized property assignment in VBA style
100%
100%
Docs log completeness
100%
100%
Multiple pages fetched
100%
100%
xlCenter via constants
100%
100%
No bare -4108 for alignment
100%
100%
Border line style via constants
100%
100%
No bare integer for xlContinuous
100%
100%
xlOpenXMLWorkbook via constants
100%
100%
No bare 51 for file format
100%
100%
Border weight via constants
100%
100%
win32com.client imported
100%
100%
Constants accessor created
70%
100%
No other bare xl enum integers
100%
100%
ListObjects.Add() to create table
100%
100%
No invented table creation method
100%
100%
Table name set via .Name property
100%
100%
ListRows.Add() to insert row
100%
100%
No invented row insertion method
100%
100%
DataBodyRange as property (no parens)
100%
100%
No .DataBodyRange() call
100%
100%
Font.Bold set as property
100%
100%
resources/index.md listed
100%
100%
Correct reference file listed
0%
100%
index.md read before range.md
0%
100%
Validation accessed as property
100%
100%
Constants for validation type/operator
0%
100%
Constants for alert style
0%
100%
PyXLL docs fetched
0%
100%
PyXLL page content used
0%
100%
pywin32 reference consulted
0%
100%
@xl_macro decorator
100%
100%
xl_app() for Application object
100%
100%
No Dispatch for Application
100%
100%
GetOffset() as method call
0%
100%
No .Offset as parameterized call
0%
100%
xl_app imported from pyxll
0%
100%
xl_app() called in @xl_func
0%
100%
xl_app() called in @xl_menu
0%
100%
No Dispatch in PyXLL functions
0%
100%
@xl_func decorator used
100%
100%
@xl_menu decorator used
100%
100%
xl_app() inside function body
0%
100%
Active worksheet accessed via app
40%
100%
SpecialCells used for blanks
0%
100%
SpecialCells called with Type
0%
100%
SpecialCells Type is a named constant
0%
100%
No Python iteration for blanks
0%
100%
RemoveDuplicates called with Columns
0%
100%
Columns covers both key fields
0%
100%
Header constant in RemoveDuplicates
100%
100%
win32com.client.constants imported
50%
100%
pywin32-excel-docs consulted
0%
100%
Formatting resource referenced
0%
100%
Interior.Color or Interior.ColorIndex used
0%
100%
No invented COM property names
0%
100%
PyXLL docs fetched
0%
100%
Documented formatter registration
0%
100%
Background cleared for neutral cells
0%
100%
COM not obtained via Dispatch
0%
100%
Multiple sources in log
0%
100%
Both value conditions present
0%
100%
Multi-file config syntax
100%
100%
Shared tab ID for merge
100%
100%
insertBefore or insertAfter used
33%
100%
Merge attribute value is a custom ID
66%
100%
Only one merge attribute per element
100%
100%
module.function callbacks
100%
100%
Unique IDs within each file
100%
100%
dynamicMenu getContent attribute
100%
100%
getContent callback returns a string
100%
100%
Returned XML root is <menu>
0%
100%
Namespace in returned XML
0%
100%
Refresh on open
0%
100%
module.function callbacks
0%
100%
Callback name matches Python function
100%
100%
button onAction signature
100%
100%
toggleButton onAction signature
100%
100%
dropDown onAction signature
100%
100%
IRibbonUI stored from onLoad
100%
100%
Invalidate called after provider change
100%
100%
module.function callbacks
0%
100%
loadImage on customUI root
100%
100%
No image + imageMso together
100%
100%
No image + getImage together
100%
100%
No imageMso + getImage together
100%
100%
Package resource image format
100%
100%
Built-in icon uses imageMso
100%
100%
module.function callbacks
100%
100%
contextMenus after ribbon
100%
100%
No editBox in context menu
100%
100%
No comboBox or dropDown in context menu
100%
100%
Stateful control used for review state
100%
100%
Built-in context menu referenced by idMso
100%
100%
module.function callbacks
100%
100%
Unique IDs in context menu
100%
100%
Fetches docs index
0%
100%
Fetches config docs page
100%
100%
Documented section names only
100%
100%
Documented key names only
100%
100%
Modules key configured
100%
100%
Log file path configured
100%
100%
Log level configured
100%
100%
Python path configured
100%
100%
Docs log completeness
100%
100%
No inferred keys claimed
100%
100%
End() as method
100%
100%
XlDirection constant in End()
0%
100%
GetOffset() for offset navigation
0%
100%
No .Offset(r,c) attribute call
0%
100%
GetResize() for range sizing
0%
100%
No .Resize(r,c) attribute call
0%
100%
GetAddress() for address string
0%
100%
No .Address(True,True) call
0%
100%
External script uses Dispatch
0%
100%
win32com.client imported
100%
100%
Table of Contents