[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-TomGranot-cleanup-workflows-de":3,"guides-for-TomGranot-cleanup-workflows":699,"similar-k17ezwq7jdkbvxtvg0fx6010cs86mt2w-de":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.2217,"k17ezwq7jdkbvxtvg0fx6010cs86mt2w",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"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.",{"claudeCode":12},"TomGranot/hubspot-admin-skills","cleanup-workflows","https://github.com/TomGranot/hubspot-admin-skills",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":224,"workflow":240},1778698368538.856,"kn70c3kvsa1jw969wrt8zf5gbn86m3m0","en",{"checks":20,"evaluatedAt":194,"extensionSummary":195,"features":196,"nonGoals":202,"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,92,96,100,104,108,111,114,118,122,125,128,131,134,137,140,144,148,152,155,159,162,165,168,171,175,178,181,184,187,191],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly states the problem of auditing and removing inactive, test, or deprecated workflows from HubSpot, identifying specific criteria for removal.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill offers specific criteria for identifying workflows to remove (never enrolled, off for 90+ days, test names), which goes beyond default HubSpot functionality and provides clear value.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill provides a clear, multi-stage process including pre-requisites, step-by-step instructions, and rollback procedures, indicating readiness for use.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill is focused on auditing and removing HubSpot workflows, a single domain of maintenance.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The displayed description accurately reflects the skill's purpose and capabilities as outlined in the SKILL.md.",{"category":40,"check":41,"severity":42,"summary":43},"Invocation","Scoped tools","not_applicable","This is a skill-based extension and does not expose specific tools in the same way as other extension types.",{"category":45,"check":46,"severity":47,"summary":48},"Documentation","Configuration & parameter reference","warning","The SKILL.md mentions a HubSpot API token in `.env` but does not explicitly document it or any other potential parameters or their precedence.",{"category":33,"check":50,"severity":42,"summary":51},"Tool naming","This is a skill-based extension and does not expose specific tools with names.",{"category":33,"check":53,"severity":42,"summary":54},"Minimal I/O surface","This is a skill-based extension and does not expose specific tools with parameter schemas or response shapes.",{"category":56,"check":57,"severity":24,"summary":58},"License","License usability","The license is MIT and clearly stated in both 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 90 days.",{"category":60,"check":64,"severity":47,"summary":65},"Dependency Management","The skill uses Python dependencies (`hubspot-api-client`) but does not specify versioning or locking mechanisms in the provided files, and uv is mentioned without a lockfile.",{"category":67,"check":68,"severity":47,"summary":69},"Security","Secret Management","The SKILL.md mentions a HubSpot API token in `.env` but does not provide explicit guidance on how it's handled or secured, nor does it confirm it's not echoed in output.",{"category":67,"check":71,"severity":24,"summary":72},"Injection","The provided SKILL.md treats external data as input for scripts and does not suggest executing instructions from external sources.",{"category":67,"check":74,"severity":24,"summary":75},"Transitive Supply-Chain Grenades","The skill relies on a specific Python package and a HubSpot API, with no indication of runtime fetching of external code or data.",{"category":67,"check":77,"severity":24,"summary":78},"Sandbox Isolation","The skill operates by interacting with the HubSpot API and using local Python scripts; there are no indications of writing outside of expected scopes or touching user project files.",{"category":67,"check":80,"severity":24,"summary":81},"Sandbox escape primitives","The provided code snippets and description do not contain any detached process spawns or deny-retry loops.",{"category":67,"check":83,"severity":24,"summary":84},"Data Exfiltration","The skill interacts with the HubSpot API to manage workflows; there are no indications of submitting confidential data to third parties.",{"category":67,"check":86,"severity":24,"summary":87},"Hidden Text Tricks","The bundled content and descriptions appear to be free of hidden steering tricks or obfuscated characters.",{"category":89,"check":90,"severity":24,"summary":91},"Hooks","Opaque code execution","The provided Python scripts are readable and do not appear to use obfuscation techniques like base64 payloads or eval.",{"category":93,"check":94,"severity":24,"summary":95},"Portability","Structural Assumption","The skill assumes the presence of the HubSpot API token and necessary Python packages but does not make assumptions about the user's project file structure.",{"category":97,"check":98,"severity":24,"summary":99},"Trust","Issues Attention","0 issues opened, 1 closed in the last 90 days, indicating active maintenance or low issue volume.",{"category":101,"check":102,"severity":24,"summary":103},"Versioning","Release Management","A version number (`1.0`) is present in the SKILL.md frontmatter.",{"category":105,"check":106,"severity":47,"summary":107},"Code Execution","Validation","The Python script for Stage 1 uses the `requests` library to fetch workflows, but there's no explicit schema validation for the API response or input parameters mentioned.",{"category":67,"check":109,"severity":47,"summary":110},"Unguarded Destructive Operations","The 'Delete and Document' stage implies deletion of workflows, but lacks explicit confirmation prompts or dry-run capabilities described in the SKILL.md for this operation.",{"category":105,"check":112,"severity":47,"summary":113},"Error Handling","The Python snippet for fetching workflows includes basic error handling for the request, but does not detail how API errors or unexpected states during the identification and deletion stages are managed or reported.",{"category":105,"check":115,"severity":116,"summary":117},"Logging","info","The SKILL.md describes documenting deleted workflows in a cleanup log, but no specific implementation for structured local audit logging is provided or referenced.",{"category":119,"check":120,"severity":42,"summary":121},"Compliance","GDPR","The skill operates on HubSpot workflows and metadata, not directly on personal data that would typically fall under GDPR.",{"category":119,"check":123,"severity":24,"summary":124},"Target market","The skill interacts with the HubSpot API and is not geographically restricted; the `targetMarket` is global.",{"category":93,"check":126,"severity":24,"summary":127},"Runtime stability","The skill's prerequisites list Python and a specific package, and the scripts provided are standard Python, implying good cross-platform compatibility.",{"category":45,"check":129,"severity":24,"summary":130},"README","The README file is comprehensive, detailing the purpose, installation, and usage of the skills, including a specific section for the cleanup-workflows skill's purpose.",{"category":33,"check":132,"severity":42,"summary":133},"Tool surface size","This is a single skill and does not expose multiple tools.",{"category":40,"check":135,"severity":42,"summary":136},"Overlapping near-synonym tools","This is a single skill and does not expose multiple tools with overlapping functionality.",{"category":45,"check":138,"severity":24,"summary":139},"Phantom features","All advertised features related to auditing and removing HubSpot workflows are implemented and described in the SKILL.md.",{"category":141,"check":142,"severity":24,"summary":143},"Install","Installation instruction","The README provides clear installation instructions using the plugin marketplace and includes example commands for auditing and planning, and the SKILL.md details specific prerequisites.",{"category":145,"check":146,"severity":47,"summary":147},"Errors","Actionable error messages","While the Python script for fetching workflows might handle basic HTTP errors, the SKILL.md does not detail actionable error messages for the identification or deletion stages, nor does it provide remediation steps for potential API errors or plan limitations.",{"category":149,"check":150,"severity":47,"summary":151},"Execution","Pinned dependencies","The SKILL.md mentions installing `hubspot-api-client` via `uv` but does not provide pinned versions or a lockfile, leaving dependency versions unconstrained.",{"category":33,"check":153,"severity":47,"summary":154},"Dry-run preview","The 'Delete and Document' stage implies destructive operations, but the SKILL.md does not describe a dry-run mode or preview mechanism before deletion.",{"category":156,"check":157,"severity":116,"summary":158},"Protocol","Idempotent retry & timeouts","The provided Python script for fetching workflows does not explicitly detail retry logic or timeouts for API calls, and the deletion process is not described as idempotent.",{"category":119,"check":160,"severity":24,"summary":161},"Telemetry opt-in","There is no indication of telemetry collection in the provided files; any data processed is assumed to be for the direct execution of the skill's task.",{"category":40,"check":163,"severity":24,"summary":164},"Precise Purpose","The description clearly states the artifact (HubSpot workflows) and the task (audit and remove inactive, test, or deprecated ones), with clear criteria for identification.",{"category":40,"check":166,"severity":24,"summary":167},"Concise Frontmatter","The frontmatter in SKILL.md is concise and clearly states the skill's purpose and license.",{"category":45,"check":169,"severity":24,"summary":170},"Concise Body","The SKILL.md body is well-structured and under the ~500 line limit, with deeper material deferred.",{"category":172,"check":173,"severity":24,"summary":174},"Context","Progressive Disclosure","The SKILL.md outlines the overall flow and delegates API interaction details to code snippets within the document, adhering to progressive disclosure.",{"category":172,"check":176,"severity":42,"summary":177},"Forked exploration","This skill is not an exploration or audit-style skill that would benefit from `context: fork`.",{"category":22,"check":179,"severity":47,"summary":180},"Usage examples","While the README provides general examples for auditing and planning, this specific skill for workflow cleanup lacks concrete, runnable examples demonstrating input, invocation, and expected output.",{"category":22,"check":182,"severity":47,"summary":183},"Edge cases","The SKILL.md identifies several criteria for deletion and notes pre-deletion checks, but does not explicitly document specific failure modes (e.g., API errors, incorrect identification) with corresponding recovery steps.",{"category":105,"check":185,"severity":47,"summary":186},"Tool Fallback","The SKILL.md lists Python and the `hubspot-api-client` as prerequisites, but does not mention any fallback path if these are not met or if the HubSpot API is unavailable, nor does it specify required versions.",{"category":188,"check":189,"severity":47,"summary":190},"Safety","Halt on unexpected state","The SKILL.md does not explicitly state that the workflow will halt and report on unexpected pre-state conditions before performing deletions, nor does it document a rollback procedure for the deletion itself beyond manual recreation.",{"category":93,"check":192,"severity":24,"summary":193},"Cross-skill coupling","The skill is self-contained and focuses solely on HubSpot workflow management without implicit reliance on other skills.",1778698367783,"This skill audits HubSpot workflows based on specific criteria such as inactivity, lack of enrollments, or test naming conventions. It provides Python scripts to identify candidate workflows and outlines a multi-stage process for deletion and documentation.",[197,198,199,200,201],"Identifies workflows never enrolled in contacts","Flags workflows turned off for 90+ days","Detects test or draft workflows by name","Provides step-by-step instructions for cleanup","Outlines rollback considerations",[203,204,205],"Directly deleting workflows without user review","Managing other HubSpot automation features like lead scoring","Providing a full HubSpot CRM administration suite","3.0.0","4.4.0","To help HubSpot administrators maintain a clean and efficient automation dashboard by identifying and removing inactive, test, or deprecated workflows.","The skill is well-documented and addresses a relevant problem, but several warnings regarding dependency management, error handling, lack of dry-run, and unclear actionable error messages lower the score.",75,"A practical skill for auditing and removing unused HubSpot workflows, with good documentation but areas for improvement in error handling and safety.",[213,214,215,216,217],"hubspot","crm","automation","maintenance","cleanup","global","community",[221,222,223],"Cleaning up a cluttered HubSpot automation dashboard","Reducing noise and improving understanding of active workflows","Performing regular database hygiene as part of a CRM maintenance routine",{"codeQuality":225,"collectedAt":227,"documentation":228,"maintenance":231,"security":237,"testCoverage":239},{"hasLockfile":226},false,1778698343885,{"descriptionLength":229,"readmeSize":230},181,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},1778698368538,{"basePath":243,"githubOwner":244,"githubRepo":245,"locale":18,"slug":13,"type":246},"skills/cleanup-workflows","TomGranot","hubspot-admin-skills","skill",true,{"_creationTime":249,"_id":250,"community":251,"display":252,"identity":257,"parentExtension":260,"providers":288,"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":282,"tags":284,"workflow":285},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":277},{"promptVersionExtension":271,"promptVersionScoring":207,"score":272,"tags":273,"targetMarket":218,"tier":219},"3.1.0",79,[213,214,215,274,275,276],"data-cleaning","auditing","administration",{"commitSha":278,"marketplace":279,"plugin":280},"HEAD",{"name":245,"pluginCount":232},{"mcpCount":8,"provider":281,"skillCount":8},"classify",{"repoId":283},"kd75kpec7arn6z2wz641vfaj8n86nab6",[276,275,215,214,274,213],{"evaluatedAt":286,"extractAt":287,"updatedAt":286},1778698158552,1778698144006,{"evaluate":289,"extract":295},{"promptVersionExtension":206,"promptVersionScoring":207,"score":290,"tags":291,"targetMarket":218,"tier":294},99,[213,214,276,292,215,217,275,293],"data-quality","marketing-automation","verified",{"commitSha":278,"license":238,"plugin":296},{"mcpCount":8,"provider":281,"skillCount":297},32,{"parentExtensionId":262,"repoId":283},[276,275,215,217,214,292,213,293],{"evaluatedAt":301,"extractAt":287,"updatedAt":301},1778698168554,{"evaluate":303,"extract":305},{"promptVersionExtension":206,"promptVersionScoring":207,"score":210,"tags":304,"targetMarket":218,"tier":219},[213,214,215,216,217],{"commitSha":278},{"parentExtensionId":250,"repoId":283},{"_creationTime":308,"_id":283,"identity":309,"providers":310,"workflow":693},1778698139523.511,{"githubOwner":244,"githubRepo":245,"sourceUrl":14},{"classify":311,"discover":687,"github":690},{"commitSha":278,"extensions":312},[313,326,399,415,423,431,439,448,456,464,472,480,488,496,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":465,"description":466,"displayName":467,"installMethods":468,"rationale":469,"selectedPaths":470,"source":325,"sourceLanguage":18,"type":246},"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",[471],{"path":407,"priority":319},{"basePath":473,"description":474,"displayName":475,"installMethods":476,"rationale":477,"selectedPaths":478,"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",[479],{"path":407,"priority":319},{"basePath":481,"description":482,"displayName":483,"installMethods":484,"rationale":485,"selectedPaths":486,"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",[487],{"path":407,"priority":319},{"basePath":489,"description":490,"displayName":491,"installMethods":492,"rationale":493,"selectedPaths":494,"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",[495],{"path":407,"priority":319},{"basePath":243,"description":10,"displayName":13,"installMethods":497,"rationale":498,"selectedPaths":499,"source":325,"sourceLanguage":18,"type":246},{"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,[215,217,214,213,216],{"evaluatedAt":241,"extractAt":287,"updatedAt":241},[],[701,718,735,763,794,822],{"_creationTime":702,"_id":703,"community":704,"display":705,"identity":707,"providers":708,"relations":714,"tags":715,"workflow":716},1778698144006.2202,"k172517ana4f5vj79mb22xzwsx86mksv",{"reviewCount":8},{"description":450,"installMethods":706,"name":451,"sourceUrl":14},{"claudeCode":12},{"basePath":449,"githubOwner":244,"githubRepo":245,"locale":18,"slug":451,"type":246},{"evaluate":709,"extract":713},{"promptVersionExtension":206,"promptVersionScoring":207,"score":710,"tags":711,"targetMarket":218,"tier":294},100,[213,214,216,712,217],"reporting",{"commitSha":278},{"parentExtensionId":250,"repoId":283},[217,214,213,216,712],{"evaluatedAt":717,"extractAt":287,"updatedAt":717},1778698268281,{"_creationTime":719,"_id":720,"community":721,"display":722,"identity":724,"providers":725,"relations":731,"tags":732,"workflow":733},1778698144006.224,"k17agbyx7wnnh9238dqj641dns86nf82",{"reviewCount":8},{"description":588,"installMethods":723,"name":589,"sourceUrl":14},{"claudeCode":12},{"basePath":587,"githubOwner":244,"githubRepo":245,"locale":18,"slug":589,"type":246},{"evaluate":726,"extract":730},{"promptVersionExtension":206,"promptVersionScoring":207,"score":710,"tags":727,"targetMarket":218,"tier":294},[215,728,214,729,213],"sales","workflows",{"commitSha":278},{"parentExtensionId":250,"repoId":283},[215,214,213,728,729],{"evaluatedAt":734,"extractAt":287,"updatedAt":734},1778698526315,{"_creationTime":736,"_id":737,"community":738,"display":739,"identity":745,"providers":750,"relations":757,"tags":759,"workflow":760},1778697652123.8804,"k173mjn1bp2a67v1h8qjkv7wn186met8",{"reviewCount":8},{"description":740,"installMethods":741,"name":743,"sourceUrl":744},"Use for all ClawSweeper work: OpenClaw issue/PR sweep reports, commit-review reports, repair jobs, cloud fix PRs, @clawsweeper maintainer mention commands, trusted ClawSweeper-reviewed autofix/automerge, GitHub Actions monitoring, permissions, gates, and manual backfills.",{"claudeCode":742},"steipete/clawdis","ClawSweeper Skill","https://github.com/steipete/clawdis",{"basePath":746,"githubOwner":747,"githubRepo":748,"locale":18,"slug":749,"type":246},".agents/skills/clawsweeper","steipete","clawdis","clawsweeper",{"evaluate":751,"extract":756},{"promptVersionExtension":206,"promptVersionScoring":207,"score":710,"tags":752,"targetMarket":218,"tier":294},[753,215,754,216,755],"github","code-review","ci-cd",{"commitSha":278,"license":238},{"repoId":758},"kd738npxg9yh3xf3vddzy9fyfh86nhng",[215,755,754,753,216],{"evaluatedAt":761,"extractAt":762,"updatedAt":761},1778697688364,1778697652123,{"_creationTime":764,"_id":765,"community":766,"display":767,"identity":773,"providers":778,"relations":785,"tags":789,"workflow":790},1778692124234.9265,"k178jr1rv0m9q9b5amrxb8htg186m79q",{"reviewCount":8},{"description":768,"installMethods":769,"name":771,"sourceUrl":772},"Automatisch Probleme mit Fähigkeiten beheben (zuerst sichere Vorschau). Auch mit --prune verwenden, um defekte Symlinks, leere Verzeichnisse und verwaiste Fähigkeiten zu finden und zu entfernen.",{"claudeCode":770},"khendzel/skills-janitor","janitor-fix","https://github.com/khendzel/skills-janitor",{"basePath":774,"githubOwner":775,"githubRepo":776,"locale":777,"slug":771,"type":246},"skills/janitor-fix","khendzel","skills-janitor","de",{"evaluate":779,"extract":784},{"promptVersionExtension":206,"promptVersionScoring":207,"score":710,"tags":780,"targetMarket":218,"tier":294},[781,216,217,215,782,783],"skills","bash","python",{"commitSha":278},{"parentExtensionId":786,"repoId":787,"translatedFrom":788},"k173y287h96a0x42zvrvymzvgn86nq38","kd722xn3d2v8ze2vwgebvzgpv986mj48","k172gnk14qpj28ndayqyr7y56186n1ys",[215,782,217,216,783,781],{"evaluatedAt":791,"extractAt":792,"updatedAt":793},1778691964565,1778691884319,1778692124234,{"_creationTime":795,"_id":796,"community":797,"display":798,"identity":804,"providers":808,"relations":815,"tags":818,"workflow":819},1778695548458.3396,"k17766dhj4pywk85qqmm05wpkd86m2c2",{"reviewCount":8},{"description":799,"installMethods":800,"name":802,"sourceUrl":803},"Remove dead code, unused imports, fix lint warnings, and normalize formatting across a codebase without changing business logic or architecture. Use when lint warnings have piled up during rapid development, unused imports and variables clutter files, dead code paths were never removed, formatting is inconsistent, or static analysis tools report fixable hygiene issues.\n",{"claudeCode":801},"pjt222/agent-almanac","clean-codebase","https://github.com/pjt222/agent-almanac",{"basePath":805,"githubOwner":806,"githubRepo":807,"locale":18,"slug":802,"type":246},"skills/clean-codebase","pjt222","agent-almanac",{"evaluate":809,"extract":814},{"promptVersionExtension":206,"promptVersionScoring":207,"score":290,"tags":810,"targetMarket":218,"tier":294},[216,217,811,812,813],"lint","dead-code","formatting",{"commitSha":278},{"parentExtensionId":816,"repoId":817},"k170h0janaa9kwn7cfgfz2ykss86mmh9","kd7aryv63z61j39n2td1aeqkvh86mh12",[217,812,813,811,216],{"evaluatedAt":820,"extractAt":821,"updatedAt":820},1778696641404,1778695548458,{"_creationTime":823,"_id":824,"community":825,"display":826,"identity":832,"providers":837,"relations":842,"tags":845,"workflow":846},1778692306427.105,"k171ertprrmbf0r91tay0wh4sx86n28d",{"reviewCount":8},{"description":827,"installMethods":828,"name":830,"sourceUrl":831},"Completely remove claude-ops plugin, all stored credentials, cached files, shell exports, and MCP registrations. Confirms each step before deletion.",{"claudeCode":829},"Lifecycle-Innovations-Limited/claude-ops","claude-ops uninstall","https://github.com/Lifecycle-Innovations-Limited/claude-ops",{"basePath":833,"githubOwner":834,"githubRepo":835,"locale":18,"slug":836,"type":246},"claude-ops/skills/uninstall","Lifecycle-Innovations-Limited","claude-ops","uninstall",{"evaluate":838,"extract":841},{"promptVersionExtension":206,"promptVersionScoring":207,"score":290,"tags":839,"targetMarket":218,"tier":294},[836,217,216,840],"cli",{"commitSha":278,"license":238},{"parentExtensionId":843,"repoId":844},"k17d0t6ns7y6t377pfprg128hd86nm89","kd7d52tcek2e34r805zs06b10d86n39v",[217,840,216,836],{"evaluatedAt":847,"extractAt":848,"updatedAt":847},1778693118184,1778692306427]