Skip to content
Home / Our Work

We build with AI, in the open

Everything below is real and running, built by a Chicago managed-IT firm using AI, including the site you're reading. Consider this a tour of the lab. Tron Netter, in the corner, will answer questions about any of it.


01 · The Engine
In productionCore engine

Software Brain

The engine behind everything on this page.

A conversation-first, memory-bearing, tool-using AI architecture modeled on neurological principles, built as a TypeScript monorepo and reachable at brain.xl.net. A handful of services sit over a shared core of orchestrator, memory, providers and auth, with SDKs for callers in other repositories. Every other exhibit below either runs on it or was built with it, and on the days it has taken one of them down, the incident is written into the same documents as the design.

01 · Remembers Whose Memory It Is

Every stored fact is scoped as it is written: private to the person who said it by default, private to a group, or public. Facts carry validity dates instead of being overwritten, so a superseded answer is retired rather than erased, and recall combines keyword search, embedding similarity and a reranking pass. The rule the documents will not bend is that memory survives a restart, a new session and any version upgrade: wipe and recreate is not an upgrade path.

02 · Speech In, Speech Back

Transcription runs on Deepgram and spoken replies default to OpenAI text-to-speech, streamed in pieces so the first audio arrives in a fraction of the wait a rendered answer would cost. A second mode hands the conversation to a realtime voice model, with the key for it never leaving the server, and a telephony path lets the same engine pick up a phone call. This is the stack behind the phone number on this page.

03 · Rebuilt From the Document Alone

One master architecture document is the source of truth, required to carry enough implementation detail to rebuild the entire codebase to functional equivalence. It is updated first or alongside the code, never after, and that is enforced rather than encouraged: a commit touching the packages, the apps or the scripts is refused unless the documentation is staged with it.

A release is not done when the code works. A layered QA harness runs from unit checks up through browser and restart runs, the security scan has to come back with zero findings straight after it, and the written definition of done carries a clause most specifications do not: the document must not overstate guarantees relative to the code. Nothing a visitor reads is assembled, either: no canned replies, no pattern-matched answers, no template acknowledgements anywhere in the response path. It also strips em dashes from its own writing, twice over, because someone here objects to them.

TypeScript monorepo · scoped memory with validity dates · Deepgram in, spoken reply out · one rebuild-ready master document · doc-before-code enforced at commit · layered QA, then a clean security scan · brain.xl.net

02 · What It Runs
In productionShared module

@aicompany/core

Everything an AI company needs around its website, driven by one config object.

The generic extraction of what our sites have in common: a persona reachable over chat, text, email and the phone, sign-in and sessions, an admin console, first-party analytics, a knowledge crawler, and a deploy and operations stack for a single server. The host site keeps its pages, its brand and its own features and mounts the rest in wrapper files a few lines long. It runs this site, IT Support Chicago and Roleplay and the metro ranking site Top MSP Near Me, and its own release notes treat those hosts as one fleet.

01 · Configure It, Never Fork It

A new site is a new repository, a config object, brand assets, content pages and vendor accounts. If a host has to fork a shared component, the module treats that as its own design bug. The panel that signs off on its design carries a standing question pointed the other way: does sharing make the third site faster to launch without making it read as a clone of the first?

02 · The Same Promises on Every Site

A few behaviors are invariants rather than options, so they cannot be quietly switched off on one property: outbound email is copied to a human, the persona says it is an AI in its signature and in its first reply to a new texter, inbound webhooks are signature-checked with no flag to skip it, and visitor tracking refuses to run at all on a site that has not published a privacy policy.

03 · Each Release States Its Blast Radius

Every release entry is titled with what it will cost a host: nothing, a re-render of the deploy scripts, or a database migration that has to run first. One host takes each release first and sits on it before the others follow. Deploy scripts are rendered from templates and stamped, and the deploy refuses both a stamp mismatch and a dirty working tree.

The boundary is drawn as carefully as the features. Page metadata stays with the host on purpose, because that is where sites stop looking alike. Voice is a documented contract rather than module code: the call goes to the engine directly and the module contributes the routing around it. Every subsystem is expected to fail on its own and say so, a disabled feature rendering a designed explanation rather than a blank page that reads as an outage.

one config object · chat / text / email / phone · admin console · first-party analytics · nightly crawler · signature-checked webhooks with no off switch · no privacy policy, no tracking · stamped deploy templates

Live · you're on it

ai.xl.net

The site you're reading right now: our maximum-oversight deployment.

This page, the chat widget in the corner, and the number and mailbox Tron Netter answers on are one application on one VM behind a Cloudflare tunnel. No load balancer, no container runtime, no managed cloud database: a web server, a process manager, Postgres and the tunnel. What is worth showing is not the stack but the constraints, which are written down as invariants a rebuild may not drop, beside the note of the day one of them turned out to be only half true.

01 · Every Send Copies a Person

Every email this site sends is copied to a human overseer, by two mechanisms rather than one, because for a while the second did not exist and the senders that skip the shared mail seam copied nobody. Both paths normalize addresses before comparing, so an overseer who is also the recipient gets one copy rather than two. Exactly one send is carved out on purpose, with the reason written at the call site.

02 · Nothing to Reach For

The public persona has no tools and no internet. Chat, text and email each declare a tool policy of none, and every call passes the engine's entire tool list back as the list to disable. That list is assembled fail-closed: if the inventory cannot be read, a pinned set of names is disabled instead, because an empty disable list would quietly mean everything is allowed.

03 · Only What We Published

What it knows is a nightly crawl of ai.xl.net and xl.net, written by replacing what was there rather than adding to it, so a page we take down stops being something it knows. A crawl that comes back empty, or nearly empty, aborts and keeps yesterday's knowledge rather than publishing a blank one, and either outcome is mailed as a report.

Memory follows the same posture. An anonymous conversation is not stored at all, what a signed-in or phone-verified person tells it stays private to them, and a sweep runs before and after every remembering turn to invalidate any fact that tried to write itself public, because a stranger planting a memory every visitor could read is the interesting failure here. Texting the word FORGET erases that number's memories outright. The exhibits on this page are written into the application itself, so an unreachable database costs the cards submitted by the team and nothing else. Try it: chat, text, email, or call Tron Netter on this page.

human copy on every outbound email · tools disabled fail-closed · nightly crawl, replaced not appended · anonymous turns unstored · FORGET erases a number · one VM behind a Cloudflare tunnel

Live · publicSign in to create

AI Governance Writer

A governance draft written with you, one question at a time, on screen as you answer.

A workbench where you and Tron Netter write your AI governance together. Pick one: a single AI Acceptable Use Policy (AUP), or a working-draft set of core documents for NIST AI RMF, the EU AI Act, or ISO/IEC 42001, seven to ten documents per set. It runs right here on ai.xl.net, drafting through the Software Brain.

01 · Researched First

Before the first question, Tron reads your website, what the web says about you, and your industry, so the draft starts from your reality instead of a template.

02 · Nothing Silently Accepted

When coverage is complete the UI flips to review, and every assumption Tron flagged in the draft must be resolved by you before a final can exist. Downloads carry a DRAFT watermark until you confirm.

03 · Yours, Then Gone

Only the extracted text of a sample you upload is stored, never the file. Delete a project instantly, anytime; otherwise it hard-deletes 30 days after your last activity.

Upload a sample policy and the writer adopts its formatting, structure, and numbering. Word-friendly downloads (.docx, or .zip for the sets) work in every state. Drafts are a working starting point for your leadership and counsel to review, not legal advice. Sign in with Google or Microsoft to create a project.

researched first · one question at a time · live side-by-side draft · zero unresolved items on finals · .docx / .zip in every state · 30-day hard delete

Start your governance draft
Live · publicAlmost entirely AI-run

IT Support Chicago

A ranking site that runs itself, published by a firm that appears on its own list.

itsupportchicago.net ranks Chicago managed IT providers against a scoring formula it publishes in full, built from third-party data, with the worked arithmetic and the evidence shown on every vendor page. It is free, nothing on it can be bought, and it is almost entirely operated by AI agents: collection, scoring, drafting and review run without a person in the chair. Maximum oversight on this site, near-total delegation on that one. We run both on purpose, because the question worth answering is where the line falls.

01 · Nobody Can Buy a Place

The formula is published, each score shows the calculation and the evidence under it, and every page carries the date the data behind it was last checked. The methodology page declines to call any of it objectively verified, because the wording would claim more than the process delivers. A vendor's operating status is the one field no agent flips on a single signal; it waits for an evidence gate.

02 · The Publisher Is on the List

XL.net owns and operates the site and is itself one of the firms it ranks, which the site says on its own about page rather than in a footnote. That paragraph is the one piece of copy no automated agent may write, alter or remove: changing it is a human decision, and the rule is written into the component that renders it.

03 · Where the Agents Stop

Delegation is not the same as absence. Outreach is drafted and queued, and a person approves before anything sends. An article whose adversarial review panel did not convene publishes unindexed and out of the sitemap rather than quietly going out. Deploys still begin at somebody's keyboard, and the legally load-bearing copy is frozen against the agents that write everything else.

The sandbox is built to let all of that fail safely. Its own cloud project, a confidential virtual machine with encrypted memory and verified boot, no external address, and a firewall that denies inbound traffic outright: visitors arrive through a tunnel the box opens from the inside. A watchdog checks the services every minute and restarts what died, security patches land unattended overnight, and the backups are not taken on faith. They are restored into a scratch database on a schedule and counted, on the principle its documentation states plainly: a backup that cannot be restored is not a backup.

published formula, shown arithmetic · common ownership disclosed on the site · frozen copy no agent may touch · outreach drafted, a person sends · confidential VM, deny-all inbound · restore-tested backups

Visit itsupportchicago.net (opens in a new tab)
Live · publicApproval to enter

Roleplay

Live practice against an AI buyer, then a debrief that scores you off the transcript.

roleplay.xl.net is the answer to what the Software Brain does when it powers a product that is not about XL.net at all. Salespeople and service reps run a live audio or video session against an AI buyer with a hidden agenda, hang up, and get coaching graded against what was actually said. Its users are people who do not work for XL.net: it is the external tenant, on its own machine with its own database, running the engine and the shared module together.

01 · The Buyer Does Not Repeat Itself

Scenarios are archetypes with difficulty ratings, and the learner gets a pre-call brief and nothing else: the buyer's agenda stays hidden, the way it would be. Every run samples a different objection and different stalling tactics and is told to open differently, so the second attempt cannot be beaten from memory.

02 · Scored Off the Stored Copy

The debrief scores each dimension, names one thing to change, and caps the misses, every one of them citing the turn it came from with the line to say instead. Grading reads the transcript the server stored rather than the browser's copy, which becomes worth editing the moment a score exists, and a degraded model response is never written down as a scored session at all.

03 · Compiled In, Not Called Over

The engine's orchestrator, memory, voice and storage packages are imported straight into the practice service rather than reached over HTTP, so a live turn crosses no network hop of ours. The audio itself goes from the browser to the voice model directly and never transits the server, while the ordinary chat persona on the same site talks to the shared engine like every other property here.

Anyone can sign in, with Google, with Microsoft, or with a link mailed to them, and nobody reaches the practice stage until an admin approves them, an invitation from their own company is accepted, or a plan is paid for. Both of its services check that independently rather than trusting the browser's claim. Recordings and transcripts belong to the learner, every read is ownership-checked, and a manager's reach stops at the edge of their own email domain. If the camera is on but too few frames were usable, the coach is told to skip body language rather than guess.

practice against an AI buyer · hidden agenda, varied every run · graded off the stored transcript, with turn citations · sign in freely, enter on approval · engine compiled in, audio direct from the browser

Visit roleplay.xl.net (opens in a new tab)
In productionInternal-facing

Leo Netter

A teammate in Slack, with most of what it could reach deliberately switched off.

Leo Netter is a conversation-first, memory-bearing assistant for the XL.net team, built on the Software Brain and described by its own documents as the slow and deliberate successor to the sales assistant it replaced. That handover is finished and it answers in Slack every working day. The part worth exhibiting is the restraint around it: nearly every lane this thing could speak on is built, tested, and dark until a person names what it may touch.

01 · Built, Then Left Switched Off

It works in direct messages and in a named list of channels, and nowhere else yet. In a channel it runs with its writing and identity tools stripped out and remembers nothing past the conversation. The lanes for email, text, the phone and meeting audio are built and shipped behind switches that default to off, and its document search stays invisible to the model until somebody names the folders it may read.

02 · It Has to Admit It Cannot

A standing rule forbids the offer it cannot keep: before promising an action it has to establish that the action maps to a call it could make right now, and otherwise say so and stop. The tools that read business systems refuse anything that would write. Sending an email takes two steps with a person's click between them, a second click sends nothing twice, and an approval left too long is refused rather than sent late.

03 · Architecture Is Canonical

Every tool, behavior, memory scope, environment switch and test is written into the architecture document before the code for it exists. The document commit comes first and the code commit second, which is enforced rather than trusted: a commit that touches the application without staging that document is refused outright.

Memory is classified one turn at a time into private to the person, shared with the team, or public, and anything short of a confident call files the fact as private, because over-scoping is the mistake you can recover from. Two people's private memories cannot surface in each other's conversations, and a channel writes nothing durable at all. The test list works like the architecture: a defect becomes a numbered entry before anyone writes the fix, and a closed one is marked resolved rather than deleted, so what went wrong stays in the document that specifies what replaced it.

Slack first, every other lane dark by default · read-only business tools · two steps and a human click to send mail · over-scope to private when unsure · doc before code, enforced at commit · append-only test list

Live · internalProposal workspace

RFP Response

From an uploaded or pasted RFP to a priced, checked proposal, one section at a time.

RFP Response is the section of this site where an XL.net proposal gets written, visible to signed-in XL.net staff. It reads the client's document, then drafts each section through the Software Brain against a knowledge base of facts the firm keeps about itself. Reading one real client RFP measured at 94 seconds, and drafting runs one section per call, so a deploy landing mid-run costs a section rather than the document. A wrong fact in that knowledge base is retired and superseded rather than edited in place, so a proposal written earlier still resolves against what it actually cited.

01 · Neither Prompt Sees Both

Drafting is two separate calls, and the split is the control. The one that reads the client's document sees that document and nothing else, so an instruction smuggled into an RFP has nothing behind it to give away. The one that writes sees the firm's own facts and never a rate-card unit price.

02 · No Figure Without the Engine

Pricing takes counts and choices, and a deterministic engine computes the quote from the rate card in force. The model is never asked for a number, and a currency figure in the prose that the engine did not produce is a blocking failure.

03 · Checked Against What Ships

Compliance rules live as code in this repository, and an export runs them against the exact content being emitted, Word and PDF alike. Editing a section or a price clears the stored result, so a passing verdict can never describe a draft that has since changed. An unresolved proposal still downloads, and the file itself stays clean; what is still outstanding is reported in the workspace beside the download, never stamped into a document a prospect might one day hold.

The cover letter drafts last, once there are sections for it to summarize, and signs with the standard XL.net block, varying only the personal lines above it. A letter someone has edited by hand is replaced only by the button that says it will. The section itself stays where proposals belong: signed-in XL.net staff only, rendered per request, marked not to be indexed, and absent from the sitemap.

94-second read, then one section per call · gap questions capped at two per section · counts in, figures computed · every export re-runs the checks · open items reported beside the download · cover letter written last

Live · client companiesClient portal

Your AI Roadmap

A company's own roadmap, from a governance document on file to a scorecard of its builders.

A client company gets its own private corner of ai.xl.net, free, keyed to the domain of its work email. The steps sit on one line, from an AI governance document on file through the work its own people build to the platform, data and tools it gives them. No step is locked behind another, and one company sees nothing of any other.

01 · Keyed by a Proven Domain

There is no invite list. Who belongs to a workspace is worked out on every lookup from the domain of an address proven at sign-in, and the one authorization fact stored is who the company admins are. A session without that proof gets no company data, not even the name. Shared mailbox domains are refused, since they would make strangers colleagues.

02 · Same Panel, Private Page

The submission step is the pipeline behind the team cards further down this page, scoped to the company: the same editorial panel reviews the build and what passes publishes to the company's own work page. Its email lane opens only once mail from that domain proves where it came from.

03 · What the Import Keeps

Fill the directory from an Apollo import or by hand. What persists is a name, an email address, a phone number, and the import id; the raw response is never stored, and a row someone edited by hand is not overwritten by a later import. Removing an imported person can also record a fingerprint of the address rather than the address, so the next import skips them.

The governance step takes a governance document a company already has, or one written in the AI Governance Writer and attached as a snapshot of the moment it was attached, which stands on its own once the source project reaches the end of its own 30-day life. The scorecard counts published cards only, never drafts or attempts, per person in the directory, under a disclosure that stays on screen; a person with none stays on the board rather than disappearing from it.

no step locked · one workspace per work-email domain · proof at sign-in or no company data · company cards never appear on this page · published work only on the scorecard · free

See your AI Roadmap
BuiltFrom the TeamInternal tool

MyCoach

MyCoach is an internal sales coaching tool with Windows 11 and iPhone clients. It connects meetings to Salesforce Meeting records, prepares account and attendee research, transcribes conversations, delivers live guidance, supports coach chat, and appends an end of meeting summary to Meeting Notes for confirmed sales meetings.

The Windows tray app detects Zoom and Microsoft Teams meetings and captures system audio with microphone input. On iPhone, representatives start meetings manually, select an in person, phone, Zoom, or Teams context, and capture audio through the phone microphone. Both clients use a shared relay and wire contract.

Account research covers company details, contacts, pipeline, and past Salesforce interactions. The compact panel presents the research brief, coaching feed, coach chat, rolling transcript summary, and end of meeting summary. Local logs, transactions, and actions use a configurable 90 day retention window, and setting retention to zero disables local recording.

01 · Salesforce matching

The relay matches Meeting records by time and Outside Sales identity. The first match can compare a user name hint with candidate representatives, then persist the resulting mapping across active devices. A confirmed match enables research, coaching, and Meeting Notes writeback. If no record matches, coaching remains off and no Salesforce write occurs.

02 · Controlled coaching

A central brain API service generates every coaching message. MyCoach passes coaching requests and responses without authoring the text or selecting a model. The server permits at most one live nudge per five minutes and requests only the most impactful actionable guidance.

03 · Device coordination

Windows and iPhone use separate device tokens that can remain active together and be revoked independently. If both devices join the same Salesforce meeting, one session owns Meeting Notes while the other continues transcription and panel chat. A secondary session can take ownership after three minutes of inactivity from the owner.

Compact meeting panel · Independent device tokens · Automatic Windows updates · submitted by the XL.net team

03 · Client Delivery
In productionLive client pipeline

QBR Machine

A client name in, a complete quarterly review package out.

The AI teammate working alongside our XL.net Technology Officers. Not a chatbot bolted onto a form: Claude Code running purpose-built, git-versioned skills that produce the actual deliverables XL.net presents to clients every quarter, sourced from live systems, with every number traceable to where it came from.

01 · Gap Analysis

A scored assessment of the client's security, network, server, and workstation environment, validated and self-tested before a human ever sees it.

02 · Asset Strategy

A lifecycle plan for every asset: when the firewall gets replaced, when the switch stack ages out, what it costs and when.

03 · QBR Deck

The client-facing review itself: a frozen 11-slide template where only the words change, fed real numbers from the Gap Analysis and Asset Strategy, not estimates.

Every provider connection runs through XL Lakehouse, our scoped and audited access layer. No provider API keys ever live in the AI's workspace. Its memory persists, too: client context, feedback, and working agreements carry forward quarter to quarter instead of resetting every conversation.

Claude Code · git-versioned skills · template-locked deliverables · validate, approve, self-test · Lakehouse-scoped access

In productionLive client pipeline

Onboarding Toolkit

A client name in, a documented IT environment out.

The platform XL.net techs use on every new MSP onboarding. One place to discover the network, capture identity and cloud posture, validate completeness, and generate client runbooks, sourced from on-site scans, cloud connectors, and uploaded vendor reports, with every field traceable to where it came from.

01 · Discovery

On-site network scans, M365 tenants, and uploaded vendor reports merge into one inventory: deduplicated, classified, and ready for review.

02 · Intake & Review

Structured forms capture what automation misses. A review dashboard shows what's complete, what's open, and what's still blocking export.

03 · Runbooks

Client IT runbooks (new hires, terminations, patch policy, LOB apps) pre-fill from discovery data and refine with AI before export to documentation.

Client data stays scoped to the project: SSO login, a full audit trail, human approval on every change. An in-app AI assistant proposes edits; nothing writes until a tech approves it.

on-site discovery · cloud connectors · AI-assisted runbooks · human-in-the-loop · audit everything

BuiltFrom the TeamInternal tool

XLing

XLing is XL.net's internal system of record for service desk and account teams. It covers customer master data, service tickets, tasks, time entries, projects, sales opportunities, KPIs, IT processes, assets, users, and documents. External developers built the software, while XL.net's team consolidated, audited, and documented this source archive.

Staff use XLing through a single-page web app built with React UI components and a schema-driven form and table builder. Its server library provides a configuration-driven GraphQL CRUD engine backed by a document store, with entity schemas generated at runtime. Integrations use the same generic create, update, and migration resolvers as the GraphQL API.

The AI layer defines ticket analyzers, ticket-review summarizers, a knowledge base search assistant, and sales roleplay agents through the OpenAI Responses API. Ticket-facing AI operations write their output to the platform and consume API budget. The archive supports understanding, interfacing with, and rebuilding the platform. Its GraphQL reference documents 250 Query fields, 977 Mutation fields, and 103 object types.

01 · Integration coverage

Provider modules cover Salesforce, PhoneBurner, SweetProcess, Microsoft 365, Google Workspace, and Firebase. The application layer adds Autotask PSA synchronization and Slack. Each sync engine mirrors external records into the document store through shared GraphQL resolvers.

02 · Access model

Google Identity-Aware Proxy provides authentication at the edge. Past that boundary, the application applies a permissive default role rather than per-record authorization, so least-privilege governance must sit in front of the application.

03 · Archive provenance

On August 31, 2026, XL.net's team combined three standalone Git repositories with their commit histories preserved and added the Zoom integration source as a single commit. The team scanned the repository history with gitleaks, high-signal pattern sweeps, and an independent adversarial audit.

React single-page app · GraphQL API · 250 Query fields · 977 Mutation fields · Google IAP · submitted by the XL.net team

BuiltFrom the TeamInternal tool

XLAnt

XLAnt is a Windows 11 system-tray IT agent that detects selected application and system errors, then offers help through a chat panel. Its plain-language persona guides the user through the incident. When Cursor support is enabled with a configured key, XLAnt can also brief a technician agent that runs on the user's PC.

XLAnt watches selected Windows Event Log events and visible error dialogs for application crashes and hangs, disk, driver and hardware errors, blue screen restarts, service failures, and print errors. When it detects a problem, it presents one help question, Yes and No choices, and a chat box. The XLAnt persona handles conversational responses in warm, brief language without jargon and stores persistent memory about the person's machine and past issues.

The desktop package includes a Node 22 worker for running the Cursor SDK locally. Questions from the technician route through the XLAnt persona, which rewrites them for the user and returns the response to the technician. The worker includes a shell guard designed to deny specified destructive commands and restarts that lack user approval. A leased Cursor key stays in memory for an accepted incident, passes to the worker through standard input, and is not logged or persisted. XLAnt deletes local logs after 90 days, with adjustable retention and an off setting.

01 · Focused incident intake

Monitors selected Windows Event Log events and visible error dialogs, then opens an incident chat panel with one help question, Yes and No choices, and a chat box.

02 · Support fallback

If no Cursor key is configured, accepting help continues with manual guidance from XLAnt in chat, where its persona handles conversational responses in warm, brief, plain language without jargon.

03 · Conversation routing

The user communicates with XLAnt, while technician questions and user answers pass through the persona. XLAnt rewrites the technician's questions for the user and returns the user's response to the technician.

Windows 11 · Electron 33 · System-tray app · Local incident workflow · submitted by the XL.net team

BuiltFrom the TeamAutomation

Client Site Rescue Mirror

This repository was a temporary production stand-in for a Chicago-area clinic that lost access to its WordPress hosting. It combined a static mirror of the public site with crawl and transformation scripts, a contact relay, QA checks, and blue/green deployment configuration. Traffic passed through Cloudflare and a dedicated tunnel to a localhost nginx listener serving timestamped releases.

The rebuild pipeline used a sitemap-seeded wget crawl without link conversion. Additional scripts fetched responsive images, lazy-loaded files, CSS-referenced assets, Elementor lazy chunks, and assets embedded in encoded settings. Transformation rebuilt contact form 1243 to post to a local contact endpoint, converted other forms to calls to action, removed GTM, GA4, hCaptcha, and LeadConnector integrations, decoded Cloudflare-obfuscated email addresses, and generated contact success and error pages.

The zero-dependency contact relay validated submissions, tagged spam without dropping it, deduplicated messages, sent mail through msmtp, spooled failures, and exposed a health endpoint. Testing included 21 automated relay gates plus QA checks for form behavior, tracking removal, challenge pages, sitemap coverage, and live 200, 301, and 404 behavior. Deployment used release directories, a symlink flip, and a health gate. The static copy omitted blog search, comments, WordPress administration, feeds, and WordPress JSON endpoints. Its content was frozen as of July 21, 2026.

01 · Static site capture

The crawl collected responsive, lazy-loaded, CSS-referenced, and Elementor assets that the initial wget mirror could not discover.

02 · Isolated delivery path

A separate tunnel service routed traffic to a localhost nginx listener without modifying the pre-existing cloudflared service.

03 · Tested release flow

The release process combined 21 relay gates, site QA checks, atomic release directories, a symlink flip, and a health gate.

The README described the build and deployment. · The relay test defined 21 gates. · nginx listened on localhost. · Content was frozen on July 21, 2026. · submitted by the XL.net team

04 · The Access Layer
In productionInternal platform

XL Lakehouse

One vault holds every key; apps borrow access, never secrets.

The access layer behind every XL.net AI teammate. Instead of scattering provider keys across workspaces, internal apps connect once to Lakehouse, which holds the credentials, enforces what each app is allowed to touch, and makes every upstream call itself, so secrets never leave the vault.

01 · Scoped Access

Each AI workspace gets only the providers and operations it needs: nothing broader, nothing permanent without approval.

02 · Curated Tools

Common workflows ship as ready-made playbooks with guardrails: reads enabled, writes off by default, destructive actions structurally absent.

03 · Audit Trail

Every call is logged with who asked, which app, which credential, and what happened, so access can be reviewed, rotated, and revoked without guesswork.

Provider keys live in a dedicated secrets vault, not in anyone's chat session. Humans approve new apps and expanded access, and credentials stay tied to the person responsible for them. When the QBR Machine pulls live Autotask and VSA numbers, it goes through here, so the deliverable stays traceable end to end.

scoped access · per-human credentials · write-default-off · full audit log · self-service access requests

In developmentConsole live

XL API Gateway

Your cloud, your keys, one governed front door.

What XL Lakehouse does inside XL.net, the Gateway does inside each client's own cloud: one local proxy that Cursor workspaces, internal tools, and developer VMs call instead of holding provider keys themselves. Operators onboard a client once, provision a site from the console, and wire who may reach which upstream API from a single place. The console is live; client gateways are deploying now.

01 · Deploy

Provision a gateway (and optional locked-down developer VMs) into the client's own subscription, with live health visibility and a controlled path to take a site down.

02 · Govern Access

Register consumer apps, map upstream providers, store credentials in the client's vault, and grant access per app. Deactivated credentials fail closed, and every change leaves an audit trail.

03 · Route Traffic

The gateway checks each caller's identity and permissions, attaches the right credential, forwards the request upstream, and returns the response unchanged, with usage counted per app, provider, and credential.

Secrets never sit in the console database or in developer workspaces: they are fetched from the client's vault only when a permitted request needs them, verified before go-live, and cut off the moment a grant or credential is revoked. Fleet alerts and scheduled updates keep sites current; no API keys get mailed around.

per-client isolation · vault-backed credentials · grant-checked proxy · audited fleet operations

05 · What We Have Built
Live · internalSecurity tool

SpamSlayer

Is this email safe to open? A five-second answer, in Slack.

A phishing-triage bot the team runs on itself. DM it a suspicious email, @mention it in any thread, or forward one into a channel, and it returns a clear verdict (Safe, Likely safe, Suspicious, or Dangerous), a recommended action, and the specific reasons behind the call. It turns "hey, is this real?" into a self-serve check with reasoning good enough to teach on.

01 · Four Checks

Sender and headers, phishing language and impersonation, URL safety, and attachment risk: four checks on every message, from a pasted email, raw headers, a bare URL, or a dropped .eml or .msg file.

02 · Never Clicks the Link

It judges a URL by its structure and destination, never by visiting it, and compares the visible link text to the real href: the tell on most credential-harvest emails, caught without handing attackers a fingerprint of the tool.

03 · Errs Toward Caution

Verdict first, reasoning below. When the evidence is mixed it returns Suspicious, not Likely safe: a false alarm costs a moment, a miss costs an account.

