[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-cleanup-properties-de":3,"guides-for-TomGranot-cleanup-properties":700,"similar-k172acb4c5w7v7cjv82kp13p7d86nbnh-de":701},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":243,"isFallback":248,"parentExtension":249,"providers":303,"relations":307,"repo":308,"tags":698,"workflow":699},1778698144006.2214,"k172acb4c5w7v7cjv82kp13p7d86nbnh",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","cleanup-properties","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":225,"workflow":241},1778698343503.1602,"kn70nra5ztgzxa4xnd0qp8z4ch86n2dm","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"promptVersionExtension":206,"promptVersionScoring":207,"purpose":208,"rationale":209,"score":210,"summary":211,"tags":212,"targetMarket":218,"tier":219,"useCases":220},[21,26,29,32,36,39,44,49,52,55,59,63,66,70,73,76,79,82,85,88,91,95,99,103,107,110,113,116,120,123,126,129,132,135,138,142,146,150,153,157,160,163,166,169,173,176,180,183,186,190],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of \"unused custom properties across all HubSpot object types\" and identifies specific issues like Salesforce sync properties and obsolete form fields.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers a specialized solution for cleaning HubSpot CRM properties, which goes beyond generic LLM capabilities and addresses a specific administrative pain point.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill includes prerequisites, a detailed step-by-step process, and rollback instructions, indicating it is designed for production use.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses specifically on managing HubSpot custom properties, a well-defined domain.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately and concisely reflects the functionality described in the SKILL.md file.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This is a skill, not a tool-based extension; scoped tools check is not applicable.",{"category":45,"check":46,"severity":47,"summary":48},"Documentation","Configuration & parameter reference","warning","While prerequisites mention a HubSpot API token in .env and Python installation via uv, the specific parameters for the script execution and their potential defaults are not explicitly documented.",{"category":33,"check":50,"severity":42,"summary":51},"Tool naming","This is a skill, not a tool-based extension; tool naming check is not applicable.",{"category":33,"check":53,"severity":42,"summary":54},"Minimal I/O surface","This is a skill, not a tool-based extension; minimal I/O surface check is not applicable.",{"category":56,"check":57,"severity":24,"summary":58},"License","License usability","The license is clearly stated as MIT in the SKILL.md frontmatter and the LICENSE file.",{"category":60,"check":61,"severity":24,"summary":62},"Maintenance","Commit recency","The last commit was on March 26, 2026, which is within the last 3 months.",{"category":60,"check":64,"severity":47,"summary":65},"Dependency Management","The skill lists 'Python with hubspot-api-client installed via uv' as a prerequisite, but does not provide a lockfile or explicit version pinning for these dependencies.",{"category":67,"check":68,"severity":47,"summary":69},"Security","Secret Management","The skill requires a HubSpot API token in `.env` but does not explicitly detail how this token is secured or if it's ever logged or exposed in output.",{"category":67,"check":71,"severity":24,"summary":72},"Injection","The provided SKILL.md does not contain any indications of loading untrusted third-party data as instructions or fetching remote content at runtime.",{"category":67,"check":74,"severity":24,"summary":75},"Transitive Supply-Chain Grenades","The skill does not appear to fetch external files or scripts at runtime, relying on locally installed dependencies.",{"category":67,"check":77,"severity":24,"summary":78},"Sandbox Isolation","The skill operates via Python scripts and HubSpot API calls, with no indication of attempting to modify files outside the project folder.",{"category":67,"check":80,"severity":24,"summary":81},"Sandbox escape primitives","No detached process spawns or deny-retry loops were found in the provided script snippets.",{"category":67,"check":83,"severity":24,"summary":84},"Data Exfiltration","The skill interacts with the HubSpot API using a provided token but does not appear to exfiltrate any confidential data to third parties.",{"category":67,"check":86,"severity":24,"summary":87},"Hidden Text Tricks","The SKILL.md and provided code snippets do not contain any hidden text tricks, invisible characters, or obfuscation techniques.",{"category":67,"check":89,"severity":24,"summary":90},"Opaque code execution","The Python scripts are provided in a readable format and do not use obfuscation, base64 encoding, or runtime fetching for execution.",{"category":92,"check":93,"severity":24,"summary":94},"Portability","Structural Assumption","The skill assumes the presence of a `.env` file for the API token, which is a common and documented pattern.",{"category":96,"check":97,"severity":24,"summary":98},"Trust","Issues Attention","With 0 issues opened and 1 closed in the last 90 days, the closure rate is high and the number of open issues is very low.",{"category":100,"check":101,"severity":24,"summary":102},"Versioning","Release Management","A version '1.0' is declared in the SKILL.md frontmatter.",{"category":104,"check":105,"severity":47,"summary":106},"Code Execution","Validation","The Python script iterates through properties but does not show explicit schema validation for API inputs or outputs, nor sanitization of the fetched property data.",{"category":67,"check":108,"severity":47,"summary":109},"Unguarded Destructive Operations","The skill's execute stage involves deleting or archiving HubSpot properties, which are destructive operations. While it suggests archiving first and waiting 30 days, there is no explicit confirmation prompt or dry-run mode documented before executing deletions.",{"category":104,"check":111,"severity":47,"summary":112},"Error Handling","The Python script shows basic iteration but lacks explicit error handling for API calls or unexpected data structures, potentially leading to silent failures or opaque error messages.",{"category":104,"check":114,"severity":47,"summary":115},"Logging","There is no mention or implementation of a local audit log for the actions performed by the Python script.",{"category":117,"check":118,"severity":42,"summary":119},"Compliance","GDPR","The skill operates on HubSpot CRM properties, which may contain personal data, but it does not submit this data to a third party or perform explicit sanitization beyond what the HubSpot API provides.",{"category":117,"check":121,"severity":24,"summary":122},"Target market","The skill's functionality is tied to the HubSpot API, which is globally available, and there are no regional limitations mentioned.",{"category":92,"check":124,"severity":24,"summary":125},"Runtime stability","The skill relies on standard Python and the HubSpot API client, with prerequisites clearly stated, suggesting good cross-platform compatibility.",{"category":45,"check":127,"severity":24,"summary":128},"README","The README file is comprehensive, providing installation, usage, and contribution guidelines, along with a clear overview of the skills offered.",{"category":33,"check":130,"severity":42,"summary":131},"Tool surface size","This is a single skill, not a collection of tools, making this check not applicable.",{"category":40,"check":133,"severity":42,"summary":134},"Overlapping near-synonym tools","This is a single skill and does not expose multiple tools.",{"category":45,"check":136,"severity":24,"summary":137},"Phantom features","All features described in the README and SKILL.md have corresponding scripts or clear instructions.",{"category":139,"check":140,"severity":24,"summary":141},"Install","Installation instruction","The README provides clear bash commands for installation and examples for running the hubspot-audit skill, though not specifically for the cleanup-properties skill itself.",{"category":143,"check":144,"severity":47,"summary":145},"Errors","Actionable error messages","The SKILL.md mentions potential failure modes and recovery steps, but the provided Python script snippets lack explicit error handling that would surface actionable messages to the user.",{"category":147,"check":148,"severity":47,"summary":149},"Execution","Pinned dependencies","The prerequisite mentions 'Python with hubspot-api-client installed via uv', but no specific versions or lock files are provided, leaving dependency versions unpinned.",{"category":33,"check":151,"severity":47,"summary":152},"Dry-run preview","The skill involves deleting or archiving properties, which are destructive operations, but no `--dry-run` flag or equivalent preview mechanism is described or implemented.",{"category":154,"check":155,"severity":42,"summary":156},"Protocol","Idempotent retry & timeouts","The skill interacts with the HubSpot API but does not appear to have complex state-changing operations that would require specific idempotent retry logic or hard timeouts beyond what the API client might provide.",{"category":117,"check":158,"severity":24,"summary":159},"Telemetry opt-in","There is no indication of telemetry being collected or emitted by this skill.",{"category":40,"check":161,"severity":24,"summary":162},"Precise Purpose","The skill's purpose is precisely defined, stating it archives or deletes unused custom properties across HubSpot objects, identifying specific types of properties to look for.",{"category":40,"check":164,"severity":24,"summary":165},"Concise Frontmatter","The frontmatter in SKILL.md is concise and directly describes the core capability.",{"category":45,"check":167,"severity":24,"summary":168},"Concise Body","The SKILL.md body is reasonably concise, outlining the process without excessive detail within the main text.",{"category":170,"check":171,"severity":24,"summary":172},"Context","Progressive Disclosure","The SKILL.md outlines the process and provides API client code snippets inline, which is appropriate for the skill's scope.",{"category":170,"check":174,"severity":42,"summary":175},"Forked exploration","This skill performs a direct action rather than deep exploration, so forked exploration context is not applicable.",{"category":22,"check":177,"severity":178,"summary":179},"Usage examples","info","While the SKILL.md provides code snippets for stages 1 and 2, a fully runnable end-to-end example demonstrating invocation and observable output for the entire cleanup process is missing.",{"category":22,"check":181,"severity":47,"summary":182},"Edge cases","The SKILL.md names failure modes like 'deleted properties cannot be restored' and Salesforce sync properties, but lacks explicit documentation on handling malformed input, API rate limits, or other common error scenarios with recovery steps.",{"category":104,"check":184,"severity":42,"summary":185},"Tool Fallback","This skill is self-contained and does not rely on external MCP servers or tools that would require fallback mechanisms.",{"category":187,"check":188,"severity":47,"summary":189},"Safety","Halt on unexpected state","The SKILL.md does not explicitly list preconditions for running the script, such as a clean working tree or schema checks, nor does it detail how to halt and report on unexpected pre-state.",{"category":92,"check":191,"severity":24,"summary":192},"Cross-skill coupling","The skill is self-contained and focuses on HubSpot property management without implicit reliance on other skills.",1778698343396,"This skill automates the archiving or deletion of unused custom properties within a HubSpot CRM instance, targeting object types such as contacts, companies, and deals. It identifies properties based on usage, naming conventions, and integration origins, providing guidance on safe deletion or archiving strategies.",[196,197,198,199,200],"Archives or deletes unused custom properties","Supports contacts, companies, and deals object types","Identifies Salesforce sync properties","Detects test/temp/obsolete properties","Provides step-by-step instructions for cleanup",[202,203,204,205],"Deleting custom properties that are actively in use","Managing HubSpot standard properties","Modifying properties associated with active Salesforce syncs without coordination","Restoring permanently deleted properties","3.0.0","4.4.0","To help HubSpot administrators maintain CRM hygiene by identifying and removing or archiving unused custom properties, thereby reducing data bloat and improving usability.","The skill is well-documented and addresses a specific problem, but lacks explicit error handling, dependency pinning, and a dry-run feature for destructive operations.",75,"A well-scoped skill for managing HubSpot custom properties, offering detailed steps but requiring improvements in error handling and safety.",[213,214,215,216,217],"hubspot","crm","data-management","cleanup","automation","global","community",[221,222,223,224],"When custom properties have become obsolete and are no longer used","To clean up properties created for testing or temporary purposes","To manage HubSpot's property limits by removing unused fields","As part of a regular CRM data hygiene routine",{"codeQuality":226,"collectedAt":228,"documentation":229,"maintenance":232,"security":238,"testCoverage":240},{"hasLockfile":227},false,1778698329543,{"descriptionLength":230,"readmeSize":231},191,10597,{"closedIssues90d":233,"forks":234,"hasChangelog":227,"manifestVersion":235,"openIssues90d":8,"pushedAt":236,"stars":237},1,4,"1.0",1774540543000,21,{"hasNpmPackage":227,"license":239,"smitheryVerified":227},"MIT",{"hasCi":227,"hasTests":227},{"updatedAt":242},1778698343503,{"basePath":244,"githubOwner":245,"githubRepo":246,"locale":18,"slug":13,"type":247},"skills/cleanup-properties","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":250,"_id":251,"community":252,"display":253,"identity":258,"parentExtension":261,"providers":289,"relations":299,"tags":300,"workflow":301},1778698144006.2188,"k17c3p8t0thc73pbc8egtz31y986mwr0",{"reviewCount":8},{"description":254,"installMethods":255,"name":257,"sourceUrl":14},"Complete HubSpot CRM administration toolkit — audit, clean, enrich, segment, automate, and maintain your database",{"claudeCode":256},"hubspot-admin","HubSpot Admin Skills",{"basePath":259,"githubOwner":245,"githubRepo":246,"locale":18,"slug":246,"type":260},"","plugin",{"_creationTime":262,"_id":263,"community":264,"display":265,"identity":268,"providers":270,"relations":283,"tags":285,"workflow":286},1778698144006.2185,"k17dn1yxv80dbqc9xbkwfp9t6186nkhk",{"reviewCount":8},{"description":266,"installMethods":267,"name":246,"sourceUrl":14},"30+ Claude Code skills for auditing, cleaning, enriching, and automating HubSpot CRM",{"claudeCode":12},{"basePath":259,"githubOwner":245,"githubRepo":246,"locale":18,"slug":246,"type":269},"marketplace",{"evaluate":271,"extract":278},{"promptVersionExtension":272,"promptVersionScoring":207,"score":273,"tags":274,"targetMarket":218,"tier":219},"3.1.0",79,[213,214,217,275,276,277],"data-cleaning","auditing","administration",{"commitSha":279,"marketplace":280,"plugin":281},"HEAD",{"name":246,"pluginCount":233},{"mcpCount":8,"provider":282,"skillCount":8},"classify",{"repoId":284},"kd75kpec7arn6z2wz641vfaj8n86nab6",[277,276,217,214,275,213],{"evaluatedAt":287,"extractAt":288,"updatedAt":287},1778698158552,1778698144006,{"evaluate":290,"extract":296},{"promptVersionExtension":206,"promptVersionScoring":207,"score":291,"tags":292,"targetMarket":218,"tier":295},99,[213,214,277,293,217,216,276,294],"data-quality","marketing-automation","verified",{"commitSha":279,"license":239,"plugin":297},{"mcpCount":8,"provider":282,"skillCount":298},32,{"parentExtensionId":263,"repoId":284},[277,276,217,216,214,293,213,294],{"evaluatedAt":302,"extractAt":288,"updatedAt":302},1778698168554,{"evaluate":304,"extract":306},{"promptVersionExtension":206,"promptVersionScoring":207,"score":210,"tags":305,"targetMarket":218,"tier":219},[213,214,215,216,217],{"commitSha":279},{"parentExtensionId":251,"repoId":284},{"_creationTime":309,"_id":284,"identity":310,"providers":311,"workflow":694},1778698139523.511,{"githubOwner":245,"githubRepo":246,"sourceUrl":14},{"classify":312,"discover":688,"github":691},{"commitSha":279,"extensions":313},[314,327,400,416,424,432,440,449,457,465,473,481,489,494,502,513,521,532,540,550,560,571,579,587,595,604,612,620,631,639,650,660,670,680],{"basePath":259,"description":266,"displayName":246,"installMethods":315,"rationale":316,"selectedPaths":317,"source":326,"sourceLanguage":18,"type":269},{"claudeCode":12},"marketplace.json at .claude-plugin/marketplace.json",[318,321,323],{"path":319,"priority":320},".claude-plugin/marketplace.json","mandatory",{"path":322,"priority":320},"README.md",{"path":324,"priority":325},"LICENSE","high","rule",{"basePath":259,"description":254,"displayName":256,"installMethods":328,"rationale":329,"selectedPaths":330,"source":326,"sourceLanguage":18,"type":260},{"claudeCode":256},"plugin manifest at .claude-plugin/plugin.json",[331,333,334,335,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398],{"path":332,"priority":320},".claude-plugin/plugin.json",{"path":322,"priority":320},{"path":324,"priority":325},{"path":336,"priority":337},"skills/assign-unowned-contacts/SKILL.md","medium",{"path":339,"priority":337},"skills/backfill-geo-data/SKILL.md",{"path":341,"priority":337},"skills/bounce-monitoring-workflow/SKILL.md",{"path":343,"priority":337},"skills/build-lead-scoring/SKILL.md",{"path":345,"priority":337},"skills/build-smart-lists/SKILL.md",{"path":347,"priority":337},"skills/cleanup-dashboards/SKILL.md",{"path":349,"priority":337},"skills/cleanup-deals/SKILL.md",{"path":351,"priority":337},"skills/cleanup-forms/SKILL.md",{"path":353,"priority":337},"skills/cleanup-lead-owners/SKILL.md",{"path":355,"priority":337},"skills/cleanup-lists/SKILL.md",{"path":357,"priority":337},"skills/cleanup-properties/SKILL.md",{"path":359,"priority":337},"skills/cleanup-workflows/SKILL.md",{"path":361,"priority":337},"skills/create-icp-tiers/SKILL.md",{"path":363,"priority":337},"skills/create-segment-lists/SKILL.md",{"path":365,"priority":337},"skills/delete-no-email-contacts/SKILL.md",{"path":367,"priority":337},"skills/engagement-suppression-workflow/SKILL.md",{"path":369,"priority":337},"skills/enrich-company-name/SKILL.md",{"path":371,"priority":337},"skills/enrich-industry/SKILL.md",{"path":373,"priority":337},"skills/fix-lifecycle-stages/SKILL.md",{"path":375,"priority":337},"skills/hubspot-audit/SKILL.md",{"path":377,"priority":337},"skills/hubspot-implementation-plan/SKILL.md",{"path":379,"priority":337},"skills/lifecycle-progression-workflow/SKILL.md",{"path":381,"priority":337},"skills/merge-duplicate-companies/SKILL.md",{"path":383,"priority":337},"skills/new-contact-hygiene-workflow/SKILL.md",{"path":385,"priority":337},"skills/quarterly-database-cleanup/SKILL.md",{"path":387,"priority":337},"skills/reassign-deactivated-owners/SKILL.md",{"path":389,"priority":337},"skills/review-bounced-contacts/SKILL.md",{"path":391,"priority":337},"skills/standardize-geo-values/SKILL.md",{"path":393,"priority":337},"skills/suppress-ghost-contacts/SKILL.md",{"path":395,"priority":337},"skills/suppress-global-unsubscribes/SKILL.md",{"path":397,"priority":337},"skills/suppress-hard-bounced/SKILL.md",{"path":399,"priority":337},"skills/weekly-cleanup-routine/SKILL.md",{"basePath":401,"description":402,"displayName":403,"installMethods":404,"rationale":405,"selectedPaths":406,"source":326,"sourceLanguage":18,"type":247},"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",[407,409,412,414],{"path":408,"priority":320},"SKILL.md",{"path":410,"priority":411},"scripts/after.py","low",{"path":413,"priority":411},"scripts/before.py",{"path":415,"priority":411},"scripts/execute.py",{"basePath":417,"description":418,"displayName":419,"installMethods":420,"rationale":421,"selectedPaths":422,"source":326,"sourceLanguage":18,"type":247},"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",[423],{"path":408,"priority":320},{"basePath":425,"description":426,"displayName":427,"installMethods":428,"rationale":429,"selectedPaths":430,"source":326,"sourceLanguage":18,"type":247},"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",[431],{"path":408,"priority":320},{"basePath":433,"description":434,"displayName":435,"installMethods":436,"rationale":437,"selectedPaths":438,"source":326,"sourceLanguage":18,"type":247},"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",[439],{"path":408,"priority":320},{"basePath":441,"description":442,"displayName":443,"installMethods":444,"rationale":445,"selectedPaths":446,"source":326,"sourceLanguage":18,"type":247},"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",[447,448],{"path":408,"priority":320},{"path":415,"priority":411},{"basePath":450,"description":451,"displayName":452,"installMethods":453,"rationale":454,"selectedPaths":455,"source":326,"sourceLanguage":18,"type":247},"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",[456],{"path":408,"priority":320},{"basePath":458,"description":459,"displayName":460,"installMethods":461,"rationale":462,"selectedPaths":463,"source":326,"sourceLanguage":18,"type":247},"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",[464],{"path":408,"priority":320},{"basePath":466,"description":467,"displayName":468,"installMethods":469,"rationale":470,"selectedPaths":471,"source":326,"sourceLanguage":18,"type":247},"skills/cleanup-forms","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.","cleanup-forms",{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-forms/SKILL.md",[472],{"path":408,"priority":320},{"basePath":474,"description":475,"displayName":476,"installMethods":477,"rationale":478,"selectedPaths":479,"source":326,"sourceLanguage":18,"type":247},"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",[480],{"path":408,"priority":320},{"basePath":482,"description":483,"displayName":484,"installMethods":485,"rationale":486,"selectedPaths":487,"source":326,"sourceLanguage":18,"type":247},"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",[488],{"path":408,"priority":320},{"basePath":244,"description":10,"displayName":13,"installMethods":490,"rationale":491,"selectedPaths":492,"source":326,"sourceLanguage":18,"type":247},{"claudeCode":12},"SKILL.md frontmatter at skills/cleanup-properties/SKILL.md",[493],{"path":408,"priority":320},{"basePath":495,"description":496,"displayName":497,"installMethods":498,"rationale":499,"selectedPaths":500,"source":326,"sourceLanguage":18,"type":247},"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",[501],{"path":408,"priority":320},{"basePath":503,"description":504,"displayName":505,"installMethods":506,"rationale":507,"selectedPaths":508,"source":326,"sourceLanguage":18,"type":247},"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",[509,510,511,512],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":514,"description":515,"displayName":516,"installMethods":517,"rationale":518,"selectedPaths":519,"source":326,"sourceLanguage":18,"type":247},"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",[520],{"path":408,"priority":320},{"basePath":522,"description":523,"displayName":524,"installMethods":525,"rationale":526,"selectedPaths":527,"source":326,"sourceLanguage":18,"type":247},"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",[528,529,530,531],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":533,"description":534,"displayName":535,"installMethods":536,"rationale":537,"selectedPaths":538,"source":326,"sourceLanguage":18,"type":247},"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",[539],{"path":408,"priority":320},{"basePath":541,"description":542,"displayName":543,"installMethods":544,"rationale":545,"selectedPaths":546,"source":326,"sourceLanguage":18,"type":247},"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",[547,548,549],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":551,"description":552,"displayName":553,"installMethods":554,"rationale":555,"selectedPaths":556,"source":326,"sourceLanguage":18,"type":247},"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",[557,558,559],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":561,"description":562,"displayName":563,"installMethods":564,"rationale":565,"selectedPaths":566,"source":326,"sourceLanguage":18,"type":247},"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",[567,568,569,570],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":572,"description":573,"displayName":574,"installMethods":575,"rationale":576,"selectedPaths":577,"source":326,"sourceLanguage":18,"type":247},"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",[578],{"path":408,"priority":320},{"basePath":580,"description":581,"displayName":582,"installMethods":583,"rationale":584,"selectedPaths":585,"source":326,"sourceLanguage":18,"type":247},"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",[586],{"path":408,"priority":320},{"basePath":588,"description":589,"displayName":590,"installMethods":591,"rationale":592,"selectedPaths":593,"source":326,"sourceLanguage":18,"type":247},"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",[594],{"path":408,"priority":320},{"basePath":596,"description":597,"displayName":598,"installMethods":599,"rationale":600,"selectedPaths":601,"source":326,"sourceLanguage":18,"type":247},"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",[602,603],{"path":408,"priority":320},{"path":413,"priority":411},{"basePath":605,"description":606,"displayName":607,"installMethods":608,"rationale":609,"selectedPaths":610,"source":326,"sourceLanguage":18,"type":247},"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",[611],{"path":408,"priority":320},{"basePath":613,"description":614,"displayName":615,"installMethods":616,"rationale":617,"selectedPaths":618,"source":326,"sourceLanguage":18,"type":247},"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",[619],{"path":408,"priority":320},{"basePath":621,"description":622,"displayName":623,"installMethods":624,"rationale":625,"selectedPaths":626,"source":326,"sourceLanguage":18,"type":247},"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",[627,628,629,630],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":632,"description":633,"displayName":634,"installMethods":635,"rationale":636,"selectedPaths":637,"source":326,"sourceLanguage":18,"type":247},"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",[638],{"path":408,"priority":320},{"basePath":640,"description":641,"displayName":642,"installMethods":643,"rationale":644,"selectedPaths":645,"source":326,"sourceLanguage":18,"type":247},"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",[646,647,648,649],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"path":415,"priority":411},{"basePath":651,"description":652,"displayName":653,"installMethods":654,"rationale":655,"selectedPaths":656,"source":326,"sourceLanguage":18,"type":247},"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",[657,658,659],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":661,"description":662,"displayName":663,"installMethods":664,"rationale":665,"selectedPaths":666,"source":326,"sourceLanguage":18,"type":247},"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",[667,668,669],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":671,"description":672,"displayName":673,"installMethods":674,"rationale":675,"selectedPaths":676,"source":326,"sourceLanguage":18,"type":247},"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",[677,678,679],{"path":408,"priority":320},{"path":410,"priority":411},{"path":413,"priority":411},{"basePath":681,"description":682,"displayName":683,"installMethods":684,"rationale":685,"selectedPaths":686,"source":326,"sourceLanguage":18,"type":247},"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",[687],{"path":408,"priority":320},{"sources":689},[690],"manual",{"closedIssues90d":233,"description":692,"forks":234,"license":239,"openIssues90d":8,"pushedAt":236,"readmeSize":231,"stars":237,"topics":693},"32 Claude Code skills for auditing, cleaning, enriching, and automating your HubSpot CRM",[],{"classifiedAt":695,"discoverAt":696,"extractAt":697,"githubAt":697,"updatedAt":695},1778698143787,1778698139523,1778698141911,[217,216,214,215,213],{"evaluatedAt":242,"extractAt":288,"updatedAt":242},[],[702,720,737,752,785,804],{"_creationTime":703,"_id":704,"community":705,"display":706,"identity":708,"providers":709,"relations":716,"tags":717,"workflow":718},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":589,"installMethods":707,"name":590,"sourceUrl":14},{"claudeCode":12},{"basePath":588,"githubOwner":245,"githubRepo":246,"locale":18,"slug":590,"type":247},{"evaluate":710,"extract":715},{"promptVersionExtension":206,"promptVersionScoring":207,"score":711,"tags":712,"targetMarket":218,"tier":295},100,[217,713,214,714,213],"sales","workflows",{"commitSha":279},{"parentExtensionId":251,"repoId":284},[217,214,213,713,714],{"evaluatedAt":719,"extractAt":288,"updatedAt":719},1778698526315,{"_creationTime":721,"_id":722,"community":723,"display":724,"identity":726,"providers":727,"relations":733,"tags":734,"workflow":735},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":451,"installMethods":725,"name":452,"sourceUrl":14},{"claudeCode":12},{"basePath":450,"githubOwner":245,"githubRepo":246,"locale":18,"slug":452,"type":247},{"evaluate":728,"extract":732},{"promptVersionExtension":206,"promptVersionScoring":207,"score":711,"tags":729,"targetMarket":218,"tier":295},[213,214,730,731,216],"maintenance","reporting",{"commitSha":279},{"parentExtensionId":251,"repoId":284},[216,214,213,730,731],{"evaluatedAt":736,"extractAt":288,"updatedAt":736},1778698268281,{"_creationTime":738,"_id":739,"community":740,"display":741,"identity":743,"providers":744,"relations":748,"tags":749,"workflow":750},1778698144006.225,"k17bfemb4zmcjh67bsamr26c0x86mpbn",{"reviewCount":8},{"description":622,"installMethods":742,"name":623,"sourceUrl":14},{"claudeCode":12},{"basePath":621,"githubOwner":245,"githubRepo":246,"locale":18,"slug":623,"type":247},{"evaluate":745,"extract":747},{"promptVersionExtension":206,"promptVersionScoring":207,"score":291,"tags":746,"targetMarket":218,"tier":295},[213,214,217,215,277],{"commitSha":279},{"parentExtensionId":251,"repoId":284},[277,217,214,215,213],{"evaluatedAt":751,"extractAt":288,"updatedAt":751},1778698590503,{"_creationTime":753,"_id":754,"community":755,"display":756,"identity":762,"providers":768,"relations":776,"tags":780,"workflow":781},1778693792522.313,"k17ajdrnf6jf234dspq1a464z186n634",{"reviewCount":8},{"description":757,"installMethods":758,"name":760,"sourceUrl":761},"Löschen Sie die Kontext-Modus-Wissensdatenbank. Löscht dauerhaft alle indizierten Inhalte\nund setzt Sitzungsstatistiken zurück. Dies ist destruktiv und kann nicht rückgängig gemacht werden.\nAuslöser: /context-mode:ctx-purge\n",{"claudeCode":759},"mksglu/context-mode","Context Mode Purge","https://github.com/mksglu/context-mode",{"basePath":763,"githubOwner":764,"githubRepo":765,"locale":766,"slug":767,"type":247},"skills/ctx-purge","mksglu","context-mode","de","ctx-purge",{"evaluate":769,"extract":774},{"promptVersionExtension":206,"promptVersionScoring":207,"score":291,"tags":770,"targetMarket":218,"tier":295},[771,772,216,215,773],"context","knowledge-base","utility",{"commitSha":279,"license":775},"NOASSERTION",{"parentExtensionId":777,"repoId":778,"translatedFrom":779},"k17ezy748es7sfnbnp9phht43h86m53y","kd764b2fctbqg4b8j8y6xvmkvs86m29m","k176tc1tv0m0nkcdcm07fy4vx186mcpz",[216,771,215,772,773],{"evaluatedAt":782,"extractAt":783,"updatedAt":784},1778693659975,1778693511416,1778693792522,{"_creationTime":786,"_id":787,"community":788,"display":789,"identity":792,"providers":793,"relations":800,"tags":801,"workflow":802},1778698144006.2231,"k172hgm2mhketjz0tmptf85ms986nx8p",{"reviewCount":8},{"description":552,"installMethods":790,"name":791,"sourceUrl":14},{"claudeCode":12},"Enrich Contact Industry",{"basePath":551,"githubOwner":245,"githubRepo":246,"locale":18,"slug":553,"type":247},{"evaluate":794,"extract":799},{"promptVersionExtension":206,"promptVersionScoring":207,"score":291,"tags":795,"targetMarket":218,"tier":295},[213,214,796,217,797,798],"data-enrichment","contact-management","segmentation",{"commitSha":279,"license":239},{"parentExtensionId":251,"repoId":284},[217,797,214,796,213,798],{"evaluatedAt":803,"extractAt":288,"updatedAt":803},1778698467653,{"_creationTime":805,"_id":806,"community":807,"display":808,"identity":810,"providers":811,"relations":816,"tags":817,"workflow":818},1778698144006.2266,"k178ar72y21gtdvpcbmcmd227s86mq2d",{"reviewCount":8},{"description":682,"installMethods":809,"name":683,"sourceUrl":14},{"claudeCode":12},{"basePath":681,"githubOwner":245,"githubRepo":246,"locale":18,"slug":683,"type":247},{"evaluate":812,"extract":815},{"promptVersionExtension":206,"promptVersionScoring":207,"score":813,"tags":814,"targetMarket":218,"tier":295},98,[213,214,730,217,731],{"commitSha":279},{"parentExtensionId":251,"repoId":284},[217,214,213,730,731],{"evaluatedAt":819,"extractAt":288,"updatedAt":819},1778698703534]