Agent skill

Excel Background Verification

by tmustier in tmustier/pi-for-excel

Run model-driven end-to-end tests in real local Excel while keeping it in the background.

MITAuto-check passedDocuments & Office

Install Excel Background Verification

skills CLI
$ npx skills add tmustier/pi-for-excel --skill excel-background-verification -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install tmustier/pi-for-excel excel-background-verification --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/tmustier/pi-for-excel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/excel-background-verification .claude/skills/excel-background-verification && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
excel-background-verification
GitHub stars
434
Token cost
~2.8k tokens
SKILL.md length
1,274 words
Files
4 (incl. scripts)
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Run model-driven end-to-end tests in real local Excel while keeping it in the background.

  • Local acceptance of behavior changes and dependency upgrades involving workbook tools
  • SKILL.md covers Set up, Run the test, Diagnose failures and Report and clean up
  • Runs Python and Swift scripts from its folder; calls npm, python3 and curl; needs PI_BACKGROUND_VERIFY_TOKEN and VITE_PI_BACKGROUND_VERIFY_TOKEN
  • Tasks that involve Excel spreadsheets

What it does

Excel Background Verification is an agent skill from tmustier/pi-for-excel. Run model-driven end-to-end tests in real local Excel while keeping it in the background. Use for local acceptance of behavior changes and dependency upgrades involving workbook tools, taskpane UI, recovery, auth or providers.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `scripts/read-taskpane-setting.py` and `scripts/scratch-workbook.py`).

It sits in Documents & Office, covering Excel spreadsheets. It works with Microsoft Excel. The repository describes itself as: Experimental Excel sidebar agent add-in. Multi-model. Powered by Pi. The licence is MIT.

When your agent uses it

  • Local acceptance of behavior changes and dependency upgrades involving workbook tools
  • Tasks that involve Excel spreadsheets

Example prompts

  • “/excel-background-verification”

Requirements

  • Python 3
  • A credential in PI_BACKGROUND_VERIFY_TOKEN
  • A credential in VITE_PI_BACKGROUND_VERIFY_TOKEN

What it can do on your machine

Read from SKILL.md and the folder at commit a3cea8f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python and Swift), which the agent can run.

    Shell commands in SKILL.md call:

    • npm
    • python3
    • curl
    • node
    • rg
    • codex
    • osascript

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • PI_BACKGROUND_VERIFY_TOKEN
    • VITE_PI_BACKGROUND_VERIFY_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Excel Background Verification loads about 2.8k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 1,274 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from tmustier/pi-for-excel at commit a3cea8f, republished under its MIT licence (© tmustier). 1,274 words, ~2,819 tokens.

Download SKILL.mdSave it as .claude/skills/excel-background-verification/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
excel-background-verification
description
Run model-driven end-to-end tests in real local Excel while keeping it in the background. Use for local acceptance of behavior changes and dependency upgrades involving workbook tools, taskpane UI, recovery, auth or providers.

Background Excel end-to-end tests

Follow the acceptance policy in docs/coding-standards.md. The model performs the work through the taskpane; the test bridge submits prompts and independently reads the workbook.

Set up

Run from the worktree containing the code under test. You need:

  • the sideloaded manifest pointing to https://localhost:3141/src/taskpane.html
  • trusted cert.pem and key.pem files in the worktree
  • an approved current model with working authentication
  • a computer-use tool with Accessibility and Screen Recording permissions

Inspect existing listeners before starting servers. Reuse the correct test setup or stop only processes you own.

bash
RUN_DIR=$(mktemp -d /tmp/pi-excel-e2e.XXXXXX)
TOKEN=$(node scripts/background-verify-bridge-server.mjs token)

PI_BACKGROUND_VERIFY_TOKEN="$TOKEN" PI_BACKGROUND_VERIFY_HOST=localhost \
  npm run background:verify:bridge > "$RUN_DIR/bridge.log" 2>&1 &
BRIDGE_PID=$!

VITE_PI_BACKGROUND_VERIFY_URL=https://localhost:3157 \
VITE_PI_BACKGROUND_VERIFY_TOKEN="$TOKEN" \
  npm run dev > "$RUN_DIR/vite.log" 2>&1 &
VITE_PID=$!

curl --fail https://localhost:3157/health

Wait for server readiness before probing. Keep the bridge loopback-only and tokened; do not print or commit its token. Start npm run proxy:https if the configured provider route needs the local CORS proxy (the openai-codex route does).

Open the pane without the foreground

Excel for Mac does not put a sideloaded add-in on the ribbon until it has been activated once in the running process, and the Home-tab "Add-ins" flyout does not render for a background app. Bootstrap through the document instead: a workbook can carry an auto-open task pane part that references the sideloaded manifest (store="developer" storeType="Registry").