The same analysis rubric ships as a standalone Claude Skill (email-safety-check), so the exact logic also runs on a file inside a desktop Claude session, not just in the bot. It listens over an outbound WebSocket with no inbound ports of its own, and runs sandboxed on a low-cost VPS.

Python · slack-bolt (Socket Mode) · Claude Sonnet · .eml / .msg parsing · sandboxed systemd VPS · also a Claude Skill

Built · final setupInternal Slack assistant

Beacon

The channel assistant that answers "has someone already built this?" before anyone builds it twice.

Our own Slack, one channel: #claude-teamhub, where the team talks about what it wants to build next. Beacon sits in that conversation, built for a problem that grows with every automation a team ships: the same thing getting built twice because there was no quick way to ask whether it already exists.

01 · Match Before Build

Describe what you want to build and Beacon searches the team's registry of existing tools. A close match comes back as the tool's name and its owner, a person to talk to instead of a project to start.

02 · Claude Talks, Code Decides

Claude decides what to say in a reply. Beacon's own code, ordinary software outside the model, decides who receives each message, what gets written to storage, and whether restricted content moves at all. In the channel a restricted policy appears only as a title and its owning team; the full text arrives by direct message, after a live team-membership lookup confirms the requester belongs to that team. A permission decision is a lookup against records, not an inference from how convincing the request sounds.

03 · Writes Wait for the Owner

When a conversation confirms a tool is finished, Beacon drafts a registry entry rather than filing one. The proposal is sanitized first: length caps, stripped markup, instruction-like phrasing flagged. It commits only after the tool's owner approves it with a reaction in the thread, and an unconfirmed proposal expires after 72 hours.

Beacon holds no SweetProcess credential of its own. Every governance search and permission check is brokered through XL Lakehouse, scoped read-only and audited, against a library of roughly 5,755 procedures and 255 policies refreshed on a 24-hour cycle. Slack connects directly because realtime events have no broker equivalent, and Google Drive connects directly because the tool registry and interaction log live in Google Docs, which Lakehouse's Google integration does not yet cover. The pipeline is built and tested, module by module, against real production data; what remains is the Slack app itself and a short list of setup steps before the channel gets its first reply.

Full detail

Beacon also cites the relevant company procedure by name when a thread touches process or client data, and asks a clarifying question when an idea is genuinely new. Once a week, or on demand, the manager gets a plain-language digest: what was asked, what matched existing work, and where effort looks duplicated. Where Leo Netter is a teammate tested one DM at a time, Beacon works in the open channel.

Node.js · Slack Bolt (Socket Mode) · Claude tool-use loop · SweetProcess via Lakehouse (read-only) · 5,755 procedures / 255 policies, 24-hour refresh · owner-reaction commit, 72-hour expiry

From the Team

XL.net staff submit tools they built, with the documents to back them. An automated editorial panel drafts each card, argues against it, and holds anything it cannot verify for a human decision. Every claim below is drawn from the submitted documents, apart from a time saved figure, which is reported by the submitter and labelled that way on the card.

BuiltClaude Skill

Building XL.net Proposals

An internal skill for XL.net proposal work. It evaluates, scopes, drafts, reviews, and revises customer project proposals. Outputs include QuoteWerks purpose statements and statements of work, PPIOO workplans, labor estimates, assumptions, exclusions, and internal and customer-facing emails. Packaged scoping references cover Entra ID P1, Entra ID P2, Entra ID and Intune migration, SSO, and Mobile Device Management. Its rules forbid inventing scope, licensing, pricing, quantities, technical requirements, or customer decisions.

Before drafting, the skill collects customer name, business objective, current and target environments, user, device, and location counts, applications and vendors, licensing owned and potentially required, prerequisites, known exclusions, and requested deliverables. When essential information is missing, it limits questions to those that materially affect scope, labor, licensing, sequencing, or risk, and documents reasonable assumptions rather than delaying a useful draft. Project classification weighs affected users, business interruption risk, required testing, project management needs, vendor coordination, rollback requirements, and post-implementation support alongside estimated hours.

Workplans follow the XL.net PPIOO methodology and carry tasks, descriptions, roles, hours, a subtotal for each phase, and a grand total. QuoteWerks copy-and-paste content goes into a PostgreSQL code block when requested, with each bullet on its own line and internal scoping commentary kept out of customer-facing text. The bundled references hold the scoping detail: the Entra ID and Intune playbook lists low, medium, and high hour ranges per task with no stated grand total, the Mobile Device Management reference adds a scaling rule for each additional 10 employees, and the Entra ID P2 reference records that P1 hardening comes first.

01 · Ordered Source Precedence

The skill ranks information sources: the user's current instructions first, then customer-specific files and discovery information, approved XL.net playbooks and scoping documents, approved completed proposal examples, and official vendor documentation when current validation is required. Customer-specific information is not replaced with generic assumptions, and conflicting source information is identified so it can be confirmed.

02 · Three Labor Buckets

Estimates separate Professional Engineering, Project Management, and Customer Support or Day Rate, and Customer Support or Day Rate hours stay out of Professional Engineering totals. Each calculation identifies its baseline source, applies employee, device, site, application, or profile scaling, and verifies that line items equal subtotals and the grand total. Internal scaling formulas stay out of the customer-facing statement of work unless requested.

03 · Recorded Labor Discrepancies

The Entra ID P1 reference records that its engineering line items sum to 16 hours while the source total row states 18 hours, a 2-hour gap left uncorrected with a note to confirm the intended total before use. The Mobile Device Management notes record that the base labor total row omits the 4-hour project management figure stated in the row above.

skill.md · 11 reference files · sso minimum 8 hrs (6 pe / 2 pm) · mdm base package up to 20 employees · submitted by the XL.net team

BuiltClaude Skill

Autotask CI Intake

This Claude Skill turns device details from photos, screenshots, or pasted text into Autotask Configuration Items. It determines the category and type, extracts visible fields, flags uncertain values, and requests missing information in one consolidated message. For each device, it produces a field block in Autotask form order and appends captured data to an XLSX workbook organized by category.

The skill handles Physical Server, Virtual Server, Storage, Network Devices, and Vendor records. From asset labels, it can read the manufacturer, model, serial number, and MAC address. From management screens, it can capture names, IP addresses, firmware or operating system versions, and host or cluster relationships. It merges images of the same device into one capture and treats distinct devices as separate Configuration Items.

Unreadable values remain unconfirmed rather than being completed with invented characters. When the device type is ambiguous, the skill provides a provisional classification and asks the user to confirm it. It also asks whether dependent equipment links to an existing Configuration Item or requires a separate record. Status defaults to Active, while Installed By defaults to Steven Hanlon unless the user supplies another name.

01 · Device grouping

The skill combines a label image and management screen for the same device, while creating separate captures for distinct devices submitted together.

02 · Relationship fields

Host and Parent Configuration Item fields record virtual server relationships. The skill can ask for host or cluster mapping and identify naming differences between guest hostnames and virtualization inventory objects.

03 · Workbook logging

The logging script creates category tabs with consistent headers and accepts captured values as individual field arguments. The workbook path is confirmed with the user so records go to the intended client inventory.

Autotask CI intake · Consolidated field prompts · Unconfirmed value flags · XLSX category tabs · submitted by the XL.net team

BuiltClaude Skill

Autotask Ticket Review

Autotask Ticket Review is a read only Claude Skill that examines live Autotask tickets in Chrome from an escalation engineer’s perspective. It collects ticket details and activity history, summarizes each contributor’s work and results, identifies unresolved questions, and recommends troubleshooting steps supported by the ticket or cited research without changing ticket data.

The skill locates a specified ticket or checks open tabs for an Autotask ticket page. It asks the user to choose when multiple tickets are open and requests sign in when the session has expired. After reading the record, it presents the reported issue, work performed by each contributor, the current state, confirmed facts, unknowns, and recommended next steps in chat.

Before recommending action, the skill evaluates which hypotheses were tested, what each test demonstrated, which diagnostics remain untried, and whether notes contain contradictions or findings that lack follow up. If missing information could change the next step, it asks a focused question. For unfamiliar errors or product behavior, it searches primary or reputable sources and cites the material used.

01 · Complete ticket record

The skill captures the ticket number, title, company, contact, status, priority, queue, issue classification, creation details, assigned resource, and original description. It shows notes, time entries, and emails, expands collapsed content, and loads history until the oldest entry matches the creation date. It reports any content that remains unreadable or unavailable.

02 · Contributor findings

Each activity entry is recorded with its author, date and time, type, and full content. Activity is grouped by the ticket creator and technicians in order of first involvement, summarizing what each person did, found, and achieved. The analysis distinguishes checks that were attempted from evidence that conclusively rules out a cause.

03 · Prioritized troubleshooting

Recommended steps are ordered by likelihood of resolving the issue while accounting for effort and risk. The plan favors nondisruptive diagnostics before disruptive changes and flags actions that could require a maintenance window or cause an outage. Each recommendation includes reasoning grounded in ticket evidence or a cited source.

Time saved · 5 hours a month, reported by the submitter

Runs with Claude in Chrome · Reviews live Autotask tickets · Delivers the review in chat · submitted by the XL.net team

BuiltClaude Skill

Ticket Notes

Ticket Notes turns raw Microsoft 365 and Exchange Online troubleshooting activity into internal ticket notes, handoffs, and escalation drafts. It organizes findings into labeled blocks and marks claims as confirmed, inferred, or hypothesis. The format separates reported issues, eliminated causes, confirmed or suspected causes, separate findings, applied fixes, and pending actions.

A ticket note records what happened, organized by finding. Available labels are Issue, Ruled out, Root cause, Hypothesis, Separate finding, Fix applied, and Next. The skill includes only blocks with content. If a request is ambiguous, it asks whether the user wants a note or a handoff rather than choosing one. If both are requested, it writes and labels the note first, followed by the handoff.

The skill sorts raw input into the appropriate blocks and preserves the order of checks within each block. It compresses transcript-style details into sentences and extracts exact values from pasted output. Missing times, names, and values are left out rather than estimated, while information gaps are stated explicitly. Values that appear incorrect or contradictory are raised with the user instead of being silently reconciled. The completed note or handoff is returned in a plain code block for copying into a ticket or message.

01 · Cause Classification

Root cause identifies a confirmed cause and includes the evidence for that classification. An unconfirmed cause is labeled Hypothesis and states what would confirm it.

02 · Standalone Handoffs

Each handoff block is written for a team that has not seen the earlier ticket work. The handoff closes with a Next block describing the requested action.

03 · Exact Operational Detail

Record values, addresses, commands, error codes, and other exact strings are placed in backticks. Actions name the specific object affected and include the prior value when one is overwritten.

Time saved · 10 hours a month, reported by the submitter

SKILL.md · 1 skill file · 7 block labels · handoffs end with Next · submitted by the XL.net team

BuiltInternal tool

Individual User ticket Scan

Ticket Scan is a locally run web application for reviewing one Autotask contact or XL.net resource. Search by name, email, or ticket number to retrieve six months of tickets through XL Lakehouse. Results include summary tiles, logged hours, categorical breakdowns, substantive notes, repeat issue signals, status-based reopens, post-close activity, resource handoffs, and a sortable ticket table.

Contact scans include tickets where the selected person is the contact. Resource scans include tickets assigned to the resource and tickets where that resource logs time. The scan combines TicketNotes, time-entry summaries, and internal notes while filtering automation boilerplate. Ticket numbers open the corresponding Autotask records in a popup window.

Ticket details, notes, and repeat analysis appear in the first scan phase. Ticket history then loads in the background for up to the 400 most recently active tickets, adding reopen and handoff information. Finished scans are reused for one hour, while Re-scan requests fresh data. The server listens on localhost, keeps the Lakehouse token outside the browser, and uses read-only Autotask access. It does not write data to Autotask.

01 · Rule-Based Issue Signals

The non-AI analysis engine groups repeats by issue and sub-issue. It also clusters titles with token-set Jaccard similarity of at least 0.6 after removing dates, numbers, and stopwords, then labels gap trends as accelerating, steady, or slowing.

02 · History and Handoffs

A Complete to non-Complete history transition identifies a status-based reopen. The interface also displays Ticket Reopened field values and separately reports notes or time logged after close. Primary Resource Changed events produce handoff counts and an ordered resource path.

03 · Breakdowns and Detail

The scan presents ticket volume by month plus breakdowns for issue type, sub-issue, status, resource or client, priority, and source. Rows can be sorted, filtered, or expanded to show descriptions, notes, fields, and status, resource, or queue changes.

Time saved · 5 hours a month, reported by the submitter

Standard-library Python server · Vanilla JavaScript interface · Desktop launcher · No pip packages · submitted by the XL.net team

BuiltReport generator

Microsoft 365 Security Assessment

A read-only Microsoft 365 security assessment toolkit pairs a PowerShell script with a local browser portal. It queries tenant configuration, collects results, and turns the uploaded result folder into a formatted executive summary. The portal has no server or network calls, so uploaded files remain on the user’s computer.

The browser portal guides the user through obtaining the script, signing in, and uploading assessment results. Running the script against a tenant can open two or three sign-in prompts for Microsoft Graph, Exchange Online, and Security & Compliance. The assessment requires a Global Administrator or Global Reader account. Checks can fail or be skipped if the user is not fully signed in with a Global Administrator account at each prompt.

Results are saved as a timestamped folder in Downloads. Dragging the complete folder onto the portal’s upload area generates the executive summary, which includes options to print or save as a PDF. The script only queries configuration and does not change the client tenant.

01 · Tenant access

Supports assessment through a Global Administrator or Global Reader account, with service sign-in prompts during collection. Running the script can open prompts for Microsoft Graph, Exchange Online, and Security & Compliance, and checks can fail or be skipped if sign-in is incomplete.

02 · Local processing

The browser portal has no server and makes no network calls. Uploaded assessment files stay on the user's computer, and dragging the complete timestamped results folder onto the upload area generates the executive summary locally.

03 · Report output

Generates a formatted executive summary from the timestamped results folder, with print and PDF save options. The complete folder is uploaded through the portal's upload area after the script saves the results in Downloads.

Read-only assessment · PowerShell collection · Local browser portal · Executive summary PDF · submitted by the XL.net team

BuiltCLI tool

Autotask Queue Dispatch CLI

Autotask Queue Dispatch CLI analyzes live Autotask production data through XL Lakehouse. It evaluates repeat signals, decides whether a ticket needs a Service Delivery Escalation Engineer instead of Tier 1, and recommends an assignee from current queue load. A 10-ticket pass uses five queries. The application is read-only and does not assign, edit, escalate, or close tickets; a human applies changes in Autotask.

Repeat analysis starts with the Previous Ticket, Recurring Issue, and Ticket Reopened fields. It then resolves ticket numbers cited in descriptions without a date bound, compares root causes, and labels keyword similarity as a guess when used. Escalation is recommended when the same contact has the same problem, someone at the company has the same issue type, a problem returns after a matching ticket is closed, or Service Desk Engineers have logged at least one hour on matching work.

Batch dispatch reads the Client Portal queue in one pass. Load queries exclude closed statuses on the Autotask server. After each recommendation, the projected load for the selected engineer increases and candidates are sorted again, helping distribute a batch across engineers with tied loads. Automated alert patterns from RocketCyber, Kaseya, ShareFile, UptimeRobot, and Zendesk are classified as noise. Same-day reply-all fragments with a matching normalized title and account are flagged for merging rather than scored as repeats.

01 · Lakehouse query path

The application uses an autotask:read scope and native GET searches for Tickets, Companies, Contacts, TimeEntries, and Resources. Lakehouse supplies the Autotask credentials. The client splits oversized in-list filters and rewrites pagination hosts through the proxy without switching to POST.

02 · Available commands

Commands cover connectivity probes, picklist inspection, role setup, engineer load reporting, single-ticket triage, and batch dispatch. Role configuration maps the confirmed Service Desk Engineer and Service Desk Escalation Engineer titles.

03 · Current boundaries

The comparison of verdicts for 10 real Client Portal tickets against the browser-based skill is not complete. Engineer notes are readable but are not part of repeat detection. Ambiguous resource titles remain unclassified rather than being assigned a guessed role.

Python 3 · Node.js helper · Client Portal queue · Five Autotask entities · submitted by the XL.net team

BuiltClaude Skill

System Monitoring AR

System Monitoring AR retrieves the current audit checklist from a user-identified website, maps questions to their evidence sources, and gathers findings through logged-in browser access or approved server checks. It records unavailable evidence as a gap and creates a dated PDF report in the configured local recommendations folder.

Checklist guidance, including How To and Notes fields, determines which tool or site supports each question. Questions are grouped by source before evidence collection. When dashboard evidence is insufficient, PowerShell checks can inspect Certificate Authority roles, Certificate Services, installed certificate stores, running services, server roles, and installed applications with the user's approval.

For critical-service coverage, the skill compares a server service inventory with Kaseya monitor assignments and names specific missing monitor sets. The PDF presents the client name, audit date, question text, direct answer, and a flag for missing or ambiguous data. A short chat summary highlights standout findings without reproducing the full audit.

01 · Checklist access

The skill first attempts to read the checklist page. If access requires authentication, the user logs in without sharing credentials. Pasted questions or an attached file serve as fallback sources when the page remains inaccessible.

02 · Evidence handling

Browser navigation follows the site's own menus and links. Unavailable sources do not block answerable questions, and partial evidence is identified instead of being extended through assumptions.

03 · PDF delivery

The filename contains the client name, SMM Audit label, and generation date. If that filename exists, the skill adds a time or version suffix rather than replacing it.

Time saved · 6 hours a month, reported by the submitter

Claude Skill · PDF audit report · Browser and server evidence · 2 PowerShell references · submitted by the XL.net team

BuiltInternal tool

Vendor Ticket Matcher

Vendor Ticket Matcher maps a vendor case number to XL.net Autotask tickets and returns the matching ticket text. It also accepts an XL.net ticket number and lists tickets with the same vendor reference as merge candidates. A command-line interface and Slack watcher share the search engine. The Slack watcher is disabled pending Slack scope approval.

The search covers ticket external IDs, titles, descriptions, note titles, note descriptions, and queryable string user-defined fields. Reference variants account for noise words, punctuation, digit runs, and leading zeros. Retrieved text is checked for whole-token matches to reduce false positives from numbers embedded in serials. A result is labeled a match when the top candidate has a whole-token hit and leads the runner-up by at least 15 points. Queries that reach the 200-record cap are marked incomplete.

Autotask access is read-only. The Slack watcher is restricted to the pinned Service Desk vendor ticket channel and posts replies in message threads. It skips bot messages, records answered messages to prevent duplicate replies, and does not backfill on its first run unless requested. Labeled secrets such as passwords, PINs, and API keys are masked in quoted ticket text by default, including JSON output. The project includes 89 tests that run without network access or credentials.

01 · Ticket-text matching

The engine searches ticket external IDs, titles, descriptions, notes, and queryable string user-defined fields, then ranks candidates from the matching text it retrieves for the result set.

02 · Human-led merge review

For an XL.net ticket number, the tool extracts a labeled vendor reference from the title or description and lists other tickets carrying it. It excludes the source ticket and XL.net ticket-number cross-references without modifying or merging records.

03 · Clear search outcomes

The output distinguishes confident matches from best guesses, reports searches that did not run, identifies fields that were not searched, and flags capped results as incomplete.

Time saved · 5 hours a month, reported by the submitter

Python standard library · 8-worker query fan-out · Atomic watcher state · Systemd oneshot timer · submitted by the XL.net team

BuiltClaude Skill

Client Thread Archive Capture

Client Thread Archive Capture is a Claude Code Skill that captures directly named Slack threads and finds SaveConvo-tagged threads through an invoked sweep. It files each capture in a searchable Markdown archive organized by client, with an index for lookup. Slack reads pass through XL Lakehouse using the slack:read scope. Retrieval searches files on disk without contacting Slack or Lakehouse.

A person selects the conversations to preserve. The tool handles finding, reading, dating, and filing them. Client identification uses channel conventions and an alias map. An internal thread with no named client goes to the unfiled folder. For an ambiguous or new client, the skill asks for the canonical folder name instead of guessing.

The implementation resides in the Skill instruction file and runs when invoked, with no standalone script or schedule. It holds no Slack token of its own and uses a shared workspace bot credential through Lakehouse. Direct messages are outside the bot's reach, and archived threads do not receive change detection when new replies appear.

01 · Archive file structure

Each archived thread produces one Markdown file and one row in the master index. The file includes machine-checkable metadata, a labeled Claude-generated draft summary, a transcript that preserves Slack text except for required redactions and unreadable-content markers, and a section for unresolved items, ambiguities, and attachment filenames.

02 · Capture safeguards

Before writing, the skill searches the archive for the parent permalink to prevent duplicate entries. It redacts credentials, healthcare PHI, and specified legal matter identifiers. Captured message counts are compared with Slack's reply count, and a mismatch is recorded as an incomplete capture rather than a clean result.

03 · Sweep limits

The sweep enumerates channels joined by the workspace bot and scans no more than 30 days of history. Threaded-reply checks have a 200-call cap per run. A per-channel cursor narrows later scans, while the run summary reports membership gaps and reply checks skipped after the cap.

Time saved · 10 hours a month, reported by the submitter

Claude Code Skill · slack:read scope · indexed Markdown files · 30-day sweep limit · submitted by Chris

BuiltDocumentation tool

Network Diagram Builder

Network Diagram Builder creates client-ready Visio documentation from JSON site descriptions prepared after reviewing network closet photos. It can produce a rack elevation with labeled rack units, a logical connectivity page tracing the signal path from the ISP handoff to building drops, or both. Side branches represent equipment such as UPS units, storage, video recorders, and access points.

Users review the photos, identify visible equipment, and transcribe the site into a JSON configuration. The accompanying Claude skill guides the questions and judgment involved, including marking inferred details, avoiding unsupported rack unit numbers, and confirming the uplink chain. Shelf-mounted and wall-mounted closets can omit the rack elevation and use the logical page alone.

Building a .vsdx file requires Python 3.8 or later, with no third-party Python packages, Visio installation, or network access. Pages use fixed US Letter portrait dimensions, manual layout coordinates, and a single-column elevation format. Visual inspection remains important because the layout has no collision detection.

01 · JSON site model

Elevation entries record each device's slot position and height. Logical entries define an ordered signal chain, connector labels, and branches attached to chain nodes. Device kinds control box colors and legend categories.

02 · Template-based Visio

The generator converts boxes, nodes, and links into Visio ShapeSheet XML, then grafts the generated pages onto a Visio-authored template. The output uses live dynamic connectors that follow devices when they move in Visio.

03 · Distinct output checks

Structural validation checks XML well-formedness, page content-type overrides, relationship targets, unique shape IDs, and connector references. A separate renderer uses LibreOffice and pdftoppm to create PNG previews that expose overlaps, text overflow, and page-edge problems.

Time saved · 2 hours a month, reported by the submitter

JSON site configs · Rack and logical pages · Editable Visio output · Python 3.8+ · US Letter portrait · submitted by the XL.net team

BuiltReport generator

Leslie's Weekday Brief

Morning Brief generates a fresh weekday HTML report that combines the day's calendar, open email and Slack threads, overnight closures, and preparation items for tomorrow. Connected tool roles are optional, so unavailable sources are skipped and the page adapts. Gathered items are sorted into Needs attention or Resolved, or omitted from the report. Calendar data also shapes the headline and terrain visualization.

Google Calendar supplies today's events for the terrain and tomorrow's events for preparation checks. Gmail looks for direct questions awaiting a reply, with unread threads from the last two days as a fallback. Slack looks for recent mentions and direct messages ending in an unanswered question. Searches gather roughly eight candidates from message and thread snippets rather than full bodies.

The page presents a date line, one line serif headline, SVG terrain strip, three time blocks, and lists for Needs attention and Resolved. List entries use a linked title and a sentence that names the source in prose. The self-contained output is designed to be read in under 30 seconds.

01 · Calendar Becomes Terrain

Calendar data classifies the day as HEAVY, NORMAL, or OPEN. The terrain uses one continuous SVG stroke, with elevation representing meeting load and dot size representing meeting weight. Three time blocks pair the drawing with one sentence per block.

02 · Thread Check Before Triage

Before an item enters Needs attention, its thread receives one check for a reply or reaction. An item that has been addressed moves to Resolved or is dropped. Resolved also covers recent closures worth a glance.

03 · Local Render Check

The output embeds CSS, SVG, and the Fraunces headline font in one HTML file, with Georgia as a fallback. It uses no external assets or render-time network calls. A preinstalled headless Chromium screenshots the finished page before delivery to check the layout.

Weekday report · Single HTML file · Optional connected sources · Headless Chromium check · submitted by the XL.net team

BuiltClaude Skill

XLTO Toolbox

The Quarterly Technology Review skill creates XL's client-facing strategy review presentation from a fixed PowerPoint scaffold. It updates designated text regions while preserving slide structure and formatting, validates content, and generates the deck after explicit approval. Its business-focused output connects quarterly research, objectives, roadmap items, and investment recommendations for client owners and senior leaders.

The skill uses the latest client deck as the starting point and draws from a shared quarterly research packet, meeting transcripts, approved quotes, service records, and related assessment work. It consolidates candidate recommendations in an opportunity register before drafting roadmap and investment content. Standard recommendations use scope and estimated pricing from the solution catalog, reconciled with client-specific quote or Autotask figures when present.

Content follows a gather, draft, validate, approve, and generate process. Validation checks required fields, the four-node roadmap, placeholder text, excluded topics, and evidence coverage. The generated presentation then receives visual inspection for text overflow, bold label formatting, roadmap alignment, and residual example text. Limited inputs produce a lighter deck containing supported content rather than invented details.

01 · Fixed Slide Template

The standard presentation contains 11 slides in a fixed order. The fill engine writes designated text regions while preserving fonts, bullets, bold label prefixes, layouts, static appendix content, and speaker notes.

02 · Records of Completed Work

Statements that work occurred require a source recording the event, such as a ticket, project, quote, statement of work, message, transcript, client statement, invoice, or prior deck. Inventory and configuration records support asset state, not project completion.

03 · Content Checks

The validator reports structural errors, evidence gaps, brief exclusions, slide content counts, roadmap details, and strategy compliance in a review packet. Generation begins after explicit approval, followed by rendered visual inspection.

Time saved · 42 hours a month, reported by the submitter

Proprietary internal use · PowerPoint output · Client strategy reviews · submitted by the XL.net team

BuiltReport generator

SD Shift Report

SD Shift Report pulls five ticket counts from Autotask through XL Lakehouse, formats them in the service desk's established wording, and posts the report to Slack. Four posting windows control the report name and dates. A person confirms that the shift is finished and starts each run.

The five metric definitions mirror existing Autotask dashboard widgets and queue filters. They reside in a configuration register so service desk engineers can review data changes when a widget changes. The command line and web UI share the reporting logic. In the UI, the browser submits a date, window, and operator, while the server retrieves the counts and builds the message when the operator submits the request.

The tool runs locally through a command or local web page. The UI validates the selected operator against a register, but it has no authentication, so anyone who can reach the page can select a listed identity. Slack delivery confirmation relies on the write response because the tool does not hold Slack read access.

01 · Five ticket counts

Each run retrieves tickets opened on the report day, tickets closed on that day, future Scheduled Hold tickets, Scheduled Hold tickets due on the window's target day, and total open tickets.

02 · Window controlled reporting

The selected posting window determines the report description, report day, and Scheduled Hold target day. Command line and UI operators can select a different window for a late post.

03 · Posting safeguards

The tool builds the full report before sending and stops if a count request fails. It requires an explicit Slack destination, supports a dry run, and blocks duplicate posts by report day, channel, and window.

Time saved · 15 hours a month, reported by the submitter

Five Autotask counts · Four posting windows · Human initiated posting · Local command or web page · submitted by Ian

BuiltAutomation

SD Scorecard Sync

SD Scorecard Sync automates daily and weekly data entry for Service Delivery engineers. The daily path transfers ticket counts and logged hours from Autotask to the shared SD ScoreCard 3.0 Google Sheet. The weekly path transfers Combined Tickets and Time Spent totals from that scorecard to an engineer's One On One Google Sheet.

The daily job produces Tickets Closed, Documentation Closed, Combined Tickets, and Time Spent, with Combined Tickets calculated as the sum of the two ticket counts. It finds the engineer row and target date column by matching sheet content. A missing date or a Weekend or Vacation marker blocks the write. The weekly job matches the target week's Monday date and directs its totals to Agenda cells D19 and D20.

Engineer-specific settings live in config.json, including the engineer's name, email, One On One sheet ID, and shift. This configuration supports onboarding another engineer without changing script logic.

01 · Write control

Both write paths start as print-only dry runs that show proposed values, target cells, and current contents. Changes require a separate invocation with an explicit commit flag.

02 · Access boundary

Provider calls pass through XL Lakehouse. Autotask and Google credentials remain outside the project, while local Lakehouse credentials reside in a gitignored environment file. The engineer's Autotask resource ID is resolved at runtime from the configured email.

03 · Execution model

The scripts run on an engineer's workstation and require VPN access. Runs are manual, with no scheduler or automatic trigger. An included Claude Code skill wraps the daily and weekly scripts with a dry-run-then-confirm workflow.

