Agent skill

Appfolio Debug Bundle

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Collect AppFolio API debug evidence for support tickets. An agent skill from jeremylongshore/tons-of-skills-marketplace.

MITAuto-check: notesSales & Support

Install Appfolio Debug Bundle

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-debug-bundle -a claude-code

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

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace appfolio-debug-bundle --agent claude-code

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

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/appfolio-debug-bundle .claude/skills/appfolio-debug-bundle && rm -rf skills-src

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

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

Facts

Skill name
appfolio-debug-bundle
GitHub stars
2.8k
Token cost
~2k tokens
SKILL.md length
531 words
Files
1
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Collect AppFolio API debug evidence for support tickets. An agent skill from jeremylongshore/tons-of-skills-marketplace.

  • Works in 4 steps: Obtain incident approval and define the… → Create the bundle with redacted… → Review every file before sharing,… → …
  • Tasks that involve Customer support
  • SKILL.md covers Overview, Prerequisites, Instructions and Debug Collection Script, plus 8 more sections
  • Calls curl, node and npm; needs APPFOLIO_CLIENT_SECRET

What it does

Appfolio Debug Bundle is an agent skill from jeremylongshore/tons-of-skills-marketplace. Collect AppFolio API debug evidence for support tickets. Trigger: "appfolio debug".

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code

It sits in Sales & Support, covering Customer support. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Tasks that involve Customer support

Example prompts

  • “appfolio debug”
  • “/appfolio-debug-bundle”

Requirements

  • A credential in APPFOLIO_CLIENT_SECRET
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Obtain incident approval and define the affected time window, portfolio, and
  2. Create the bundle with redacted configuration state, provider status/latency,
  3. Review every file before sharing, encrypt or use the approved support channel
  4. If evidence requires sensitive records, stop and obtain a separately approved

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(npm:*)
    • Bash(curl:*)
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • node
    • npm
    • jq

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

  • Network

    Links to these hosts (documentation or services it may open):

    • appfolio.com
    • status.appfolio.com
    • engineering.appfolio.com

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

  • Credentials

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

    • APPFOLIO_CLIENT_SECRET

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

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Appfolio Debug Bundle loads about 2k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 531 words of instructions outside code blocks.

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

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

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:128
    hows curl SSL error | Update CA bundle: `sudo update-ca-certificates`; check proxy settings |

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

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit 23ea8d4, republished under its MIT licence (© jeremylongshore). 531 words, ~2,028 tokens.

