[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-cleanup-forms-zh-CN":3,"guides-for-TomGranot-cleanup-forms":699,"similar-k17ctqk0c2v16ah81bx0sys61986nrea-zh-CN":700},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":242,"isFallback":247,"parentExtension":248,"providers":302,"relations":306,"repo":307,"tags":697,"workflow":698},1778698144006.2207,"k17ctqk0c2v16ah81bx0sys61986nrea",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Audit and remove unused, test, or deprecated forms from HubSpot. Identifies forms with zero submissions, forms not embedded on any page, and test forms left over from development.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","cleanup-forms","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":224,"workflow":240},1778698296559.2622,"kn704cc3t0e5g8srn0n4aa4wkh86mwbs","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"promptVersionExtension":205,"promptVersionScoring":206,"purpose":207,"rationale":208,"score":209,"summary":210,"tags":211,"targetMarket":217,"tier":218,"useCases":219},[21,26,29,32,36,39,43,48,51,54,58,62,65,69,72,75,78,81,84,87,90,94,98,102,107,110,113,116,121,124,127,130,133,136,139,143,147,151,154,158,161,164,167,170,174,177,180,183,186,190],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of auditing and removing unused, test, or deprecated HubSpot forms, and identifies specific criteria for identification.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers a concrete solution for managing HubSpot forms beyond basic API interaction, focusing on hygiene and efficiency.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill provides a clear, multi-stage process including prerequisites, step-by-step instructions, and rollback procedures, making it suitable for production workflows.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses exclusively on auditing and managing HubSpot forms, adhering to a single, well-defined domain.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The provided description accurately and concisely reflects the skill's functionality as detailed in the SKILL.md file.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","The skill uses specific API calls for HubSpot forms, rather than a general-purpose execution tool.",{"category":44,"check":45,"severity":46,"summary":47},"Documentation","Configuration & parameter reference","warning","The SKILL.md mentions a HubSpot API token in .env but does not explicitly document its required scopes or provide a clear precedence order for configuration if multiple tokens were present.",{"category":33,"check":49,"severity":24,"summary":50},"Tool naming","The skill name 'cleanup-forms' is descriptive and clearly indicates its purpose.",{"category":33,"check":52,"severity":24,"summary":53},"Minimal I/O surface","The skill's described process involves specific API calls for form data and deletion, implying targeted inputs and outputs, not broad data dumps.",{"category":55,"check":56,"severity":24,"summary":57},"License","License usability","The license is MIT, as indicated in the SKILL.md frontmatter and the LICENSE file, which is a permissive open-source license.",{"category":59,"check":60,"severity":24,"summary":61},"Maintenance","Commit recency","The last commit was on March 26, 2026, which is within the last 3 months.",{"category":59,"check":63,"severity":46,"summary":64},"Dependency Management","The skill relies on the 'hubspot-api-client' Python package, but there is no explicit mention of dependency vulnerability scanning or automated update mechanisms like dependabot.",{"category":66,"check":67,"severity":46,"summary":68},"Security","Secret Management","The skill requires a HubSpot API token stored in a .env file, but there are no explicit statements or mechanisms described for handling this secret securely or preventing its leakage during execution or debugging.",{"category":66,"check":70,"severity":24,"summary":71},"Injection","The skill uses specific API calls provided by the 'hubspot-api-client' and does not appear to load or execute untrusted third-party data as instructions.",{"category":66,"check":73,"severity":24,"summary":74},"Transitive Supply-Chain Grenades","The skill relies on a bundled Python script and a specific library, with no indication of runtime downloads or execution of remote code.",{"category":66,"check":76,"severity":24,"summary":77},"Sandbox Isolation","The skill's Python script interacts with the HubSpot API and does not appear to modify files outside its intended scope or project folder.",{"category":66,"check":79,"severity":24,"summary":80},"Sandbox escape primitives","There are no indications of detached process spawns or retry loops around denied tool calls in the provided script snippet or documentation.",{"category":66,"check":82,"severity":24,"summary":83},"Data Exfiltration","The skill interacts with the HubSpot API for form management and does not appear to have any undocumented outbound calls or mechanisms for exfiltrating confidential data.",{"category":66,"check":85,"severity":24,"summary":86},"Hidden Text Tricks","The bundled markdown and script files do not contain any hidden text tricks, invisible Unicode characters, or other obfuscation techniques.",{"category":66,"check":88,"severity":24,"summary":89},"Opaque code execution","The Python script is presented as readable source code and does not appear to use obfuscation techniques like base64 encoding or runtime code fetching.",{"category":91,"check":92,"severity":24,"summary":93},"Portability","Structural Assumption","The skill assumes the presence of a `.env` file for the API token, which is a common and documented practice for managing secrets.",{"category":95,"check":96,"severity":24,"summary":97},"Trust","Issues Attention","In the last 90 days, 0 issues were opened and 1 was closed, indicating active maintenance and responsiveness.",{"category":99,"check":100,"severity":24,"summary":101},"Versioning","Release Management","The SKILL.md frontmatter includes a 'version: \"1.0\"' field, indicating a managed release.",{"category":103,"check":104,"severity":105,"summary":106},"Code Execution","Validation","info","While the skill interacts with the HubSpot API, there's no explicit mention of schema validation libraries (like Zod or Pydantic) being used for input arguments or output sanitization within the provided script snippet.",{"category":66,"check":108,"severity":46,"summary":109},"Unguarded Destructive Operations","The skill performs deletions via the API, but the documentation does not explicitly state if these operations are guarded by a confirmation prompt or a dry-run mode before execution.",{"category":103,"check":111,"severity":46,"summary":112},"Error Handling","The SKILL.md mentions error handling for API rate limits (403) but does not detail structured error reporting with retryable status or hints for other potential API errors.",{"category":103,"check":114,"severity":46,"summary":115},"Logging","The skill does not appear to implement local audit logging for destructive actions like form deletion, which would be beneficial for review.",{"category":117,"check":118,"severity":119,"summary":120},"Compliance","GDPR","not_applicable","The skill operates on HubSpot form data, which does not inherently contain personal data that would require GDPR-specific sanitization before submission to the LLM.",{"category":117,"check":122,"severity":24,"summary":123},"Target market","The skill is a generic form management tool for HubSpot and has no regional or jurisdictional restrictions, making it globally applicable.",{"category":91,"check":125,"severity":24,"summary":126},"Runtime stability","The skill relies on standard Python and the 'hubspot-api-client', which are widely available, and its primary dependency is documented.",{"category":44,"check":128,"severity":24,"summary":129},"README","The README provides a comprehensive overview of the skill set, installation instructions, and usage examples.",{"category":33,"check":131,"severity":119,"summary":132},"Tool surface size","This is a single-purpose skill with one defined function, not a collection of multiple tools.",{"category":40,"check":134,"severity":119,"summary":135},"Overlapping near-synonym tools","This is a single-purpose skill, so there are no overlapping tools.",{"category":44,"check":137,"severity":24,"summary":138},"Phantom features","All features mentioned in the README (e.g., auditing forms, removing unused/test/deprecated forms) are directly implemented or described in the SKILL.md and associated scripts.",{"category":140,"check":141,"severity":24,"summary":142},"Install","Installation instruction","The README provides clear installation instructions using /plugin marketplace add and /plugin install, along with a basic invocation example.",{"category":144,"check":145,"severity":46,"summary":146},"Errors","Actionable error messages","While the skill mentions potential API errors (e.g., 403), the SKILL.md does not provide detailed, actionable error messages for various failure modes or recovery steps.",{"category":148,"check":149,"severity":46,"summary":150},"Execution","Pinned dependencies","The Python script requires 'hubspot-api-client', but the SKILL.md does not specify a version or provide a lockfile, making the installation potentially unstable.",{"category":33,"check":152,"severity":46,"summary":153},"Dry-run preview","The skill performs form deletions via the API, but there is no explicit '--dry-run' flag or parameter mentioned in the documentation to preview the intended changes before execution.",{"category":155,"check":156,"severity":105,"summary":157},"Protocol","Idempotent retry & timeouts","The skill uses API calls, but there is no explicit information regarding idempotency for mutations or hard timeouts implemented for these calls, which could impact retry logic.",{"category":117,"check":159,"severity":24,"summary":160},"Telemetry opt-in","There is no mention of telemetry being collected by this skill.",{"category":40,"check":162,"severity":24,"summary":163},"Precise Purpose","The description clearly defines the purpose (audit/remove forms) and the criteria for identification (zero submissions, not embedded, test forms).",{"category":40,"check":165,"severity":24,"summary":166},"Concise Frontmatter","The frontmatter is concise and effectively summarizes the skill's core capability and purpose.",{"category":44,"check":168,"severity":24,"summary":169},"Concise Body","The SKILL.md is reasonably concise, outlining the process and delegating complex code snippets to be executed by the interpreter.",{"category":171,"check":172,"severity":24,"summary":173},"Context","Progressive Disclosure","The SKILL.md outlines the general steps and uses a Python script for the main execution, which is a form of progressive disclosure.",{"category":171,"check":175,"severity":119,"summary":176},"Forked exploration","This skill performs a direct action (form deletion) and does not involve deep exploration or code review that would necessitate a forked context.",{"category":22,"check":178,"severity":24,"summary":179},"Usage examples","The SKILL.md provides a clear Python code example for Stage 1, demonstrating how to pull form data.",{"category":22,"check":181,"severity":46,"summary":182},"Edge cases","While the skill mentions checking for workflow references and page embedding, it doesn't extensively document other failure modes like API rate limits beyond a 403, or specific recovery steps for them.",{"category":103,"check":184,"severity":119,"summary":185},"Tool Fallback","The skill uses the HubSpot API directly and does not rely on an external MCP server, thus no fallback is needed.",{"category":187,"check":188,"severity":46,"summary":189},"Safety","Halt on unexpected state","The SKILL.md does not explicitly state that the workflow will halt and report if unexpected pre-states (like uncommitted changes or drifted schemas) are detected before form deletion.",{"category":91,"check":191,"severity":119,"summary":192},"Cross-skill coupling","This is a standalone skill focused solely on form cleanup and does not implicitly rely on or reference other skills.",1778698296451,"This skill audits and removes unused, test, or deprecated forms from a HubSpot portal using API calls. It identifies forms with zero submissions, those not embedded on any page, and test forms left over from development, providing instructions for deletion and documentation.",[196,197,198,199,200],"Audits forms for zero submissions","Identifies forms not embedded on any page","Detects test, temp, or draft forms","Provides step-by-step instructions for deletion","Includes rollback guidance",[202,203,204],"Deleting forms that have recent submissions without manual review","Managing or modifying form submissions themselves","Performing actions on HubSpot objects other than forms","3.0.0","4.4.0","To help HubSpot administrators maintain a clean and organized forms dashboard by automatically identifying and facilitating the removal of stale or unnecessary forms.","The skill has a clear purpose and good documentation, but lacks explicit guidance on secret management, detailed error handling, and dry-run capabilities for destructive operations.",72,"A well-documented HubSpot skill for auditing and removing unused forms, with minor areas for improvement in security and error handling.",[212,213,214,215,216],"hubspot","crm","administration","automation","data-cleanup","global","community",[220,221,222,223],"Cleaning up a cluttered HubSpot forms dashboard","Reducing confusion by removing outdated or duplicate forms","Improving CRM data hygiene by archiving unused form definitions","Preparing for HubSpot audits or CRM health checks",{"codeQuality":225,"collectedAt":227,"documentation":228,"maintenance":231,"security":237,"testCoverage":239},{"hasLockfile":226},false,1778698281074,{"descriptionLength":229,"readmeSize":230},179,10597,{"closedIssues90d":232,"forks":233,"hasChangelog":226,"manifestVersion":234,"openIssues90d":8,"pushedAt":235,"stars":236},1,4,"1.0",1774540543000,21,{"hasNpmPackage":226,"license":238,"smitheryVerified":226},"MIT",{"hasCi":226,"hasTests":226},{"updatedAt":241},1778698296559,{"basePath":243,"githubOwner":244,"githubRepo":245,"locale":18,"slug":13,"type":246},"skills/cleanup-forms","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":249,"_id":250,"community":251,"display":252,"identity":257,"parentExtension":260,"providers":287,"relations":298,"tags":299,"workflow":300},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":253,"installMethods":254,"name":256,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":255},"hubspot-admin","HubSpot Admin Skills",{"basePath":258,"githubOwner":244,"githubRepo":245,"locale":18,"slug":245,"type":259},"","plugin",{"_creationTime":261,"_id":262,"community":263,"display":264,"identity":267,"providers":269,"relations":281,"tags":283,"workflow":284},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":265,"installMethods":266,"name":245,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":258,"githubOwner":244,"githubRepo":245,"locale":18,"slug":245,"type":268},"marketplace",{"evaluate":270,"extract":276},{"promptVersionExtension":271,"promptVersionScoring":206,"score":272,"tags":273,"targetMarket":217,"tier":218},"3.1.0",79,[212,213,215,274,275,214],"data-cleaning","auditing",{"commitSha":277,"marketplace":278,"plugin":279},"HEAD",{"name":245,"pluginCount":232},{"mcpCount":8,"provider":280,"skillCount":8},"classify",{"repoId":282},"kd75kpec7arn6z2wz641vfaj8n86nab6",[214,275,215,213,274,212],{"evaluatedAt":285,"extractAt":286,"updatedAt":285},1778698158552,1778698144006,{"evaluate":288,"extract":295},{"promptVersionExtension":205,"promptVersionScoring":206,"score":289,"tags":290,"targetMarket":217,"tier":294},99,[212,213,214,291,215,292,275,293],"data-quality","cleanup","marketing-automation","verified",{"commitSha":277,"license":238,"plugin":296},{"mcpCount":8,"provider":280,"skillCount":297},32,{"parentExtensionId":262,"repoId":282},[214,275,215,292,213,291,212,293],{"evaluatedAt":301,"extractAt":286,"updatedAt":301},1778698168554,{"evaluate":303,"extract":305},{"promptVersionExtension":205,"promptVersionScoring":206,"score":209,"tags":304,"targetMarket":217,"tier":218},[212,213,214,215,216],{"commitSha":277},{"parentExtensionId":250,"repoId":282},{"_creationTime":308,"_id":282,"identity":309,"providers":310,"workflow":693},1778698139523.511,{"githubOwner":244,"githubRepo":245,"sourceUrl":14},{"classify":311,"discover":687,"github":690},{"commitSha":277,"extensions":312},[313,326,399,415,423,431,439,448,456,464,469,477,485,493,501,512,520,531,539,549,559,570,578,586,594,603,611,619,630,638,649,659,669,679],{"basePath":258,"description":265,"displayName":245,"installMethods":314,"rationale":315,"selectedPaths":316,"source":325,"sourceLanguage":18,"type":268},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[317,320,322],{"path":318,"priority":319},".claude-plugin/marketplace.json","mandatory",{"path":321,"priority":319},"README.md",{"path":323,"priority":324},"LICENSE","high","rule",{"basePath":258,"description":253,"displayName":255,"installMethods":327,"rationale":328,"selectedPaths":329,"source":325,"sourceLanguage":18,"type":259},{"claudeCode":255},"plugin manifest at .claude-plugin/plugin.json",[330,332,333,334,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,377,379,381,383,385,387,389,391,393,395,397],{"path":331,"priority":319},".claude-plugin/plugin.json",{"path":321,"priority":319},{"path":323,"priority":324},{"path":335,"priority":336},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":338,"priority":336},"skills/backfill-geo-data/SKILL.md",{"path":340,"priority":336},"skills/bounce-monitoring-workflow/SKILL.md",{"path":342,"priority":336},"skills/build-lead-scoring/SKILL.md",{"path":344,"priority":336},"skills/build-smart-lists/SKILL.md",{"path":346,"priority":336},"skills/cleanup-dashboards/SKILL.md",{"path":348,"priority":336},"skills/cleanup-deals/SKILL.md",{"path":350,"priority":336},"skills/cleanup-forms/SKILL.md",{"path":352,"priority":336},"skills/cleanup-lead-owners/SKILL.md",{"path":354,"priority":336},"skills/cleanup-lists/SKILL.md",{"path":356,"priority":336},"skills/cleanup-properties/SKILL.md",{"path":358,"priority":336},"skills/cleanup-workflows/SKILL.md",{"path":360,"priority":336},"skills/create-icp-tiers/SKILL.md",{"path":362,"priority":336},"skills/create-segment-lists/SKILL.md",{"path":364,"priority":336},"skills/delete-no-email-contacts/SKILL.md",{"path":366,"priority":336},"skills/engagement-suppression-workflow/SKILL.md",{"path":368,"priority":336},"skills/enrich-company-name/SKILL.md",{"path":370,"priority":336},"skills/enrich-industry/SKILL.md",{"path":372,"priority":336},"skills/fix-lifecycle-stages/SKILL.md",{"path":374,"priority":336},"skills/hubspot-audit/SKILL.md",{"path":376,"priority":336},"skills/hubspot-implementation-plan/SKILL.md",{"path":378,"priority":336},"skills/lifecycle-progression-workflow/SKILL.md",{"path":380,"priority":336},"skills/merge-duplicate-companies/SKILL.md",{"path":382,"priority":336},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":384,"priority":336},"skills/quarterly-database-cleanup/SKILL.md",{"path":386,"priority":336},"skills/reassign-deactivated-owners/SKILL.md",{"path":388,"priority":336},"skills/review-bounced-contacts/SKILL.md",{"path":390,"priority":336},"skills/standardize-geo-values/SKILL.md",{"path":392,"priority":336},"skills/suppress-ghost-contacts/SKILL.md",{"path":394,"priority":336},"skills/suppress-global-unsubscribes/SKILL.md",{"path":396,"priority":336},"skills/suppress-hard-bounced/SKILL.md",{"path":398,"priority":336},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":400,"description":401,"displayName":402,"installMethods":403,"rationale":404,"selectedPaths":405,"source":325,"sourceLanguage":18,"type":246},"skills/assign-unowned-contacts","Assign an owner to marketing contacts that have no owner. Ensures every marketable contact has accountability for follow-up, proper lead routing, and accurate owner-based reporting.","assign-unowned-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/assign-unowned-contacts/SKILL.md",[406,408,411,413],{"path":407,"priority":319},"SKILL.md",{"path":409,"priority":410},"scripts/after.py","low",{"path":412,"priority":410},"scripts/before.py",{"path":414,"priority":410},"scripts/execute.py",{"basePath":416,"description":417,"displayName":418,"installMethods":419,"rationale":420,"selectedPaths":421,"source":325,"sourceLanguage":18,"type":246},"skills/backfill-geo-data","Enrich missing geographic data (country, state, city) on contacts and companies using HubSpot workflows, external data providers, or IP-based geolocation.","backfill-geo-data",{"claudeCode":12},"SKILL.md frontmatter at skills/backfill-geo-data/SKILL.md",[422],{"path":407,"priority":319},{"basePath":424,"description":425,"displayName":426,"installMethods":427,"rationale":428,"selectedPaths":429,"source":325,"sourceLanguage":18,"type":246},"skills/bounce-monitoring-workflow","Build a workflow to protect sender reputation through automated bounce monitoring. Auto-suppresses contacts above a configurable bounce threshold, alerts on hard bounces, and flags high-bounce contacts for weekly manual review.","bounce-monitoring-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/bounce-monitoring-workflow/SKILL.md",[430],{"path":407,"priority":319},{"basePath":432,"description":433,"displayName":434,"installMethods":435,"rationale":436,"selectedPaths":437,"source":325,"sourceLanguage":18,"type":246},"skills/build-lead-scoring","Create a comprehensive lead scoring model with separate Fit and Engagement scores using HubSpot's new Lead Scoring tool. Replaces the deprecated HubSpot Score property.","build-lead-scoring",{"claudeCode":12},"SKILL.md frontmatter at skills/build-lead-scoring/SKILL.md",[438],{"path":407,"priority":319},{"basePath":440,"description":441,"displayName":442,"installMethods":443,"rationale":444,"selectedPaths":445,"source":325,"sourceLanguage":18,"type":246},"skills/build-smart-lists","Create foundational segmented lists for marketing and sales operations. Includes a master sendable list, ICP-based lists, persona lists, engagement lists, and behavioral lists. All active (dynamic) lists.","build-smart-lists",{"claudeCode":12},"SKILL.md frontmatter at skills/build-smart-lists/SKILL.md",[446,447],{"path":407,"priority":319},{"path":414,"priority":410},{"basePath":449,"description":450,"displayName":451,"installMethods":452,"rationale":453,"selectedPaths":454,"source":325,"sourceLanguage":18,"type":246},"skills/cleanup-dashboards","Audit and consolidate HubSpot reporting dashboards. Identifies unused, duplicate, or outdated dashboards. Must be performed manually — no dashboard API is available.","cleanup-dashboards",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-dashboards/SKILL.md",[455],{"path":407,"priority":319},{"basePath":457,"description":458,"displayName":459,"installMethods":460,"rationale":461,"selectedPaths":462,"source":325,"sourceLanguage":18,"type":246},"skills/cleanup-deals","Standardize deal pipelines, remove test deals, and address deals with missing amounts or close dates. Coordinates with Salesforce sync if applicable.","cleanup-deals",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-deals/SKILL.md",[463],{"path":407,"priority":319},{"basePath":243,"description":10,"displayName":13,"installMethods":465,"rationale":466,"selectedPaths":467,"source":325,"sourceLanguage":18,"type":246},{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-forms/SKILL.md",[468],{"path":407,"priority":319},{"basePath":470,"description":471,"displayName":472,"installMethods":473,"rationale":474,"selectedPaths":475,"source":325,"sourceLanguage":18,"type":246},"skills/cleanup-lead-owners","Remove non-employee users from HubSpot and reassign their orphaned contacts, companies, and deals. Pairs with the assign-unowned-contacts skill for comprehensive ownership cleanup.","cleanup-lead-owners",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-lead-owners/SKILL.md",[476],{"path":407,"priority":319},{"basePath":478,"description":479,"displayName":480,"installMethods":481,"rationale":482,"selectedPaths":483,"source":325,"sourceLanguage":18,"type":246},"skills/cleanup-lists","Audit and remove unused, empty, or duplicate list definitions from HubSpot. Identifies lists with zero members, lists not used by any workflow or email, and overlapping list criteria.","cleanup-lists",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-lists/SKILL.md",[484],{"path":407,"priority":319},{"basePath":486,"description":487,"displayName":488,"installMethods":489,"rationale":490,"selectedPaths":491,"source":325,"sourceLanguage":18,"type":246},"skills/cleanup-properties","Archive or delete unused custom properties across all HubSpot object types (contacts, companies, deals). Identifies Salesforce sync properties, test/temp properties, and obsolete form fields.","cleanup-properties",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-properties/SKILL.md",[492],{"path":407,"priority":319},{"basePath":494,"description":495,"displayName":496,"installMethods":497,"rationale":498,"selectedPaths":499,"source":325,"sourceLanguage":18,"type":246},"skills/cleanup-workflows","Audit and remove inactive, test, or deprecated workflows from HubSpot. Identifies workflows that have never enrolled contacts, workflows turned off for 90+ days, and test workflows.","cleanup-workflows",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-workflows/SKILL.md",[500],{"path":407,"priority":319},{"basePath":502,"description":503,"displayName":504,"installMethods":505,"rationale":506,"selectedPaths":507,"source":325,"sourceLanguage":18,"type":246},"skills/create-icp-tiers","Classify companies into Ideal Customer Profile (ICP) tiers based on firmographic data (industry + employee count). Creates a custom property via API and 4 classification workflows in HubSpot UI.","create-icp-tiers",{"claudeCode":12},"SKILL.md frontmatter at skills/create-icp-tiers/SKILL.md",[508,509,510,511],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"path":414,"priority":410},{"basePath":513,"description":514,"displayName":515,"installMethods":516,"rationale":517,"selectedPaths":518,"source":325,"sourceLanguage":18,"type":246},"skills/create-segment-lists","Create business segment lists in HubSpot for customers, partners, competitors, employees, ICP tiers, and industries. Enables segment-based targeting, suppression, and analytics.","create-segment-lists",{"claudeCode":12},"SKILL.md frontmatter at skills/create-segment-lists/SKILL.md",[519],{"path":407,"priority":319},{"basePath":521,"description":522,"displayName":523,"installMethods":524,"rationale":525,"selectedPaths":526,"source":325,"sourceLanguage":18,"type":246},"skills/delete-no-email-contacts","Delete contacts with no email address from a HubSpot CRM instance. These contacts cannot receive any communication and inflate billing. Fully automated via the HubSpot CRM Search and Batch Archive APIs.\n","delete-no-email-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/delete-no-email-contacts/SKILL.md",[527,528,529,530],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"path":414,"priority":410},{"basePath":532,"description":533,"displayName":534,"installMethods":535,"rationale":536,"selectedPaths":537,"source":325,"sourceLanguage":18,"type":246},"skills/engagement-suppression-workflow","Build a two-tier sunset workflow that re-engages dormant contacts before suppressing them. Tier 1 triggers a re-engagement campaign after a configurable inactivity window. Tier 2 suppresses contacts that fail to re-engage within a configurable re-engagement window.","engagement-suppression-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/engagement-suppression-workflow/SKILL.md",[538],{"path":407,"priority":319},{"basePath":540,"description":541,"displayName":542,"installMethods":543,"rationale":544,"selectedPaths":545,"source":325,"sourceLanguage":18,"type":246},"skills/enrich-company-name","Populate missing contact company name fields from associated company records using a HubSpot workflow with optional API backfill. Ensures contacts inherit their company name for segmentation, personalization, and ICP classification.","enrich-company-name",{"claudeCode":12},"SKILL.md frontmatter at skills/enrich-company-name/SKILL.md",[546,547,548],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"basePath":550,"description":551,"displayName":552,"installMethods":553,"rationale":554,"selectedPaths":555,"source":325,"sourceLanguage":18,"type":246},"skills/enrich-industry","Backfill contact-level industry from associated company records using a HubSpot workflow. Enables industry-based segmentation for targeted campaigns aligned with ICP verticals.","enrich-industry",{"claudeCode":12},"SKILL.md frontmatter at skills/enrich-industry/SKILL.md",[556,557,558],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"basePath":560,"description":561,"displayName":562,"installMethods":563,"rationale":564,"selectedPaths":565,"source":325,"sourceLanguage":18,"type":246},"skills/fix-lifecycle-stages","Ensure all contacts and companies have appropriate lifecycle stages. Backfills missing stages via API, fixes records stuck at disallowed stages, and creates prevention workflows to stop future gaps.","fix-lifecycle-stages",{"claudeCode":12},"SKILL.md frontmatter at skills/fix-lifecycle-stages/SKILL.md",[566,567,568,569],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"path":414,"priority":410},{"basePath":571,"description":572,"displayName":573,"installMethods":574,"rationale":575,"selectedPaths":576,"source":325,"sourceLanguage":18,"type":246},"skills/hubspot-audit","Run a comprehensive HubSpot CRM database audit. Analyzes contacts, companies, deals, engagement, data quality, and deliverability. Use when starting a CRM cleanup, onboarding a new client, or performing quarterly health checks.","hubspot-audit",{"claudeCode":12},"SKILL.md frontmatter at skills/hubspot-audit/SKILL.md",[577],{"path":407,"priority":319},{"basePath":579,"description":580,"displayName":581,"installMethods":582,"rationale":583,"selectedPaths":584,"source":325,"sourceLanguage":18,"type":246},"skills/hubspot-implementation-plan","Generate a phased implementation plan from a HubSpot audit report. Creates prioritized, sequenced cleanup processes with effort estimates, dependencies, and automation feasibility. Use after running /hubspot-audit.","hubspot-implementation-plan",{"claudeCode":12},"SKILL.md frontmatter at skills/hubspot-implementation-plan/SKILL.md",[585],{"path":407,"priority":319},{"basePath":587,"description":588,"displayName":589,"installMethods":590,"rationale":591,"selectedPaths":592,"source":325,"sourceLanguage":18,"type":246},"skills/lifecycle-progression-workflow","Build workflows to automate contact progression through the sales funnel: Lead to MQL to SQL to Opportunity to Customer. Each transition is triggered by a specific event (score threshold, meeting booked, deal created, deal won).","lifecycle-progression-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/lifecycle-progression-workflow/SKILL.md",[593],{"path":407,"priority":319},{"basePath":595,"description":596,"displayName":597,"installMethods":598,"rationale":599,"selectedPaths":600,"source":325,"sourceLanguage":18,"type":246},"skills/merge-duplicate-companies","Identify duplicate company records by domain and name, export audit CSVs for review, and guide merging. API for discovery, third-party tools or manual UI for merging (HubSpot has no bulk merge API).\n","merge-duplicate-companies",{"claudeCode":12},"SKILL.md frontmatter at skills/merge-duplicate-companies/SKILL.md",[601,602],{"path":407,"priority":319},{"path":412,"priority":410},{"basePath":604,"description":605,"displayName":606,"installMethods":607,"rationale":608,"selectedPaths":609,"source":325,"sourceLanguage":18,"type":246},"skills/new-contact-hygiene-workflow","Build a HubSpot workflow that auto-enriches and stages new contacts upon creation. Sets lifecycle stage, copies company name and industry from associated company, and branches on completeness. Must be built manually in the HubSpot UI due to API limitations.","new-contact-hygiene-workflow",{"claudeCode":12},"SKILL.md frontmatter at skills/new-contact-hygiene-workflow/SKILL.md",[610],{"path":407,"priority":319},{"basePath":612,"description":613,"displayName":614,"installMethods":615,"rationale":616,"selectedPaths":617,"source":325,"sourceLanguage":18,"type":246},"skills/quarterly-database-cleanup","Run a comprehensive quarterly CRM audit covering list health, bounce monitoring, data quality, scoring calibration, engagement metrics, and property cleanup. Produces a health report with quarter-over-quarter trend comparison.","quarterly-database-cleanup",{"claudeCode":12},"SKILL.md frontmatter at skills/quarterly-database-cleanup/SKILL.md",[618],{"path":407,"priority":319},{"basePath":620,"description":621,"displayName":622,"installMethods":623,"rationale":624,"selectedPaths":625,"source":325,"sourceLanguage":18,"type":246},"skills/reassign-deactivated-owners","Reassign contacts and companies from deactivated team members to active owners. Fully automated via the HubSpot Owners API and Batch Update API. Includes territory analysis for informed reassignment decisions.\n","reassign-deactivated-owners",{"claudeCode":12},"SKILL.md frontmatter at skills/reassign-deactivated-owners/SKILL.md",[626,627,628,629],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"path":414,"priority":410},{"basePath":631,"description":632,"displayName":633,"installMethods":634,"rationale":635,"selectedPaths":636,"source":325,"sourceLanguage":18,"type":246},"skills/review-bounced-contacts","Weekly manual review of contacts with 3+ bounce events. Decide whether to delete or attempt recovery for each flagged contact. Prevents over-suppression while removing truly bad data.","review-bounced-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/review-bounced-contacts/SKILL.md",[637],{"path":407,"priority":319},{"basePath":639,"description":640,"displayName":641,"installMethods":642,"rationale":643,"selectedPaths":644,"source":325,"sourceLanguage":18,"type":246},"skills/standardize-geo-values","Convert inconsistent country and state/region formats to standardized values across contacts and companies. Ensures geographic segmentation works reliably.","standardize-geo-values",{"claudeCode":12},"SKILL.md frontmatter at skills/standardize-geo-values/SKILL.md",[645,646,647,648],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"path":414,"priority":410},{"basePath":650,"description":651,"displayName":652,"installMethods":653,"rationale":654,"selectedPaths":655,"source":325,"sourceLanguage":18,"type":246},"skills/suppress-ghost-contacts","Identify and suppress ghost contacts who received marketing emails but never opened any. These contacts destroy sender reputation and deliverability. Hybrid approach: API for discovery, manual UI for suppression.\n","suppress-ghost-contacts",{"claudeCode":12},"SKILL.md frontmatter at skills/suppress-ghost-contacts/SKILL.md",[656,657,658],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"basePath":660,"description":661,"displayName":662,"installMethods":663,"rationale":664,"selectedPaths":665,"source":325,"sourceLanguage":18,"type":246},"skills/suppress-global-unsubscribes","Identify and suppress globally unsubscribed contacts to ensure legal compliance and reduce billing. Hybrid approach: API for discovery and audit, manual UI for suppression (hs_marketable_status is read-only).\n","suppress-global-unsubscribes",{"claudeCode":12},"SKILL.md frontmatter at skills/suppress-global-unsubscribes/SKILL.md",[666,667,668],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"basePath":670,"description":671,"displayName":672,"installMethods":673,"rationale":674,"selectedPaths":675,"source":325,"sourceLanguage":18,"type":246},"skills/suppress-hard-bounced","Identify and suppress hard-bounced contacts to protect email sender reputation. Hybrid approach: API for discovery and audit, manual UI for suppression (hs_marketable_status is read-only via API).\n","suppress-hard-bounced",{"claudeCode":12},"SKILL.md frontmatter at skills/suppress-hard-bounced/SKILL.md",[676,677,678],{"path":407,"priority":319},{"path":409,"priority":410},{"path":412,"priority":410},{"basePath":680,"description":681,"displayName":682,"installMethods":683,"rationale":684,"selectedPaths":685,"source":325,"sourceLanguage":18,"type":246},"skills/weekly-cleanup-routine","A lightweight 5-minute weekly health check covering bounce monitoring, new contact quality, workflow health, list growth trends, and data quality sampling. Quick early warning system, not a comprehensive audit.","weekly-cleanup-routine",{"claudeCode":12},"SKILL.md frontmatter at skills/weekly-cleanup-routine/SKILL.md",[686],{"path":407,"priority":319},{"sources":688},[689],"manual",{"closedIssues90d":232,"description":691,"forks":233,"license":238,"openIssues90d":8,"pushedAt":235,"readmeSize":230,"stars":236,"topics":692},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":694,"discoverAt":695,"extractAt":696,"githubAt":696,"updatedAt":694},1778698143787,1778698139523,1778698141911,[214,215,213,216,212],{"evaluatedAt":241,"extractAt":286,"updatedAt":241},[],[701,719,735,752,771,787],{"_creationTime":702,"_id":703,"community":704,"display":705,"identity":707,"providers":708,"relations":715,"tags":716,"workflow":717},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":588,"installMethods":706,"name":589,"sourceUrl":14},{"claudeCode":12},{"basePath":587,"githubOwner":244,"githubRepo":245,"locale":18,"slug":589,"type":246},{"evaluate":709,"extract":714},{"promptVersionExtension":205,"promptVersionScoring":206,"score":710,"tags":711,"targetMarket":217,"tier":294},100,[215,712,213,713,212],"sales","workflows",{"commitSha":277},{"parentExtensionId":250,"repoId":282},[215,213,212,712,713],{"evaluatedAt":718,"extractAt":286,"updatedAt":718},1778698526315,{"_creationTime":720,"_id":721,"community":722,"display":723,"identity":725,"providers":726,"relations":731,"tags":732,"workflow":733},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":621,"installMethods":724,"name":622,"sourceUrl":14},{"claudeCode":12},{"basePath":620,"githubOwner":244,"githubRepo":245,"locale":18,"slug":622,"type":246},{"evaluate":727,"extract":730},{"promptVersionExtension":205,"promptVersionScoring":206,"score":289,"tags":728,"targetMarket":217,"tier":294},[212,213,215,729,214],"data-management",{"commitSha":277},{"parentExtensionId":250,"repoId":282},[214,215,213,729,212],{"evaluatedAt":734,"extractAt":286,"updatedAt":734},1778698590503,{"_creationTime":736,"_id":737,"community":738,"display":739,"identity":741,"providers":742,"relations":748,"tags":749,"workflow":750},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":450,"installMethods":740,"name":451,"sourceUrl":14},{"claudeCode":12},{"basePath":449,"githubOwner":244,"githubRepo":245,"locale":18,"slug":451,"type":246},{"evaluate":743,"extract":747},{"promptVersionExtension":205,"promptVersionScoring":206,"score":710,"tags":744,"targetMarket":217,"tier":294},[212,213,745,746,292],"maintenance","reporting",{"commitSha":277},{"parentExtensionId":250,"repoId":282},[292,213,212,745,746],{"evaluatedAt":751,"extractAt":286,"updatedAt":751},1778698268281,{"_creationTime":753,"_id":754,"community":755,"display":756,"identity":759,"providers":760,"relations":767,"tags":768,"workflow":769},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":551,"installMethods":757,"name":758,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":550,"githubOwner":244,"githubRepo":245,"locale":18,"slug":552,"type":246},{"evaluate":761,"extract":766},{"promptVersionExtension":205,"promptVersionScoring":206,"score":289,"tags":762,"targetMarket":217,"tier":294},[212,213,763,215,764,765],"data-enrichment","contact-management","segmentation",{"commitSha":277,"license":238},{"parentExtensionId":250,"repoId":282},[215,764,213,763,212,765],{"evaluatedAt":770,"extractAt":286,"updatedAt":770},1778698467653,{"_creationTime":772,"_id":773,"community":774,"display":775,"identity":777,"providers":778,"relations":783,"tags":784,"workflow":785},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":681,"installMethods":776,"name":682,"sourceUrl":14},{"claudeCode":12},{"basePath":680,"githubOwner":244,"githubRepo":245,"locale":18,"slug":682,"type":246},{"evaluate":779,"extract":782},{"promptVersionExtension":205,"promptVersionScoring":206,"score":780,"tags":781,"targetMarket":217,"tier":294},98,[212,213,745,215,746],{"commitSha":277},{"parentExtensionId":250,"repoId":282},[215,213,212,745,746],{"evaluatedAt":786,"extractAt":286,"updatedAt":786},1778698703534,{"_creationTime":788,"_id":789,"community":790,"display":791,"identity":793,"providers":794,"relations":799,"tags":800,"workflow":801},1778698144006.2253,"k175q9vhdtjhmdnj5sfg0js0y186m41d",{"reviewCount":8},{"description":632,"installMethods":792,"name":633,"sourceUrl":14},{"claudeCode":12},{"basePath":631,"githubOwner":244,"githubRepo":245,"locale":18,"slug":633,"type":246},{"evaluate":795,"extract":798},{"promptVersionExtension":205,"promptVersionScoring":206,"score":780,"tags":796,"targetMarket":217,"tier":294},[212,213,797,764,215],"data-hygiene",{"commitSha":277},{"parentExtensionId":250,"repoId":282},[215,764,213,797,212],{"evaluatedAt":802,"extractAt":286,"updatedAt":802},1778698625452]