Time saved · 1 hour 30 minutes a month, reported by the submitter

Node.js scripts · Autotask read access · Google Sheets read and write · Configuration based onboarding · submitted by the XL.net team

BuiltClaude Skill

Closure Composer

Closure Composer is a Claude Code skill for the XL Service Desk. Given an Autotask ticket number, it reads ticket notes and time entries through XL Lakehouse, orders activity by when the work occurred, and assesses whether the ticket is ready to close. For a ready ticket, it prepares a closing email for engineer review.

The skill compares the original ticket request with the documented work. It marks a ticket ready if the customer says the issue is resolved or can be closed, or if the record documents a resolution matching the original issue and establishes that the resolution works through customer confirmation or engineer verification. Work awaiting testing and unanswered requests for confirmation produce a not ready result. Zero time entries combined with no substantive technician notes also produces a not ready result and no draft. Each conclusion cites its supporting note or time entry and the actual work timestamp.

For a ready ticket, Closure Composer shows the conclusion and draft in chat. The engineer must confirm before the skill posts the draft as an internal Autotask note. The skill does not send customer email or change ticket status.

01 · Claude Code runtime

The /closure-composer command runs inside a Claude Code session. Claude reads the ticket, applies the closing test, and writes the draft at run time. No independent server or web application performs the judgment.

02 · Named customer draft

The skill looks up the ticket contact and primary resource. It uses the contact's first name in the greeting and the primary resource's full name in the signature.

03 · Scoped Autotask access

All Autotask reads and writes pass through XL Lakehouse. The project holds Autotask read and write scopes, and Lakehouse records the acting user for write activity in its audit trail.

Runs in Claude Code · Reviews Autotask tickets · Routes access through XL Lakehouse · Requires engineer confirmation · submitted by the XL.net team

BuiltInternal tool

Salesforce Query Composer

This internal Salesforce app translates requests into SOQL, report specifications, or both. Its four-stage architecture resolves the relevant schema context, composes an answer, validates generated identifiers against an indexed schema snapshot, and includes an optional read-only execution stage. The app also supports schema browsing and SOQL validation without an Anthropic API key.

The app uses progressive disclosure instead of placing the full schema in each prompt. It loads core conventions and indexes, then adds detail files for the objects selected for a request. Requests are capped at four resolved objects. When an ambiguity blocks composition, the workflow asks one clarifying question and supplies a best-guess assumption that the requester can accept.

Report guidance checks whether an available report type covers the required objects and relationships. If a new custom report type is required, the guidance describes its object structure and supplies a SOQL alternative. Schema refreshes are manual and intended for structural changes such as new objects, fields, picklist values, or report types.

01 · Request resolution

The resolver stage identifies required objects, matched glossary terms, the requested deliverable, ambiguity status, and a plain-language restatement before object details enter the composition context.

02 · Validation design

The architecture places deterministic validation after generation. It checks identifiers and custom relationship traversals against the schema snapshot and applies org-specific lint rules. Validation errors receive one repair pass. If that pass fails, the workflow returns the gap rather than substituting a guessed API name.

03 · Salesforce access

The execution design requires explicit user action, permits SELECT queries, and applies a row cap and timeout. Queries run as the signed-in user so Salesforce sharing rules apply. The architecture excludes Salesforce update and delete operations.

Strict TypeScript · Fastify backend · React and Vite frontend · Vitest test suite · SQLite history and feedback · submitted by Mario

BuiltClaude Skill

M365 Service Health

M365 Service Health is a Claude Skill that reads four public Microsoft status endpoints and reports the result to the M365 service health Slack channel. It surfaces unhealthy states, identifies unreadable product families as unknown, and posts an all-clear only from data it reads. Coverage includes admin center reachability, Azure, and consumer services, not proof that a client's commercial Microsoft 365 services are healthy.

The skill fetches four independent JSON endpoints in one batch. Endpoint reads require no authentication, browser, or Microsoft tenant. It retries a failed endpoint one time and names any remaining data gap in the report. It evaluates the Microsoft 365 and Power Platform admin center feeds by Status, treats the Azure Message field as meaningful health information, and checks each consumer service entry. States other than Available or Operational are reportable.

During an incident, the Microsoft 365 admin center endpoint can provide impact details for named commercial services. The skill sends results to the M365 service health Slack channel. If the day's root post exists, it adds a thread reply for a material change in service names or statuses. If the asserted state is unchanged, it does not add an update. A Python service implements these rules and has 152 offline tests.

01 · Asymmetric health signal

An all-clear covers Microsoft 365 and Power Platform admin center reachability, the Azure rollup, and consumer Microsoft 365 services. It does not establish that Exchange Online, Teams, SharePoint, Intune, or Entra is healthy for a client.

02 · State based Slack updates

The report goes to the M365 service health Slack channel. Material state changes appear in the morning post's thread, while text changes without a change in service names or statuses do not produce an update.

03 · Endpoint interpretation

Microsoft 365 and Power Platform boilerplate messages do not indicate incidents, so the skill judges those feeds by Status. The Azure message carries health information, and unfamiliar payload shapes are reported plainly rather than forced into a healthy template.

Claude Skill · 4 public endpoints · 152 offline tests · 8 AM Central · Slack reporting · submitted by the XL.net team

BuiltInternal tool

PA Tools

PA Tools is a locally run internal dashboard that consolidates workflows otherwise handled as separate Claude Code skills or manual processes. AT Contacts Audit identifies active contacts who have lost Autotask support coverage, groups them by license status, and provides a 12-month ticket-volume breakdown from four uploaded CSV or XLSX exports.

The audit matches the Contacts List to a Sync Group export, preferring email addresses and falling back to names while detecting ambiguous matches. It separates results into Licensed, Unlicensed, and Needs Review groups, renders results in the browser, and provides a styled workbook for download. Its ported deterministic logic is verified against 39 hand-traced test cases covering every branch.

PA Tools uses a React and Vite frontend with a plain Node HTTP server. The packaged server binds to the local machine at 127.0.0.1 on port 5175 by default and serves the built frontend and API from one process. XLSX reading and writing use ExcelJS.

01 · File-driven workflow

The audit requires four uploads: AT Contacts List, AT Sync Group, Active Users List, and Ticket Search. It accepts CSV or XLSX files, matches fields by exact column name, and processes joined rows in memory without live Autotask or Microsoft 365 API calls.

02 · Audit scope

The port includes contact matching, ambiguous-name detection, blocked-credential normalization, license classification, and monthly ticket-count buckets. It excludes the source skill's LLM-based ticket-detail summaries and its client-folder synchronization step.

03 · Catalog boundaries

AT Contacts Audit is the sole available dashboard tool. DKIM Query and SSL Cert Query are built but intentionally hidden, while the remaining catalog entries are planned and not built.

In development · Local desktop launch · Styled XLSX output · submitted by the XL.net team

BuiltInternal tool

XL DNS & Email Authentication Auditor

An internal Professional Services tool for assessing public email authentication configuration and analyzing DMARC aggregate reports. It separates DNS record evaluation from evidence about observed message traffic, produces structured findings and assessments, and provides console, JSON, CSV, and HTML reporting through graphical, text, and command line interfaces.

The read-only DNS audit queries public MX, SPF, DMARC, DKIM, and nameserver records. It parses and evaluates the records, produces PASS, WARNING, FAIL, and INFO findings, and rolls them into an overall assessment. These findings describe DNS record validity rather than proving that production messages authenticate or align. The separate aggregate-report workflow analyzes what receivers report about message traffic.

DMARC analysis accepts XML reports, gzip or zip archives, and folders of reports. It computes message-weighted alignment statistics and per-source breakdowns, and it produces a deterministic rollout recommendation. Optional sender identification can enrich source breakdowns with correlation evidence. The analysis performs no DNS queries by default and works offline. Report ingestion identifies content from magic bytes, prohibits DTD processing, disables external XML resolution, limits decompression, and protects zip extraction from path traversal. The PowerShell 7 Windows Forms interface sends long-running work to a background runspace. The application does not modify DNS, Microsoft 365, mail flow, or DMARC policy.

01 · Separate evidence paths

DNS audit findings and DMARC aggregate findings remain in independent pipelines. Aggregate findings do not enter the DNS audit rollup. This separation distinguishes DNS configuration validity from evidence about observed message traffic.

02 · Traffic-weighted analysis

Aggregate metrics use each report row's message count. Deterministic report identities support duplicate detection and prevent duplicate traffic from being double-weighted. The resulting statistics and per-source breakdowns reflect message-weighted alignment.

03 · Shared analysis core

The command line scripts, interactive text launcher, and graphical interface call the same public module functions, keeping evaluation logic in one analysis layer. Evaluation logic remains in that shared layer for each interface.

Time saved · 5 hours a month, reported by the submitter

PowerShell 7 · Read-only · JSON schema 3.0 · DNS and DMARC analysis · submitted by the XL.net team

BuiltBrowser app

QuickBooks Export Workbook Merger

XL Financial Consolidator combines multiple QuickBooks Online .xlsx and .csv statement exports into one Excel workbook. Users review and correct the detected entity, statement type, and period before consolidation. Processing takes place inside the browser without uploading financial data. The output can include an opening Totals tab, separate statement tabs, and a Summary tab.

Statement tabs group columns by period, present entity detail when selected, and add calculated totals. The Totals tab shows consolidated figures without entity columns. The Summary tab inventories source columns with the file, sheet, entity, statement, period, value count, inclusion status, and notes. Users can exclude detected data columns before creating the workbook.

For Profit and Loss and Cash Flow statements, the tool sums entities within each period and adds a grand total across periods. For Balance Sheets, Trial Balances, and aging reports, it sums entities within each date without adding balances across dates. QuickBooks Online Total columns are excluded and totals are recomputed. The tool checks whether Total Assets equals Total Liabilities and Equity in each Balance Sheet column. Account matching uses account names, and intercompany eliminations are not applied.

01 · Inputs and download

The self-contained browser page accepts multiple QuickBooks Online .xlsx and .csv exports at once. It requires no installation or server, and the completed .xlsx workbook downloads to the machine.

02 · Output controls

Available options control total columns, the Totals tab, separate entity columns, and removal of accounts that are blank or zero across every column in the output.

03 · Statement-aware calculations

Calculation rules distinguish flows over time from balances at a point in time. Accounts present in one entity but absent from another remain blank and still contribute correctly to totals.

Self-contained HTML · .xlsx and .csv input · .xlsx workbook output · submitted by the XL.net team

BuiltBrowser app

Ticket Reply Generator

Ticket Reply Generator is a single HTML browser app for IT helpdesk technicians. It turns technician inputs into a customer-facing reply shaped by the selected tone and ticket status. An internal view provides troubleshooting checklists for preset or custom issues. The app has no ticketing system integration, and technicians copy completed replies into tickets.

Technicians enter customer and agent names, a ticket ID, issue details, resolution notes and any requested customer action. Three tones, Formal, Friendly and Apologetic, combine with Resolved, In Progress, Pending Customer Action and Escalated statuses to shape the wording. Nine categories cover account, email, VPN, printing, network, software, hardware, performance and general issues. The reply updates as technicians edit its inputs.

Each preset category includes five troubleshooting steps with a title, a reason and an optional PowerShell or CMD command. Technicians can mark steps complete and copy the checklist as plain text. For a custom issue, the app can request a plain English explanation and five steps from the Anthropic Messages API. The app stores no ticket data in local storage, cookies or a backend, and a reload starts with a new ticket ID.

01 · Reply controls

The selected tone changes the voice of fixed phrasing, while status changes lead-ins and closing text. The customer-action field appears for In Progress and Pending Customer Action tickets.

02 · Checklist workflow

Checkboxes strike completed troubleshooting steps through. A dedicated copy control collects each step title, reason and command into plain text for internal use by technicians.

03 · Custom generation boundary

The browser request includes the technician's description and a fixed system prompt, with no API key or authentication header. It depends on the hosting environment supplying that capability. If the request fails, the existing explanation and checklist remain unchanged.

Single HTML file · Vanilla JavaScript · No build step · Manual ticket copy · submitted by the XL.net team

BuiltClaude Skill

W250 Case Study Interview Questions

This Claude Skill researches a client through Salesforce, selected Google Drive documents, the client’s website, and recent public information. It creates five to eight customized questions for a W250 case study interview, using a 65-question reference bank to check coverage while narrowing and rewriting the material for the client.

The research reviews firmographics, relationship history, contracted services, opportunities, cases, and recent activity. It checks for an existing case study and examines relevant planning documents, QBR notes, project records, and meeting notes. The resulting summary identifies interview angles, sensitive topics, and unresolved gaps, cites the source of significant claims, and distinguishes inferences from documented facts.

The question set covers the client’s prior situation, the service provider’s work, resulting changes, and the reason for choosing the provider. One question seeks a quantitative result, while another asks for a specific story or moment. Each question includes its purpose and a follow-up probe. A closing checklist reminds the interviewer to secure a number, a quote, and permission to use the client’s name and logo.

01 · Review Checkpoints

The first checkpoint presents the research summary before drafting begins. The second presents the completed questions before the tool writes anything to disk, allowing changes to the angle or individual questions.

02 · Existing Case Study Check

The workflow searches designated Google Drive locations for published, draft, and older case studies. If it finds one, the interview preparation focuses on what has changed instead of repeating the original story.

03 · Saved Deliverable

The final deliverable is a markdown file named with the date and client name. The tool saves it to the designated W250 Case Studies and Interviews folder and reports the filename.

Time saved · 3 hours a month, reported by the submitter

Client-specific preparation · 65-question reference bank · Live interview probes · submitted by the XL.net team

BuiltClaude Skill

apollo-retargeting-export

The Apollo Retargeting Export creates the company’s weekly contact files for AdRoll retargeting. It assembles Salesforce account queues, retrieves matching contacts from Apollo, and incorporates eligible Warm 250 contact rows. The result is a dated set of per-account exports and a collated master CSV with a consistent four-column schema.

The skill reads account names from the Sales Meetings to Occur report and MRR Opportunities list view. It derives MRR account names from opportunity titles, deduplicates accounts across both sources, and searches Apollo. Included Apollo contacts have a nonempty email address, an exact organization match, and a Salesforce account identifier.

Each dated folder contains one CSV per account and one collated master CSV. Every file uses First Name, Last Name, Account/Company Name, and Email. Warm 250 contacts with eligible email values are appended to the master without generating additional account files. Rows with blank email addresses or a dash are excluded. After writing the files, the skill checks the master CSV’s line count and unique email count.

01 · Processing order

Accounts from the meetings report retain their source order, followed by opportunities-only accounts. An account found in both sources is processed once.

02 · Contact scope

Apollo results are not narrowed by title or seniority. Ambiguous company matches prompt user confirmation instead of being selected by guesswork.

03 · Output structure

The dated deliverable separates account-level CSVs from the collated file, while applying the same four defined columns across every export.

Time saved · 9 hours a month, reported by the submitter

3 Salesforce sources · Apollo contact matching · 4 CSV columns · 1 collated master CSV · submitted by the XL.net team

BuiltClaude Skill

XL.net-Branded Microsoft Cloud Audit Toolkit Builder

A self-contained Claude Skill for building XL.net-branded audit and troubleshooting toolkits across Microsoft 365 and Azure services. It combines a service-specific workflow with documentation standards, script conventions, Microsoft guidance research, severity ratings, reporting requirements, version management, and release QA. The toolkit structure adapts to the architecture and administration model of each cloud service.

The core deliverables are a printable checklist, troubleshooting quick reference, administrator guide, README, and SweetProcess procedure draft. The workflow can also produce manual check instructions, Service Desk guidance, branded Word documents, and service-appropriate audit scripts. Script layouts can follow tenant and endpoint, resource and guest, host pool and session host, or subscription-wide boundaries rather than forcing one structure onto every service.

For services beyond the existing Intune, Entra ID or M365 Core, and Exchange Online examples, the skill requires current Microsoft guidance before drafting checks. Each finding identifies the detected configuration, assigns severity through an Impact by Likelihood scale, and provides a specific corrective action. Scripts use parameterized or prompted connections, keep audit activity read-only and idempotent, and account for pagination and API throttling. Reports use HTML, CSV, and PDF formats. Release QA covers remediation coverage, script behavior, permissions, connection dependencies, rendered outputs, document consistency, branding, citations, audience fit, and required archive contents.

01 · Self-contained package

The skill bundles its document conversion scripts, branding configuration, logo assets, SweetProcess format reference, worked example, and supporting design guidance. It is designed to run without the related branding, foundation, or procedure skills installed.

02 · Service-shaped design

The workflow selects Microsoft Graph, service PowerShell modules, Az PowerShell, Azure CLI, or Azure Resource Graph according to the target service. Deliverables and script boundaries adapt to the service architecture and intended operator audience.

03 · Release discipline

A first working release uses version 1.0.0. Later changes update script headers, changelogs, README details, and review dates, followed by the defined QA and packaging process.

Claude Skill · Microsoft 365 and Azure · Branded audit toolkit workflow · Versioned releases · submitted by the XL.net team

BuiltDocumentation tool

Generating Ad Creatives

Generating Ad Creatives is a build specification and reference package for an XL.net display-ad application. It defines a local browser workflow that turns one theme and up to three approved design variants into 13 sizes for AdRoll, LinkedIn, and Propensity, with AI-generated or iconographic artwork, Pillow compositing, visual review, compression, and platform-specific delivery.

The specification organizes the workflow into 11 steps with explicit gates for theme, art style, run tweaks, design approval, and visual review. Image-generation calls start only after design approval and a separate cost confirmation. Hero images use three aspect ratios and enter a content-addressed cache on receipt, allowing compositing changes to reuse generated artwork. Iconographic rounds use Pillow and skip hero generation.

Acceptance criteria require measured placement of headlines, subheads, and logos across bar, side-panel, and bottom-panel layouts. The compression ladder preserves target dimensions while applying optimized truecolor output, reduced palettes without dithering, and a smoothing fallback. Files above 153,600 bytes remain marked as oversized and do not enter the deliverable folders. The package also defines JSON round persistence, local platform folders, and an on-screen report with costs, counts, file sizes, and thumbnails.

01 · Reference implementation

The package includes a working Pillow generator, an image-model helper, bundled logos, brand guidance, prompt guidance, sample ads, and oversized PNG fixtures for compression testing.

02 · Target architecture

The prescribed application architecture for the local browser workflow uses FastAPI, Uvicorn, React, Vite, and TypeScript. Long-running jobs return identifiers and provide progress through server-sent events.

03 · Delivery model

Approved PNGs are copied into every applicable platform folder as separate files. Local output is the default, while Google Drive reads and uploads remain optional.

Time saved · 12 hours a month, reported by the submitter

Build specification · Approval-gated workflow · Pillow rendering · Local platform handoff · submitted by Chan

BuiltClaude Skill

PB Contact Email Drafts

This XL.net inside sales skill accepts a contact email address or phone number, looks up the contact in PhoneBurner, and creates a plain-text Gmail draft from a standard follow-up template. It uses call notes to select the template wording and leaves the message unsent for the representative to review.

The skill requires a Zapier MCP connection with Gmail and PhoneBurner enabled. Its PhoneBurner search prefers the newest phone match and excludes trashed contacts. It captures the contact's first name, email, company, and notes. When the company field is empty, it can derive a readable company name from the email domain. It retains company or industry placeholders when those details cannot be inferred from the contact fields or domain.

For a recorded post-conversation follow-up, the skill defaults to Main follow-up #1. An explicit request for a chill, casual, or soft tone enables the Chill follow-up for that context. If the notes show that no conversation occurred, the skill selects the Sorry I missed you template and avoids a thanks for chatting opening. Each draft introduces XL.net CEO Adam Radulovic and includes his configured calendar link.

01 · Contact lookup

Finds the PhoneBurner contact record, prefers the newest phone match, excludes trashed contacts, and supplies the first name, email, company, and notes needed for the draft.

02 · Template routing

Selects the opening from the recorded call outcome, defaults to Main follow-up #1 after a conversation, and offers a chill version when the representative explicitly requests a chill, casual, or soft tone.

03 · Draft creation

Creates the message through Gmail's Create Draft action in plain text, uses the selected follow-up template, and leaves it unsent for the representative to review before sending.

Time saved · 3 hours 30 minutes a month, reported by the submitter

Inside sales · PhoneBurner lookup · Gmail draft · Review before sending · submitted by the XL.net team

BuiltBrowser app

Helpdesk Reply and Checklist Workspace

Ticket Reply Composer is a single-file HTML app for IT and helpdesk technicians. Built with vanilla JavaScript and no build step, it turns technician inputs into a tone-aware, status-aware customer reply and provides an internal troubleshooting checklist for the same issue.

Technicians enter customer and agent names, work with an auto-generated ticket ID, select an issue category, and provide the cause, resolution, and next steps when needed. The assembled reply appears as a ticket stub with a navy header, dashed perforation, ticket ID, status stamp, and Copy button.

The troubleshooting tab provides checkboxes, a why-it-matters explanation, and a PowerShell or CMD command where relevant. A free-text issue description can generate a customer explanation and five troubleshooting steps through the Claude API. Clearing the description or changing the category restores the preset content. The checklist has its own Copy button.

01 · Tone and status

Formal, Friendly, and Apologetic tones adjust the greeting, opener, closer, and signoff. Status options include Resolved, In Progress, Pending Customer Action, and Escalated for replies.

02 · Preset issue categories

Built-in cause defaults and troubleshooting steps cover password, email, VPN, printer, network, software, hardware, performance, and other issues within the preset content used by helpdesk technicians.

03 · Extension requirements

The included Skill directs editors to start from the supplied HTML template, keep top-level data tables before code that reads them, and check JavaScript syntax and duplicate element IDs. Adding categories, tones, or statuses requires coordinated data and interface updates.

single-file HTML · vanilla JavaScript · no build step · customer and internal views · submitted by the XL.net team

BuiltClaude Skill

Monthly Ticket Review

Monthly Ticket Review combines selected per-client Autotask CSV exports into a concise Markdown report for an MSP helpdesk review run. It presents client statistics, recurring issue themes, representative tickets, top-line observations, and recommendations aimed at preventing repeat support demand. The result gives readers a single view of problem areas across the clients included in the run.

The analyzer calculates ticket counts, resolution-time statistics, top issue types, priority breakdowns, top requesters, weekly volume, and open tickets older than 14 days. The report uses created, completed, open, aging, and priority figures from the analysis and adds two to four observations for each client.

The report ranks up to five recurring themes by ticket count. Each qualifying theme includes two or three representative ticket numbers and titles. Its recommendation names a root cause and a preventive fix intended to stop recurrence. One-off issues can appear in the observations with a preventive note in case they recur.

01 · Export Defined Scope

The skill lists CSV exports in the designated Tickets folder and asks which files to use. Each selected export defines the review scope, with every ticket included unless the user explicitly requests a month. A created-date field is required, while a completed-date field is optional.

02 · Evidence Backed Themes

The review reads ticket titles and descriptions to group recurring problems that share an underlying cause. It does not use broad Autotask queue or classification labels as the primary basis for themes.

03 · Combined Deliverable

The skill writes one Markdown file with a section for every client reviewed. Multi-client reports include cross-client notes when shared root causes appear across more than one client. Empty exports receive a client section showing the zero count, and a copy is saved to the local Recommendations folder.

Claude Skill · Autotask CSV input · Single Markdown report · Saved to local Recommendations folder · submitted by the XL.net team

BuiltClaude Skill

Script Master

Script Master is a structured scripting and automation skill for system administrators, systems engineers, DevOps and cloud engineers, and project managers. It covers script development, review, correction, and optimization across PowerShell, CMD and Batch, Bash, Python, and other IT operations languages, with defined steps for compatibility, testing, reporting, QA, and documentation.

For non-trivial requests, the workflow checks the target platform and version, execution context, vendor software, constraints, and idempotency needs. It provides compatibility notes for operating systems, shells or interpreters, dependencies, cross-platform caveats, and version conflicts. If the language is unspecified, it recommends an approach based on the environment and task, compares it with an alternative, and identifies conditions that could change the selection.

Script standards cover parameterization, error handling with exit codes and messages, timestamped logging, dry-run or confirmation controls for destructive actions, credential prompts or secrets managers, and comments for non-obvious logic. Testing includes syntax or lint checks plus empty input, missing permissions, unreachable targets, and partial failures. QA examines correctness, security, performance, reliability, standards compliance, and applicable report checks. Reporting supports CSV, HTML, and PDF, while non-trivial scripts receive separate admin and user guides.

01 · Environment Compatibility

The skill distinguishes a completed environment profile from its blank template. It uses supplied environment details, asks about uncovered material points, or states proposed assumptions for minor requests.

02 · Reporting Structure

Requested report formats use one underlying data set. Reports include a title or purpose, generation date and time, scope, summary counts, and clearly identified errors and warnings.

03 · Files and Versioning

Reusable scripts follow an area, verb, and noun filename pattern. Semantic versions remain in script headers, while companion guides share the script base name and report artifacts include dates.

SKILL.md · 8 workflow stages · 4 asset files · CSV, HTML, PDF · submitted by the XL.net team

BuiltClaude Skill

Log Analyzer

Log Analyzer is a Claude Skill for investigating incidents and symptoms across Windows, syslog, network device, virtualization, backup, web server, application, and generic text logs. It normalizes larger files, connects related activity across sources, and researches identified errors. The result is a structured findings report that separates current concerns from historical activity and presents evidence and recommended actions.

For each file, the skill identifies the log type before analysis. Its bundled Python parser extracts timestamps, severity, and messages where possible, groups near duplicate messages into signatures, and records counts plus first and last observed times. For unrecognized formats, the workflow uses targeted filtering around error terms or the reported symptom. It then clusters entries by timing and context, separates anomalies from expected reboots, scheduled jobs, and informational events, and flags severe findings outside the stated symptom.

Reports include targeted timestamps, event IDs, excerpts, and knowledge base citations rather than a raw log dump. Findings distinguish active concerns from resolved or transient activity, and open questions remain explicit when context or evidence is inconclusive. The skill is intended for investigation and diagnosis, not real time monitoring, log shipping configuration, or format conversion without an investigative purpose.

01 · Environment context

The workflow checks uploaded files and conversation context before requesting missing details. Relevant context can include platform and build, software versions, recent changes, drivers, firmware, appliance models, and topology. It asks for critical details when missing information would make a finding unreliable.

02 · Vendor validation

Research gives priority to official vendor documentation and knowledge base articles, with forums used as corroboration. Guidance is checked against the environment's version, build, patch level, and configuration, including whether a cited fix is present in an installed update.

03 · Confidence and actions

Plausible root causes receive High, Medium, or Low confidence based on log specificity, version alignment, and vendor documentation. Recommendations match the applicable platform and version, identify when an upgrade is required, and distinguish immediate mitigation from the underlying fix.

Environment context checklist · Log format guide · Vendor source guide · Report template · submitted by the XL.net team

BuiltClaude Skill

TPS Client Count

This Claude Skill defines a fixed Autotask and Excel workflow for Pod1 ticket and seat metrics. It exports two LiveReports, merges seat counts into the ticket workbook, and calculates tickets per seat with spreadsheet formulas. The reporting period extends from the fourth prior Thursday through the day before the run, and the completed workbook includes a count of clients at or below 0.45 TPS.

The workflow specifies that the Pod1 Tickets report is exported before the Pod1 Seats report and that both downloads are copied to date-stamped Excel filenames. Spreadsheet processing occurs in a temporary working directory. The merge matches trimmed client names, inserts available seat counts, and leaves the Seats cell blank when no match exists. It locates the Account Name, Tickets, Seats, and TPS columns by header name instead of fixed column positions.

Each ticket row receives an error-handled Tickets divided by Seats formula formatted to two decimal places. The skill places the threshold label in H2, a COUNTIF formula in H3, the Date Range label in H7, and the reporting period in H8. Blank TPS cells are excluded from the threshold count. After formula recalculation, verification checks populated Seats values, TPS calculations, skipped rows, the cached H3 result, and the recorded dates. The workflow returns both date-stamped workbooks and summarizes the reporting period, merged and skipped clients, and threshold count.

01 · Fixed reporting window

The Tickets report uses the fourth prior Thursday as its start date and the day before the run as its end date. Report names, Pod1 scope, and the date rule are fixed rather than supplied as parameters.

02 · Header-based merge

The merge identifies spreadsheet columns from their header names and matches clients using trimmed names. Missing seat matches remain blank rather than producing an error.

03 · Formula-based workbook

TPS and the 0.45 threshold count use spreadsheet formulas. Recalculation creates cached values for verification and preserves formula behavior when workbook values are later edited.

Two Pod1 LiveReports · Header-based client matching · 0.45 TPS threshold · Excel formula recalculation · submitted by the XL.net team

BuiltClaude Skill

Kaseya AP Builder

Kaseya AP Builder turns plain English automation requirements into import-ready Kaseya VSA 9 agent procedure XML and a numbered process description for procedure bodies and runbooks. The skill reads and writes text without connecting to Kaseya or executing procedures against a live VSA.