Download SKILL.mdSave it as .claude/skills/appfolio-debug-bundle/SKILL.md (or your agent's skills folder).
name
appfolio-debug-bundle
description
Collect AppFolio API debug evidence for support tickets. Trigger: "appfolio debug".
allowed-tools
Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep
compatibility
Designed for Claude Code
version
1.5.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, property-management, appfolio, real-estate

AppFolio Debug Bundle

Overview

This debug bundle collects diagnostic evidence from AppFolio property management API integrations for support escalation and root cause analysis. It captures API connectivity against the properties, tenants, and work orders endpoints, authentication status using client credential pairs, recent error logs from integration pipelines, and SDK version information. The resulting tarball gives support engineers everything they need to diagnose connectivity failures, auth rejections, and data sync issues without requiring live access to your environment.

Prerequisites

  • curl, jq, tar installed
  • APPFOLIO_CLIENT_ID and APPFOLIO_CLIENT_SECRET configured (basic auth pair)
  • APPFOLIO_BASE_URL set to your Stack API base (e.g., https://yourcompany.appfolio.com/api/v1)

Instructions

  1. Obtain incident approval and define the affected time window, portfolio, and safe-read probes; do not collect tenant, lease, payment, or raw log bodies merely because they are available.
  2. Create the bundle with redacted configuration state, provider status/latency, rate-limit headers, and package versions only; keep credentials out of argv.
  3. Review every file before sharing, encrypt or use the approved support channel for the archive, and delete the local copy according to the incident policy.
  4. If evidence requires sensitive records, stop and obtain a separately approved minimal export rather than expanding this general-purpose debug bundle.

Debug Collection Script

bash
#!/bin/bash
set -euo pipefail
BUNDLE="debug-appfolio-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"

NETRC_FILE="$(mktemp)"
trap 'rm -f "$NETRC_FILE"' EXIT
chmod 600 "$NETRC_FILE"
APPFOLIO_HOST="${APPFOLIO_BASE_URL#https://}"
APPFOLIO_HOST="${APPFOLIO_HOST%%/*}"
printf 'machine %s login %s password %s\n' "$APPFOLIO_HOST" \
  "$APPFOLIO_CLIENT_ID" "$APPFOLIO_CLIENT_SECRET" > "$NETRC_FILE"

probe() {
  endpoint="$1"
  curl -s -o /dev/null -w 'HTTP %{http_code} in %{time_total}s\n' \
    --netrc-file "$NETRC_FILE" "${APPFOLIO_BASE_URL}/${endpoint}?per_page=1" \
    || printf 'UNREACHABLE\n'
}

# Environment check
echo "=== Environment ===" > "$BUNDLE/environment.txt"
echo "Base URL: ${APPFOLIO_BASE_URL:-NOT SET}" >> "$BUNDLE/environment.txt"
echo "Client ID: ${APPFOLIO_CLIENT_ID:+SET (redacted)}" >> "$BUNDLE/environment.txt"
echo "Client Secret: ${APPFOLIO_CLIENT_SECRET:+SET (redacted)}" >> "$BUNDLE/environment.txt"
echo "Node: $(node -v 2>/dev/null || echo 'not installed')" >> "$BUNDLE/environment.txt"
echo "Timestamp: $(date -u)" >> "$BUNDLE/environment.txt"

# API connectivity metadata only — never write API bodies into this bundle.
echo "=== API Health ===" > "$BUNDLE/api-health.txt"
probe properties >> "$BUNDLE/api-health.txt"

# Work orders endpoint probe
echo "=== Work Orders ===" > "$BUNDLE/work-orders.txt"
probe work_orders >> "$BUNDLE/work-orders.txt"

# Tenant endpoint probe
echo "=== Tenants ===" > "$BUNDLE/tenants.txt"
probe tenants >> "$BUNDLE/tenants.txt"

# Log inventory only; raw logs may contain tenant and financial data.
echo "=== Log Inventory ===" > "$BUNDLE/app-logs.txt"
find /var/log/appfolio-sync -maxdepth 1 -type f -printf '%f %s bytes\n' 2>/dev/null \
  || echo "No sync logs found" >> "$BUNDLE/app-logs.txt"

# Rate limit headers
echo "=== Rate Limits ===" > "$BUNDLE/rate-limits.txt"
curl -sI --netrc-file "$NETRC_FILE" \
  "${APPFOLIO_BASE_URL}/properties?per_page=1" 2>/dev/null | grep -i "x-rate\|retry-after\|x-ratelimit" >> "$BUNDLE/rate-limits.txt" || echo "No rate limit headers" >> "$BUNDLE/rate-limits.txt"

# Package versions
echo "=== Dependencies ===" > "$BUNDLE/deps.txt"
npm ls 2>/dev/null | grep -i appfolio >> "$BUNDLE/deps.txt" || echo "No AppFolio npm packages found" >> "$BUNDLE/deps.txt"

tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE"
echo "Bundle: $BUNDLE.tar.gz"

Analyzing the Bundle

bash
tar -xzf debug-appfolio-*.tar.gz
cat debug-appfolio-*/environment.txt     # Verify credentials are set
cat debug-appfolio-*/api-health.txt      # Check HTTP status and latency
cat debug-appfolio-*/rate-limits.txt     # Confirm not throttled
jq '.errors' debug-appfolio-*/work-orders.txt 2>/dev/null  # Parse error payloads

Common Issues

SymptomCheck in BundleFix
401 on all endpointsenvironment.txt shows client ID/secret NOT SETSet APPFOLIO_CLIENT_ID and APPFOLIO_CLIENT_SECRET in env
403 Forbidden on tenantstenants.txt HTTP 403Stack API scope missing; request tenant read permission in AppFolio partner portal
429 Too Many Requestsrate-limits.txt shows retry-after headerBack off and implement exponential retry; AppFolio allows 120 req/min
Timeout on work ordersapi-health.txt shows time > 30sReduce per_page parameter; filter by updated_since to narrow result set
Empty property listapi-health.txt returns []Verify APPFOLIO_BASE_URL points to correct portfolio; check property group filters
SSL certificate errorapi-health.txt shows curl SSL errorUpdate CA bundle: sudo update-ca-certificates; check proxy settings
Show full SKILL.md (220 more words)Show less

Output

  • A reviewable, redacted bundle of configuration presence, endpoint status and latency, rate-limit headers, log inventory, and dependency metadata
  • A support handoff receipt that names the incident scope and sensitive-data exclusions rather than packaging tenant, payment, or raw application records
  • A fail-closed decision when the required evidence cannot be collected safely

Error Handling

Treat a probe failure as evidence of a failed probe, not permission to capture larger responses or bypass credential controls. For 401/403, verify the managed client configuration with the credential owner; for 429, preserve the rate headers and pause further probes; for 5xx or timeout, collect only the redacted timing/status evidence and check the provider status page. If support needs a specific tenant or payment record, use a separately approved minimal export with its own retention and access controls.

Examples

For a production sync timeout, create a bundle covering the affected time window and one properties safe-read probe. Confirm it contains status/latency, rate headers, dependency versions, and log file metadata—but no response body, credential, tenant, or financial data. Review the archive before uploading it to the approved encrypted support channel. If review finds a raw payload or secret, delete the archive, rotate as appropriate, and regenerate a minimized bundle before escalation.

Automated Health Check

typescript
async function checkAppFolioHealth(): Promise<{
  status: string;
  latencyMs: number;
  endpoints: Record<string, number>;
}> {
  const baseUrl = process.env.APPFOLIO_BASE_URL;
  const creds = Buffer.from(
    `${process.env.APPFOLIO_CLIENT_ID}:${process.env.APPFOLIO_CLIENT_SECRET}`
  ).toString("base64");
  const headers = { Authorization: `Basic ${creds}` };
  const endpoints = ["properties", "tenants", "work_orders"];
  const results: Record<string, number> = {};
  const start = Date.now();
  for (const ep of endpoints) {
    const res = await fetch(`${baseUrl}/${ep}?per_page=1`, { headers });
    results[ep] = res.status;
  }
  return {
    status: Object.values(results).every((s) => s === 200) ? "healthy" : "degraded",
    latencyMs: Date.now() - start,
    endpoints: results,
  };
}

Resources

Next Steps

See appfolio-rate-limits.

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

Files

Just SKILL.md in skills/.curated/appfolio-debug-bundle of jeremylongshore/tons-of-skills-marketplace.

Open the folder on GitHubat commit 23ea8d4

Compare with similar skills

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

Appfolio Debug Bundle compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Appfolio Debug Bundle this skilljeremylongshore/tons-of-skills-marketplace2.8k—~2kAutomated safety check: NotesMIT
Supporthaacked/dotfiles134—~2.9kAutomated safety check: PassNone
Company Brain Company QAtopoteretes/cognee32k—~750Automated safety check: NotesApache-2.0
Shopify Admin Address Correction40RTY-ai/shopify-admin-skills194—~1.5kAutomated safety check: PassMIT
Support Ticket Triagezapier/gtm-cheat-codes342—~670Automated safety check: PassMIT
Customer Servicevivy-yi/xiaohongshu-skills474—~6.7kAutomated safety check: PassNone

Similar skills

  • Support

    haacked/dotfiles

    Support hero workflow — start a ticket investigation with auto-organized notes, find existing notes, or generate the weekly highlights log.

    134 GitHub stars~2.9k tokensUpdated yesterday
    Sales & SupportAuto-check passed
  • Company Brain Company QA

    topoteretes/cognee

    Build one company memory from a SQL database, a support ticket export and a folder of documents, linked into one graph by cognee, then answer questions that need several of those sources together.

    32k GitHub stars~750 tokensUpdated yesterday
    Sales & SupportAuto-check: notes
  • Shopify Admin Address Correction

    40RTY-ai/shopify-admin-skills

    Update the shipping address on an unfulfilled order before it ships.

    194 GitHub stars~1.5k tokensUpdated 1 mo ago
    Sales & SupportAuto-check passed
  • Support Ticket Triage

    zapier/gtm-cheat-codes

    Official

    Triage support tickets by pulling helpdesk context, searching issue trackers and knowledge bases in parallel, classifying the issue, and giving reps a recommended next action.

    342 GitHub stars~670 tokensUpdated 2 mo ago
    Sales & SupportAuto-check passed
  • Customer Service

    vivy-yi/xiaohongshu-skills

    A skill your agent uses when handling customer inquiries on Xiaohongshu, responding to product questions, managing complaints and returns, building customer relationships through service, or…

    474 GitHub stars~6.7k tokensUpdated 8 mo ago
    Sales & SupportAuto-check passed
  • Experience Portal Create

    forcedotcom/sf-skills

    Create / provision / set up a NEW Digital Experience (Communities) / Experience Cloud site — employee service, IT support, help desk, HR, customer, and partner portals — via the headless-360 MCP…

    1.1k GitHub stars~7.2k tokensUpdated yesterday
    Sales & SupportAuto-check: notes

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Analyzing Text With NLP

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to perform natural language processing and text analysis using the nlp-text-analyzer plugin.

    2.8k GitHub starsUsed in 1 repo~819 tokens
    Auto-check passed
  • Building Neural Networks

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill allows AI assistant to construct and configure neural network architectures using the neural-network-builder plugin.

    2.8k GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Detecting Data Anomalies

    jeremylongshore/tons-of-skills-marketplace

    Process identify anomalies and outliers in datasets using machine learning algorithms.

    2.8k GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed
  • Explaining Machine Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill enables AI assistant to provide interpretability and explainability for machine learning models.

    2.8k GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Optimizing Prompts

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill optimizes prompts for large language models (llms) to reduce token usage, lower costs, and improve performance.

    2.8k GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed

Questions about Appfolio Debug Bundle

What does Appfolio Debug Bundle do?

Collect AppFolio API debug evidence for support tickets. An agent skill from jeremylongshore/tons-of-skills-marketplace. Appfolio Debug Bundle is an agent skill from jeremylongshore/tons-of-skills-marketplace. Collect AppFolio API debug evidence for support tickets.

When should I use Appfolio Debug Bundle?

Appfolio Debug Bundle fits situations like: tasks that involve Customer support.

How do I install Appfolio Debug Bundle in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-debug-bundle -a claude-code`. Or copy the skill folder (skills/.curated/appfolio-debug-bundle in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/appfolio-debug-bundle in your project. Claude Code loads it when a task matches its description.

How do I install Appfolio Debug Bundle in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-debug-bundle -a codex`. Or copy the skill folder (skills/.curated/appfolio-debug-bundle in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/appfolio-debug-bundle in your project. Codex loads it when a task matches its description.

Can I use Appfolio Debug Bundle in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-debug-bundle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/appfolio-debug-bundle, .gemini/skills/appfolio-debug-bundle, .github/skills/appfolio-debug-bundle and .opencode/skills/appfolio-debug-bundle in your project.

What does Appfolio Debug Bundle need to run?

Going by SKILL.md and its folder, Appfolio Debug Bundle needs the command-line tools its instructions call (curl, node, npm and jq) and credentials named APPFOLIO_CLIENT_SECRET. Our summary lists: A credential in APPFOLIO_CLIENT_SECRET. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep. Compatibility (from SKILL.md): Designed for Claude Code.

Does Appfolio Debug Bundle access the network?

SKILL.md names 3 domains. As links in the text: appfolio.com, status.appfolio.com and engineering.appfolio.com. This is read from the text; nothing was executed.

Is Appfolio Debug Bundle safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Appfolio Debug Bundle use?

Appfolio Debug Bundle is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Appfolio Debug Bundle use?

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

What are the alternatives to Appfolio Debug Bundle?

Skills that share tags, products or a category with Appfolio Debug Bundle: Support (haacked/dotfiles, 134 stars), Company Brain Company QA (topoteretes/cognee, 32k stars), Shopify Admin Address Correction (40RTY-ai/shopify-admin-skills, 194 stars) and Support Ticket Triage (zapier/gtm-cheat-codes, 342 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Appfolio Debug Bundle?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,821 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 8, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.