bash
SCRATCH=~/Library/Containers/com.microsoft.Excel/Data/Documents/pi-e2e-scratch.xlsx
python3 .agents/skills/excel-background-verification/scripts/scratch-workbook.py create "$SCRATCH"
open -g -a "Microsoft Excel" "$SCRATCH"      # launch straight into the workbook, in the background
sleep 12; curl --fail https://localhost:3157/health   # expect one client

Excel opens the pane on document open and the Open Pi ribbon button appears for the rest of the process. The auto-open fires once per Excel process: to reload the pane (for example after switching the Vite worktree) press Close Pi for Excel and then Open Pi through computer_use, passing element_index as a string. Keep the scratch workbook inside the Excel container so the sandbox never raises a "Grant File Access" sheet; scratch-workbook.py tag <existing.xlsx> adds the part to a workbook Excel has saved.

If clients is still empty, inspect Excel with computer_use / sky.get_app_state. Check the workbook, pane, manifest URL and server before changing caches. For a pane showing a network error, use a semantic accessibility AXPress on Try Again after starting the server.

Use background semantic accessibility actions only. Record the foreground app and window before and after the test.

Before you call it blocked

Everything below has looked like a foreground-only step and was worked around in the background. Report a blocker only after these are exhausted, and say which one you hit.

Looks likeIsDo
No Open Pi button on the ribbon after Excel relaunched; manifest is intactSideloaded add-ins are absent from the ribbon cache until activated once per Excel processscratch-workbook.py create and open -g into it; the pane opens from the document and the button appears
Home-tab Add-ins flyout does not open (AXPress toggles the button, no popover window)It does not render for a background appNot needed; use the document bootstrap above
sky.get_app_state fails with cgWindowNotFound, or Excel lists AXApplication as its only windowSeen once right after open -g with no documentWait for the launch to settle and query again; otherwise quit Excel and open -g straight into the scratch workbook, which exposed a normal AXStandardWindow
computer_use click does nothingelement_index was passed as a numberPass it as a string, e.g. "63"
setTimeout is not defined inside computer_useThe JS sandbox has no timersSequence sky calls with await; wait in the shell (sleep) between calls
AppleScript save workbook as returns Parameter error (-50)Path built from POSIX path of (path to home folder)Pass a literal absolute path string, inside the Excel container
Pane cannot be reloaded after switching the Vite worktreeThe document auto-open fires once per processClose Pi for Excel then Open Pi through computer_use
Persisted state cannot be checked without trusting the paneIt canread-taskpane-setting.py <key> decodes the record from WebKit's IndexedDB
computer_use returns codex app-server exited before returning a response on every callThe tool's own server is down; Excel is fineRead the tree with scripts/axdump.swift (below); pressing buttons waits for the tool to come back

Opening a workbook does not activate Excel: both open -g -a "Microsoft Excel" <file> and osascript -e 'tell application "Microsoft Excel" to open POSIX file "…"' leave the frontmost app unchanged.

Run the test

Create a test chat through the actual UI. The bridge's submitPrompt sends message text, so /new and /name can reach the model literally rather than dispatching commands.

Define a command shorthand in the same shell:

bash
bridge() {
  PI_BACKGROUND_VERIFY_TOKEN="$TOKEN" PI_BACKGROUND_VERIFY_HOST=localhost \
    npm run background:verify:command -- "$@"
}

bridge status
bridge selectModel '{"provider":"openai-codex","modelId":"gpt-5.6-sol"}'

Use a currently approved model. If health lists multiple clients, pass --clientId <id> to target the scratch workbook on each command.

Adapt the prompt to the changed feature. This example exercises model-driven sheet creation, writes, formulas and reads:

bash
bridge submitPrompt \
  '{"text":"Use workbook tools to create a new sheet _pi_e2e_smoke; stop if it exists. Write 2 and 3 into A1:A2 and =SUM(A1:A2) into A3. Read back the values and formula. Leave the sheet for independent inspection. Do not change other sheets.","waitForIdle":true,"timeoutMs":120000}' \
  --timeout 130000

bridge readRange '{"address":"_pi_e2e_smoke!A1:A3"}'

Check actual tool execution and lastAssistant.model / stopReason. An idle runtime can also mean the request failed. Independently assert that A3 is 5 and retains =SUM(A1:A2); check formatting or objects when relevant.

Clean up through the model, then verify the scratch sheet is gone:

bash
bridge submitPrompt \
  '{"text":"Delete only _pi_e2e_smoke using your workbook tool. This scratch-sheet deletion is approved. Leave all other sheets unchanged.","waitForIdle":true,"timeoutMs":120000}' \
  --timeout 130000
bridge officeProbe
Show full SKILL.md (493 more words)Show less

Diagnose failures