The skill creates a ScExport XML document for the Kaseya Agent Procedure editor. Its guidance covers XML attribute escaping, short descriptions and inline commands, operating system tags, procedure logging, managed variable checks, installation detection, temporary file cleanup, and 64-bit execution. Environment-specific placeholders, managed variable names, install paths, and tree paths must be confirmed before import.

Four patterns support guarded agent installation, scan-first application deployment, reporting to a custom column, and orchestration through procedure calls. Installation checks can use services, registry keys, or files as appropriate to the selected pattern. Installers can be retrieved from an S3 bucket, a vanity address, a vendor source, or Kaseya's managed share. Report procedures can run a detection script, read its result file, update a custom column, and remove the staged files.

01 · Two-Part Output

Each request yields a ScExport XML document and a numbered process description. The description summarizes checks, actions, outcomes, and logging for use in the procedure body and supporting runbooks.

02 · Procedure Patterns

The four supplied patterns cover guarded installs, scan-first deployments, custom column reports, and orchestrators. Install patterns can check whether software is present, verify required managed variables, record outcomes, and clean up downloaded files.

03 · Schema Reference

The statement catalog provides XML structures and parameter types for conditions, downloads, command execution, variables, cleanup, procedure calls, and system information updates. It also covers Windows and macOS tagging and XML escaping.

Time saved · 6 hours a month, reported by the submitter

Kaseya VSA 9 · 2 output types · 4 procedure patterns · Windows and macOS · submitted by the XL.net team

BuiltClaude Skill

SP Writer

SP Writer turns raw troubleshooting notes, ticket text, verbal descriptions, and existing documents into paste-ready SweetProcess procedure drafts for XL.net service desk engineers. It structures material as titled, tagged, numbered steps with decision branches where needed. The skill saves matching Markdown and Word files under the same name, with the Word version intended to preserve bold and other formatting when content is copied into SweetProcess.

The intake workflow identifies the task, client scope, actions taken, branch points, referenced tools or credentials, and related procedures. If information affecting a step or routing decision is missing, the skill asks targeted questions before drafting. Safe inferences can fill minor gaps.

Titles use client-specific, internal XL.net, or generic context prefixes. Tags reflect the client, technologies, and useful search terms. Commands, paths, host names, menu paths, vault entry names, and exact error messages appear in bold rather than code spans. The skill can reorganize, deduplicate, and clarify content while avoiding invented technical steps, server names, paths, or settings.

01 · Branch Routing

Decision answers point to numbered destinations, nonsequential paths use explicit next-step references, and all branches lead to an End step. A routing check identifies dead ends, orphaned steps, and nonexistent references before files are saved.

02 · Credential Handling

Procedures refer engineers to named Bitwarden vault entries instead of placing passwords in the draft. Cross-references identify related procedures by name so they can be linked in SweetProcess.

03 · Operational Formatting

Steps contain one action or one decision and use short, scannable titles. Screenshot placeholders describe only images supported by the source, while procedures ending in checks use form fields for checklist items.

Time saved · 15 hours a month, reported by the submitter

Numbered procedures · End-step routing · Source-faithful drafting · submitted by the XL.net team

BuiltClaude Skill

Autotask Ticket Summaries

Autotask Ticket Summaries is a Claude Skill designed to review a user's open Autotask service tickets in Chrome and create a concise rundown of the issue, actions recorded so far, and stated next steps. It supports requested inclusion or exclusion filters based on queue. The workflow is read-only and prohibits editing tickets, saving notes, logging time, or completing tickets.

The workflow uses JavaScript to access Autotask's script-rendered ticket grid inside an iframe. It extracts each ticket's number, queue, and internal row key, applies the requested filters, and navigates within the same tab to each corresponding detail page. This avoids opening ticket windows outside the controllable tab group.

Use requires a connected Claude in Chrome extension, an authenticated Autotask session with the open-tickets view available, and the ticket-list tab inside the MCP tab group. If the extension is disconnected, the instructions direct the user to install or sign in to it. If the tab is outside the group, the user can move it or provide the list address for opening in a controlled tab.

01 · Ticket detail sources

The issue comes from the ticket description. Actions taken come from the timeline or notes, while planned actions come from the notes or the Ticket Next Steps field.

02 · Transparent filtering

The skill uses the Queue column to honor requested ticket filters. Its output identifies skipped tickets and explains why they were omitted from the results.

03 · Scan-friendly format

Each included ticket receives a one to three sentence prose block. The header includes the ticket number and status, with the account name added when helpful.

One skill file · Open-ticket workflow · Script-rendered Autotask pages · Queue-aware selection · submitted by the XL.net team

BuiltClaude Skill

TicketScribe

TicketScribe is a skill for turning raw Microsoft 365 and Exchange Online troubleshooting activity into chronological ticket notes and facts-only handoff or escalation drafts. It distinguishes internal notes from messages for another team or vendor, asks for clarification when the requested output is ambiguous, and places the note before the handoff when both are requested.

The skill reorganizes messy troubleshooting activity into true chronology and asks when the order cannot be determined. It condenses transcript-style input into one line per action and extracts exact records, header values, and error codes from pasted output. Missing details are flagged rather than invented. Values that appear incorrect or contradictory are raised in conversation instead of being silently resolved in the note.

Outputs use concise hyphen lists with one item per line, plain keyboard characters, and exact strings enclosed in backticks. Notes name the object involved and keep findings on the same line as the action that produced them. Handoffs include checks, findings, affected domains or tenants, scope, and reproduction details while excluding conclusions, root causes, next steps, and recommendations. Working hypotheses appear below the handoff in a separate analysis section.

01 · Output Selection

A ticket note serves as an internal record, while a handoff or escalation is written for another team or vendor. Ambiguous requests prompt a clarifying question rather than a guessed format.

02 · Source Handling

User-reported information is attributed as reported. Observable information can come from portals, records, headers, logs, command output, or direct user statements for use in ticket notes and handoffs.

03 · Copyable Format

The completed note or handoff is returned in a plain code block. Questions, gaps, and concerns appear after the block rather than inside the ticket entry or message.

Microsoft 365 support · Exchange Online support · Ticket notes and handoffs · Plain code block output · submitted by the XL.net team

BuiltAutomation

SD Documentation Audit

SD Documentation Audit automates data gathering for the monthly Service Desk documentation audit. It pulls 90 days of client tickets from the Reactive and Service Requests queues, selects issue rows for review, searches SweetProcess for client-owned procedures, and queries Autotask Configuration Items for hardware context. Issue labels and ticket counts are final, while Hit or Miss decisions, analysis, and documentation links remain drafts for human review.

The tool groups tickets by the combined Issue: Sub Issue label and sorts rows by count, then label. It includes every sub-issue type with at least five tickets and adds the next highest counts until it reaches ten rows. If the boundary falls within a tie, every type at that count is included. If fewer than ten distinct types exist, the tool includes all of them.

SweetProcess results pass a client-ownership gate before topic matching. The search uses explicit client aliases, excludes archived procedures, prioritizes tags over procedure names, and consults an explicit house-wide register when client-scoped documentation does not match. Configuration Items provide named hardware details for the analysis rather than serving as documentation. Retrieved documentation links come from the SweetProcess API response instead of being constructed or carried forward from an earlier audit.

01 · Audit Classification

The audit tests whether relevant documentation exists, not its age, accuracy, completeness, or writing quality. General issues receive Hit because client-specific documentation is not applicable. Client-specific issues proceed through the documentation lookup.

02 · Inconclusive Lookups

A lookup that cannot support a Miss leaves the decision blank and requests a manual search. This applies when aliases or topic terms are missing, all candidates are archived, or no procedure passes the ownership gate.

03 · Conservative Sheet Writes

The production entry point starts in dry-run mode and requires an explicit write flag. It refuses protected tabs, stops on populated targets unless overwrite is requested, writes RAW literal values, rejects cells beginning with an equals sign, and supports readback verification.

Time saved · 2 hours a month, reported by the submitter

Node.js runtime · 90-day ticket window · Google Sheets output · Run end to end for two live clients · submitted by Ian

BuiltBrowser app

Top MSP Near Me

Top MSP Near Me is a public web application that ranks IT managed service providers by metro using a scoring formula. Each covered metro has a ranked list under its own route prefix, while the root page identifies the metros in the network. Its database and collection pipeline are separate from the Chicago site, and it does not render a Chicago page.

The codebase begins as a fork of IT Support Chicago and converts that foundation into a multi metro platform. Shared page factories provide metro hubs, vendor details, area details, and comparison pages. Its data model includes vendor statistic history and stat snapshots. Public interfaces present trends covering 90 days and per statistic sparklines, while a caller tool retrieves vendor trends.

A shared module supplies authentication, administration pages, SMS, texting, voice channels, robots.txt, legal page URLs, and deployment templates. Authentication supports Google OAuth, Microsoft OAuth, and magic links. A documented validation run passed TypeScript, configuration, upgrade, invariant, and full test suite checks, with 2,652 tests passing across 144 files.

01 · Metro routing

Metro page bodies use scoped queries and metro based canonical paths. The route structure supports a network root without treating one city as the default ranking.

02 · Ranking records

The application uses a scoring formula to rank providers. It records vendor statistic history, presents changes measured over 90 days, and provides sparklines for individual statistics.

03 · Dedicated host

The application runs on its own GCP virtual machine with PostgreSQL on the host. The machine has no external IP and uses IAP SSH with OS Login 2FA and Cloud NAT for egress.

Public browser application · Metro specific rankings · Separate PostgreSQL database · 2,652 tests across 144 files · submitted by the XL.net team

BuiltBrowser app

SOW to Project Plan

SOW to Project Plan converts PDF or DOCX Statements of Work into structured delivery plans. Work is organized into phases, workstreams, and tasks, with acceptance criteria, effort estimates, roles, dependencies, and supporting quotations from the source. A three-pass server pipeline drafts, reviews, and revises the plan while preserving a critique log for inspection.

The three passes build the work breakdown structure, review it for uncovered scope, overlooked constraints, sequencing problems, weak acceptance criteria, and unsupported additions, then accept or reject each finding with a recorded rationale. Ambiguities are placed in open questions rather than filled with invented details. Each review finding cites evidence, and the critique log presents its severity, category, evidence, revision outcome, and rationale.

The single-page interface provides drag-and-drop and file-picker upload controls, live progress through Server-Sent Events, a collapsible work breakdown structure, and project and phase totals. The final view also includes deliverables, assumptions, exclusions, and open questions. Plans can be downloaded as Markdown or JSON without another server request.

01 · Document Intake

The server extracts PDF text with unpdf and DOCX text with mammoth. Typed failures cover corrupt, scanned, and oversized documents, including scanned PDFs without an extractable text layer.

02 · Scope Organization

The plan connects tasks to phases and workstreams, with acceptance criteria, effort estimates, roles, dependencies, and supporting quotations from the source, while separating deliverables, assumptions, exclusions, and questions that require clarification.

03 · Plan Output Checks

Model output is parsed and repaired by dropping dangling dependency references and suffixing duplicate task identifiers. Critique findings omitted by the revision are retained as unaddressed.

Next.js 16 · TypeScript · PDF and DOCX · Server-Sent Events · Markdown and JSON export · submitted by the XL.net team

BuiltCLI tool

SecureIt

SecureIt is an open-source security code review orchestrator for graudit, Semgrep, SonarQube Community, an in-tree AI Reviewer, and npm audit. It normalizes findings to SARIF 2.1.0, deduplicates them, maps them to ISO 27001:2022 and SOC 2 Type 2 controls, and writes signed, queryable evidence bundles. The quick suite uses graudit, while the full suite uses all five checks.

Graudit performs regex checks for pre-commit and initial CI scanning. Semgrep handles static application security testing and software composition analysis. SonarQube Community supplies continuous inspection, a persistent dashboard, and trend data. SecureIt converts npm audit advisories into SARIF results. The AI Reviewer submits individual files to an OpenAI-compatible Chat Completions endpoint, converts structured responses to SARIF 2.1.0, and sends the results through the deduplication and control-mapping pipeline.

SecureIt organizes checks into developer workstation, pull request, CI, and nightly layers. Stable content hashes support cross-tool deduplication while preserving attribution for each contributing tool. Findings without configured mappings remain recorded under the UNMAPPED control identifier. If a runner exceeds its configured timeout, the orchestrator terminates its process group, records exit code 124, and continues to the next runner. The evidence process hashes artifacts, signs the manifest, and changes the completed run directory to read-only mode.

01 · Layered scanner suite

The suite definitions assign graudit to quick scans; graudit, Semgrep, and npm audit to CI scans; and all five checks to full scans. The architecture places these checks across workstation, pull request, CI, and nightly layers, with separate evidence artifacts feeding the orchestrator.

02 · Evidence pipeline

The pipeline normalizes scanner output to SARIF 2.1.0, deduplicates findings with stable content hashes, retains per-tool attribution, and maps findings to ISO 27001:2022 and SOC 2 Type 2 controls. Rules without configured mappings receive the UNMAPPED control identifier.

03 · Run integrity

Evidence bundles include raw tool output, SARIF files, artifact hashes, run metadata, an environment fingerprint, and a signed manifest. The SQLite index stores historical runs and findings, while the verifier checks stored artifacts against recorded integrity data.

Five security checks · SARIF 2.1.0 · SQLite evidence index · Signed manifests · submitted by the XL.net team

BuiltBrowser app

Call Summary Service

A self-hosted web app turns service desk call recordings into structured MSP ticket documentation and a plain-text export. Users review the generated summary beside a timestamped transcript, then download the notes in the house format. Stored transcripts can be summarized again without repeating the transcription step, which supports prompt tuning without another transcription provider request.

The pipeline probes and prepares each recording, transcribes the audio, merges transcript segments, summarizes the dialogue, and renders the export. With multichannel processing enabled, stereo recordings are split into mono channels for speaker attribution. Transcript metadata identifies whether attribution comes from channel separation, provider diarization, or neither. Providers with upload limits trigger automatic audio chunking, with offsets added back to segment timestamps.

The structured output includes participants, call purpose, troubleshooting performed, findings, actions taken, resolution status, next steps, commitments, and operational flags. A fixed schema validates the summary, retries invalid output once, and fails the job after a second invalid result. Provider implementations are selected through configuration. Built-in mock providers support the upload, review, and download flow without API keys or vendor charges. SQLite stores call metadata, transcripts, and summaries, while recordings and exports remain on the filesystem. The documented deployment has no built-in login and requires added authentication before broader exposure.

01 · Speaker provenance

Each transcript identifies whether speaker labels come from separated audio channels, diarization, or no attribution, helping reviewers interpret the labels beside the generated call summary.

02 · Validated ticket notes

Required ticket fields are checked against a fixed schema before a summary is stored or presented for export, and invalid output is retried once before the job fails.

03 · Visible job progress

Uploads enter a background queue immediately. The interface polls every two seconds and displays processing states and stage details for longer calls as the pipeline processes each recording.

Python 3.12+ · ffmpeg and ffprobe required · SQLite WAL mode · Plain-text export · submitted by the XL.net team

BuiltCoWork Skill

XLnet policy and onboarding

This internal XL.net plugin combines company policy context with role-specific onboarding. One skill answers questions about structure, tooling, escalation, change control, and other operative rules. The second interviews an employee and creates three personal context files plus global instructions. SweetProcess remains the system of record, while the plugin provides a dated local policy snapshot and personalized working context.

The policy skill loads three reference files as needed. Its base layer draws on 23 internal policy documents, with rules quoted and attributed to their sources. It identifies known errors and conflicts in current documents rather than reproducing them without qualification. Coverage is deepest for Service Desk and thinner for Alignment, Projects, Central Services, Finance, and Sales.

The onboarding skill adjusts its interview to the documented coverage for each role. It confirms established details for Service Desk roles and asks more questions where coverage is partial or thin. Unconfirmed information is marked with an open question instead of being inferred. The employee must paste the generated global instructions into settings and connect the folder containing about-me.md, writing-rules.md, and memory.md to the session before those files can load. The plugin has no agents, hooks, or external service integrations.

01 · Two context layers

The shared layer provides company structure, roles, tooling, acronyms, and operative policy. The personal layer captures the employee's role, client base in aggregate, working stack, projects, writing preferences, and applicable governance gates.

02 · Source-aware guidance

Rules retain their source attribution, and the policy references include a known-stale file for confirmed errors, conflicts, and gaps. The plugin directs users to verify consequential answers rather than treating its output as authoritative.

03 · Snapshot maintenance

The policy snapshot is dated 2026-08-18 and carries a review date of 2027-02-18. Refreshing it requires comparing current SweetProcess exports with the references, rechecking known errors, updating the dates and version, and redistributing the plugin.

Internal use only · Two skills · 107 KB uncompressed · 48 KB packaged · submitted by the XL.net team

BuiltInternal tool

Printer Port Reconfiguration Utility

Printer Port Reconfiguration Utility is a portable Windows PowerShell tool for moving printer queues from WSD ports to Standard TCP/IP ports. It supports graphical and unattended operation, logs each run, and creates a JSON rollback file when it makes a change. Printer drivers stay unchanged, and the package runs without installation from a USB drive, network share, or RMM payload.

In graphical mode, the utility lists printers that use WSD ports and marks addresses it cannot resolve for manual entry. Users select queues for conversion and can choose to remove the old WSD port. For each selected queue, the tool creates a port named with the IP_ prefix followed by the address and redirects the queue to it. New ports use RAW 9100 with SNMP disabled.

01 · Address resolution

The utility checks port names, printer comments and locations, WSD Port monitor registry entries, related PnP devices, and matching software device entries. If those sources do not yield an address, the graphical interface accepts a manually entered IP address.

02 · Unattended conversion

Unattended mode converts WSD printers whose addresses it can detect. Printers with unresolved addresses remain unchanged and are noted in the run log. The mode can run through RMM, Intune, or a login script under an administrator or SYSTEM context.

03 · Rollback and port removal

A rollback file directs listed queues back to their original WSD ports. If an original port has been removed, the printer must be added again so Windows can recreate that port. A WSD port still in use may remain until the print spooler releases it, which can require a reboot.

Windows PowerShell 5.1 · Windows 10 and 11 · Graphical and unattended modes · Portable package · submitted by the XL.net team

BuiltInternal tool

Monthly AT Metrics

Monthly AT Metrics is an internal Claude Code project that coordinates two skills for month-end Autotask reporting. It combines browser-driven LiveReports exports with Python scripts for contact-floor enforcement, input resolution, workbook updates, execution gates, backups, and controlled pivot-cache maintenance. Downloads serves as the handoff between browser work and deterministic file processing.

The reporting skill exports three LiveReports. Ticket detail and configuration items use the previous calendar month, while the client seat-count report has no date filter and represents a current-state snapshot. Seat processing raises Contact Count to 15 when Actual vs. Min reads Minimum 15 and the numeric count is below 15. Values at or above 15 remain unchanged, as do blanks and nonnumeric entries. The configuration-item export supports monthly review but does not feed the workbook.

The data-mining skill resolves the newest seat and ticket exports by filename prefix and modification time. It appends account manager, account name, seat count, and DataMonth to Seats MoM, then appends eleven ticket fields to MoM. DataMonth derives from the calendar month before the run date. By default, a gate inspects export timestamps and checks for flagged numeric seat counts below 15 before append logic or workbook writes. The writer creates a dated backup by default, edits selected XML parts in the XLSX package, and copies unaffected parts byte for byte. Pivot caches ending exactly at the prior last data row expand with the data, while shorter frozen ranges and caches sourced from MoM-old remain unchanged.

01 · Auditable handoff

Exports remain in Downloads. File resolvers print the selected paths, and the contact-floor script reports changed, skipped, and warning rows for subsequent deterministic file processing steps.

02 · Guarded execution

A blocked gate exits with code 2 before the append logic. Dry runs use the same gate, while documented backfill options provide narrower, explicit waivers.

03 · Fixture validation

Acceptance testing used a pre-append workbook fixture. One fixture run added 57 seat rows and 1,102 ticket rows, widened four caches, and rewrote 7 of 89 package parts.

2 skills · 3 LiveReports · Python 3.12.10 · openpyxl 3.1.5 · submitted by the XL.net team

BuiltInternal tool

Tracking Form Triage

Tracking Form Triage reviews client-facing XL.net SA Visit Summary PDFs against the Systems Analysts Tracking Form SOP. It combines Python checks for mechanically decidable defects with a Claude judgment layer for cross-section contradictions and wording issues. Results are available as CLI text, JSON, or a self-contained interactive HTML triage report.

An SA supplies a PDF, and the tool organizes findings by severity. Each finding links to the relevant SweetProcess rule. The HTML report lists clients alphabetically, opens the client with the most critical findings, and groups recurring problems by severity while reporting affected clients and forms separately.

The tool retains no state between runs, uploads no input, and uses no database. Missing rows that may be hidden by the Internal flag are assigned to the Verify tier rather than treated as absent from XLing. Real client fixtures and the customer export remain within the team, while shared copies use invented sample clients.

01 · Two-layer audit

Python checks required-item presence, blank or stale review dates, expiration thresholds calculated from the visit date, duplicate headings, clipped cells, and escape characters. The Claude layer assesses contradictions across sections, notes that describe activity without findings, ambiguous client-facing wording, and commitments missing from action items.

02 · Geometry-based parsing

The parser recovers PDF table rows from page geometry and derives column boundaries from each header row. It aligns item, status, note, and date fields. Text extraction provides a fallback, and alignment confidence determines whether row-level claims are reported as findings or sent to Verify.

03 · Profile-based applicability

On-premises, office-cloud, and no-office-cloud profiles determine which SOP items apply to each client. The profile comes from the customer export. For clients absent from that export, the tool infers a profile from wording and infrastructure signals in the form, and leaves mixed or absent signals unresolved.

Python CLI · Claude judgment layer · Text, JSON, and HTML output · Stateless PDF processing · submitted by the XL.net team

BuiltAutomation

Outage Detective

Outage Detective is a scheduled Python service that monitors Chicago-area ComEd outages and National Weather Service warnings. It posts threshold-based notices to internal Slack channels, tracks each county as a separate episode, and keeps weather warnings out of client channels. Delivery defaults to a dry run.

Each poll evaluates three alert tracks. Organization-wide alerts post when a tracked county exceeds 2,000 affected customers or 2 percent of recorded county customers. Client alerts trigger when their county exceeds 1,000 affected customers or 1 percent, with posts at the opening and closing of an episode. Weather alerts post to the Service Desk announcements channel when a National Weather Service warning covers a tracked county.

ComEd records provide outage coordinates, affected customer counts, causes, crew status, and estimated restoration times. The service assigns coordinates to counties through in-process point-in-polygon checks against Census boundaries and identifies counties by full FIPS ID. Episode state supports SQLite, JSON-file, and in-memory backends. If a county is missing from a poll, the service retains its state instead of treating the missing data as an all-clear.

01 · Controlled delivery

Slack posting goes through XL Lakehouse, which holds provider credentials, applies per-app scopes, and audits calls. Dry-run delivery prints the proposed messages without sending them, and live delivery is opt-in.

02 · Defined coverage

The primary outage source covers ComEd, not Ameren or smaller utilities. Small outages may be masked because ComEd reports fewer than five customers instead of an exact count, and percentage thresholds use recorded county customer counts.

03 · Visible failures

A National Weather Service failure does not suppress outage alerts. Each run emits a structured report showing the source, counties evaluated, missing counties, and notifications produced, so logs distinguish a run with no alerts from a failure.

The service requires Python 3.9 or later. · It uses only the standard library. · The test suite includes 280 tests. · submitted by the XL.net team

BuiltAutomation

Service Desk Shift Relay

Service Desk Shift Relay is an AWS Lambda automation for scheduled handoffs between three Service Desk shifts. EventBridge Scheduler invokes it at shift end, and the service incorporates Autotask ticket data and recent Slack context before posting to the incoming shift's channel. It replaces a handoff process that requires a person to run the source Claude skill in chat.

Runtime settings come from environment variables, with an AWS Secrets Manager JSON secret merged at Lambda cold start. Deployment schedules use the configured timezone and follow daylight saving time. Slack context collection is best effort by default, while a configuration option can require it and skip the run after a context read failure.

Ticket notes provide status and completed outcome text. A configured Autotask user-defined field supplies a next step. Without that field, the formatter omits the line rather than generating one. Individual mentions require a configured shift roster and an assignee match. Tests cover shift resolution, post-midnight reporting, classification, P1 detection, and message formatting.

01 · Boundary Logic

The resolver determines the outgoing and incoming shifts, target Slack channel, reporting day, and time windows. For the second shift handoff after midnight, it uses the calendar day that shift started.

02 · Ticket Read Errors

The service uses the Autotask REST API as its primary ticket source, with an optional Playwright scraper fallback. A ticket source error stops the handoff and sends an admin channel alert that identifies the skipped shift and reason.

03 · Handoff Composition

The classifier places tickets into Completed, In progress, Scheduled, or Blocked categories and identifies open P1 or major incident tickets. The formatter drops empty sections, adds an active P1 banner when applicable, and posts a quiet shift message after a successful result with no tickets.

Time saved · 11 hours a month, reported by the submitter

AWS Lambda · EventBridge Scheduler · Autotask and Slack · pytest coverage · submitted by Froilan

BuiltInternal tool

Follow-up Email Drafter App

The XL Net Follow-Up Drafter is a browser-based internal application for sales follow-up preparation. It looks up a PhoneBurner contact, reads call notes, selects one of three message templates, and renders a preview. When the rep selects Create draft, it creates a Gmail draft for review without sending the message.

Users enter an email address or phone number and can request a casual tone. The drafting engine gives greater weight to the most recent call result when distinguishing a completed conversation from unanswered or gatekept contact attempts. Contacts with no call history are blocked for manual handling. The app uses a company value when PhoneBurner provides one; otherwise it leaves company and industry placeholders for the rep to complete.

The standard conversation template uses HTML links and appends the connected Gmail account signature. The missed-call and casual templates remain plain text and retain their own sign-offs. Duplicate contact matches use the newest record. The application supports fixture-based mock mode and live PhoneBurner and Gmail adapters.

01 · Most Recent Call Result

Recent notes guide the choice between the standard conversation template and the missed-call template for follow-up preparation. A separate casual template is available when requested.

02 · Local Access

The application runs on the local computer and is not reachable from other machines. It has no login, so authentication is required before broader access is enabled.

03 · Testing Coverage

Live testing covered email lookup, mixed call histories, template selection, message formatting, signature insertion, and Gmail draft creation. Phone-number lookup was not tested, and live testing did not verify company extraction from custom fields.

Time saved · 3 hours a month, reported by the submitter

Internal sales workflow · React and Vite · Node.js and Express · PhoneBurner and Gmail · submitted by the XL.net team

BuiltClaude Skill

Provider Status Lookup Skill

Provider Status Lookup Skill checks live internet outage status for a named ISP and location by calling the project's dedicated checker service. The service handles source selection and parsing, allowing the skill to return location-aware findings with supporting context rather than derive an answer through generic web search.

The checker service queries its configured outage sources directly. The skill presents findings in plain language, supports each status with a verdict or failure reason, includes a source reference and check time when supplied, and keeps an unsuccessful lookup distinct from a finding of no known outage.

A provider outside the documented roster is reported as unsupported rather than sent to the API. For multi-provider checks, the skill groups findings by status so reported outages, successful checks, and lookup failures remain distinct.

01 · Provider coverage

The documented roster includes AT&T, Verizon, T-Mobile, Spectrum, Comcast or Xfinity, Viasat, Starlink, Google Fiber, Frontier, Windstream, CenturyLink, and Cox. All-provider mode returns one result for each supported ISP.

02 · Location input

The checker accepts a full address or a city and state, then matches outage data at the city and state level rather than street-address level. If a request has no location, the skill asks for a city and state.

03 · Result structure

Each result is classified as ok, outage, or lookup_failed. It can contain a plain-language verdict, a failure reason, a source reference, a check timestamp, and an indicator identifying a city-specific result or nationwide fallback data.

Time saved · 27 hours a month, reported by the submitter

FastAPI service · Two outage sources · Port 8001 convention · submitted by the XL.net team

BuiltClaude Skill

ISP Outage APp

ISP Outage Checker checks live internet outage status for a provider and location through the project’s FastAPI service. It supports city and state matching across 12 providers and can check every supported provider in one request. Results preserve the difference between a reported outage, no known outage, and an unsuccessful lookup.

The skill accepts a full address or a city and state, while the app matches outage information at the city and state level rather than by street address. Supported providers are AT&T, Verizon, T-Mobile, Spectrum, Comcast, with Xfinity as an alias, Viasat, Starlink, Google Fiber, Frontier, Windstream, CenturyLink, and Cox. The ALL option checks every supported provider and returns one result for each.

Each result has a status of ok, outage, or lookup_failed. Ok means no known outage, outage identifies a sourced problem, and lookup_failed means the app could not determine the status. A result can include a plain-language verdict, while a failed lookup includes a reason. Metadata includes the check timestamp, a source page when available, and whether the information is city-specific or uses a nationwide fallback.

01 · Location requirements

If a request provides no location, the skill asks for a city and state before running the check. A full address is also accepted, but outage information is matched at the city and state level rather than by street address.

