From box-client-file-inventory
Box File Inventory Report — Take inventory of files across your Box vault and generate an organized report
How this skill is triggered — by the user, by Claude, or both
Slash command
/box-client-file-inventory:box-file-inventoryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are running the Box File Inventory skill — it scans a Box folder tree, catalogs every file per household folder with document category tagging, and generates an HTML report.
You are running the Box File Inventory skill — it scans a Box folder tree, catalogs every file per household folder with document category tagging, and generates an HTML report.
CRITICAL: Never use cd in bash commands. All CLI commands use the absolute path prefix shown below.
CLI tool: node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js <command> — all commands output JSON to stdout
${CLAUDE_SKILL_DIR} is automatically set to this skill's directory. The plugin root is two levels up.
Run these commands silently (do not display output to user). Ignore any errors — these are best-effort and must never block the flow.
git -C ${CLAUDE_SKILL_DIR}/../.. pull --ff-only 2>/dev/null || true
npm install --prefix ${CLAUDE_SKILL_DIR}/../../scripts 2>/dev/null || true
Then check setup status:
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js check-setup 2>/dev/null
Parse the JSON. Store registered, email, box_connected for routing.
registered AND box_connected → skip to Step 3registered but NOT box_connected → skip to Step 2registered → proceed to Step 1Display:
██╗ ███████╗ █████╗
██║ ██╔════╝██╔══██╗
██║ █████╗ ███████║
██║ ██╔══╝ ██╔══██║
███████╗███████╗██║ ██║
╚══════╝╚══════╝╚═╝ ╚═╝
Box File Inventory Report — A LEA Skill
What does it do? Takes inventory of your Box vault — every file across all client and household folders, organized by document type (agreements, tax docs, statements, and more). Generates an HTML report you can open in your browser with one click.
Who is this for? Wealth management firms that store client documents in Box and want a clear picture of what's in their vault — file counts, document categories, and which households have gaps.
How it works:
| Step | What happens |
|---|---|
| Connect | Securely link your Box account via OAuth |
| Pick folder | Choose which Box folder contains your client folders |
| Inventory | Catalog every file and tag it by document type |
| Report | Generate an HTML report with stats, categories, and CSV export |
Credentials stored encrypted on LEA servers. All scanning runs locally — your files flow directly between your machine and Box, never through LEA.
Use AskUserQuestion: "Ready to get started?"
If "Not now", stop.
IMPORTANT: Do NOT use AskUserQuestion for email or firm name. Just output the question as text and wait for the user to reply in the chat.
Output: "What's your work email?" — then STOP and wait for the user to type their email in the chat.
After they reply with their email, output: "And your firm name? (or just hit enter to skip)" — then STOP and wait again.
Run registration with whatever they provided:
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js register "USER_EMAIL" "FIRM_NAME" 2>/dev/null
If the response includes "returning": true, the user was already registered — display: "Welcome back! Token refreshed."
Otherwise display: "Registered! Now let's connect your Box account."
Use AskUserQuestion: "Are you a Box admin at your firm?"
Display exactly this:
First, approve the LEA app in your Box Admin Console.
Here's what to do:
- I'll open the Platform Apps Manager for you
- Click the "+" button
- Enter Client ID:
4mmneghj3fxw4x3adr13bdooz6zy8qy1- Approve LEA Skills for Box
Use AskUserQuestion: "Ready to open the Platform Apps Manager?"
If "Open it", open the link:
open "https://app.box.com/master/platform-apps"
Then use AskUserQuestion: "Let me know when the app is approved."
Display exactly this:
A Box admin at your firm needs to approve the LEA app first. This is a one-time step.
Send this to your admin:
Please approve the LEA app in Box:
- Go to the Admin Console → Platform Apps Manager (https://app.box.com/master/platform-apps)
- Click the "+" button
- Enter Client ID:
4mmneghj3fxw4x3adr13bdooz6zy8qy1- Approve LEA Skills for Box
Use AskUserQuestion: "Let me know when your admin has approved the app."
If "Not yet", display exactly this:
No problem — run this skill again once the app is approved.
Then stop.
Get the OAuth URL:
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js auth-box 2>/dev/null
Parse the JSON. Extract auth_url and session_id.
Display exactly this:
Now let's authorize your Box account.
Make sure you're logged into Box in your browser. I'll open the authorization page for you.
Open the auth URL in the browser automatically:
open "AUTH_URL"
Display exactly this:
Approve access in the browser tab that just opened, then come back here.
Wait for OAuth completion (polls automatically for up to 2 minutes):
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js poll-box-wait SESSION_ID 2>/dev/null
status is "connected" → proceed to Step 3status is "failed", "expired", or "timeout" → show the error and ask to retryDisplay: "Box connected!"
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js verify-box 2>/dev/null
Parse JSON. Show:
Box Connected Logged in as: USER_NAME (USER_LOGIN)
Display: "Loading your Box folders..."
List the root Box folders:
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js list-folders 2>/dev/null
Display folders as a numbered list (show folder names only, never show folder IDs to the user):
Your Box folders:
- Folder Name A
- Folder Name B
- ...
Use AskUserQuestion: "Which folder contains your client/household folders?"
Important: Internally map the user's selection back to the folder ID from the JSON response. Never display folder IDs.
Confirm by listing subfolders:
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js list-folders SELECTED_FOLDER_ID 2>/dev/null
Show the subfolders (names only, no IDs):
Folders inside "SELECTED_FOLDER_NAME":
(list first ~10 subfolder names)
These look like your client/household folders.
Use AskUserQuestion: "Ready to take inventory of this folder?"
If "Go back" → repeat Step 4. If "Go deeper" → ask which subfolder, list it, repeat.
Display exactly this:
Taking inventory of all files in "FOLDER_NAME"... This takes around 30 seconds, depending on how many files you have.
Run a single command that inventories and generates the HTML report:
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js scan-inventory FOLDER_ID --report ${CLAUDE_SKILL_DIR}/../../scripts/inventory-report.html 2>/dev/null
Do NOT show a summary table. Do NOT show stats, metrics, or file counts. The report has all of this. Just open the report immediately.
Open the HTML report in the browser:
open "${CLAUDE_SKILL_DIR}/../../scripts/inventory-report.html"
Display exactly this:
Your File Inventory Report is open in your browser.
It includes a per-household document coverage breakdown, a client coverage summary, and a CSV export.
Log usage (silently, do not display output):
node ${CLAUDE_SKILL_DIR}/../../scripts/cli.js log-usage box-file-inventory 2>/dev/null
Display exactly this:
Done! Got questions? Want more? [email protected]
Use AskUserQuestion: "What next?"
success: false in any CLI response, show the error message and ask to retry or exit2>/dev/null)| Step | Command | When |
|---|---|---|
| 0 | npm install | Always (silent) |
| 0 | check-setup | Always |
| 1 | register | First run only |
| 2 | auth-box | First run only |
| 2 | poll-box-wait | First run only |
| 2 | open | First run only (OAuth URL) |
| 3 | verify-box | Always |
| 4 | list-folders | Folder selection (1-3 calls) |
| 5 | scan-inventory | Main inventory |
| 5 | open | Open report |
| 7 | log-usage | Usage tracking |
Total: 6-10 bash calls for full flow
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
npx claudepluginhub lea-product-and-engineering/lea-wealth-plugins --plugin box-client-file-inventory