SymptomCheck
No bridge clientPane not open: bootstrap with scratch-workbook.py and open -g into the workbook, or press Open Pi on the ribbon if the add-in has been activated this process; Vite URL and bridge environment configured
Pane does not auto-open from a second tagged workbookExpected within one Excel process; press Open Pi instead, or quit and relaunch Excel into the workbook
Pane opens as "New Office Add-in" with an add-in error or endless loadingThe webextension reference does not resolve; keep store="developer" storeType="Registry" and the manifest <Id>
Pane loads, model returns Load failedConfigured proxy is running and reachable
Cannot set the WebKit textarea through accessibilitySubmit through the bridge
Unsaved workbook has no workbook IDIdentify it through the client and sheet/range evidence; documentIdentityProbe shows both host URL sources beside the resolved context
Every Office.js call hangs after an AppleScript saveExcel is showing a "Grant File Access" sheet for a folder without a sandbox bookmark (~/Documents included); cancel it and save into ~/Library/Containers/com.microsoft.Excel/Data/Documents/
Model turn fails with Importing a module script failed.npm ci ran under the live Vite server and wiped node_modules/.vite/deps; restart Vite and reload the pane

Use officeProbe, readRange, readUsedRange and listCharts for independent inspection. workbookWriteProbe is a reversible Office.js diagnostic, not a model test. writeRange and clearRange can prepare fixtures, but must not perform the work the model is meant to do. configureProxy changes saved settings; restore them after transport-specific tests.

For anything the taskpane persists (recovery snapshots, files-workspace metadata and audit trail, settings), read the record straight out of Excel's WebKit IndexedDB rather than through the pane:

bash
python3 .agents/skills/excel-background-verification/scripts/read-taskpane-setting.py --list
python3 .agents/skills/excel-background-verification/scripts/read-taskpane-setting.py workbook.recovery-snapshots.v1

It copies the database and its WAL and decodes one record to JSON, so a before/after diff shows exactly which entries a change dropped, kept or rewrote.

Rendered tool cards are visible in the pane's accessibility tree (HTML content under the Pi for Excel container), which is how to assert diff tables, trees and images. The dump truncates on long chats; scroll the HTML content element with sky.scroll or start a fresh chat with submitInput {"text":"/new"}. Slash commands such as /new and /history go through the real composer with submitInput; submitPrompt sends text to the model.

When computer_use is unavailable, the same tree is readable without it. System Events stops at the web area, so use the AXUIElement walker:

bash
swiftc -O -o /tmp/axdump .agents/skills/excel-background-verification/scripts/axdump.swift
/tmp/axdump "Microsoft Excel" > "$RUN_DIR/pane-ax.txt"
rg -n 'AXTable|AXLink|AXPreformattedStyleGroup|value="' "$RUN_DIR/pane-ax.txt" | tail -60

It prints role, subrole, title, value, description and URL per element, indented by depth, and does not press anything.

Report and clean up

Record the tested revision, provider/model, thinking level, prompt, observed tools, independent assertions, cleanup and unchanged foreground app/window. State untested provider or host paths. Keep useful logs and screenshots without credentials.

Stop the test servers and any proxy you started. If the user needs a running development environment, explicitly hand over the normal dev server and proxy; stop the test bridge and remove its token.

bash
kill "$BRIDGE_PID" "$VITE_PID"
unset TOKEN

Confirm the owned listeners have exited, then remove the worktree when it is no longer serving the user.

© tmustier, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts) in .agents/skills/excel-background-verification of tmustier/pi-for-excel.

  • SKILL.md
  • scripts/axdump.swift
  • scripts/read-taskpane-setting.py
  • scripts/scratch-workbook.py

Open the folder on GitHubat commit a3cea8f

Compare with similar skills

Excel Background Verification next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Excel Background Verification compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Excel Background Verification this skilltmustier/pi-for-excel434—~2.8kAutomated safety check: PassMIT
MarkitdownImCa0/just-laws78114 repos~3.2kAutomated safety check: NotesMIT
Docx4jplutext/docx4j2.4k—~2.5kAutomated safety check: PassNone
Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences2742 repos~2.7kAutomated safety check: PassApache-2.0
Cyber Pptcrazyykhllc-bit/CyberPPT1.8k—~10kAutomated safety check: PassMIT
Markitshift-labs-ai/markit1.3k—~299Automated safety check: PassMIT