02 · Fixed provider coverage

Providers outside the supported table are identified as unsupported rather than submitted as uncertain lookups. The supported table includes 12 providers, with Xfinity handled as an alias for Comcast.

03 · Compact area summaries

All-provider results can be grouped by status so reported outages and failed checks remain visible. The grouping preserves the distinction among ok, outage, and lookup_failed results, with one result returned for each supported provider.

Time saved · 30 hours a month, reported by the submitter

Claude Skill · 12 supported providers · City and state matching · Three result states · submitted by the XL.net team

BuiltInternal tool

WSD Queue Port Migrator

WSD Queue Port Migrator moves local print queues from WSD ports to Standard TCP/IP ports that use RAW port 9100 and the printer's IPv4 address. Technicians can run it through a WinForms interface or use Auto mode for unattended conversion. The PowerShell utility supports rollback and keeps each queue's driver, name, security, and preferences unchanged.

The utility runs on Windows 10, Windows 11, and Windows Server 2016 or later with the in-box Windows PowerShell 5.1 engine. It requires local administrator privileges and can relaunch itself through a UAC prompt. All work uses the local print spooler, registry, and PnP state, with no network calls, internet access, telemetry, or dependency installation.

In the interface, a technician reviews detected queues, edits IPv4 address cells, and selects conversions. Auto mode converts queues with resolved addresses and logs and skips those without one. For each selected queue, the utility creates a TCP/IP port, changes the queue's binding, reads the queue back to confirm the result, and records a rollback entry.

01 · Address discovery

IPv4 resolution checks queue metadata, WSD port registry data, related PnP devices, and device parameters. Candidate addresses pass checks for malformed, loopback, link-local, and broadcast values.

02 · Conversion safeguards

New ports have SNMP disabled. A read-back mismatch is reported as a failed conversion, and an old WSD port is removed only when it is no longer in use.

03 · Rollback records

Successful changes are saved as timestamped JSON rollback records. Rollback restores the former binding when its port exists and leaves the new TCP/IP port in place.

Windows PowerShell 5.1 · RAW port 9100 · Local administrator · Local processing · submitted by the XL.net team

BuiltInternal tool

Offboarding Matrix

Offboarding Matrix is an internal XL.net web application for managing client transitions to a successor MSP or internal IT team. Each engagement presents systems and endpoint inventories, sequential offboarding steps, and side-by-side service and platform comparisons. Users can edit the matrix, import inventory data from CSV files, and export a client-facing PDF with a dedicated sign-off page.

Team members edit inline cells, status dropdowns, and flag checkboxes on a single matrix page. The application polls for updates from other users every 10 seconds. Statuses combine text with restrained color so exported documents remain legible in grayscale.

The import wizard accepts any headered CSV, supports manual column mapping, and suggests mappings for Kaseya VSA, SentinelOne, and Active Directory exports. PDF export uses Puppeteer to load a print route protected by a short-lived HMAC token. The application uses Next.js 16, React 19, TypeScript, Tailwind CSS v4, PostgreSQL 17, and Drizzle ORM.

01 · Template-backed setup

Creating an engagement copies editable step, service, and platform templates into engagement-scoped tables within one transaction, presenting the copied information as sequential offboarding steps and side-by-side service and platform comparisons.

02 · Focused editing

The page pauses refresh while a field is focused and displays committed updates from other users when polling resumes. The application polls for those updates every 10 seconds.

03 · Authenticated changes

NextAuth v5 provides internal username and password authentication. Server actions authenticate each write, validate patches with Zod, update PostgreSQL through Drizzle, and revalidate the matrix route.

Time saved · 4 hours a month, reported by the submitter

Internal web application · 10-second polling · Headered CSV import · HMAC-guarded PDF export · submitted by Larenz

BuiltClaude Skill

HR Onboarding Dated Task Tracker

Built from XL's 27-step internal HR onboarding procedure, the tool produced a dated task tracker and a set of drafted HR emails for each hire. It collected 14 inputs in one round, applied 5 branching conditionals against those answers, and turned relative offsets into calendar dates, skipping weekends for anything requiring the hire to act. Excluded steps were listed with their reason. The package included a Windows batch launcher and a PowerShell generator script alongside the skill files.

Branching ran off the answers collected up front. Steps 24 and 25, the Manager Training Roadmap and the Ninety accountability chart, were included only for hires flagged as managers, and step 10, the 401k advisor introduction, was gated to US-based hires. Hires outside Chicago who were not on the Leadership Team received the reduced invite list rather than all company events, and the EOS book source differed between US and PH hires. Filtered-out steps appeared, marked as not applicable with a reason. The holiday file moved a due date off a listed closure the same way a weekend was handled. When the start date had passed, the tracker was rebuilt from the current date with overdue items marked.

The tool drafted 6 emails: the welcome letter, the 401k advisor intro, 2 InfoSec reminders, the Ruby Receptionist directory update, and the company-wide intro blast. The welcome letter used XL-approved copy near-verbatim, with the name swapped in. The skill was barred from inventing a policy detail, vendor, link, or deadline not already recorded in it; where something was missing, it asked. The intro blast was held rather than drafted when the hire's intro answers or photo were not in hand. Tasks waiting on another person, such as the CISO security access form or the hire's photo, were flagged as blocked instead of ordinary pending work. The 30-day InfoSec deadline was surfaced as the one hard compliance date.

01 · All Inputs Up Front

Inputs were gathered in a single round across 3 groups: identity, branch keys, and fulfillment data. Every branching decision depended on them, so partial collection produced a tracker that had to be regenerated. Department and extension were added Aug 28, 2026, after a dry run showed the Ruby directory email could not be completed from the original 12.

02 · Non-Working Days List

The holiday file listed the days XL observed: New Year's Day, Memorial Day, Independence Day, Labor Day, Thanksgiving Day, and Christmas Day, confirmed by HR on Aug 28, 2026. MLK Day, Presidents Day, Juneteenth, Columbus Day, and Veterans Day were excluded, as were Philippine holidays; the same list applied to every hire, including PH-based ones.

03 · Step Numbers Kept

The tracker sorted chronologically while preserving step numbers from the source flowchart, keeping the output auditable against the original procedure. Columns were number, task, owner, due, reference, and status. Markdown was the default format, and an .xlsx export was offered rather than generated by default, since most runs were read once and the spreadsheet suited status tracking over days.

installable skill bundle · PowerShell generator script · markdown tracker, optional .xlsx · source: internal HR procedure PDF · submitted by the XL.net team

BuiltInternal tool

Offboarding Lookup Console

Offboarding Lookup Console is a local, single-user web tool for service desk offboarding checks. It accepts an AutoTask ticket number, person name, email address, device name, serial number, or MAC address, then brings relevant records and checks into one interface. Bundled fixtures support mock operation, while live mode retrieves data through the XL Lakehouse proxy.

Lookup behavior depends on the input. Ticket numbers use direct retrieval. Email addresses resolve through AutoTask Contacts. With Kaseya VSA access, device identifiers resolve through the device record and its last logged-on user. Name searches are best effort: the tool runs company-scoped AutoTask queries in parallel and scores candidates from their titles and bodies. An optional Account value scopes the search directly and can bypass contact resolution.

The application runs on localhost using Python standard-library components, with no database, third-party dependencies, or build step. It cleans ticket descriptions, condenses work notes into timeline entries, and searches for separate workstation decommission or repurpose tickets. Results are rendered in five tabs and are not persisted server-side. Provider calls check granted scopes and isolate errors, allowing other tabs to return data when one source is unavailable.

01 · Structured ticket review

The summary removes signatures, legal footers, links, phone details, and address blocks from the request text. Each work note becomes a timeline line, with heuristic flags for termination context, workstation handling, look-alike email domains, and point-of-contact status.

02 · Connected evidence

The interface covers the AutoTask termination ticket, contact record, client point-of-contact assessment, related workstation tickets, Slack messages, SweetProcess procedures and tasks, and Kaseya VSA device status. Device identifiers from separate decommission or reassignment tickets feed the read-only VSA check.

03 · Resilient source handling

A missing scope, rate limit, or upstream error affects the related tab rather than the full response. The data-access layer supports fixture-backed mock data and live provider data without changing the lookup workflow.

Python 3.10+ · Localhost web interface · Mock and live modes · No database · submitted by the XL.net team

BuiltInternal tool

SA ticket review Dashboard (Cassandra)

Ticket Review Dashboard is a local workspace for XL.net Solutions Architects. It combines read-only Autotask PSA and XLing data to present client tickets, open CCPs, history scans, and project impact analysis. Review state stays in the browser, and the application does not write data back to either source system.

The dashboard presents a rolling 30-day view of tickets worked for each client, with AI-written work summaries, review checkboxes, and notes. Its Open CCPs view includes AI-distilled hold reasons. Six-month history scans chart recurrence by ticket type and recommend permanent remediation. The single-page interface includes sortable tables and project impact charts with week-level drill-down.

Project impact analysis identifies whether a project coincides with a change in ticket activity. It assigns one of four verdicts: increased ticket rate, no change, decreased ticket rate, or insufficient data. It also provides changes by ticket type and an AI assessment that grades potentially associated tickets by confidence. The server listens on localhost and runs pulls and analyses on background threads. XL Lakehouse enforces read-only provider scopes and records calls with the acting user. AI output follows an enforced schema, while truncated responses prompt another request.

01 · Comparison windows

Project analysis compares a 60-day pre-project baseline with the execution period and the 30 days after the project.

02 · Local trust boundary

Credentials remain in the server-side environment file. The browser receives generated data files and stores review state in localStorage.

03 · Activity-keyed caching

Disk caches key AI results by each ticket's last activity, so unchanged tickets do not trigger another analysis.

Local web application · 30-day ticket window · Read-only source access · Project impact analysis · submitted by the XL.net team

BuiltBrowser app

AR Aging Weekly Builder

AR Aging Weekly Builder is a local browser-based application for XL.net's weekly accounts receivable aging and collections update. It combines the prior tracker tab, a current QuickBooks Online A/R Aging Detail export, and optional invoice PDFs. The app presents reconciliation findings and editable guidance while the operator controls invoice classification, escalation, next actions, and archive overwrite decisions.

The app identifies new invoices for classification as routine charges, Projects, or Deposits. PDF font-weight parsing can read a line-item label and suggest a Project or Deposit classification. A rule-based engine uses note patterns and date arithmetic to recommend collection actions, including date-aware detection of broken payment promises. Invoices missing from the current report remain flagged for review rather than being marked as paid.

After review, the app creates a single-tab deliverable workbook and updates a persistent per-pod history archive. It backs up the archive before each write and performs round-trip verification afterward. The operator can request a Gmail summary draft, which the app creates but does not send. No component calls an LLM or AI service. The package excludes OAuth tokens, client secrets, uploaded invoices, and client financial data, and the codebase contains no telemetry or analytics.

01 · Reconciliation review

The review screen surfaces collection-stage changes, escalation candidates, dropped invoices, and the computed reconciliation. The operator reviews these findings, controls invoice classification and next actions, and saves the result after completing the review.

02 · Editable decision support

Deterministic keyword rules, date arithmetic, and PDF structure parsing produce classification and collection-action suggestions. The operator reviews each suggestion and can accept or override it while retaining control of invoice decisions.

03 · Local history

Runtime folders retain timestamped upload copies, generated output files, configuration, and per-pod archive workbooks. Each archive accumulates weekly history, and the app backs it up before writing and verifies it afterward.

Time saved · 8 hours a month, reported by the submitter

Streamlit browser UI · Single-tab workbook · Per-pod archive · Gmail draft on request · submitted by the XL.net team

BuiltInternal tool

EA Scheduling Queue

This single-tenant FastAPI application supports one Executive Assistant through the monthly Engagement Call cycle and related client correspondence. SQLite stores workflow state across long-running threads. Human approval gates client-facing actions, and each proposed call time requires the President's explicit confirmation before finalization.

The application builds the monthly invite list, drafts personalized outreach, interprets client availability, supports alternatives after a rejected time, and surfaces stalled threads. The Executive Assistant asks the President directly about a proposed slot and records his response in the interface. A confirmed call becomes a calendar event containing the agenda, with the connection link added afterward by the Executive Assistant.

Skill markdown loads at request time as a runtime asset for the Anthropic-powered reasoning layer, which produces drafts and proposed actions without direct access to Google services. Structured parsing captures candidate times, timezones, and confidence. LearnedFact rows retain answers to prior questions, while an append-only audit log records proposals, approvals, executions, and external calls. Fake adapters support offline development and testing, including an end-to-end twelve-client cycle test.

01 · Human-gated action queue

Every side effect enters an action queue with explicit states, risk classes, and approval records. Client-facing email and calendar actions require recorded human approval. Final scheduling also requires confirmation for the specific proposed time, which the worker checks before execution.

02 · Long-running cycle state

The workflow preserves each Engagement Call thread across weeks, including outreach, client replies, proposed times, rejection rounds, and confirmation status. After two failed rounds, the interface surfaces the thread as stalled for the Executive Assistant.

03 · Client correspondence

The application also drafts status updates and proposal cover notes. Prompt templates call for specific headlines, substantive details, clear next steps, explicit timezones, and warm professional language, with drafts routed through the client-facing approval gate.

FastAPI + SQLite · Monthly EC workflow · Offline fake mode · Append-only audit log · submitted by the XL.net team

BuiltCLI tool

Autotask Ticket Triage

Autotask Ticket Triage is a Node.js and Playwright CLI that pulls tickets from eight shared System Analyst queues and produces ranked worklists for tracked analysts. It attributes tickets through the Resources field, separates active work from parked On Hold tickets, and supports focused analyst views, headed browsing, and structured JSON output.

The CLI runs without an AI agent or Claude session. It provides login-only and login-and-run modes. Users sign in through a visible browser window, while the tool works with the resulting session cookies rather than the Autotask password. For the documented Google SSO tenant, each run requires user sign-in, which rules out unattended scheduling in that mode.

Browser access is isolated in scrape.js. Extraction, attribution, priority handling, date parsing, and report formatting operate on plain objects. The pure modules can be tested without Playwright, a network connection, Chromium, or an Autotask session.

01 · Queue attribution

The CLI reads eight shared team queues, excluding My Workspace and Not Assigned. It matches tickets to tracked analysts through the Resources field. Rows without a tracked analyst match appear under Other / Unassigned, together with the unmatched resource names.

02 · Triage order

Active tickets sort by configured priority rank and then by due date, with the most overdue first. On Hold tickets appear in a separate unranked list and are excluded from active-ticket ranking. Unknown priority tiers rank last and are reported.

03 · Column drift checks

Offline tests check hardcoded grid column positions against a captured raw fixture. A live pull aborts with an error when the mapping appears misaligned, instead of printing a plausible report from the wrong columns.

Node.js and Playwright · Eight shared queues · Manual SSO login · Optional JSON output · submitted by the XL.net team

BuiltInternal tool

Client Ticket Pattern Brief

AT Ticket Analysis converts a single client's 30-day Autotask PSA ticket history into a prioritized pattern analysis, a Markdown report, and a formatted Excel workbook. A shared engine serves its CLI and local web app. Deterministic rules assign High, Medium, or Low priority with a one-line reason, while per-ticket flags and cross-category clustering surface items for point-of-contact discussion.

The analysis identifies reporters from ticket text without substituting assigned technicians. It examines dominant themes, repeat reporters, recurring hosts, time clustering, and same-day patterns across categories. CSV, TSV, and XLSX uploads run without provider credentials. Missing source fields are disclosed in the output rather than imputed.

The Markdown report places the point-of-contact priority callout first, followed by category findings and data limitations. The Excel workbook contains Summary and Tickets sheets with live formulas for ticket counts and hours. Results and artifact paths are recorded in local SQLite run history.

01 · Category integrity

Categories use issue-type and sub-issue-type identifiers, keeping matching display labels under different parent types separate. If an uploaded file lacks categorization, the tool groups tickets by keyword themes and marks the categorization as inferred in the data limitations.

02 · Workbook checks

When LibreOffice is installed, it recalculates workbook formulas and the run fails if reference, name, or division by zero errors are found. If LibreOffice is unavailable, the workbook is clearly marked as not yet recalculated.

03 · Controlled narration

Template prose provides a complete report without Claude narration. The optional Claude layer rewrites facts already decided by the engine, and a drift check prevents it from changing priorities, reasons, or ticket flags.

Interfaces: CLI and local web app · Inputs: Autotask, CSV, TSV, and XLSX · Storage: local SQLite run history · submitted by Jazer

BuiltBrowser app

Contract Renewal Flag Board

Contract Renewal Flag Board is a local, offline tracker for XL.net Procurement Services. It provides a dashboard, add and edit forms, and computed renewal, trap, and seat review signals. The application runs from one self-contained HTML file with no installation, server, database, build step, dependencies, or network requests.

The application derives signals from contract data on each render rather than storing them. A renewal within 90 days is RED. A renewal 91 to 180 days away, or a cancellation notice deadline within 30 days, is YELLOW. Other contracts are GREEN. A trap signal applies when a contract auto renews with a notice window of 30 days or less, has a price escalation clause, or has a nonempty notes field. The seat review signal is a proxy for a purchased seat count that has not changed in at least two years.

Contract records reside in browser localStorage for the specific file and browser profile. If that storage is unavailable, the application uses session memory and displays a persistent warning. CSV import maps columns by case-insensitive and spacing-insensitive header names. It skips rows without a vendor or parseable renewal date and presents warnings before confirmation. CSV export includes current computed signals, while JSON backup and restore preserve the raw contract records. Backups require a manual action.

01 · Contract details

Records can include vendor, product, department, annual contract value, purchased seats, renewal and start dates, term length, cancellation notice, auto-renew status, price escalation status, and notes.

02 · Logic checks

The included browser test page covers 17 flag cases, including the 90-day renewal, 180-day renewal, and 730-day seat-change boundaries. It checks computed renewal, trap, and seat review signals.

03 · Operating scope

The tool supports a single procurement administrator. PDF and email parsing, multi-user authentication, push notifications, and vendor usage-data integration are outside its scope. Contract records remain local to the browser.

Single HTML file · Local browser storage · CSV import and export · JSON backup and restore · submitted by Mykee

BuiltDocumentation tool

Tenant Docs: Automated MS365 Hardening Documentation

Tenant Docs captures live Microsoft 365 configuration and turns it into SweetProcess-ready documentation. Two PowerShell collectors cover Entra settings and Defender for Office 365 and Exchange Online Protection policies. Claude Code prepares a tenant-specific hardening reference and troubleshooting SOP, while technicians review drafts before approved documents are created as private SweetProcess procedures through the XL Lakehouse proxy.

The Entra collector requests read-only Microsoft Graph scopes and captures Conditional Access, authentication methods, tenant settings, registration summaries, and access review definitions. It resolves referenced users, groups, roles, and applications to display names. The Defender collector retrieves threat policy configuration through Exchange Online PowerShell and imports only the required Get cmdlets as a defense-in-depth measure. Each run writes timestamped JSON snapshots that preserve earlier files. Folder identity is keyed by tenant GUID, while an optional client-name override must match across both collectors.

Claude Code drafts a hardening reference with exact policy names, enforcement states, scope, exclusions, and user-visible effects. It also drafts a symptom-driven troubleshooting SOP based on controls enforced in the tenant. Drafts remain in a gitignored output directory for technician review. The publisher converts approved drafts to SweetProcess step objects and creates private procedures through the audited proxy. The tool stores no SweetProcess credential, and writes are attributed to the operator identity. A reviewer checks the rendered procedure before making it visible.

01 · Graph completeness checks

Conditional Access policies are collected from the Microsoft Graph beta endpoint. Each run reconciles those results against v1.0 and records the comparison in the snapshot, making endpoint divergence visible. A separate parity script checks other endpoints for the same class of gap.

02 · Collection safeguards

The Defender collector aborts when the connected organization does not match the delegated organization. Section-level licensing or permission failures are recorded in the snapshot errors array instead of being interpreted as absent configuration. Client snapshots, generated output, and reference files remain outside version control.

03 · Procedure lifecycle

Regenerated documentation patches an existing SweetProcess procedure in place. The proxy enforces read and write scopes, and reviewed documents are the only tenant-derived material uploaded to SweetProcess. Word import remains available as a fallback import path.

Two PowerShell 7 collectors · Timestamped JSON snapshots · Technician-reviewed drafts · Private SweetProcess review · submitted by the XL.net team

BuiltAutomation

Slack-Triggered IR Pipeline

IR Automation Bot centralizes XL.net’s incident report intake from Slack requests and bad Crewhu ratings. It enriches incidents with Autotask context and coordinates CAR drafting, Ninety records, follow-up tasks, notifications, and auditing through one outbound-only process, while keeping external service access behind XL Lakehouse.

Configured requesters trigger the Slack path by typing @IR or Incident Report in a channel or existing thread. The bot searches the message, its thread, and recent channel history for a ticket, resolves the client from Autotask or the channel name, and maps Autotask fields to an incident reason. When information is missing, it asks in the triggering thread, where only the requester may answer. Bad Crewhu ratings enter the creation path automatically with Bad CrewHu Rating as the reason.

The shared creation path attempts the CAR draft first and continues if drafting or filling fails. Its Ninety payload targets a priority 1, Short-Term Issue on the Incident Review Meeting team, with two To-Dos assigned to Taylor Netter. Successful outputs are returned through direct messages. Partial failures remain visible in the resulting records and audit history rather than causing the entire incident workflow to be marked as failed.

01 · CAR preparation

The bot copies the Google Docs template into the client’s Incident Reports folder without modifying the source. It names the copy for the client and date, checks the source and quality fields, and pre-fills available originator, department, customer, ticket, description, and problem information.

02 · Service boundary

External calls route through XL Lakehouse. The process holds one Lakehouse bearer token rather than provider credentials for Slack, Ninety, Autotask, Crewhu, or Google. It runs as one Python process using outbound HTTPS, with no inbound ports, webhooks, or public listener.

03 · Controlled activity

Each detection is recorded before downstream action in SQLite and a text audit log. A channel, message, and rule uniqueness key prevents duplicate handling. Slack writes are limited to replies in the triggering thread and direct messages, so the bot does not initiate top-level channel posts.

Slack and Crewhu triggers · Autotask enrichment · outbound HTTPS only · SQLite and text audit · submitted by the XL.net team

BuiltInternal tool

XLgov

XLgov is XL.net's internal governance platform for policy, procedure, and strategy content across the organization. It represents content as linked, owned, addressable database records and provides workflows for imported policy review, strategy alignment, field-level revisions, and approvals from impacted owners.

The policy onboarding queue lets assignees and executives confirm or correct ownership, then approve imported policies from Draft to Active. Strategy pages cover objectives, pillars, and links between pillars and policies suggested manually or by AI. Procedure records exist in the schema but are not yet imported.

The application uses Next.js 16, TypeScript, React 19, PostgreSQL 16, and Prisma 7. The internal preview runs in Next.js development mode, without automated tests or process supervision. Its policy importer is re-runnable but creates duplicates when a policy is imported again.

01 · Governance relationships

A polymorphic Reference table connects records through support, operationalization, clause citation, tool reference, cross-reference, definition use, and external dependency relationships. Revision impact analysis walks this graph to identify affected owners.

02 · Unanimous revision path

A revision proposes an edit to one field of one content record. XLgov creates an approval row for each impacted owner, and the revision becomes live content only when every row is approved, with no override. Rejected revisions are linked manually to the existing IDS escalation process.

03 · Protected internal access

Google OAuth authenticates users in the XL.net Workspace domain. Person records control platform roles and active access, while executives provision and revoke users. SweetProcess and Anthropic calls pass through the audited XL Lakehouse proxy, and the application is available through the VPN.

Internal governance platform · Next.js 16 · PostgreSQL 16 · VPN only · submitted by the XL.net team

BuiltClaude Skill

AI Model, Effort & Surface Planner

This Claude Skill turns a project description into an ordered plan for using Claude across a project. It recommends a model, effort level, and work surface for each phase while accounting for required quality, token cost, and context needs. It also plans session continuity so decisions and project state can move between phases without relying on one long conversation.

The planner treats effort, model tier, and surface as separate choices. It assigns conversational phases to Chat, multi step non-code work to Cowork, and software engineering to Claude Code. When a phase combines research and coding, it separates the work and passes the synthesized findings into implementation.

If the project description lacks scope or deliverables, the planner asks one or two clarifying questions. It selects the lowest token cost configuration that meets the required quality level. If output does not meet that level, it increases effort by one level, then moves to a higher model tier at the same effort, and considers Fable or max effort after those steps.

01 · Decision criteria

Each phase is assessed by the cost of an incorrect result, the number of similar runs, whether the work is conversational, knowledge work, or engineering, and the amount of information or prior work it needs in context.

02 · Plan contents

The output table lists each project specific phase with its surface, model, effort level, context note, and a short reason for the recommendation. The planner can split or combine user supplied phases when that changes the cost and quality decision.

03 · Session practices

For work spanning multiple sessions, it recommends checkpoint summaries, persistent workspace files, and repository memory files such as CLAUDE.md. For API or Claude Code pipelines, it advises holding effort steady within a phase or session because changing effort invalidates prompt caching.

Ordered phase plan · Three work surfaces · Context handoffs · Token cost planning · submitted by the XL.net team

BuiltClaude Skill

Domain Controller Decommission Discovery

Domain Controller Decommission Discovery reports which systems depend on a domain controller and which dependencies have to change before it is demoted. It is a single PowerShell 5.1 file with a click-through window and a headless mode, run on the DC being retired. Ten independent read-only checks each write their own CSV and feed a summary graded BLOCKER, ACTION, REVIEW and INFO. The tool makes no changes to the environment and writes files only inside the selected results folder.

The tool covers the pre-decommission planning phase of the XL.net Domain Controller Server Decommission checklist SP and adds areas the checklist does not list. Check 1 records the five FSMO roles and co-hosted roles including ADCS, NPS, WSUS, KMS, WDS and ADFS. Check 2 covers replication and SYSVOL health. Check 3 queries every enabled AD computer for static DNS and WINS entries and writes a Not Reached row for anything that does not answer. Check 6 reads Security events 4624, 4625, 4768, 4769 and 4776. Check 10 generates a worksheet for systems the tool does not query, including firewall LDAP, VPN, RADIUS, hypervisor identity sources, NAS domain joins, MFP address books, VoIP, badge systems, camera NVRs and backup appliances.

A check whose prerequisites are missing is marked Unavailable, is not run and writes no CSV. Every worker emits exactly one row, with the reason in a Notes column, so a failed host still appears in the output. The tool requires local Administrator rights to read the Security event log, plus Domain Admin or equivalent read rights. WinRM is needed only to reach other servers; local domain controller queries run in process. Each run creates its own timestamped output folder, so repeat runs do not overwrite each other. For a 500-machine estate, the reference gives 15 to 45 minutes for all ten checks. The tool does not perform the demotion. It produces the plan for it.

01 · Coverage Section First

00-SUMMARY.md opens with a Coverage list of the checks that did not complete, the reason for each, and the fix. Findings follow, grouped by severity, each naming a specific object and what to do about it.

02 · Run On the Retiring DC

The script was copied onto the domain controller being retired and launched as Administrator. Queries against that DC ran in process. Checks 3, 8 and 9 reached other machines over WinRM. On a DC, repadmin, dcdiag and dfsrdiag are already present.

03 · Thirty-Day Logon Window

Check 6 uses a 30-day Security log window by default, with an optional netstat sample repeated across hours. Results are deduplicated with FirstSeen, LastSeen and counts, and non-domain-joined sources are flagged.

dc-decom-discovery/SKILL.md · powershell 5.1, single file · ten read-only checks, ten csvs · gui plus -nogui headless mode · submitted by the XL.net team

BuiltDocumentation tool

KB Article Tooling

KB Article Tooling provides two browser-based tools for client-specific SweetProcess articles. The Inspector checks drafts against 37 style rules locally, without an account, API key, installation, network request, or upload. The API tool connects to Anthropic to rewrite drafts and generate new article text.

The Inspector evaluates titles, overviews, procedural steps, informational structure, formatting, tags, and terminology. Findings identify the severity, rule, source line, quoted text, rationale, and proposed fix. The three severity labels are Must fix, Should fix, and Worth a look. Rules focus on determinate checks, while judgment about clarity, executable steps, and screenshot value is left to Claude through a generated prompt.

The API tool requires an API key and streams generated text as it arrives. It keeps the key in a JavaScript variable for the session without writing it to local storage, session storage, or cookies. Both tools contain the shared style guide compiled into their HTML files. Neither writes content to SweetProcess, so users paste the resulting markdown into the platform.

01 · Rule-based review

The Inspector parses each draft into a structural model containing the title, overview, headings, numbered steps, bullet groups, paragraphs, and tags. Each element retains its line number so findings can point to the relevant source line.

02 · Visible import workflow

The Inspector accepts pasted text and imports HTML, DOCX, PDF, Markdown, and text files. Imported content enters an editable textarea for review before inspection. PDF extraction is approximate, and image-only PDFs return no text.

03 · Compiled guide lifecycle

