{"slug":"clusterlane","name":"Clusterlane","description":"See how your content hangs together — clusters, pillar pages and internal links — and what to fix first. You approve every change.","author":"cenovia","active_installs":0,"version":"1.3.2","wp_org_url":"https://wordpress.org/plugins/clusterlane/","is_closed":false,"cleanup":{"has_uninstall_hook":true,"drops_tables_on_uninstall":false,"deletes_options_on_uninstall":false},"tables":[{"table_name":"clusterlane_activity","full_table_name":"wp_clusterlane_activity","description":"Stores clusterlane activity data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"action","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"tool","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"post_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"target_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"cluster_key","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"detail","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"user_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"undone_at","type":"DATETIME","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_activity ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, action VARCHAR(20) NOT NULL, tool VARCHAR(20) NOT NULL DEFAULT '', post_id BIGINT UNSIGNED NOT NULL DEFAULT 0, target_id BIGINT UNSIGNED NOT NULL DEFAULT 0, cluster_key VARCHAR(100) NOT NULL DEFAULT '', detail VARCHAR(255) NOT NULL DEFAULT '', user_id BIGINT UNSIGNED NOT NULL DEFAULT 0, created_at DATETIME NOT NULL, undone_at DATETIME DEFAULT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_ai_cache","full_table_name":"wp_clusterlane_ai_cache","description":"A cache table that stores temporary computed or fetched data.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"cache_type","type":"VARCHAR(30)","nullable":false,"primary_key":false},{"name":"context_key","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"response_data","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"model_used","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"prompt_hash","type":"VARCHAR(32)","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"expires_at","type":"DATETIME","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_ai_cache ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, cache_type VARCHAR(30) NOT NULL, context_key VARCHAR(255) NOT NULL, response_data LONGTEXT NOT NULL, model_used VARCHAR(100) DEFAULT NULL, prompt_hash VARCHAR(32) DEFAULT NULL, created_at DATETIME NOT NULL, expires_at DATETIME DEFAULT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_cluster_post_class","full_table_name":"wp_clusterlane_cluster_post_class","description":"Stores clusterlane cluster post class data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"cluster_key","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"post_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"content_class","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"inbound_links","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"percentile","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"computed_at","type":"DATETIME","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_cluster_post_class ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, cluster_key VARCHAR(100) NOT NULL, post_id BIGINT UNSIGNED NOT NULL, content_class VARCHAR(20) NOT NULL DEFAULT 'light', inbound_links SMALLINT UNSIGNED NOT NULL DEFAULT 0, percentile TINYINT UNSIGNED NOT NULL DEFAULT 0, computed_at DATETIME DEFAULT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_clusters","full_table_name":"wp_clusterlane_clusters","description":"Stores clusterlane clusters data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"cluster_key","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"cluster_label","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"cluster_type","type":"VARCHAR(32)","nullable":false,"primary_key":false},{"name":"term_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"is_active","type":"TINYINT(1)","nullable":false,"primary_key":false},{"name":"archetype","type":"VARCHAR(50)","nullable":true,"primary_key":false},{"name":"health_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"entropy_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"gini_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"density_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"total_members","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"last_computed","type":"DATETIME","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_clusters ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, cluster_key VARCHAR(100) NOT NULL, cluster_label VARCHAR(255) NOT NULL DEFAULT '', cluster_type VARCHAR(32) NOT NULL DEFAULT 'category', term_id BIGINT UNSIGNED DEFAULT NULL, is_active TINYINT(1) NOT NULL DEFAULT 1, archetype VARCHAR(50) DEFAULT NULL, health_score TINYINT UNSIGNED NOT NULL DEFAULT 0, entropy_score TINYINT UNSIGNED NOT NULL DEFAULT 0, gini_score TINYINT UNSIGNED NOT NULL DEFAULT 0, density_score TINYINT UNSIGNED NOT NULL DEFAULT 0, total_members SMALLINT UNSIGNED NOT NULL DEFAULT 0, last_computed DATETIME DEFAULT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_custom_members","full_table_name":"wp_clusterlane_custom_members","description":"Stores clusterlane custom members data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"cluster_key","type":"VARCHAR(100)","nullable":false,"primary_key":false},{"name":"post_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"added_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_custom_members ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, cluster_key VARCHAR(100) NOT NULL, post_id BIGINT UNSIGNED NOT NULL, added_at DATETIME NOT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_links","full_table_name":"wp_clusterlane_links","description":"Stores clusterlane links data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"source_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"source_type","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"target_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"target_type","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"anchor_text","type":"VARCHAR(255)","nullable":false,"primary_key":false},{"name":"link_type","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"scanned_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_links ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, source_id BIGINT UNSIGNED NOT NULL, source_type VARCHAR(10) NOT NULL DEFAULT 'post', target_id BIGINT UNSIGNED NOT NULL, target_type VARCHAR(10) NOT NULL DEFAULT 'post', anchor_text VARCHAR(255) NOT NULL DEFAULT '', link_type VARCHAR(20) NOT NULL DEFAULT 'inline', scanned_at DATETIME NOT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_post_metrics","full_table_name":"wp_clusterlane_post_metrics","description":"Stores clusterlane post metrics data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"post_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"primary_cluster","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"seo_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"structure_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"overall_score","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"inbound_links","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"outbound_links","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"word_count","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"image_count","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"h2_count","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"content_class","type":"VARCHAR(20)","nullable":true,"primary_key":false},{"name":"last_scanned","type":"DATETIME","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_post_metrics ( post_id BIGINT UNSIGNED NOT NULL, primary_cluster VARCHAR(100) DEFAULT NULL, seo_score TINYINT UNSIGNED NOT NULL DEFAULT 0, structure_score TINYINT UNSIGNED NOT NULL DEFAULT 0, overall_score TINYINT UNSIGNED NOT NULL DEFAULT 0, inbound_links SMALLINT UNSIGNED NOT NULL DEFAULT 0, outbound_links SMALLINT UNSIGNED NOT NULL DEFAULT 0, word_count SMALLINT UNSIGNED NOT NULL DEFAULT 0, image_count SMALLINT UNSIGNED NOT NULL DEFAULT 0, h2_count SMALLINT UNSIGNED NOT NULL DEFAULT 0, content_class VARCHAR(20) DEFAULT NULL, last_scanned DATETIME DEFAULT NULL, PRIMARY KEY (post_id) ) $charset; \" );"},{"table_name":"clusterlane_snapshots","full_table_name":"wp_clusterlane_snapshots","description":"Stores clusterlane snapshots data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"snap_date","type":"DATE","nullable":false,"primary_key":false},{"name":"taken_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"source","type":"VARCHAR(10)","nullable":false,"primary_key":false},{"name":"metrics_version","type":"SMALLINT UNSIGNED","nullable":false,"primary_key":false},{"name":"articles","type":"INT UNSIGNED","nullable":false,"primary_key":false},{"name":"scanned","type":"INT UNSIGNED","nullable":false,"primary_key":false},{"name":"clusters","type":"INT UNSIGNED","nullable":false,"primary_key":false},{"name":"health","type":"TINYINT UNSIGNED","nullable":false,"primary_key":false},{"name":"orphans","type":"INT UNSIGNED","nullable":false,"primary_key":false},{"name":"avg_inbound","type":"DECIMAL(7,1)","nullable":false,"primary_key":false},{"name":"links","type":"INT UNSIGNED","nullable":false,"primary_key":false},{"name":"data","type":"LONGTEXT","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_snapshots ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, snap_date DATE NOT NULL, taken_at DATETIME NOT NULL, source VARCHAR(10) NOT NULL DEFAULT 'cron', metrics_version SMALLINT UNSIGNED NOT NULL DEFAULT 1, articles INT UNSIGNED NOT NULL DEFAULT 0, scanned INT UNSIGNED NOT NULL DEFAULT 0, clusters INT UNSIGNED NOT NULL DEFAULT 0, health TINYINT UNSIGNED NOT NULL DEFAULT 0, orphans INT UNSIGNED NOT NULL DEFAULT 0, avg_inbound DECIMAL(7,1) NOT NULL DEFAULT 0, links INT UNSIGNED NOT NULL DEFAULT 0, data LONGTEXT NOT NULL, PRIMARY KEY (id) ) $charset; \" );"},{"table_name":"clusterlane_tms_skipped","full_table_name":"wp_clusterlane_tms_skipped","description":"Stores clusterlane tms skipped data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"source_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"target_id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":false},{"name":"skipped_at","type":"DATETIME","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_clusterlane_tms_skipped ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, source_id BIGINT UNSIGNED NOT NULL, target_id BIGINT UNSIGNED NOT NULL, skipped_at DATETIME NOT NULL, PRIMARY KEY (id), UNIQUE KEY uniq_pair (source_id, target_id) ) $charset; \" );"}],"table_count":9}