Similar skills

  • Markitdown

    ImCa0/just-laws

    Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.

    781 GitHub starsUsed in 14 repos~3.2k tokens
    Documents & OfficeAuto-check: notes
  • Docx4j

    plutext/docx4j

    A skill your agent uses when writing Java code that creates, reads or edits Word (.docx), PowerPoint (.pptx) or Excel (.xlsx) files with docx4j — including generating documents, editing existing…

    2.4k GitHub stars~2.5k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Instrument Data To Allotrope

    aws-samples/amazon-bedrock-agents-healthcare-lifesciences

    Official

    Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

    274 GitHub starsUsed in 2 repos~2.7k tokens
    Documents & OfficeAuto-check passed
  • Cyber Ppt

    crazyykhllc-bit/CyberPPT

    当用户需要把 DOCX、PDF、TXT、XLSX、研究报告、业务材料或原始数据转成高密度、可编辑、咨询风格 PPTX 时使用;也适用于需要 SCR 论证、视觉风格探索、详细图表和渲染质检的 PPT。

    1.8k GitHub stars~10k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Markit

    shift-labs-ai/markit

    Convert files and URLs to Markdown. An agent skill from shift-labs-ai/markit.

    1.3k GitHub stars~299 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Jev SEO

    AgriciDaniel/jev-seo

    Full live SEO audit of any website from its homepage URL, powered by Jev (TypeSafe's System One model).

    515 GitHub stars~2.5k tokensUpdated 16 days ago
    Documents & OfficeAuto-check: notes

More from tmustier/pi-for-excel

  • Wps Windows Smoke

    tmustier/pi-for-excel

    Provision or reuse a local Windows 11 ARM VM as a reusable test harness for validating pi-for-excel inside real China-domestic WPS Spreadsheets.

    434 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Python Bridge

    tmustier/pi-for-excel

    Native Python execution via the local Python bridge. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~820 tokensUpdated yesterday
    Auto-check passed
  • Tmux Bridge

    tmustier/pi-for-excel

    Local terminal access via the tmux bridge. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~819 tokensUpdated yesterday
    Auto-check passed
  • Extending Pi

    tmustier/pi-for-excel

    Plan and build Pi for Excel extensions safely: choose skill vs extension plugin vs connection, create flat SKILL.md skills, and handle API keys without asking users to paste secrets in chat.

    434 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Web Search

    tmustier/pi-for-excel

    Search the public web for up-to-date facts. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~410 tokensUpdated yesterday
    Auto-check passed
  • MCP Gateway

    tmustier/pi-for-excel

    Discover and call tools from configured MCP servers. An agent skill from tmustier/pi-for-excel.

    434 GitHub stars~241 tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Excel Background Verification

What does Excel Background Verification do?

Run model-driven end-to-end tests in real local Excel while keeping it in the background. Excel Background Verification is an agent skill from tmustier/pi-for-excel. Run model-driven end-to-end tests in real local Excel while keeping it in the background.

When should I use Excel Background Verification?

Excel Background Verification fits situations like: local acceptance of behavior changes and dependency upgrades involving workbook tools; tasks that involve Excel spreadsheets.

How do I install Excel Background Verification in Claude Code?

Run `npx skills add tmustier/pi-for-excel --skill excel-background-verification -a claude-code`. Or copy the skill folder (.agents/skills/excel-background-verification in tmustier/pi-for-excel) into .claude/skills/excel-background-verification in your project. Claude Code loads it when a task matches its description.

How do I install Excel Background Verification in Codex?

Run `npx skills add tmustier/pi-for-excel --skill excel-background-verification -a codex`. Or copy the skill folder (.agents/skills/excel-background-verification in tmustier/pi-for-excel) into .agents/skills/excel-background-verification in your project. Codex loads it when a task matches its description.

Can I use Excel Background Verification in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tmustier/pi-for-excel --skill excel-background-verification -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/excel-background-verification, .gemini/skills/excel-background-verification, .github/skills/excel-background-verification and .opencode/skills/excel-background-verification in your project.

What does Excel Background Verification need to run?

Going by SKILL.md and its folder, Excel Background Verification needs Python and Swift for the scripts in its folder, the command-line tools its instructions call (npm, python3, curl, node, rg and codex) and credentials named PI_BACKGROUND_VERIFY_TOKEN and VITE_PI_BACKGROUND_VERIFY_TOKEN. Our summary lists: Python 3; A credential in PI_BACKGROUND_VERIFY_TOKEN; A credential in VITE_PI_BACKGROUND_VERIFY_TOKEN.

Does Excel Background Verification access the network?

SKILL.md contains no URLs. Its commands use npm and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Excel Background Verification safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Excel Background Verification use?

Excel Background Verification is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Excel Background Verification use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Excel Background Verification?

Skills that share tags, products or a category with Excel Background Verification: Markitdown (ImCa0/just-laws, 781 stars), Docx4j (plutext/docx4j, 2.4k stars), Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars) and Cyber Ppt (crazyykhllc-bit/CyberPPT, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Excel Background Verification?

tmustier (a GitHub user) maintains it in tmustier/pi-for-excel, which has 434 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.

Source: tmustier/pi-for-excel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.