The style guide is embedded at build time to keep each HTML file standalone. Style guide changes require rebuilding both files with the supplied PowerShell scripts. Build guards stop output when a reference file or placeholder is missing, or when guide content could break the script block.

Two browser tools · 37 inspection rules · 7 rule families · Inspector: no network calls · submitted by the XL.net team

BuiltInternal tool

TCA Compliance APP

The TCA Compliance App is a locally run web application for XL.net's Secure+ endpoint coverage audit. It turns console exports into classified endpoint coverage, compliance metrics, and reviewable findings. The workflow replaces spreadsheet-based review with persisted analyst decisions. A parity test runs the vendored original and ported reconciliation engine over the same inputs and compares coverage flags, match statuses, penetration tables, and gap sets.

SentinelOne is expected on every VSA9 endpoint. RocketCyber applies to selected clients, while DNSFilter applies to selected clients' workstations. Entitlement is a human decision because deployment data cannot distinguish a client with no entitlement from an entitled client with no deployment. Until the workbook importer is built, clients start as Undecided for RocketCyber and DNSFilter, and scope falls back to drafted penetration buckets.

The interface includes Dashboard, New Run, Gap Review, Clients and Entitlement, and Exceptions screens. The application was verified end to end against an export set containing 3,588 endpoints across 86 clients and producing 628 open findings. The workbook importer, Data Quality screen, exact-layout workbook regeneration, and hostability pass remain unbuilt. The run-level Security Metric is not authoritative until existing entitlement and exception data is imported.

01 · Console export intake

Four explicit upload slots accept exports from Kaseya VSA9, SentinelOne, RocketCyber, and DNSFilter. Preflight reports parsed rows and required columns, distinguishes an absent optional tool from a tool with no coverage, and blocks submission when a required export or required column is missing.

02 · Tool-specific matching

The engine treats VSA9 as the endpoint inventory. SentinelOne matches by hostname or normalized serial, allowing renamed machines to match. RocketCyber and DNSFilter contain no serial and match by hostname. DNSFilter coverage calculations use workstations rather than all endpoints.

03 · Durable analyst decisions

Entitlement and exception records sit outside the per-run tables. Omitting a finding requires a reason, creates an exception rule with author and timestamp, links the finding to that rule, and appends to the activity log. Subsequent runs read the rule and suppress the same machine. Entitlement updates require a note and create an entitlement event.

Backend uses FastAPI, SQLAlchemy, and SQLite · Frontend uses Vite, React, TypeScript, and Tailwind · Client inventory remains on the workstation · submitted by the XL.net team

BuiltClaude Skill

Sent Email Follow up Tracke

Sent Email Follow-Up Tracker scans sent Gmail threads for messages that still need a response to an open question, unresolved problem, or meeting request. It filters out closing statements, separates qualifying results into internal and external groups, and creates reply-all follow-up drafts only after the user confirms each selected email. The user reviews and sends each draft in Gmail.

The skill reads later messages across the full thread to determine whether they address the concern in the user's sent message. Off-topic replies, side comments, and automated notifications do not count as responses. A later follow-up from the user also leaves the thread unanswered when nobody else provides an on-topic reply. Approvals, acknowledgments, thank-you messages, and status updates without an ask are excluded.

For a selected thread, the skill writes a brief follow-up that faithfully restates the original ask and adds a polite nudge. It places the reply-all draft in the same Gmail thread with the original recipient set. The draft remains available for the user to review, edit, and send. The skill does not send email directly.

01 · Search Scope

The Gmail query searches sent mail after the date 30 days before the scan and before the date three days before the scan. The before boundary is exclusive. The skill requires Gmail capabilities for thread search, thread retrieval, draft creation, and label listing.

02 · Recipient Classification

A message is Internal when every recipient uses the exact xl.net domain. It is External when at least one recipient uses another domain, including an xl.net subdomain. Each group is sorted by days since sending, with the most overdue results first.

03 · Draft Confirmation

Each email requires its own explicit confirmation before draft creation. Presenting the result list does not authorize drafting, and the follow-up content comes from the original message rather than an invented request.

Time saved · 5 hours a month, reported by the submitter

Gmail connector required · Full-thread response review · Exact xl.net matching · Draft creation only · submitted by Jonathan

BuiltInternal tool

A Stand alone app ticket Categorizer for Autotask

Autotask Ticket Categorizer proposes Issue Type and Sub-Issue Type values for uncategorized tickets in a configured support queue. It combines the Claude API with active Autotask picklist values, presents proposals through a Google Workspace authenticated web interface, and writes approved categorizations back through the Autotask REST API.

Scheduled, command-line, and web initiated runs share one pipeline. Each run resolves the Autotask zone, fetches the current picklist, discovers candidate tickets, and sends each ticket title and description to the categorization engine. Human review is the default. If auto-apply is enabled, high-confidence matches can proceed directly, while needs-review, picklist-gap, and engine-error results remain queued for a reviewer.

The app checks each proposed category pair against active picklist values and confirms that the Sub-Issue Type belongs to the selected Issue Type. Autotask rate-limit responses receive exponential backoff, while other request errors become hard failures for that ticket. SQLite stores pending proposals and an append-only audit log. Each write attempt records the ticket ID, previous and proposed values, timestamp, and approving person or policy.

01 · Shared pipeline

The scheduler, command-line interface, and web interface invoke the same categorization path, sharing the pipeline that resolves the Autotask zone, fetches picklists, discovers tickets, and sends ticket content to the engine.

02 · Dependent pair validation

Only active parent and child category pairs from the current Autotask picklist can proceed to write-back, with each Sub-Issue Type checked for membership under the selected Issue Type.

03 · Approval workflow

Reviewers can approve or reject proposals individually or in bulk through the authenticated dashboard, while high-confidence matches proceed directly when auto-apply is enabled and other results remain queued for review.

FastAPI interface · Claude API engine · SQLite storage · Docker deployment · submitted by the XL.net team

BuiltAutomation

Yodabot

Yodabot polls internal XL.net client Slack channels for new Autotask ticket links, searches SweetProcess for relevant procedures, and replies in the original thread with the top-ranked surviving result. Coverage is limited to channels the shared bot has joined, and suggestions post without a human approval step.

The bot recognizes Autotask hyperlinks labeled with the expected ticket identifier format while ignoring identifiers presented as plain text. It widens searches through progressively shorter groups of distinctive words from the ticket subject, then ranks the results locally because SweetProcess ordering does not provide a useful relevance signal.

Slack and SweetProcess requests pass through the XL Lakehouse proxy using one Lakehouse token instead of separate provider tokens. An atomically written state file stores per-channel checkpoints and answered-ticket records. On first sight of a channel, Yodabot checkpoints the latest message rather than processing the channel's earlier history.

01 · Candidate safeguards

Archived procedures are removed. Procedures associated with a different client in the known-client vocabulary are also removed, and a candidate must share at least one meaningful word with the ticket subject.

02 · Matching limitation

The ranking model weights shared words equally. A match based on a common term such as office or training can produce a weak suggestion, and an unrecognized client name can fall outside cross-client suppression.

03 · Polling and retries

The default polling interval is five minutes. If posting fails, the ticket is not marked as answered, which leaves it eligible for another attempt during a later sweep.

Internal Slack automation · Five-minute default polling interval · 41 network-free unit tests · No historical backfill · submitted by the XL.net team

BuiltCLI tool

Active Directory Health Check & Audit Toolkit

A self-contained PowerShell CLI assesses Active Directory health, configuration, and security across forest, domain, replication, DNS, sites, domain controllers, privileged access, Group Policy, backup, capacity, and monitoring. It produces HTML, flat findings JSON, separate inventory JSON, and optional CSV. A source scan checks for forbidden commands before Active Directory access, while errors inside wrapped checks become Inconclusive results.

Each result uses a normalized Pass, Fail, AtRisk, NotApplicable, Inconclusive, or Manual status and includes evidence, severity, criteria, benchmark, recommendation, target, and collection time. The first substantive HTML section presents collected configuration details such as FSMO holders, domain controllers, sites, subnets, trusts, privileged group membership, Group Policy objects, DNS zones, replication summaries, and dcdiag results. Available details depend on the selected scope, modules, permissions, and successful collection.

The tool reports remediation as text and provides no mode that applies fixes. Missing optional DnsServer, GroupPolicy, or LAPS modules cause dependent checks to return Inconclusive or Manual results. The ActiveDirectory module is required. With operator approval or an explicit unattended option, the script can install missing RSAT modules on the computer running it; a separate option disables installation. It supports Windows PowerShell 5.1+ and PowerShell 7+.

01 · Pre-access command scan

The script parses its own PowerShell abstract syntax tree and checks command invocations and selected native tool arguments against deny lists. Verification mode performs this source scan without loading modules or connecting to Active Directory.

02 · Per-check error handling

An exception-handling wrapper converts errors thrown inside an independently wrapped check into an Inconclusive result. Other wrapped checks continue, although an error within a check that loops across domain controllers can stop the remaining targets for that check.

03 · Report organization

The HTML output places collected environment inventory before verdicts, followed by summary counts, overall posture, critical findings, category results, manual checks, methodology, and sources. Findings and configuration inventory remain separate in the structured exports.

Invoke-ADHealthCheck.ps1 · Version 1.3.0 · PowerShell 5.1+ and 7+ · HTML, JSON, optional CSV · submitted by Ljubodrag

BuiltInternal tool

SharePoint Permission Viewer

SharePoint Permission Viewer is a read-only PowerShell and WinForms application for inspecting user permissions in SharePoint Online tenants that the operator can sign into. It communicates directly with the SharePoint REST API without PowerShell modules, keeps authentication tokens in memory, and uses GET requests for SharePoint operations.

The application runs on Windows PowerShell 5.1 and PowerShell 7. Default browser authentication uses an authorization code flow with PKCE and a localhost redirect on a random port. Device code authentication provides an alternative for machines where the browser cannot use that redirect. Tokens are not saved to disk.

Tab A checks a specified user's effective access on the root web of each site in the loaded discovery list. OneDrive sites are excluded unless selected for inclusion. Tab B scans the selected site's Documents library and folders to a chosen depth of one to three. If no library matches Documents or Shared Documents, it uses the first document library. The grids report access and permission level, provide available grant attribution, support cancellation, and export to CSV. Site storage sizes require SharePoint or Global administrator access. Otherwise, discovery uses SharePoint Search without sizes and returns sites visible to the signed-in account.

01 · Server-evaluated access

The viewer asks SharePoint to calculate effective permissions for each scanned site, library, and folder. It maps the returned permission mask to Full, Edit, Read, Limited, or None. Each folder is evaluated individually instead of receiving a copied inheritance result.

02 · Grant path explanation

Attribution reports direct assignments, SharePoint group membership, sharing links, tenant-wide claims, and site collection administrator access. When access may come through an Entra group, the viewer lists candidate groups because SharePoint REST does not expose the required membership data. It can also report when no grant path explains the access.

03 · Queued background scans

Authentication, site discovery, and permission scans run in separate runspaces. A synchronized queue carries rows, progress, status, and completion messages to the WinForms interface, while cooperative cancellation flags are checked within processing loops.

Single-file PowerShell application · PowerShell 5.1 and 7 · SharePoint GET requests · Tokens held in memory · submitted by the XL.net team

BuiltAutomation

SD ScoreCard Daily Fill

SD ScoreCard Daily Fill is a spreadsheet-bound Google Apps Script with a time-driven trigger in the midnight hour Central. It reads two scheduled Autotask CSV attachments from Gmail and places Combined Tickets, Tickets Closed, Documentation Closed, and Time Spent for each engineer in the SD ScoreCard column matching the reports’ date.

The report date determines the destination column, allowing late reports and backfills to reach the corresponding scorecard date. A write proceeds when both the Tickets and Time reports are present, carry the same date, and resolve to one daily column. Incomplete pairs, date mismatches, missing or ambiguous date columns, and summary-column matches stop the write. Manual on-demand attachments marked with the Immediate_ prefix are skipped because they contain partial-day counts.

Missing source values remain blank so they do not count as worked days in scorecard averages. Weekend is added to a blank status cell when an engineer is outside rostered days and has no data. Existing status choices remain unchanged, and suspected weekday holidays are flagged with no status entry. Formulas remain untouched. Each run emails a summary covering filled dates, dates not written, blank reports, cell changes, matching values, and blank metrics.

01 · Rerun behavior

Each destination cell is compared before writing. Matching values remain in place, changed source values replace prior entries, and an engineer missing from an export does not have existing data cleared.

02 · Input recognition

Reports are classified from CSV attachment filenames rather than email subjects, accommodating scheduled report file names while excluding legacy spreadsheet duplicates and partial-day manual pushes.

03 · Deployment guardrails

Trigger installation validates matching America/Chicago script and spreadsheet timezones. A stored spreadsheet identifier prevents a copied sheet and script project from writing to the wrong scorecard.

Time saved · 35 hours a month, reported by the submitter

Google Apps Script automation · Two Autotask CSV inputs · Gmail to scorecard workflow · Midnight Central trigger · submitted by the XL.net team

BuiltInternal tool

Compromised User Emergency Kit

A PowerShell incident response tool for investigating one Microsoft 365 user or mailbox per run. It collects cloud, Exchange, hybrid Active Directory, and optional local endpoint evidence, applies heuristic analysis, and renders HTML, CSV, and PDF reports from one data model. Six containment actions sit behind capability checks, simulation, current-state capture, and typed confirmation.

The toolkit supports a Windows Forms interface and a headless mode. Headless operation runs connection, collection, analysis, planning, and reporting with exit codes for a clean result, findings raised, or a tool error. Containment is also available through command-line action and confirmation parameters. The build process produces a single-file PowerShell release by concatenating components in a fixed dependency order.

The containment catalog includes account blocking, session revocation, inbox-rule and transport-rule disabling, on-premises account disabling, and mailbox protocol lockdown. It exposes no object removal operation. Each outcome is written to the action log with the authenticated identity, action, time, before-state, after-state, and result. One supplied run reached collection after an Exchange Online sign-in cancellation, then ended with a missing Value property error during collection and analysis.

01 · Collection coverage

Collectors check registered capabilities before calling an API. Each result reports Collected, NotCollected with a reason, or PartiallyCollected, allowing unavailable and incomplete evidence to appear in report coverage rather than resemble a verified negative.

02 · Case and reporting model

For completed cases, the documented timestamped folder layout includes raw evidence, findings, action records, reports, execution logs, a case manifest, and evidence hashes. HTML, CSV, and PDF renderers read the same report data model.

03 · Validation scope

The offline harness contains 168 assertions using synthetic evidence and does not require a live tenant or host. It excludes live Graph and Exchange authentication, real API paging and throttling, the graphical interface, real containment and reversal, and executable-specific behavior.

Version 0.11.1 · 14 evidence domains · Six containment actions · 168 offline assertions · submitted by Ljubodrag

BuiltClaude Skill

Slack Tag Digest

Slack Tag Digest turns Slack activity from the trailing 24 hours into an action-focused catch-up. It covers direct mentions, here and channel broadcasts in joined channels, direct messages, and replies in threads the user started or participated in, with emphasis on messages that may require a response.

The skill deduplicates messages that match multiple collection categories, resolves user IDs to display names, and fetches enough thread context to identify what is being asked without reproducing complete conversations. It prefers Slack activity or search tools when available and otherwise checks recent conversation history.

Results are grouped into Needs a reply, FYI, and Noise, with empty sections omitted. Needs a reply and FYI items identify the sender and channel, lead with the request or change, include a Slack permalink, and note explicit deadlines or blockers. Items are ordered by urgency and then recency, while Noise receives a single count line.

01 · Exact Time Boundary

The collection window uses a calculated cutoff timestamp for the preceding 24 hours rather than treating the current calendar day as the boundary. The closing line states the total count and covered time window.

02 · Slack Connection

The skill requires a connected Slack MCP. If Slack tools are unavailable, it explains the requirement and offers help connecting Slack rather than using browser tools unless the user asks.

03 · Chat Delivery

The digest appears directly in chat, and a file is created only when requested. After an unscheduled run, the skill can offer weekday morning automation.

Slack catch-up · Reply triage · Thread-aware context · Weekday scheduling · submitted by the XL.net team

BuiltClaude Skill

Reporting Automation

This Claude Skill calculates Service Desk Pod1 Average Time per Ticket across a 28-day rolling window. It confirms the Thursday through Wednesday date range, reads ticket minutes and completed-ticket totals from two Autotask LiveReports, converts the ratio to hours, and rounds once to two decimal places. After user approval, it stages the result in the corresponding Friday KPI row in XLing for the user to commit.

Report 465 supplies total Pod1 ticket minutes, while report 464 supplies the completed-ticket count for the same window. The calculation divides minutes by ticket count and then by 60 without rounding the intermediate result. Report titles, populated date filters, last-page indicators, and grand totals are checked before the result proceeds to XLing.

The workflow presents the reporting window, source totals, KPI date, and calculation before requesting approval. After approval, it opens the matching Average Time per Ticket row, records the existing value, enters the proposed value, and verifies the staged date and field contents. The user chooses whether to commit the update or discard it. The metric reflects time per ticket rather than workload or ticket volume.

01 · Reporting Window

The window begins on a Thursday and ends on the following fourth Wednesday, covering 28 days. Its result maps to the Friday immediately after the window closes, and the computed dates require user confirmation or override before either report runs.

02 · Validation Controls

Both reports use completed-ticket populations. Empty filters, mismatched report titles, create-date filtering in report 464, or implausible results cause the workflow to stop or prompt additional checks rather than report a ratio from mismatched data.

03 · User Approval and Commit

Staging requires explicit consent. The proposed value remains uncommitted in XLing, with the final update reserved for the user. After the user reports committing it, the workflow checks the target row and confirms that sibling KPI rows remain unchanged.

Time saved · 2 hours a month, reported by the submitter

Claude Skill · Pod1 only · 28-day window · Report IDs 464 and 465 · User commits update · submitted by the XL.net team

BuiltClaude Skill

Slack Thread Archiver

Slack Thread Archiver is a Service Desk skill that collects Slack threads marked with #SaveConvo during a requested sweep. It stores searchable Markdown records by client, with transcripts, summaries, participants, ticket numbers when present, and open gaps. The archive supports later retrieval by client or topic and produces formatted text for manual entry into Autotask.

Slack is read through the Claude for Chrome extension without the Slack API. An active session and an open Slack tab are required, and the desktop application is not readable. The tag serves as a bookmark rather than an archive action. Background monitoring and detection of replies added after capture are outside the first version.

Client identification uses channel conventions and a local alias map. Threads with no identifiable client go to an unfiled folder, while a new or ambiguous client prompts a request for the canonical folder name. Before writing, the skill replaces credentials, healthcare identifiers, and specified legal matter identifiers with redaction markers. Internal hostnames, IP addresses, usernames, and IT staff names remain in the record.

01 · Thread capture

Capture uses the parent message timestamp link to extract a stable permalink. The recorded message total is compared with Slack's reply count, and a mismatch marks the archive as partial. During a SaveConvo sweep, the parent permalink is also checked against the index to identify threads already archived.

02 · Archive records

Each Markdown file contains structured metadata, a generated summary, a verbatim transcript, and unresolved items or gaps. Consecutive messages retain their authorship, unreadable text is marked, and ambiguous terms remain unresolved rather than being interpreted. Attachment filenames are recorded, but attachments are not downloaded.

03 · Archive reuse

Retrieval searches the local archive and returns ranked results with date, client, title, summary, and file path. Incomplete captures are flagged. Autotask output presents conversation details chronologically, preserves exact values, includes what was ruled out, and identifies missing information for the user to paste into a ticket note.

Slack is read in Chrome · Records are stored as local Markdown · The Slack API is not used · submitted by the XL.net team

BuiltClaude Skill

s-net-glocom-log-analyzer

The gloCOM log analyzer locates the current user's S-Net Connect logs on Windows, macOS, or Linux and investigates missed rings, absent incoming-call alerts, connection problems, and crashes. It analyzes focused log windows, ranks possible causes by confidence, identifies conditions that local logs cannot confirm, and prepares relevant diagnostic files for a support ticket.

The skill resolves the log location for supported desktop operating systems without hardcoding a username and verifies the folder before reading it. If no incident time is supplied, it scans the most recent 24 to 48 hours. Its focused analysis covers connection health, SIP call signaling, presence and DND indicators, audio-device warnings, and crash dumps. Findings are compared with documented gloCOM settings and behavior.

The report presents a lead finding, other anomalies, conditions outside the logs, settings for the user to check, and notes about missing or empty files. The skill builds a ZIP from diagnostic files that exist and adds a manifest containing the app version and build, operating system, covered date range, incident details, and file availability. Databases and media caches are excluded by default. Copied log text is scanned for credential-like values, which are redacted before the package is finalized.

01 · Path handling

If the expected folder is absent, the skill checks the operating-system pattern, installation evidence, and other local profiles. If the path remains unresolved, it asks the user for the exact location.

02 · Confidence model

Candidate causes receive high, medium, or low confidence based on the available log evidence. A missing SIP INVITE at the reported time points toward PBX, extension, device, or carrier conditions that the client logs do not expose.

03 · Archive boundaries

The support package includes diagnostic logs and crash dumps that exist. Message and contact databases require a specific support request and user approval, while media-cache folders remain outside the package.

Single Claude Skill · Local log diagnosis · Confidence-ranked findings · Support ZIP output · submitted by the XL.net team

BuiltClaude Skill

No Touch Triage

No Touch Triage evaluates live helpdesk tickets to identify work that can begin remotely without the user's live involvement. It separates known facts, missing details, and assumptions, then produces a verdict, an ordered resolution path, a disruption check, and any information needed to proceed.

The skill assesses four boundaries: disruption, physical presence, personal devices, and consent for interactive remote control. It distinguishes these constraints from authorization blockers involving access grants, group membership, license changes, security exclusions, or another person's data. Approval requests go to the client's designated point of contact, with a check for whether that approver is already included on the ticket thread.

The workflow places read-only investigation before changes. Each resolution step states its purpose, command or admin path, state impact, and engineer-side verification. Destructive, security-impacting, and wide-reaching actions are flagged. The disruption check identifies whether steps apply live, at next logon, or require an interruption. Information requests include only questions whose answers change the next action, and the final output provides a confirmation message describing the change, what to test, and how to reply.

01 · Verdict framework

The skill assigns one of five verdicts: No user contact, Async only, Blocked on info, Blocked on approval, or Needs live time. The verdict identifies whether work can begin remotely.

02 · Ticket playbooks

A reference file covers 27 Microsoft 365, identity, endpoint, workstation, infrastructure, and server ticket categories. Tickets spanning categories are triaged as separate threads during assessment.

03 · Operating boundaries

Background commands through RMM are distinct from interactive remote control. Personal devices remain user-driven, while reboots, sign-outs, application closures, profile rebuilds, and connection drops require agreement or scheduling.

no-touch-triage/SKILL.md · 2 files · 27 ticket categories · 5 verdicts · submitted by the XL.net team

BuiltClaude Skill

Ticket Trend Analysis

Ticket Trend Analysis turns a PSA ticket export into a client-ready reduction analysis. It finds recurring problems, compares how their counts change across the available history, and grounds root-cause findings in ticket descriptions and resolution notes. It prioritizes issues using both trend and volume, scopes actions to non-project work, and produces a Markdown report with a formatted Excel workbook.

The skill accepts a directory containing a CSV or exported XLSX file and maps varied PSA column names. A usable created or opened date is required. Its default target is three months unless the user requests another period. If the file contains fewer than three months of records, it uses the available date range. If the newest ticket is more than a few days old, it anchors the window to that ticket rather than the current date. It omits trend claims when the history yields a single bucket.

Analysis begins with issue and sub-issue tag counts, then examines titles, descriptions, and resolutions for repeated hosts, users, vendors, systems, and error strings. Candidate clusters use ticket numbers, dates, and available text as evidence. Onboarding, change-control submissions, and internal documentation or administration are listed as excluded service work. The two deliverables are saved in a client-named subfolder, with copies placed in a second directory when the user names one.

01 · Scope integrity

The deliverables state the date window, in-scope and exported ticket counts, and any shortened or stale-anchored scope. They omit trend claims when the history yields a single bucket.

02 · Trend-adjusted priority

Candidates are compared across up to three monthly buckets. A recent increase can rank above a larger declining cluster, while flat patterns or weak evidence remain monitor items.

03 · Action boundaries

Recommendations exclude new hardware, procurement, and scoped projects. If a durable fix requires project work, the analysis flags that constraint and narrows the proposed action to verification, testing, or vendor escalation.

CSV or XLSX input · Three-month default target · Markdown and Excel deliverables · Client-named output folder · submitted by the XL.net team

BuiltClaude Skill

Ticket Dispatcher

Ticket Dispatcher is a read-only Claude Skill for triaging the Autotask Client Portal queue. It is designed to distinguish client requests from specified automated alerts and email thread fragments, research related account tickets, follow cited ticket numbers beyond the standard history window, and recommend routing based on repeat evidence, qualifying engineer time, and open ticket load.

For real client requests, the skill is designed to examine open and completed account tickets from roughly the prior three months. It also follows cited ticket numbers regardless of age. Escalation is recommended when the same contact reported the same problem, a completed issue returned, or Service Delivery Engineers logged at least one hour across matching tickets or the current ticket. A company issue type match can also trigger the rule, but if that is the sole trigger and no issue genuinely matches, the ticket is treated as new. Repeat and escalation verdicts include the applicable rule, ticket numbers, dates, qualifying hours, and time entry authors. Keyword-only judgments are identified as guesses.

The skill groups RocketCyber alerts, Kaseya offline-agent alerts, ShareFile activity digests, UptimeRobot monitors, and vendor Zendesk auto-replies as automated alerts. Tickets created by reply-all activity on one email thread are marked as merge candidates rather than repeats. Capacity recommendations compare assigned open tickets across Reactive, Service Requests, Scheduled Hold, and MAC, select the lightest load in the required role, and report ties. The skill reads Autotask through Claude in Chrome and does not assign, edit, escalate, or close records.

01 · Queue classification

The workflow reads ticket descriptions, separates real requests from specified automated alerts and thread fragments, and surfaces deadlines stated in ticket bodies and tickets marked Non-Responsive.

02 · Repeat evidence

Evidence is prioritized from explicit repeat fields, cited ticket numbers, engineer notes, root cause matches, and title or keyword similarity. Blank manual fields are not treated as proof that an issue is new.

03 · Capacity routing

Load is defined as open tickets assigned to each person across four named queues. Unassigned tickets are counted separately as backlog rather than attributed to an engineer.

Claude in Chrome · Read-only Autotask access · Three-month account history · Load tally across four queues · submitted by the XL.net team

BuiltClaude Skill

Queuebot

Queuebot is a Claude Skill that posts its owner’s Autotask queue summary in Slack on request. It reads the open queue and ticket details through the owner’s signed-in browser session, then presents each ticket as a concise line with the contact, client, current position, status, and due date.

Queuebot scans the last 20 messages in its configured Slack channel for the most recent case-insensitive queuebot trigger from its configured owner. It proceeds when the message is less than 90 minutes old and no owner-specific Queuebot summary appears after it. Without a qualifying trigger, it posts nothing and does not open the browser. This owner check lets multiple service desk members run separate instances in the same channel.

After a qualifying trigger, Queuebot reads the owner’s queue through Autotask MVC pages and opens each ticket detail page. It uses the Contact field for the person’s name and synthesizes the description with recent human notes to explain where work stands. Tickets are ordered by due date, soonest first. The summary excludes ticket identifiers, links, hours worked, queue names, credentials, and personal contact details. If the queue is empty, it reports that nothing is open. If a valid request cannot produce a summary, Queuebot replies in the trigger thread with a brief explanation.

01 · Browser approach

Queuebot uses raw Autotask MVC pages because the Onyx wrapper renders its grid as a canvas that cannot be read as text. It relies on the Autotask session signed in on the owner's computer.

02 · Per-ticket resilience

If one ticket page fails or returns no useful detail, Queuebot marks that ticket as detail unavailable and continues processing the remaining tickets in the owner's open queue.

03 · Configurable ownership

Each instance defines an owner name, owner Slack identifier, Autotask zone, and channel identifier. That instance ignores messages from other owners, which lets multiple service desk members run separate instances in the same configured Slack channel.

SKILL.md · Slack connector · Claude in Chrome · Owner-configured instance · submitted by the XL.net team

BuiltClaude Skill

XL Proposal Builder

XL Proposal Builder combines proposal creation with reference file maintenance for XL.net project work. The main skill evaluates, scopes, drafts, reviews, and revises proposals, including statements of work, labor estimates, PPIOO workplans, assumptions, exclusions, clarification questions, and handoff emails. A companion skill reconstructs missing process and standards references from content in the main skill.

The proposal workflow reviews relevant customer documentation and approved references before drafting. It distinguishes confirmed facts, user-provided assumptions, skill-derived recommendations, and items requiring confirmation. Source priority starts with current user instructions, followed by customer-specific material, approved playbooks and scoping documents, approved examples, and official vendor documentation when current validation is required. Conflicting source information is identified for confirmation rather than silently reconciled.

The skill defines included work, exclusions, prerequisites, dependencies, responsibilities, optional items, and follow-on projects. Labor calculations use separate categories, identify their baselines and scaling assumptions, and reconcile line items with subtotals and grand totals. QuoteWerks copy places each bullet on its own line, while PPIOO workplans include tasks, descriptions, roles, hours, phase subtotals, and a grand total. Final checks cover scope, counts, responsibilities, labor, licensing support, pricing status, optional work, and open confirmation items.

01 · Project classification

Requests can be classified as a MAC or service ticket, day-rate engagement, standard project, phased project, optional project, or prerequisite project with dependent work. Classification considers affected users, interruption risk, testing, communication, coordination, rollback, documentation, and post-implementation support.

02 · Separated labor plans

Professional Engineering, Project Management, and Customer Support or Day Rate remain separate. Calculations select complexity where applicable, apply employee, device, site, application, or profile scaling, state estimate assumptions, and flag conflicting totals instead of silently correcting them.

03 · Reference file recovery

The companion skill enumerates reference paths, checks which files exist, and extracts missing process or standards content from the parent SKILL.md without adding new rules. It directs externally sourced topic playbooks to a separate workflow, reports genuine gaps, preserves linked filenames, and rechecks each reference path.

xl-proposal-base-references/SKILL.md · 2 skill definitions · 11 named references · 3 labor categories · submitted by the XL.net team

BuiltClaude Skill

Infrastructure Gap Analysis

Infrastructure Gap Analysis produces a standard Excel workbook that scores a client’s security, network, server, and workstation infrastructure against XL.net best practices. The skill uses XLing as the primary source for findings and severity, with Autotask, Gmail, and Google Drive providing corroborating context. A validator and approval gate precede workbook generation from a fixed template.

The workflow scopes the client and review period, looks for a prior workbook in Google Drive, and gathers current findings. Existing findings can be carried forward, remediated items can move to Normal, and new findings can be added. Wording starts from an approved content library and is adapted with supported client details, including device names, dates, counts, and costs. Confirmed healthy categories are retained with a green Normal status.

Before generation, the validator checks category names, status values, required sections, numeric budgets, unresolved placeholders, and topics excluded by the approved strategic brief. Its review packet includes the status mix, proposed budget, findings, warnings, and categories that the engine will strip. Noel’s explicit approval is required before the formatting script populates the fixed workbook template. Final verification covers the template layout, status colors, placeholders, budget total, and approved category list.

01 · Finding sources

XLing supplies audit nonconformities and severity. Autotask can confirm configuration, lifecycle, warranty, ticket, and project details. Gmail can identify recent changes, while Drive can provide prior workbooks, inventories, diagrams, and QBR materials.

02 · Review controls

Validation errors must be corrected before generation. The approval packet supports review of warnings, wording changes, proposed budgets, status assignments, and categories scheduled for removal.

03 · Fixed workbook template

The formatting script retains listed categories, applies green, amber, or red status colors, supports multiple findings per category, and adjusts the TOTAL formula. The template includes a blue header, gray section bands, seven columns, a TOTAL row, and a scope disclaimer.

Excel workbook output · Four infrastructure sections · Seven workbook columns · Three status colors · submitted by the XL.net team

BuiltClaude Skill

QBR Follow Up Email

This Claude Skill prepares XL.net client follow-up emails after quarterly technology meetings. It identifies calendar attendees, turns Zoom next steps into owner-grouped follow-up items, assembles available meeting materials, and follows a fixed email template. The workflow stops at a Gmail draft for Noel to review and send, then records completion in the XLTO dashboard.

The draft uses the subject Q<N> Quarterly Meeting Follow Up, based on the meeting quarter. Its body contains a greeting, opening, numbered attachment list, owner-grouped follow-up items, closing, and Noel's signature. Follow-up items and owners come from Zoom next steps. The skill does not add absent items or owners, and work Noel completed before drafting can appear with strikethrough formatting.

The standard packet contains the meeting transcript, presentation, Infrastructure Gap Analysis, and Technology Asset Strategy. The transcript and presentation are required. A missing Infrastructure Gap Analysis or Technology Asset Strategy produces a warning without blocking the workflow. The numbered attachment list names only documents included in the packet.

01 · Recipient Routing

External calendar attendees who did not decline populate the To field. The client's XL Service Advisor and documented additional XL contacts populate the Cc field.

02 · Source Grounding

Calendar data supplies the meeting date, quarter, event identifier, and external attendees. Zoom supplies the transcript and next steps used in the email.

03 · Completion Record

After the Gmail draft exists, the workflow writes follow-up evidence to the XLTO dashboard and rerenders the dashboard.

Post-QBR client email · Calendar and Zoom inputs · Validated meeting packet · Gmail draft for Noel · submitted by the XL.net team

BuiltClaude Skill

Incident Report Automation

Incident Report Automation is a Claude Skill designed to complete XL.net's standard Corrective Action Request, also called an incident report, from a fixed Word template and field guide. It conducts fresh research and root-cause reasoning for each incident, fills CAR Information and Root Cause Analysis, and leaves Action Verification and Validation or Review of Effectiveness blank for human sign-off. It can return an edited Word file or field-labeled text.

The skill reads the supplied CAR before drafting, retains supported prefilled content, and identifies the fields that need work. It resolves ticket details, timelines, systems, client contacts, and internal roles from available records. Report language is plain and factual, with accountability assigned to the documented role and process step.

Long-term actions connect a concrete procedure, checklist, or template change to an issue on the appropriate Projects or Service Delivery IDS.

01 · Incident Research

Autotask is the system of record for ticket details, dates, and notes. Gmail and Slack provide client and internal communications, with ticket notifications and channel records acting as proxies when direct Autotask access is unavailable. XLing supports configuration, project, and role checks, while SweetProcess provides the documented procedure for comparison.

02 · CAR Controls

The fixed template defines the report fields, completion rules, wording, qualification notes, and sign-off boundaries. Source and Type checkboxes are matched to the incident, and the selected Source classification is called out for confirmation.

03 · Format-Matched Delivery

Uploaded Word forms are edited in place and returned with unrelated fields and checkboxes preserved unless changes are requested. For Google Docs, the skill returns clearly labeled, paste-ready text for each field because the Drive connector is read-only. A fresh report can start from the blank Word template.

Fixed CAR template · Fresh RCA research · Evidence-qualified wording · Word or field text · submitted by the XL.net team

BuiltClaude Skill

CCP Builder

CCP Builder drafts XL.net's five Change Control Plan fields from a plain change description or pasted Autotask ticket and resolution notes. It produces plain-text content for impact analysis, testing, implementation, back out, and review notes. For implementation steps, it consults current Microsoft Learn guidance or vendor documentation for the specified model and version, then marks details that cannot be verified.

Before drafting, CCP Builder checks for the client and affected system, vendor and model, current and target versions, reason for the change, affected users or services, and the change window when known. It requests missing required information rather than guessing. Testing plans specify what will be checked, the expected result, and how success will be confirmed.

Implementation plans use documented menu paths, CLI syntax, or GUI navigation. The skill does not invent IP addresses, hostnames, credentials, or configuration values. It includes pre-change backup or snapshot steps. Back Out Plans identify the rollback target, restoration steps, and recovery checks so they can be used without relying on the other fields.

01 · Five-Field Output

The output contains Impact Analysis and Reason for Change, Testing Plan, Implementation Plan, Back Out Plan, and Review Notes. Each field is plain text and includes a character count based on its actual content.

02 · Approval Inputs

The skill accepts a plain change description or pasted Autotask notes. It checks for the device, versions, change reason, affected parties, and known change window before preparing the plan.

03 · Review Notes

Review Notes remain a short placeholder before execution unless the user supplies post-implementation results, deviations, issues, or verification details. Supplied details replace the short placeholder.

Drafts five CCP fields · Uses plain-text output · Counts up to 8,000 characters per field · Checks implementation guidance · submitted by the XL.net team

BuiltClaude Skill

SOQL / Report Request Translator

This Claude Skill converts plain-English Salesforce data requests into SOQL queries or report specifications. It draws on the org's documented object model, exact API names, relationships, report types, query conventions, and governor-limit guidance, then explains assumptions and material ambiguities before presenting the deliverable.

The skill maps business terms to Salesforce objects, filters, and fields required for the requested output. It restates the interpreted request in plain language, resolves clear details, and surfaces an assumption or question when ambiguity changes the result. It uses API names from the object-model references. If a required object or field is absent, it requests confirmation instead of inventing a name.

For reports, the skill defines the report type, format, primary object, filters, groupings, columns, sorting, and scope or date range. It compares the request with the report types documented in its reference. When those documented types do not cover the required object combination, it describes the custom report type and relationships that an administrator would need to configure. Bundled scripts re-export the Salesforce schema and regenerate the object-model index, while custom report types require manual review in the separate report-types reference.

01 · Request coverage

Handles requests to pull, list, export, count, segment, or report on Salesforce records. Depending on how the result will be used, it can provide SOQL, a report specification, or both.

02 · Query capabilities

Supports count and grouped aggregate queries, relative date literals, standard and custom relationship traversal, anti-joins for records without related children, and INCLUDES or EXCLUDES operators for multi-select picklists.

03 · Org-specific references

The object-model index covers 20 org-native business objects and 15 standard Salesforce objects, with detail files for fields, types, picklist values, lookups, and child relationship names.

Claude Skill · SOQL and report specifications · 20 custom business objects · 15 standard objects · submitted by Mario

BuiltClaude Skill

Arc AR Aging Weekly Report

Arc builds an end of week accounts receivable aging update from an existing tracker, a fresh QuickBooks Online A/R Aging Detail export, and overdue invoice PDFs. It adds a dated tracker tab, preserves collection stages for continuing invoices, identifies items requiring confirmation, recommends next actions, and prepares a Gmail draft for review.

The QuickBooks export supplies current balances, due dates, and open invoice status. Arc includes invoice rows with positive balances from past due buckets and excludes the CURRENT bucket. For continuing invoices, it carries forward the prior collection section and notes. New invoices begin in the lightest touch section unless PDF wording identifies completed project work or a deposit. The generated tab preserves section colors, column widths, merged notes, and live DATEDIF, TODAY, SUM, and variance formulas.

An invoice absent from the new export is not treated as paid. Arc places dropped invoice numbers in a confirmation table with their prior section and balance. It reports the sum of listed past due invoices, the QuickBooks bucket total net of unapplied payments and credits, and the variance. Next actions come from Last Action notes without unsupported assumptions. The Gmail draft groups confirmation items and recommended actions, records PDF based reclassifications, and includes reconciliation figures.

01 · Run inputs

Each run uses the dated tracker workbook, a raw QuickBooks Online A/R Aging Detail export, and PDF copies of overdue invoices as its three required inputs.

02 · Judgment safeguards

Arc flags aged invoices appearing for the first time and possible escalation changes instead of making unsupported collection decisions, and recommends next actions from Last Action notes without unsupported assumptions.

03 · Tracker scope

The workflow is designed for the Pod style tracker structure with dated tabs, section based collection stages, invoice fields, Last Action notes, and section colors.

Three required inputs · Format preserving workbook update · Confirmation for dropped invoices · Gmail draft for review · submitted by the XL.net team

BuiltReport generator

Asset Lifecycle Workbook Builder

This tool builds a standard Excel workbook that inventories client hardware, software licenses, cloud services, and service providers. It turns confirmed asset data into a forward-looking lifecycle plan covering replacement, renewal, retirement, monitoring, timing, and projected cost. A guided process gathers evidence, derives proposed actions, validates the asset data, and populates the fixed workbook template.

Designed for client owners and executives, the workbook emphasizes business planning rather than part numbers or infrastructure scoring. Its 12 columns record asset identity, vendor, serial number, description, purchase and support dates, end of life, action, price, timeframe, and comments. Four sections appear in a fixed order for network infrastructure, software licenses, cloud and SaaS software, and service providers. Empty section bands remain visible to show where no assets are tracked.

Autotask configuration items provide the primary inventory data, including models, serial numbers, vendors, purchase dates, and warranty or end of life dates. Active opportunities can inform the action, timeframe, and cost when replacement or renewal work is in progress. XLing, Gmail, and Drive corroborate deployment and lifecycle details. The workflow requires Noel’s explicit approval of the review packet before generation. The formatter then populates the fixed Excel template without changing its columns or section order.

01 · Lifecycle derivation

The lifecycle helper proposes actions and timeframes from explicit end of life dates, implied refresh cycles, or renewal dates. It fills blank action and timeframe fields without replacing decisions already entered.

02 · Validation

The validator detects missing or invalid sections, unparseable dates, blank asset rows, and placeholder tokens. It also flags malformed timeframes and assets past end of life without an action. Errors must be corrected before generation.

03 · Workbook format

The formatter writes asset data as an Excel workbook, renders dates as Excel dates, keeps yellow asset labels and the blue closing band, and removes unused blank spare rows while retaining each section band.

Standard .xlsx deliverable · Executive lifecycle planning · Autotask led inventory · Fixed template output · submitted by the XL.net team

BuiltClaude Skill

Technology Asset Strategy

Technology Asset Strategy is a Claude Skill that creates an Excel workbook for a client’s hardware, software licenses, cloud services, and service providers. It records planned actions, timeframes, and projected costs for replacement, renewal, retirement, or monitoring. Autotask configuration items form the primary inventory, with XLing, Gmail, and Drive used to corroborate details and account for recent changes.

Designed for client owners and executives, the workbook emphasizes lifecycle planning rather than part numbers. Its fixed 12-column template includes a blue header, four gray section bands, yellow asset labels in column A, and a blue closing band. Sections cover network infrastructure, software licenses, cloud and SaaS software, and service providers. All four section bands remain present when a section is empty. When a prior strategy exists, the workflow carries assets forward, advances dates, updates resolved items, retires removed assets, and adds new assets.

The lifecycle helper proposes Action and Timeframe values from explicit end-of-life dates, implied refresh cycles, or support renewal dates, while preserving entries already supplied. The validator checks section names, dates, blank rows, placeholder text, timeframe formats, and lifecycle gaps. Its review packet summarizes section counts, action mix, estimated spending, and near-term actions. Explicit approval covers recommendations, pricing, overrides, warnings, and empty sections before generation. The formatter writes Excel date cells, rebuilds sections in the required order, and removes only unused spare rows.

01 · Asset evidence

Configuration items provide models, serial numbers, vendors, purchase dates, warranty dates, and end-of-life data. Recent audit findings, correspondence, stored inventories, network diagrams, prior QBR materials, and active sales opportunities can refine deployment status, timing, and projected cost.

02 · Lifecycle rules

Hardware recommendations use an explicit end-of-life date or a refresh cycle calculated from the purchase date. License, cloud service, and provider rows use support renewal dates. Available actions include replacement, planned replacement, renewal, monitoring, retirement, review, and confirmation that an asset remains within its lifecycle.

03 · Regression checks

A self-test runs the validator, lifecycle helper, and formatter against example asset data. It checks section order and placement, yellow labels, Excel date handling, the closing band, placeholder removal, empty-section rendering, and negative test cases after changes to scripts, lifecycle rules, or the template.

Claude Skill · Excel workbook output · 12 columns · 4 asset sections · submitted by the XL.net team

BuiltAutomation

Key Takeaway

This automation searches recent Gmail threads for Zoom transcript content and creates one reviewable email draft per qualifying meeting. Each digest focuses on decisions, action items, owners, dates, risks, blockers, and open questions stated in the transcript. A processing label and draft-subject check help prevent duplicate drafts.

The search covers about 48 hours unless the user requests another range. Candidate threads are opened to inspect their full content. Messages with transcript text qualify for summarization, while unrelated notices and recording notifications that contain only a transcript link do not produce drafts.

Draft subjects include the meeting topic and date. The body presents a concise bullet list in plain text and HTML, with guidance to use four to eight bullets and fewer for a short call. The automation writes drafts for review and editing but does not send email.

01 · Transcript Screening

The workflow distinguishes transcript text, including speaker lines, timestamps, or verbatim blocks, from Zoom account notices and link-only recording notifications. Link-only threads remain unlabeled so they can be reconsidered if transcript content arrives later.

02 · Takeaway Content

Bullets prioritize decisions, ownership, next steps, stated dates, important context, risks, blockers, open questions, numbers, and commitments. Each bullet uses a clear sentence or fragment without padding.

03 · Duplicate Draft Checks

The Takeaways-Processed Gmail label identifies handled threads. Message label IDs provide the primary check, while draft-subject comparison serves as a backstop when label state is uncertain. The workflow labels a thread after its draft is created.

SKILL.md · 48-hour inbox window · Takeaways-Processed label · Drafts only · submitted by the XL.net team

BuiltClaude Skill

Handbook External Audit

This Claude Skill screens enacted or finalized federal, Illinois, and Ohio labor and employment law changes against the XL.net Employee Handbook. It identifies handbook conflicts and missing coverage, verifies those findings against enacted text, produces a complete compliance report, and prepares a Gmail alert draft when at least one conflict or gap is found.

The Skill runs on a monthly cadence and sets its review window from the most recent alert or unsent draft. For a first run, it examines the prior 12 months. When the handbook PDF is available, it extracts and compares the document text. Otherwise, it uses a section-level policy inventory. Each change is classified as conflict, gap, covered, or not applicable. Findings tied to an unknown employee count are marked as conditional.

Secondary legal summaries support discovery, while enacted statutes, state codes, Federal Register entries, and agency rule pages support reported conflicts and gaps. The report includes effective dates, coverage thresholds, affected handbook sections, source details, proposed policy changes, priorities, and the results of the verification pass. The August 2026 first run flagged six items. It also cleared a lactation break finding after the enacted text showed that the handbook provision complied. This tool provides compliance screening, not legal advice. Proposed handbook amendments go to employment counsel for review.

01 · Handbook Comparison

The Skill tests legal changes against specific handbook language or required policies. A conflict identifies contradictory or less favorable language, while a gap identifies a missing policy, notice, or posting obligation.

02 · Verification Record

Before a conflict or gap enters the report, the Skill checks statutory numbers, mandatory and permissive wording, exceptions, approval conditions, effective dates, and litigation status against primary legal material.

03 · Targeted Alerts

When action is required, the Gmail draft lists affected sections, issues, proposed fixes, priorities, pre-existing exposures, reviewed items requiring no action, next steps, and a recommendation for employment counsel review.

The Skill covers federal, Illinois, and Ohio law. · The review runs monthly. · The first run flagged six items. · The first run occurred in August 2026. · submitted by the XL.net team

BuiltClaude Skill

Azure VM Audit Skill

Azure VM Audit Skill builds and maintains a single-file PowerShell and Windows Forms desktop tool for auditing Azure virtual machines. The tool supports Azure sign-in, enabled subscription selection, parallel VM inventory, BIOS serial number queries for running VMs, live result display, and UTF-8 CSV export. It also defines the interface, architecture, column set, permissions, troubleshooting guidance, and delivery checks.

The desktop interface provides sign-in, subscription selection, Run Audit, Stop, Export Report, Clear, progress, activity log, and results controls. A reduced column view appears by default, with a checkbox for displaying the full set. CSV exports contain every column, including placement, state, size, operating system, image, security, disk, network, identity, extension, backup, tag, and reference data.

The audit uses a separate runspace pool for each subscription and processes subscriptions in sequence. A 300 millisecond Windows Forms timer transfers logs and result rows to the interface while Azure operations run outside the UI thread. Each VM worker produces one row and records errors in AuditNotes. Reader access supports inventory collection. Serial number collection also requires the virtual machine Run Command action, while backup data requires Backup Reader access on the vault.

01 · Serial number handling

For VMs with the live status PowerState/running, the tool queries the BIOS serial number through Azure Run Command. Failed queries receive a standard unavailable value and a plain-language explanation in SerialQueryStatus.

02 · Tags and audit fields

The audit reads ReferenceNumber and SLA tags without case sensitivity. Missing or empty values appear as Not Tagged. The first five columns are DeviceName, SerialNumber, DateCreated, ReferenceNumber, and SLA.

03 · Script delivery

The deliverable is one PS1 file with no compilation step or additional assets. The skill edits an existing AzureVMAuditTool.ps1 file when present and includes checks for syntax, cmdlet parameters, run state, and interface layout.

One PS1 file · UTF-8 CSV export · Thread range: 1 to 32 · UI refresh interval: 300 milliseconds · submitted by the XL.net team

BuiltClaude Skill

Hire Start Date Planner

Hire Start Date Planner produces a dated task tracker and recurring HR email drafts for a specific XL hire. The tracker records each applicable task, owner, due date, reference, and status. Role, location, country, management responsibilities, Leadership Team membership, and client-facing Operations work shape the resulting onboarding plan.

The skill collects the hire's name, role, hiring manager, start date, manager status, country, Chicago location, Leadership Team membership, client-facing Operations status, personal email, birthday, and shirt size in one round. It applies the relevant onboarding branches and offers an XLSX version of the tracker for ongoing status updates.

It drafts the welcome letter, 401k introduction, two InfoSec reminders, Ruby directory update, and company introduction email. The company introduction draft waits until HR has the hire's introduction answers and photo. The skill also surfaces the InfoSec completion deadline 30 days after the start date.

01 · Calendar Anchoring

Due dates use actual calendar dates calculated from the start date. The schedule skips weekends for actions requiring the hire. If the start date has passed, the tracker starts from the current date and clearly identifies overdue items.

02 · Conditional Steps

Manager status, country, Chicago location, Leadership Team membership, and client-facing Operations work determine which steps apply. Excluded steps appear in an N/A list with reasons. A task is marked blocked when it is waiting on the CISO, hiring manager, or hire.

03 · Message Controls

The welcome letter goes to the personal email before the start date, and the 401k introduction applies to US hires. The second InfoSec reminder copies the hiring manager, while the company introduction email remains on hold until its required inputs are available.

Conditional onboarding plan · Calendar-based due dates · Six HR message drafts · XLSX option · submitted by the XL.net team

BuiltClaude Skill

Daily Status Report Generator

It converts meeting notes, standup notes, call transcripts, and dictated shorthand into a formatted daily status report. The skill reads pasted text or supported files, edits the material into professional prose, organizes it into four report sections, and produces a Word document while retaining source details and avoiding unsupported additions.

Inputs can be pasted text or TXT, Markdown, DOCX, and Zoom VTT file paths. For VTT transcripts, the skill strips timestamps and speaker cues before processing. It routes substantive material among Completed Tasks, In Progress, Next Steps, and Action Items, in that order, and omits empty sections. Completed work that also requires follow-up creates separate entries for the work and the follow-up.

The skill corrects grammar, spelling, punctuation, tense, and transcription artifacts. It expands shorthand when the meaning is clear and preserves ticket IDs, service names, version numbers, error codes, environment names, endpoints, metrics, and table or branch names. It does not add facts, statuses, percentages, dates, owners, or causes absent from the notes. Ambiguous material stays close to the source, appears in the closest section, and receives a confirmation flag.

01 · Action item handling

Action Items cover decisions, follow-ups, dependencies, blockers, and escalations. Due dates appear when stated. If ownership is unstated, the item remains unassigned and is flagged for confirmation.

02 · Word report structure

The DOCX uses a Daily Status Report title, available project, date, and author details, ordered section headings, bulleted items, standard margins, and an approximately 11-point body font.

03 · Quality checks

A verification checklist covers source-note coverage, unsupported additions, identifier accuracy, sentence quality, action-item ownership, removal of chatter or blame, and section order in the report.

Claude Skill · Output is a DOCX report · Inputs include text and supported document files · The report uses four ordered sections · submitted by the XL.net team

BuiltClaude Skill

Shift Handoff

Shift Handoff is a Claude Skill that composes and posts Service Desk handoffs to the incoming shift’s Slack channel. It combines scheduled Autotask ticket details with recent Slack context, organizes completed, continuing, and blocked work, highlights active P1 incidents, and skips posting when Autotask data cannot be read.

The skill routes first shift handoffs to #handoff-to-2nd-shift, second shift handoffs to #handoff-to-3rd-shift, and third shift handoffs to #handoff-to-1st-shift. When the shift is not specified, it infers the shift from local time and asks for clarification when the time is ambiguous or outside the shift end windows. For second shift, it uses the calendar day on which the shift starts.

The skill filters Autotask tickets by target due date and scheduled time within the shift window. It captures each ticket’s number, title, client, priority, status, assigned resource, due date and time, and latest note or work summary. It also reads roughly 12 hours from the outgoing shift’s handoff channel for escalations, outages, promised callbacks, and pending vendor tickets not reflected in Autotask. Empty sections are omitted, P1 items receive priority, and every ticket line includes its ticket number. An open P1 or major incident appears at the top under an ACTIVE P1 line. If every bucket is empty, the skill posts a quiet shift message. If Autotask cannot be read, it skips the post rather than guessing ticket data.

01 · Shift aware routing

Maps three Service Desk shifts to their incoming shift Slack channels and uses local time when the outgoing shift is not specified. It applies second shift dates by shift start day.

02 · Autotask and Slack context

Combines scheduled ticket fields and work summaries with recent handoff channel context covering escalations, outages, callbacks, and vendor tickets that are not reflected in Autotask.

03 · Failure safe posting

Highlights active P1 incidents, omits empty sections, includes ticket numbers, and does not post when Autotask data cannot be read. It posts a quiet shift message when every work bucket is empty.

Claude Skill · 3 shift routes · Autotask and Slack · P1 highlighting · submitted by the XL.net team

BuiltClaude Skill

Autotask Contacts Audit

This Claude Skill cross-references four Autotask and Microsoft 365 or Entra ID exports to find active contacts without support coverage. It separates verified contacts by license status, routes unverifiable or blocked records within the active and unsupported population to Needs Review, and reports 12 months of ticket activity in a versioned workbook.

The audit joins each Contacts List name to the Sync Group displayName, then joins the resulting user principal name to the Active Users List for license and sign-in status. A contact is unsupported when No Support equals 1. The audited population requires the contact record to equal Active and the Block credential value to equal False. A Licenses value of Unlicensed is classified as unlicensed, while any other value is classified as licensed.

The workbook contains Summary, Licensed, Unlicensed, Needs Review, and Ticket Count sheets. Needs Review includes active, unsupported contacts that cannot be verified or are blocked from signing in, with a reason for review. Ticket Count presents the most recent 12 calendar months from newest to oldest, includes a running total, and sorts contacts by total ticket volume. Sheets with no records receive a green banner describing the completed check and empty result. Sheets containing records receive a yellow review banner. Output filenames use an incrementing version number to preserve earlier workbooks.

01 · Four-export intake

The audit requires an AT Contacts List, AT Sync Group export, Active Users List, and Ticket Search export. It identifies the affected file when an input is missing or an expected column differs materially.

02 · Ticket name matching

The script converts Contacts List names from First Last to the Ticket Search format Last, First, then matches them exactly without regard to case. Differences involving nicknames, middle names, or punctuation can produce a zero count.

03 · Additional unmatched view

When applicable, an Unknown-Unmatched sheet lists active contacts of any support status that cannot be tied to a license record. Contacts already shown in Needs Review are excluded from this sheet.

Four required exports · Five core sheets · 12 calendar months · Versioned XLSX output · submitted by the XL.net team

BuiltAutomation

Utility and Internet Service Status

This skill checks current power and internet outage reports for a full address, a city and state, or a ZIP code. It uses web search and web fetch rather than a bundled API, identifies relevant utility and provider sources, and returns separate status snapshots with update times and source identification. Results reflect reported wider outages, not a direct diagnosis of service at one property.

For power checks, the workflow identifies the local electric utility and consults an aggregated, text-readable outage tracker. Available data can include customers without service, customers tracked, outage percentage, county, and the latest update time. If aggregate coverage is unavailable, it checks the utility outage map, a text status page, or current news coverage. It does not infer outage status from an empty or unreadable interactive map.

For internet checks, the workflow searches the provider's service status information, text-readable outage trackers, and recent local news. If aggregate sources show no wider reported outage, that finding can help direct troubleshooting toward the user's equipment or account. It does not establish that an individual home had working service.

01 · Location Clarification

A street address is not required when the user supplies a city and state or a ZIP code. The workflow asks for clarification only when the location is missing.

02 · Provider Selection

When the ISP is not identified, the workflow asks which provider serves the user. For a general area check, it can select a prominent provider and state that the result applies to that provider rather than the user's actual line.

03 · Result Timing

Power and internet appear as separate status results with an update time and source identification. Outage counts can become stale within minutes, so each result represents a snapshot.

Coverage is strongest in the US, Canada, and UK. · Data outside those regions can be thinner. · submitted by the XL.net team

BuiltClaude Skill

Autotask Ticket Analysis

Autotask Ticket Analysis examines a named client’s support tickets from the previous 30 days. It analyzes tickets pulled from the client-filtered AD Ticket Review dashboard or supplied in an uploaded file, identifies patterns within and across categories, and assigns High, Medium, or Low priorities for point-of-contact discussion. It produces a written analysis and an Excel workbook for documentation.

The workflow reviews each displayed Top Sub Issue Type row, including additional rows created by ties and separate categories that share the same label. For each ticket, it captures the number, title, status, assigned resource, created and due dates, worked and billed hours, and description. Category analysis covers common threads, ticket volume, total and average effort, business impact, and suggested actions. A cross-category date check identifies clusters that could indicate a shared incident.

The written report opens with High-priority items and provides a reason for each priority assignment. Its category sections include ticket details, pattern findings, impact metrics, actions, and point-of-contact relevance. The Excel workbook contains a Summary sheet for category-level findings and a Tickets sheet for ticket-level records, inferred resolutions, and individual discussion flags.

01 · Input Methods

Users can choose a live Autotask dashboard pull or upload ticket data. For uploaded files, the skill identifies missing fields and labels any categories inferred from the available data.

02 · Reporter Attribution

Reporter names come from ticket titles or descriptions, not the Resources field, which represents the assigned technician. When the visible text contains no reporter name, the reporter is recorded as not identified.

03 · Timing and Resolution

Total Hours Worked serves as the effort proxy, while the created-to-due window represents target turnaround. Resolution text is inferred from ticket titles, descriptions, and status rather than retrieved from a dedicated resolution-notes field.

Live formulas preferred · Priority cells color-coded · Created and due dates captured · submitted by the XL.net team

BuiltCoWork Skill

IT/MSP Cowork Onboarding

IT/MSP Cowork Onboarding helps helpdesk technicians, sysadmins, NOC engineers, internal IT staff, and MSP employees configure Claude Cowork for their jobs. It interviews each user about their role, company, location, timezone, language, tools, data handling, security posture, and communication preferences, then produces project instructions and persistent memory suited to that context.

The skill checks whether the Cowork session is inside a project dedicated to the user's employer. If not, it guides the user through creating one so company context, files, and memory remain separate from unrelated work. The interview presents related questions in groups of two to four, skips information supplied earlier, and adapts its follow-up questions. With explicit permission, available email or calendar connectors can provide signals about the user's role, tools, collaborators, and timezone.

The primary deliverable is a copy-pasteable markdown block for the project's instructions field. The skill also creates memory files covering the user's profile, communication style, working conventions, data handling, security guidance, optional language coaching, and tool stack. It generalizes specific external client and third-party names in generated instructions. Data guidance distinguishes multi-client MSP work from a single internal environment, while security guidance reflects the user's responsibilities and exposure. The user reviews and corrects the instructions before the memory files are saved. Future corrections and confirmed approaches can be incorporated into the instructions and memory.

01 · Workspace scope

Separate projects are suggested for people working across multiple employers or independent client engagements, keeping each employer's company context, files, and memory separate from unrelated work.

02 · Adaptive interview

Questions respond to prior answers, skip information supplied earlier, and appear in groups of two to four. With explicit permission, optional connector data can supplement information provided by the user.

03 · Memory structure

Profile details use user memory, preferences and safeguards use feedback memory, and the tool stack uses reference memory. The user reviews and corrects the instructions before memory files are saved.

Cowork onboarding skill · Project instructions · Persistent memory · Review before save · submitted by the XL.net team

BuiltClaude Skill

Termination check

Termination check searches Slack history for records related to a named person’s termination, offboarding, separation, or departure. It reconstructs available ticket details and event sequences from AutoTask bot notifications, shift handoffs, CSAT posts, and conversations. Results remain scoped to Slack because ticket bodies, work notes, and tickets that leave no identifiable Slack trace are outside its view.

The skill searches public and private channels, direct messages, and group direct messages. It checks full and reversed names, surnames, usernames, nicknames, hyphenation variants, and generated spelling candidates. A separate keyword pass covers offboarding language. The default lookback is 12 months, and the search widens when the first pass finds no evidence. Results state when no record appears in Slack rather than concluding that no ticket exists.

Matching events are placed in date order to show opening, deactivation, activity, handoff, and closure signals. This sequence can indicate progress, delay, or offboarding activity without a matching ticket-opening notification. When a ticket appears, the response provides supported details and a ticket link for the full notes. It avoids speculation about why someone left and omits conduct or performance details.

01 · Slack Evidence Timeline

The skill correlates automated notifications and human discussion to identify ticket numbers, clients, contacts, assigned technicians, dates, and available closure signals, and places matching events in date order.

02 · Name Variant Matching

Concrete spelling candidates help distinguish a misspelled name from an absent Slack record. If those searches fail, the workflow asks for the client to narrow the search.

03 · Device Status Boundary

Slack evidence can surface separate device tickets or messages about collection, return, reset, or reassignment, but it does not confirm wiping, reimaging, or RMM removal. A dated Kaseya RMM export supports an optional point-in-time cross-check when requested.

The search uses Slack history only. · The default lookback is 12 months. · Kaseya RMM export review is optional. · submitted by the XL.net team

BuiltClaude Skill

Consolidated Financial Statement

This Claude Skill combines financial statements from related entities and removes confirmed intercompany transactions and balances. It normalizes account names and creates an auditable workbook with one tab per entity, an Eliminations tab, and formula-based consolidated statement tabs that connect source figures with the relevant adjustments.

The workflow extracts income statement and balance sheet line items into a common structure while retaining how original accounts map to normalized lines. It checks explicit intercompany indicators, then compares counterparties for matching receivables and payables, revenue and expenses, or investment and equity balances. Close but unequal matches are flagged instead of forced to zero. Proposed eliminations are presented for user confirmation before the workbook is built.

Each confirmed elimination uses double-entry accounting and nets to zero across the group. Before delivery, the workflow verifies that the consolidated balance sheet balances, each elimination nets to zero, and identified intercompany balances appear in both the elimination list and consolidated figures. Formula-linked statement lines let users trace consolidated amounts to entity data and adjustments.

01 · Statement Mapping

Different account names map to normalized line items, with the original mapping retained. Ambiguous columns, mixed entities, or unusual statement layouts prompt a user question instead of a guessed classification.

02 · Consolidation Scope

The core consolidation scope for this workflow covers entities that use the same currency, are wholly owned by one parent, and have no equity-method investees.

03 · Excluded Calculations

The skill does not compute non-controlling interest allocations, foreign currency translation, goodwill, or acquisition-related fair value adjustments. These items are identified as outside scope when relevant.

Same-currency entities · Confirmed eliminations · Formula-linked statements · Auditable account mapping · submitted by the XL.net team

BuiltClaude Skill

Rippling Mileage Entry

Rippling Mileage Entry prepares mileage reimbursement drafts in Rippling from qualifying Google Calendar events. It filters calendar locations for street addresses, supports separate round trips or a same day route with multiple stops, and leaves entries as drafts for review. Submission occurs only when the user requests it.

For a selected date range, the skill reads the user's primary Google Calendar and identifies work events whose locations include a street address with a house number. It excludes meeting links, conference room labels, non-work or social events, and place names without street addresses unless the user provides further direction. Before entry, it confirms the home address, route treatment for days with multiple destinations, and the proposed list of dates, destinations, and purposes.

In Rippling, the skill records separate home to destination to home trips or a route with stops, according to the user's choice. It confirms the mileage rate when Rippling presents multiple options, assigns the Travel category, and adds a memo containing the event, destination, and round trip description. Drafts marked as missing requirements receive a cropped route map image as a receipt. The final table lists each trip's date, destination, miles, and amount, while identifying missing addresses, ambiguous rates, and unexpected or empty drafts.

01 · Personal setup

The skill asks for a home or start address when none is saved, stores it for later sessions, and permits a one-time override without changing the saved default.

02 · Trip approval

Users approve the proposed list of dates, destinations, and purposes and choose whether multiple same day destinations use separate round trips or a route with stops before reimbursement entry begins.

03 · Draft handling

Entries remain drafts unless submission is requested. Drafts that Rippling marks as missing requirements receive a cropped route map image as a receipt before the final table identifies unexpected or empty drafts.

Claude Skill · Google Calendar to Rippling · Draft first workflow · Map image receipts · submitted by the XL.net team

BuiltClaude Skill

Engagement Call Cycle

Engagement Call Cycle supports monthly scheduling for recurring calls between the President and clients. It carries prior nonresponders into the current invite list, prepares personalized correspondence, checks proposed times against Google Calendar, and requires the President’s explicit approval before finalizing a meeting. Confirmed calls receive a Zoom invitation, calendar event, and tracker update.

The skill combines clients due for outreach with clients whose previous invitation received no response. It uses the included email template to draft a concise invitation with a personalized opening, a specific reason for reconnecting, and two or three proposed windows. Client-facing messages remain drafts unless the EA directs the skill to send them.

When a client replies with availability, the skill checks for calendar conflicts and sends the proposed time to the President for a confirm or reject decision. An open slot does not constitute approval. A rejection returns the conversation to the client with alternative windows. After confirmation, the skill sends the Zoom invitation, creates a Google Calendar event with both attendees and call details, and records the final date and confirmed status in the tracker.

01 · Approval gate

Each client-selected time requires a direct confirm or reject decision from the President before the meeting is treated as final. An open calendar slot does not constitute approval.

02 · Scheduling stalls

The skill flags the issue to the EA when the client and President complete more than two scheduling rounds without reaching agreement. At that point, the scheduling process remains unresolved.

03 · Focused scope

The workflow covers the engagement call invitation, negotiation, confirmation, and finalization loop, including the client correspondence within it. It also includes calendar conflict checks, Zoom invitations, Google Calendar events, and tracker updates.

Monthly engagement calls · Client email drafts · President approval · Zoom and Google Calendar · submitted by the XL.net team

BuiltClaude Skill

Daily Email Digest

Daily Email Digest reviews unread Gmail threads from a rolling 24 hour window and organizes them into five triage categories. It can retrieve full thread content when a snippet is unclear or an action item needs a more precise description. It outputs the digest in the conversation and a dated Markdown file.

The workflow searches a two day window for unread threads, excludes drafts, and removes results older than the calculated cutoff. It requests sender, subject, snippet, and date through a minimal thread view. Results use a page size of 50 with pagination when the response is truncated.

Each thread goes into Action Needed, Waiting/FYI, Meetings/Calendar, Newsletters/Promotions, or Other. A July 29, 2026 digest covered four unread threads containing six messages. It identified one item needing action that day, involving one procedure review due that day and another due August 5.

01 · Gmail Connection

The skill requires the Gmail MCP connector for thread searches, message retrieval, and label access. If the connector is unavailable, it reports that Gmail is not connected and stops.

02 · Action Logic

Direct questions, approvals, reviews, deadlines, decisions, and invitations requiring an RSVP receive action status. Informational updates and threads where another person has responsibility go to the informational category.

03 · Digest Format

The digest opens with the unread total and calls out the number of items needing a response that day when applicable. It places action items first, writes one line per email, and omits empty categories.

SKILL.md · Gmail MCP connector required · 50 thread page size · Full thread lookup · submitted by the XL.net team

BuiltClaude Skill

Entra/M365 Security Analyzer

Entra/M365 Security Analyzer audits Microsoft 365 tenant configuration across Entra ID, Exchange Online, Defender and Purview, SharePoint Online, Microsoft Teams, and DNS mail authentication. It compares findings with the CIS Microsoft 365 Foundations v6.0.1 catalog and produces a graded Excel workbook plus a concise client-facing summary.

The analyzer separates automated results, settings that require human verification, controls excluded by licensing, service domains that cannot run because setup is incomplete, and catalog controls that are not implemented. The documentation calls for confirming that the bundled benchmark version matches Tenable before using a report in a contractual or compliance context.

01 · Benchmark coverage

The build implements 119 of 140 catalog controls. One hundred grade Pass, Fail, or Not Licensed from tenant data. Nineteen return Manual status and provide an admin center path when no documented Graph API or PowerShell cmdlet reads the relevant setting. The remaining 21 controls are cataloged but not automated.

02 · License-aware grading

The audit reads subscribed SKUs to detect the tenant's E3 or E5 tier. A control that requires unavailable licensing receives Not Licensed rather than Fail. If PowerShell configuration is incomplete, Entra ID and DNS checks can proceed while affected Exchange, Defender, SharePoint, or Teams domains receive Not Run status with the missing environment variable identified.

03 · Read-only reporting

Tenant collection uses Graph HTTP GET requests and PowerShell Get cmdlets. The workbook contains Summary, Findings, and Not Yet Automated tabs, including the detected tier and benchmark references. The client summary distinguishes domains that ran from those marked Not Run and explains manual checks and controls outside the implemented scope.

CIS M365 v6.0.1 · Read-only collection · E3 and E5 aware · Excel and client reporting · submitted by the XL.net team

BuiltCoWork Skill

Autotask Queue Classifier

Reviews ticket titles and descriptions from a configured Autotask support queue and proposes Issue Type and Sub-Issue Type classifications. The skill works from the tenant's current taxonomy, keeps dependent category choices aligned, and can handle a queue batch or a ticket identified by internal ID. It seeks user confirmation before production changes unless automatic application has been explicitly authorized.

The workflow reads Autotask API credentials and the support queue ID from environment variables. At session initialization, it resolves the tenant's Autotask zone and reuses that zone for later requests. Its bulk query selects tickets in the configured queue with no Issue Type and status value 1. That status must be checked against the tenant's status picklist when its meaning is uncertain. A ticket supplied by internal ID can be retrieved directly.

The skill weighs the title more heavily than the description when they conflict and favors a specific category over a general option. If no category fits, it can propose a general value or flag the ticket for human review. Its proposal table includes the ticket number, title, proposed categories, and a short reason. After approval, it updates both fields through the Autotask API and reports successful changes and returned errors.

01 · Queue-scoped intake

The configured queue identifies tickets routed from the support inbox because Autotask ticket records do not include the destination mailbox address. The queue ID comes from an environment variable.

02 · Taxonomy safeguards

The skill retrieves current picklist metadata, excludes inactive values, and permits a Sub-Issue Type only when its parent value matches the selected Issue Type. This keeps dependent category choices aligned.

03 · Controlled writeback

Production updates require confirmation unless the user has authorized automatic application. Failed requests are identified with the raw returned error, and successful changes are reported.

ticket-categorizer/SKILL.md · Autotask REST API · dependent picklists · reviewed classification · submitted by the XL.net team

BuiltClaude Skill

Project Plan

Project Plan creates a phased, client-ready DOCX project plan from a Standard Procedure and kickoff summary. It translates documented technical steps into detailed, engineer-facing sections, preserves decisions assigned to the client, and adapts the plan structure and sequence to the work described in the procedure.

The workflow gathers the Standard Procedure, kickoff summary, and client and project names, maps the procedure into phases and subsections, and writes content JSON for the included build script. It verifies the rendered document by converting it to PDF and viewing the page images before presenting the DOCX. Any scope discrepancies and sequencing choices are identified for user confirmation.

The baseline structure covers design validation, build out, testing and validation, implementation, and documentation and handoff. Phases can be collapsed or added when the procedure calls for another structure. Heading levels group related steps and configuration details. If requested, the kickoff summary can be tailored separately as a client-facing overview.

01 · Technical Scope Authority

The Standard Procedure is the sole source for technical changes. The kickoff summary supplies objectives, roles, timeline, and risk context without introducing technical steps. Concrete configuration values become sub-bullets, deferred decisions retain their source language, and scope differences are flagged rather than reconciled.

02 · Execution Sequence

Report-only, monitoring, and staged changes proceed from build out through testing and validation to implementation. Cutover work uses maintenance-window implementation followed by testing and validation.

03 · House Style

The generated DOCX uses Arial, navy phase headings, blue subsection headings, nested bullets, and US Letter pages. Content is rendered through the included build script rather than styled by hand.

Client and project names required · Prior project plan optional · Kickoff summary tailoring on request · submitted by the XL.net team

BuiltReport generator

Kickoff Agenda

Kickoff Agenda turns a technical project plan into a polished Word document for a client kickoff call. It translates internal detail into plain language and keeps the result to a short call guide rather than restating a large plan. A required project plan supplies the content, and an optional prior agenda or template can shape its presentation.

The workflow accepts a plan as a Word document, PDF, Markdown file, text file, or pasted content. It identifies the project goal, major work, client approvals or inputs, phases or timeline, and expected effects on end users. The resulting agenda covers the work, client actions, milestones framed around client impact, and information staff should receive.

When a Word template is supplied, the workflow extracts heading colors, title color, and body and heading fonts. It can also mirror the template's section structure and tone where appropriate. Without a template, it uses blue Calibri headings and Cambria body text. Structured agenda content is built into a DOCX file, rendered, and checked for visual fit, matching styles, and leftover jargon before delivery.

01 · Call Flow

The recommended structure opens with welcome and introductions, establishes points of contact and call goals, and closes with questions and concrete next steps for the project.

02 · Client Participation

The agenda identifies approvals, people to nominate, decisions, and participation needed from the client during the project. Milestones focus on what each phase means for the client.

03 · Staff Readiness

The document explains what staff will notice, what they should be told in advance, and where they can go for help. Relevant risks and assumptions are presented calmly.

DOCX output · Required project plan · Optional Word template · Typical length: 2 to 3 pages · submitted by the XL.net team

BuiltClaude Skill

Knowledge Base Style Guide

This guide applies Technology Team standards to client-specific documentation in SweetProcess. It supports drafting, editing, reviewing, and correcting knowledge base articles. Its rules cover titles, descriptions, document structure, formatting, screenshots, video attachments, tags, and related documentation links for procedural and informational content.

The skill classifies each document before applying its rules. Procedural documents explain how to perform a task through executable steps. Informational documents explain concepts, policies, references, or standards without embedding procedures. Each type has a defined title pattern, concise overview, and standard content hierarchy.

Procedural titles start with a specific action verb and object, with context added when needed. Informational titles describe the subject rather than an action. Descriptions use plain language, remain specific, stay within two or three sentences, and exclude instructions. Sequential actions use numbered lists, and unordered related items use bullets. Corrections to existing content include a short list of changes.

01 · Procedure Design

Procedure steps start with an action and follow a logical sequence. Each step contains one primary action unless two actions are closely related. Interface elements and actions use bold formatting, and critical information belongs in the appropriate text box category.

02 · Information Design

Informational articles organize material by topic, give each major concept a heading, and use short paragraphs. Bullets present categories, examples, comparisons, or summaries. Tables support structured comparisons, and operational content uses left alignment.

03 · Media and Metadata

Screenshots appear directly below the step they support and are added when they reduce confusion. Tags use Title Case, contain one concept each, and are limited to three to five entries. Related documentation links belong in a dedicated section when they support workflow transitions or decisions.

Applies to client-specific SweetProcess documentation. · Supports drafting, editing, reviewing, and corrections. · submitted by the XL.net team

BuiltReport generator

Patching Visualizer

Patching Visualizer turns three client-specific Kaseya VSA 9 exports into a clear, self-contained HTML Patch Management Summary for clients. The one-page dashboard presents applied updates, fleet status, queued work, and items that merit a quick check. Its documented logic separates approved outstanding work from excluded approval states and avoids treating every outstanding patch as a failed deployment.

The build script takes a client display name and total fleet size. Fleet size is supplied separately because the exports do not contain the complete device count. The reporting month can be specified or can default to the most recent month in the Completed Patches report. The script prints figures for completed and outstanding updates, fleet status, exclusions, and machines flagged for review so they can be checked against the exports.

Output quality control includes opening or capturing the generated HTML to confirm correct rendering and identify layout overflow before delivery.

01 · Required inputs

The workflow requires a full-history Completed Patches report, a NotInstalled Updates report containing Approval Status and Last Deploy Date, and the supporting Last Patch Installed, Last Reboot, Current Vuls, and Pending report. The supporting report's Current Vulnerabilities section cross-checks the outstanding update set.

02 · Status logic

Counts, charts, and reported status figures exclude Suppressed and Pending approval states. Last Deploy Date represents a machine's last deployment cycle, not proof that a specific patch failed. A machine appears in the Worth a quick check callout only when its approved outstanding rows have a blank Last Deploy Date.

03 · Dashboard structure

The specified layout includes a health banner, three KPI tiles, a segmented fleet status bar, a queued-updates donut, completed-patch bars, an amber machine-review callout, and a staged-updates transparency list. A collapsible underlying figures table appears last, directly above the footer.

Time saved · 5 hours a month, reported by the submitter

The output is one self-contained HTML page. · The workflow supports one client and reporting month. · submitted by the XL.net team

BuiltCoWork Skill

Service Desk Daily Grind

Service Desk Daily Grind creates a same-day scoreboard for the goal of 10 Service Desk ticket closes per technician. It combines Autotask completion data with Slack survey categories "great," "meh," and "bad," then produces private and team chart variants. The team version posts to #sd as Daily Grind, with the skill run scheduled for 5:30 PM CST.

A close is an Autotask ticket in the Service Desk queue whose completion date falls within the current local day. Credit goes to the technician identified as the completing resource, not the assigned resource. The team hit rate compares technicians who reach 10 closes with technicians who close at least one ticket. Technicians with zero closes do not appear because the chart cannot distinguish inactivity from circumstances such as paid time off.

Network-facing collection and posting run on Windows, while the Cowork environment reads the resulting JSON and renders the charts. The collector reads Autotask and #engagement at 5:25 PM, writes the JSON atomically, and supplies it to the 5:30 PM skill run. Autotask requests stay read-only through GET and POST query calls. The scoreboard covers the current day without history, trend lines, or backfill.

01 · Daily goal accounting

Workflow-completed tickets without a completing technician remain in the desk total, receive no technician credit, and generate a warning. The collector also surfaces warnings for unresolved queue labels, unavailable ratings, and survey messages that do not map cleanly to one category.

02 · Named chart variants

Both variants show technician names with descending horizontal bars, close counts, and a goal line at 10. Outcome colors distinguish 10 or more closes, 7 to 9 closes, and fewer than 7. The private view supports a lead check-in, while the team chart includes aggregate results and the rating tally.

03 · Offline verification

The bundled self-test exercises the pipeline against fake in-memory Autotask and Slack systems. Its 18 checks cover per-technician grouping, the goal threshold, local-day boundaries, human-message filtering, warning paths, and the read-only guard without network access or credentials.

Goal: 10 closes per technician · Run: 5:30 PM CST · Today only · Tests: 18 offline checks · submitted by the XL.net team

BuiltIntegration

Slack Knowledge Assistant

The Service Desk Knowledge Assistant is designed to turn an Autotask ticket number into ranked, cited SweetProcess documentation and a suggested resolution path formatted for Slack. It identifies the underlying issue, searches for existing procedures, evaluates retrieved candidates, and presents relevant results without inventing documents or unsupported steps.

The workflow retrieves the ticket from Autotask and reviews its title, description, ticket notes, user request, internal notes, company, asset, contact, category, subcategory, issue type, and available resolution history. If the ticket cannot be found, the workflow stops rather than making assumptions. It extracts multiple issue terms when needed, then searches SweetProcess with literal keywords, synonyms, related products, and ticket categories.

Candidate ranking gives priority to a client-specific procedure when one exists, followed by exact keyword or title matches, product or technology matches, issue-type matches, an approved or current document version, and prior successful use when that data is available. Results use High, Medium, or Low confidence bands grounded in retrieval signals. Low-confidence documents are labeled as potentially related, while a search with no relevant result produces a no-match notice. The Slack response includes ticket details, the detected issue, recommended documents, a suggested resolution order, and related procedures.

01 · Ticket Analysis

Autotask ticket fields provide the client, user, asset, issue context, and available history used to identify the support request and supply context for document matching.

02 · Document Matching

SweetProcess candidates are searched by keyword and title, then ranked within the skill according to client relevance, issue fit, document currency, and available usage history.

03 · Slack Output

The result is structured as a threaded Slack reply with ticket context, the detected issue, confidence, cited document recommendations, a suggested resolution path, and related procedures.

The workflow uses Autotask and SweetProcess. · Confidence uses three defined bands. · Output is formatted for Slack. · submitted by the XL.net team

BuiltClaude Skill

Contract terms workbook

This Claude Skill extracts renewal terms from contracts, order forms, and invoices and records them in an Excel tracker. It calculates renewal and cancellation timing, assigns status colors, and identifies conditions that merit review, including short auto-renewal notice windows, price escalation clauses, other noted contract terms, and seat counts that remain unchanged for at least two years.

The extraction checklist covers vendor and product names, department or owner, annual contract value, purchased seats, start and renewal dates, term length, auto-renewal, cancellation notice, price escalation, and notes on clauses such as minimum commitments, co-term provisions, or penalty fees. The skill leaves unstated fields blank or unclear rather than guessing and identifies values inferred from other stated terms.

The workbook contains Instructions, Dashboard, and Contract Tracker tabs. A renewal within 90 days receives red status. A renewal 91 to 180 days away, or a cancellation deadline within 30 days, receives yellow status. A review flag applies when a contract auto-renews with a notice window of 30 days or less, includes price escalation, or has noted contract terms requiring attention. When updating an existing workbook, the skill appends input values and copies the established formulas into the calculated columns.

01 · Structured term capture

Records contract details in defined workbook columns, including dates, values, seat counts, renewal provisions, and noted clauses. It marks missing or inferred information without presenting assumptions as stated terms.

02 · Renewal review rules

Applies documented date windows and clause conditions to highlight approaching renewals, cancellation deadlines, and auto-renewal concerns. Status colors distinguish renewals within 90 days from those 91 to 180 days away.

03 · Calculated renewal fields

Formulas calculate notice deadlines, days remaining, status, review conditions, and seat-count review. An unchanged seat count for two years creates a prompt to check with the department. It does not establish that licenses are unused.

Claude Skill · 3 workbook tabs · 6 calculated columns · 90-day red window · submitted by the XL.net team

BuiltClaude Skill

Secure+ coverage audit

The Secure+ coverage audit reconciled Kaseya VSA9 endpoints with SentinelOne, RocketCyber, and DNSFilter exports to identify coverage gaps. It rebuilt the SecurePlus endpoint audit workbook and compliance metric, calculated CS and Security metrics, and rebuilt the Kaseya Client Endpoint Tracker keyed on VSA9 group ID.

The audit expected SentinelOne on every VSA9 endpoint. RocketCyber covered selected clients, while DNSFilter covered selected client workstations. Placeholder records that lacked OS, IP, serial, and check-in time were listed separately and excluded from gap counts. Endpoints with no check-in for more than 90 days were marked stale. SentinelOne matched by hostname or normalized serial, whereas RocketCyber and DNSFilter matched by hostname only.

Duplicate hostnames were associated with every client that owned them. Client-name mappings required at least three agreeing endpoints and a 60 percent share of matches. When the team workbook was supplied, client columns on the RocketCyber Gaps and DNSFilter Gaps sheets defined entitlement, including empty columns. Without that workbook, the audit drafted entitlement categories from observed deployment rates for staff confirmation. The refresh used exceptions and technician annotations to suppress identified gaps. The CS and Security Metrics were the means of the three deployment and three compliance rates, respectively.

01 · Coverage Scope

SentinelOne was required on every VSA9 endpoint. RocketCyber gaps applied only to entitled clients, and DNSFilter gaps applied only to entitled client workstations. Placeholder records lacking all four specified indicators were omitted from gap counts, while records beyond 90 days without a check-in were marked stale.

02 · Matching Rules

SentinelOne matching used hostname or normalized serial. RocketCyber and DNSFilter used hostname only. Placeholder serial values were not used for matching. Duplicate hostnames were associated with all owning clients.

03 · Workbook Outputs

The audit produced a coverage workbook, refreshed the team's audit layout when supplied, and rebuilt the endpoint tracker on VSA9 group ID while carrying forward display names and pods. Workbook entitlement and exception data were retained in the refresh logic.

Three audit scripts · 90 day stale threshold · Workbook based entitlement · VSA9 group ID tracker key · submitted by the XL.net team

BuiltClaude Skill

Outage Checker

Outage Checker reviews open Autotask queue tickets through a connected Chrome browser and searches for current or recent service outages that could explain the reported issues. It presents plausible outage-related tickets first, with the ticket number, a concise issue summary, and either a matched outage source or a note that no known service issue is found.

The skill uses the Autotask web interface because no direct Autotask API connector is available, and the user must be signed in through the connected browser. For each ticket reviewed, it captures the number, title, and description. If the description is not visible in the queue view, it opens the ticket to read it. For queues containing dozens of tickets, it reports the count and asks the user whether to narrow the scope.

The skill identifies any service, vendor, or product implicated by a ticket and searches the web for relevant outage reports. Issues without an external service are marked accordingly. Plausible matches require a current, recent, or ongoing report that aligns with the ticket symptoms. Searches are grouped by service when multiple tickets point to the same provider, and ambiguous findings remain inconclusive.

01 · Browser-based queue review

Reads tickets from the user's Autotask queues and retrieves descriptions that are not visible in the queue view. It captures each ticket's number, title, and description through the connected browser.

02 · Service correlation

Checks implicated providers and products for current, recent, or ongoing disruptions that plausibly match reported symptoms. It groups searches by service when multiple tickets point to the same provider, while ambiguous findings remain inconclusive.

03 · Triage-focused results

Ranks plausible outage matches ahead of other reviewed tickets to support faster triage. It presents the ticket number, a concise issue summary, and either a matched outage source or a note that no known service issue is found.

Claude Skill · connected Chrome browser · Autotask web interface · live queue review · submitted by the XL.net team

Your Turn

Want to build things like this?

You just toured our lab. We teach teams to build their own AI workflows and automations, the smart and safe way.