[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-PostHog-managing-experiment-lifecycle-de":3,"guides-for-PostHog-managing-experiment-lifecycle":1658,"similar-k177ate2v49febw3emka0zeb9186n7yd-de":1659},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":15,"identity":255,"isFallback":237,"parentExtension":260,"providers":261,"relations":267,"repo":269,"tags":1655,"workflow":1656},1778695660274.506,"k177ate2v49febw3emka0zeb9186n7yd",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":13,"sourceUrl":14},"Guides experiment state transitions: launching, pausing, resuming, ending, shipping variants, archiving, resetting, and duplicating. Covers preconditions, implications for variant assignment and analysis, and the decision framework for when to use each action.\nTRIGGER when: user asks to launch, pause, resume, end, ship, archive, reset, or duplicate an experiment.\nDO NOT TRIGGER when: user is creating an experiment (use creating-experiments), configuring rollout (use configuring-experiment-rollout), or setting up metrics (use configuring-experiment-analytics).",{"claudeCode":12},"PostHog/posthog","Managing Experiment Lifecycle","https://github.com/PostHog/posthog",{"_creationTime":16,"_id":17,"extensionId":5,"locale":18,"result":19,"trustSignals":235,"workflow":253},1778697110075.2341,"kn7ddnamw233jtw5s4qc919pt986myxm","en",{"checks":20,"evaluatedAt":193,"extensionSummary":194,"features":195,"nonGoals":201,"practices":205,"prerequisites":210,"promptVersionExtension":212,"promptVersionScoring":213,"purpose":214,"rationale":215,"score":216,"summary":217,"tags":218,"targetMarket":224,"tier":225,"useCases":226,"workflow":230},[21,26,29,32,36,39,43,47,50,53,57,61,65,69,72,75,78,81,84,87,91,95,100,104,108,111,114,117,121,124,127,130,133,136,139,143,147,151,154,158,161,164,167,170,174,177,180,183,186,190],{"category":22,"check":23,"severity":24,"summary":25},"Practical Utility","Problem relevance","pass","The description clearly names the problem of guiding experiment state transitions and names specific actions and triggers, making the problem concrete and relevant.",{"category":22,"check":27,"severity":24,"summary":28},"Unique selling proposition","The skill provides a structured decision framework and detailed implications for each state transition, offering significant value beyond basic API calls or default LLM behavior for managing experiments.",{"category":22,"check":30,"severity":24,"summary":31},"Production readiness","The skill covers the complete lifecycle of experiment management, including preconditions, implications, and decision-making, making it ready for real-world workflows.",{"category":33,"check":34,"severity":24,"summary":35},"Scope","Single responsibility principle","The skill focuses exclusively on managing the lifecycle of experiments, adhering to a single, well-defined domain.",{"category":33,"check":37,"severity":24,"summary":38},"Description quality","The description accurately and concisely reflects the skill's capabilities and boundaries, including trigger and non-trigger conditions.",{"category":40,"check":41,"severity":24,"summary":42},"Invocation","Scoped tools","The skill exposes narrowly scoped verb-noun tools like `experiment-launch`, `experiment-pause`, etc., which are specific to experiment management actions.",{"category":44,"check":45,"severity":24,"summary":46},"Documentation","Configuration & parameter reference","The skill documents preconditions and required/optional parameters for each action, clearly explaining implications for variants and analysis. Missing explicit defaults, but implications are clear.",{"category":33,"check":48,"severity":24,"summary":49},"Tool naming","Tool names are descriptive and follow a clear verb-noun pattern relevant to experiment management (e.g., `experiment-launch`).",{"category":33,"check":51,"severity":24,"summary":52},"Minimal I/O surface","Tools accept specific parameters (e.g., `variant_key` for `ship-variant`) and return informative results or specific error codes, minimizing extraneous output.",{"category":54,"check":55,"severity":24,"summary":56},"License","License usability","The repository includes a LICENSE file with the MIT Expat license, which is a permissive open-source license.",{"category":58,"check":59,"severity":24,"summary":60},"Maintenance","Commit recency","The repository has recent commits as of May 13, 2026, indicating active maintenance.",{"category":58,"check":62,"severity":63,"summary":64},"Dependency Management","not_applicable","No third-party dependencies were detected for this skill script.",{"category":66,"check":67,"severity":63,"summary":68},"Security","Secret Management","The skill script does not appear to handle or expose any secrets.",{"category":66,"check":70,"severity":24,"summary":71},"Injection","The skill script does not load or execute third-party data as instructions, and all necessary assets are bundled within the repository.",{"category":66,"check":73,"severity":24,"summary":74},"Transitive Supply-Chain Grenades","The skill script does not fetch external content at runtime for execution, keeping all operations within the bundled repository.",{"category":66,"check":76,"severity":24,"summary":77},"Sandbox Isolation","The skill script operates within its defined scope and does not attempt to modify files or paths outside the project folder.",{"category":66,"check":79,"severity":24,"summary":80},"Sandbox escape primitives","No detached-process spawns or deny-retry loops were found in the skill script.",{"category":66,"check":82,"severity":24,"summary":83},"Data Exfiltration","The skill does not contain any imperative instructions to read or submit confidential data to a third party, and all outbound destinations are documented or not applicable.",{"category":66,"check":85,"severity":24,"summary":86},"Hidden Text Tricks","The bundled content and descriptions are free of hidden-steering tricks, invisible characters, or obfuscation techniques.",{"category":88,"check":89,"severity":24,"summary":90},"Hooks","Opaque code execution","The skill script is provided in plain, readable source code and does not use obfuscation methods like base64 decoding or runtime fetching.",{"category":92,"check":93,"severity":24,"summary":94},"Portability","Structural Assumption","The skill makes no assumptions about user-specific project organization outside its bundle and relies on resolving experiment IDs, not file paths.",{"category":96,"check":97,"severity":98,"summary":99},"Trust","Issues Attention","warning","With 544 open issues and 163 closed issues in the last 90 days, the closure rate is low (approx. 23%), indicating slow maintainer response to open issues.",{"category":101,"check":102,"severity":24,"summary":103},"Versioning","Release Management","The repository has a CHANGELOG.md and recent commits, indicating proper release management, even without a manifest version field.",{"category":105,"check":106,"severity":24,"summary":107},"Code Execution","Validation","Input parameters for tools are validated and constrained, such as requiring a specific `variant_key` for shipping variants.",{"category":66,"check":109,"severity":24,"summary":110},"Unguarded Destructive Operations","Destructive operations like ending or archiving experiments are guarded by explicit user interaction and confirmation within the skill's workflow.",{"category":105,"check":112,"severity":24,"summary":113},"Error Handling","The skill provides actionable error messages for various states (e.g., already launched, not launched yet) with clear explanations and implications.",{"category":105,"check":115,"severity":63,"summary":116},"Logging","The skill is read-only in terms of external system modifications and does not require logging of destructive actions.",{"category":118,"check":119,"severity":63,"summary":120},"Compliance","GDPR","The skill manages experiment lifecycles and does not operate on personal data.",{"category":118,"check":122,"severity":24,"summary":123},"Target market","The skill's functionality is general to experiment management and has no discernible regional or jurisdictional limitations; it is global.",{"category":92,"check":125,"severity":24,"summary":126},"Runtime stability","The skill operates using standard API calls and does not appear to make assumptions about specific operating systems, shells, or editor runtimes.",{"category":44,"check":128,"severity":24,"summary":129},"README","The README provides a comprehensive overview of PostHog, including its features and setup, though it's not specific to this skill. The SKILL.md is more relevant for this skill's purpose.",{"category":33,"check":131,"severity":24,"summary":132},"Tool surface size","The skill exposes a focused set of 8 distinct experiment lifecycle management tools.",{"category":40,"check":134,"severity":24,"summary":135},"Overlapping near-synonym tools","Tool names are distinct and cover specific lifecycle actions, avoiding near-synonym redundancy.",{"category":44,"check":137,"severity":24,"summary":138},"Phantom features","All advertised capabilities for managing experiment states are directly implemented as tools within the skill.",{"category":140,"check":141,"severity":63,"summary":142},"Install","Installation instruction","This skill is intended to be loaded and used within the Claude Code environment and does not have a separate installation procedure.",{"category":144,"check":145,"severity":24,"summary":146},"Errors","Actionable error messages","The skill provides specific error messages for various states, indicating the failure, cause, and implying next steps or required actions.",{"category":148,"check":149,"severity":63,"summary":150},"Execution","Pinned dependencies","The skill does not appear to use third-party dependencies that would require pinning.",{"category":33,"check":152,"severity":63,"summary":153},"Dry-run preview","The skill manages state transitions and does not involve outbound payloads or state-changing operations that would benefit from a dry-run mode.",{"category":155,"check":156,"severity":63,"summary":157},"Protocol","Idempotent retry & timeouts","The skill's operations are primarily local state transitions within PostHog, not remote calls requiring timeouts or idempotency guarantees.",{"category":118,"check":159,"severity":63,"summary":160},"Telemetry opt-in","The skill does not emit any telemetry.",{"category":40,"check":162,"severity":24,"summary":163},"Precise Purpose","The description clearly defines the artifact (experiments) and the verbs (launch, pause, end, etc.), providing precise triggers and explicit boundaries.",{"category":40,"check":165,"severity":24,"summary":166},"Concise Frontmatter","The frontmatter is concise and self-contained, summarizing the core capability and providing clear trigger phrases within reasonable character limits.",{"category":44,"check":168,"severity":24,"summary":169},"Concise Body","The SKILL.md body is under 500 lines, with detailed state diagrams and explanations, and delegates further material implicitly.",{"category":171,"check":172,"severity":24,"summary":173},"Context","Progressive Disclosure","The SKILL.md outlines the flow and actions, with detailed explanations and state diagrams, acting as a primary source without requiring external files for its core functionality.",{"category":171,"check":175,"severity":63,"summary":176},"Forked exploration","This skill is short-form and does not involve deep exploration or multi-file inspection; it manages direct state transitions.",{"category":22,"check":178,"severity":24,"summary":179},"Usage examples","The skill provides a comprehensive decision framework table that acts as a ready-to-use example of how to apply each action in different situations.",{"category":22,"check":181,"severity":24,"summary":182},"Edge cases","The skill explicitly lists failure modes and their meanings (e.g., \"Experiment has already been launched.\") with implied recovery steps (e.g., \"Use resume instead\").",{"category":105,"check":184,"severity":63,"summary":185},"Tool Fallback","This skill uses Claude-internal tools and does not rely on external MCP servers or custom tooling with fallbacks.",{"category":187,"check":188,"severity":24,"summary":189},"Safety","Halt on unexpected state","The skill defines preconditions for each action and provides clear error messages when these are not met, effectively halting on unexpected states.",{"category":92,"check":191,"severity":24,"summary":192},"Cross-skill coupling","The skill is self-contained for managing experiment lifecycles and explicitly cross-references other skills like `finding-experiments` for ID resolution, rather than silently handling adjacent tasks.",1778697109966,"This skill provides tools to manage the state transitions of experiments within PostHog, including launching, pausing, resuming, ending, shipping variants, archiving, resetting, and duplicating experiments.",[196,197,198,199,200],"Guides experiment state transitions (launch, pause, resume, end, ship, archive, reset, duplicate)","Covers preconditions for each action","Explains implications for variant assignment","Details impact on statistical analysis","Provides a decision framework for selecting actions",[202,203,204],"Creating new experiments (use `creating-experiments`)","Configuring experiment rollout (use `configuring-experiment-rollout`)","Setting up experiment metrics (use `configuring-experiment-analytics`)",[206,207,208,209],"Experiment lifecycle management","Product analytics","A/B testing","Feature flagging",[211],"An experiment ID to operate on","3.0.0","4.4.0","To provide clear guidance and execute actions for managing the entire lifecycle of product experiments, ensuring correct state transitions and understanding their impact on users and analysis.","The skill demonstrates high quality across most checks, with `Issues Attention` being the only warning. The extensive positive signals and lack of critical/major warnings place it in the verified tier.",93,"A high-quality skill for managing the complete lifecycle of experiments with clear actions and implications.",[219,220,221,222,223],"experimentation","a-b-testing","feature-flags","product-management","posthog","global","community",[227,228,229],"When a user asks to launch, pause, resume, end, ship, archive, reset, or duplicate an experiment.","When needing to understand the consequences of an experiment state change on user assignment or data collection.","When a user needs to clean up or restart an experiment's configuration.",[231,232,233,234],"Identify the desired experiment action (launch, pause, end, etc.).","Determine the current state and necessary preconditions.","Execute the corresponding tool with any required parameters (e.g., `variant_key`).","Review the outcome or error message provided by the tool.",{"codeQuality":236,"collectedAt":238,"documentation":239,"maintenance":242,"popularity":248,"security":249,"testCoverage":252},{"hasLockfile":237},true,1778697095112,{"descriptionLength":240,"readmeSize":241},565,10694,{"closedIssues90d":243,"forks":244,"hasChangelog":237,"openIssues90d":245,"pushedAt":246,"stars":247},163,2714,544,1778695622000,34459,{"npmDownloads":8},{"hasNpmPackage":237,"license":250,"smitheryVerified":251},"NOASSERTION",false,{"hasCi":251,"hasTests":237},{"updatedAt":254},1778697110075,{"basePath":256,"githubOwner":257,"githubRepo":223,"locale":18,"slug":258,"type":259},"products/experiments/skills/managing-experiment-lifecycle","PostHog","managing-experiment-lifecycle","skill",null,{"evaluate":262,"extract":264},{"promptVersionExtension":212,"promptVersionScoring":213,"score":216,"tags":263,"targetMarket":224,"tier":225},[219,220,221,222,223],{"commitSha":265,"license":266},"HEAD","MIT-0",{"repoId":268},"kd7f22zf7qb3eschtk9s2qdv4586mfts",{"_creationTime":270,"_id":268,"identity":271,"providers":272,"workflow":1650},1778695623992.2551,{"githubOwner":257,"githubRepo":223,"sourceUrl":14},{"classify":273,"discover":1626,"extract":1629,"github":1631,"npm":1649},{"commitSha":265,"extensions":274},[275,287,295,303,311,319,327,335,343,351,359,367,375,383,391,399,406,414,422,430,438,446,453,461,469,477,484,491,499,507,515,523,530,538,546,554,561,569,577,584,592,606,618,626,634,642,650,658,666,674,682,698,706,716,730,748,758,767,775,787,795,803,811,819,827,835,843,851,859,867,877,885,893,901,913,923,931,939,944,952,960,968,979,999,1007,1033,1041,1049,1057,1071,1089,1097,1205,1217,1247,1257,1267,1281,1289,1297,1305,1313,1321,1329,1337,1345,1353,1361,1369,1377,1388,1400,1412,1421,1430,1439,1448,1458,1466,1475,1485,1494,1505,1514,1523,1532,1541,1551,1561,1572,1582,1592,1602,1617],{"basePath":276,"description":277,"displayName":278,"installMethods":279,"rationale":280,"selectedPaths":281,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/customerio","Send event data and emails into Customer.io.","Customer.io",{"claudeCode":278},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/customerio/plugin.json",[282],{"path":283,"priority":284},"plugin.json","mandatory","rule","plugin",{"basePath":288,"description":289,"displayName":290,"installMethods":291,"rationale":292,"selectedPaths":293,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/hubspot","Send contact data to Hubspot on PostHog identify events.","Hubspot",{"claudeCode":290},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/hubspot/plugin.json",[294],{"path":283,"priority":284},{"basePath":296,"description":297,"displayName":298,"installMethods":299,"rationale":300,"selectedPaths":301,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/intercom","Send event data to Intercom on PostHog events.","Intercom",{"claudeCode":298},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/intercom/plugin.json",[302],{"path":283,"priority":284},{"basePath":304,"description":305,"displayName":306,"installMethods":307,"rationale":308,"selectedPaths":309,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/pace-posthog-integration","Pace is a tool that equips sellers with relevant insights at the right time so they can spend time growing revenue. It allows them to convert, retain, and grow customers by prioritizing time and effort on the users who need it most.","Pace Integration",{"claudeCode":306},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/pace-posthog-integration/plugin.json",[310],{"path":283,"priority":284},{"basePath":312,"description":313,"displayName":314,"installMethods":315,"rationale":316,"selectedPaths":317,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-avo","Export PostHog events to Avo inspector.","Avo Inspector Plugin",{"claudeCode":314},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-avo/plugin.json",[318],{"path":283,"priority":284},{"basePath":320,"description":321,"displayName":322,"installMethods":323,"rationale":324,"selectedPaths":325,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-braze-app","Import analytics from Braze and export PostHog events to Braze.","Braze",{"claudeCode":322},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-braze-app/plugin.json",[326],{"path":283,"priority":284},{"basePath":328,"description":329,"displayName":330,"installMethods":331,"rationale":332,"selectedPaths":333,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-engage-so","Send user and event data to Engage for personalized  engagement.","Engage",{"claudeCode":330},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-engage-so/plugin.json",[334],{"path":283,"priority":284},{"basePath":336,"description":337,"displayName":338,"installMethods":339,"rationale":340,"selectedPaths":341,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-gcs","Sends events to GCS on ingestion.","GCS Export",{"claudeCode":338},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-gcs/plugin.json",[342],{"path":283,"priority":284},{"basePath":344,"description":345,"displayName":346,"installMethods":347,"rationale":348,"selectedPaths":349,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-laudspeaker-app","Send event data to Laudspeaker","Laudspeaker",{"claudeCode":346},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-laudspeaker-app/plugin.json",[350],{"path":283,"priority":284},{"basePath":352,"description":353,"displayName":354,"installMethods":355,"rationale":356,"selectedPaths":357,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-patterns-app","Send events data to Patterns App","Patterns App",{"claudeCode":354},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-patterns-app/plugin.json",[358],{"path":283,"priority":284},{"basePath":360,"description":361,"displayName":362,"installMethods":363,"rationale":364,"selectedPaths":365,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/posthog-plugin-replicator","Replicate PostHog event stream in another PostHog instance","Replicator",{"claudeCode":362},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/posthog-plugin-replicator/plugin.json",[366],{"path":283,"priority":284},{"basePath":368,"description":369,"displayName":370,"installMethods":371,"rationale":372,"selectedPaths":373,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/pubsub","Sends events to a Pub/Sub topic on ingestion.","Pub/Sub Export",{"claudeCode":370},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/pubsub/plugin.json",[374],{"path":283,"priority":284},{"basePath":376,"description":377,"displayName":378,"installMethods":379,"rationale":380,"selectedPaths":381,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/rudderstack-posthog","Send event data to RudderStack","RudderStack",{"claudeCode":378},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/rudderstack-posthog/plugin.json",[382],{"path":283,"priority":284},{"basePath":384,"description":385,"displayName":386,"installMethods":387,"rationale":388,"selectedPaths":389,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/salesforce","Relay PostHog events to Salesforce","Salesforce Export Plugin",{"claudeCode":386},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/salesforce/plugin.json",[390],{"path":283,"priority":284},{"basePath":392,"description":393,"displayName":394,"installMethods":395,"rationale":396,"selectedPaths":397,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_destinations/sendgrid","Send emails and user data to Sendgrid when you identify users using PostHog.","Sendgrid",{"claudeCode":394},"plugin manifest at nodejs/src/cdp/legacy-plugins/_destinations/sendgrid/plugin.json",[398],{"path":283,"priority":284},{"basePath":400,"displayName":401,"installMethods":402,"rationale":403,"selectedPaths":404,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/Plugin-Stonly-Clean-Campaign-Name","Clean Campaign Name",{"claudeCode":401},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/Plugin-Stonly-Clean-Campaign-Name/plugin.json",[405],{"path":283,"priority":284},{"basePath":407,"description":408,"displayName":409,"installMethods":410,"rationale":411,"selectedPaths":412,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/currency-normalization-plugin","Deprecated","Currency Normalization",{"claudeCode":409},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/currency-normalization-plugin/plugin.json",[413],{"path":283,"priority":284},{"basePath":415,"description":416,"displayName":417,"installMethods":418,"rationale":419,"selectedPaths":420,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/downsampling-plugin","Reduces event volume coming into PostHog","Downsampling Plugin",{"claudeCode":417},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/downsampling-plugin/plugin.json",[421],{"path":283,"priority":284},{"basePath":423,"description":424,"displayName":425,"installMethods":426,"rationale":427,"selectedPaths":428,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/drop-events-on-property-plugin","This plugin will drop any events that have a specific key. If you supply a value, it will drop any event with the combination of they key and the value. You will not be billed for any events that this plugin drops.","Drop Events Based On Property",{"claudeCode":425},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/drop-events-on-property-plugin/plugin.json",[429],{"path":283,"priority":284},{"basePath":431,"description":432,"displayName":433,"installMethods":434,"rationale":435,"selectedPaths":436,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/first-time-event-tracker","Deprecated.","First Time Event Tracker",{"claudeCode":433},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/first-time-event-tracker/plugin.json",[437],{"path":283,"priority":284},{"basePath":439,"description":440,"displayName":441,"installMethods":442,"rationale":443,"selectedPaths":444,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/flatten-properties-plugin","Flatten event properties to easily access them in filters.","Property Flattener Plugin",{"claudeCode":441},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/flatten-properties-plugin/plugin.json",[445],{"path":283,"priority":284},{"basePath":447,"displayName":448,"installMethods":449,"rationale":450,"selectedPaths":451,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/language-url-splitter-app","Language URL stripper",{"claudeCode":448},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/language-url-splitter-app/plugin.json",[452],{"path":283,"priority":284},{"basePath":454,"description":455,"displayName":456,"installMethods":457,"rationale":458,"selectedPaths":459,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/ph-shotgun-processevent-app","A custom app to rename specific event names during the migration of Shotgun events from US to EU","ph-shotgun-processevent-app",{"claudeCode":456},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/ph-shotgun-processevent-app/plugin.json",[460],{"path":283,"priority":284},{"basePath":462,"description":463,"displayName":464,"installMethods":465,"rationale":466,"selectedPaths":467,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/plugin-advanced-geoip","Advanced GeoIP filtering app for PostHog","Advanced GeoIP",{"claudeCode":464},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/plugin-advanced-geoip/plugin.json",[468],{"path":283,"priority":284},{"basePath":470,"description":471,"displayName":472,"installMethods":473,"rationale":474,"selectedPaths":475,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/plugin-netdata-event-processing","A Posthog plugin to do some data processing on our Posthog events as they arrive.","PostHog Netdata Event Processing",{"claudeCode":472},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/plugin-netdata-event-processing/plugin.json",[476],{"path":283,"priority":284},{"basePath":478,"displayName":479,"installMethods":480,"rationale":481,"selectedPaths":482,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/plugin-stonly-UTM-Extractor","UTM Extractor",{"claudeCode":479},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/plugin-stonly-UTM-Extractor/plugin.json",[483],{"path":283,"priority":284},{"basePath":485,"description":486,"displayName":486,"installMethods":487,"rationale":488,"selectedPaths":489,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-anonymization","Anonymization and normalisation",{"claudeCode":486},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-anonymization/plugin.json",[490],{"path":283,"priority":284},{"basePath":492,"description":493,"displayName":494,"installMethods":495,"rationale":496,"selectedPaths":497,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-app-unduplicator","Prevent duplicates in your data when ingesting.","Unduplicates",{"claudeCode":494},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-app-unduplicator/plugin.json",[498],{"path":283,"priority":284},{"basePath":500,"description":501,"displayName":502,"installMethods":503,"rationale":504,"selectedPaths":505,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-app-url-parameters-to-event-properties","Converts URL query parameters to event properties","URL parameters to event properties",{"claudeCode":502},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-app-url-parameters-to-event-properties/plugin.json",[506],{"path":283,"priority":284},{"basePath":508,"description":509,"displayName":510,"installMethods":511,"rationale":512,"selectedPaths":513,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-filter-out-plugin","Filter out events where property values satisfy the given condition","Filter Out Plugin",{"claudeCode":510},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-filter-out-plugin/plugin.json",[514],{"path":283,"priority":284},{"basePath":516,"description":517,"displayName":518,"installMethods":519,"rationale":520,"selectedPaths":521,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-plugin-geoip","Enrich PostHog events and persons with IP location data","GeoIP",{"claudeCode":518},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-plugin-geoip/plugin.json",[522],{"path":283,"priority":284},{"basePath":524,"displayName":525,"installMethods":526,"rationale":527,"selectedPaths":528,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-plugin-snowplow-referer-parser","UTM Referrer",{"claudeCode":525},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-plugin-snowplow-referer-parser/plugin.json",[529],{"path":283,"priority":284},{"basePath":531,"description":532,"displayName":533,"installMethods":534,"rationale":535,"selectedPaths":536,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-route-censor-plugin","Removes segments of URLs based on route patterns.","Route Censor",{"claudeCode":533},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-route-censor-plugin/plugin.json",[537],{"path":283,"priority":284},{"basePath":539,"description":540,"displayName":541,"installMethods":542,"rationale":543,"selectedPaths":544,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/posthog-url-normalizer-plugin","A PostHog plugin to normalize the format of urls in your application allowing you to more easily compare them in insights.","URL Normalizer",{"claudeCode":541},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/posthog-url-normalizer-plugin/plugin.json",[545],{"path":283,"priority":284},{"basePath":547,"description":548,"displayName":549,"installMethods":550,"rationale":551,"selectedPaths":552,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/property-filter-plugin","This plugin will set all configured properties to null inside an ingested event.","Property Filter",{"claudeCode":549},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/property-filter-plugin/plugin.json",[553],{"path":283,"priority":284},{"basePath":555,"displayName":556,"installMethods":557,"rationale":558,"selectedPaths":559,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/semver-flattener-plugin","posthog-semver-flattener",{"claudeCode":556},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/semver-flattener-plugin/plugin.json",[560],{"path":283,"priority":284},{"basePath":562,"description":563,"displayName":564,"installMethods":565,"rationale":566,"selectedPaths":567,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/taxonomy-plugin","Standardize your event names into a single pattern.","Taxonomy Plugin",{"claudeCode":564},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/taxonomy-plugin/plugin.json",[568],{"path":283,"priority":284},{"basePath":570,"description":571,"displayName":572,"installMethods":573,"rationale":574,"selectedPaths":575,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/timestamp-parser-plugin","Parse your event timestamps into useful date properties.","Timestamp Parser",{"claudeCode":572},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/timestamp-parser-plugin/plugin.json",[576],{"path":283,"priority":284},{"basePath":578,"displayName":579,"installMethods":580,"rationale":581,"selectedPaths":582,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/url-parser","URL Params Parser (Beta)",{"claudeCode":579},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/url-parser/plugin.json",[583],{"path":283,"priority":284},{"basePath":585,"description":586,"displayName":587,"installMethods":588,"rationale":589,"selectedPaths":590,"source":285,"sourceLanguage":18,"type":286},"nodejs/src/cdp/legacy-plugins/_transformations/user-agent-plugin","Enhances events with user agent details","User Agent Populator",{"claudeCode":587},"plugin manifest at nodejs/src/cdp/legacy-plugins/_transformations/user-agent-plugin/plugin.json",[591],{"path":283,"priority":284},{"basePath":593,"description":594,"displayName":595,"installMethods":596,"rationale":597,"selectedPaths":598,"source":285,"sourceLanguage":18,"type":259},".agents/skills/adding-personhog-rpc","Guide for adding a new RPC to personhog-replica and personhog-router. Covers eligibility checks, proto definition, code generation for Python and Node.js clients, Rust implementation (storage trait, postgres queries, service handler, router wiring), and index compatibility validation. Use when adding a new gRPC endpoint to personhog, migrating a Django ORM query to personhog, or extending the personhog service API.\n","adding-personhog-rpc",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/adding-personhog-rpc/SKILL.md",[599,601,604],{"path":600,"priority":284},"SKILL.md",{"path":602,"priority":603},"references/database-indexes.md","medium",{"path":605,"priority":603},"references/proto-conventions.md",{"basePath":607,"description":608,"displayName":609,"installMethods":610,"rationale":611,"selectedPaths":612,"source":285,"sourceLanguage":18,"type":259},".agents/skills/adopting-generated-api-types","Use when migrating frontend code from manual API client calls (`api.get`, `api.create`, `api.surveys.get`, `api.dashboards.list`, `new ApiRequest()`) and handwritten TypeScript interfaces to generated API functions and types. Triggers on files importing from `lib/api`, files with `api.get\u003C`, `api.create\u003C`, `api.\u003Centity>.\u003Cmethod>`, manual interface definitions that duplicate backend serializers, or any frontend file that constructs API URLs by hand. Covers the full replacement workflow — finding the generated equivalent, swapping imports, adapting call sites, and removing dead manual types.","adopting-generated-api-types",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/adopting-generated-api-types/SKILL.md",[613,614,616],{"path":600,"priority":284},{"path":615,"priority":603},"references/migration-patterns.md",{"path":617,"priority":603},"references/type-compatibility.md",{"basePath":619,"description":620,"displayName":621,"installMethods":622,"rationale":623,"selectedPaths":624,"source":285,"sourceLanguage":18,"type":259},".agents/skills/clickhouse-migrations","ClickHouse migration patterns and rules. Use when creating or modifying ClickHouse migrations.","clickhouse-migrations",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/clickhouse-migrations/SKILL.md",[625],{"path":600,"priority":284},{"basePath":627,"description":628,"displayName":629,"installMethods":630,"rationale":631,"selectedPaths":632,"source":285,"sourceLanguage":18,"type":259},".agents/skills/debugging-ci-failures","Debugs failing GitHub Actions CI runs for PostHog PRs, commits, and branches. Use when the user asks why CI is red, mentions a failing check, GitHub Actions run, Depot runner, workflow, job, shard, flaky test, lint failure, typecheck failure, snapshot diff, migration check, generated types drift, or skills build failure. Guides read-only inspection, failure classification, smallest local reproduction with hogli, and safe reporting without rerunning CI or posting to GitHub.\n","debugging-ci-failures",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/debugging-ci-failures/SKILL.md",[633],{"path":600,"priority":284},{"basePath":635,"description":636,"displayName":637,"installMethods":638,"rationale":639,"selectedPaths":640,"source":285,"sourceLanguage":18,"type":259},".agents/skills/django-migrations","Django migration patterns and safety workflow for PostHog. Use when creating, adjusting, or reviewing Django/Postgres migrations, including non-blocking index/constraint changes, multi-phase schema changes, data backfills, migration conflict rebasing, and product model moves that require SeparateDatabaseAndState.","django-migrations",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/django-migrations/SKILL.md",[641],{"path":600,"priority":284},{"basePath":643,"description":644,"displayName":645,"installMethods":646,"rationale":647,"selectedPaths":648,"source":285,"sourceLanguage":18,"type":259},".agents/skills/hogli","PostHog developer CLI and repo tooling reference. Use when the user mentions hogli, asks about repo CLI tools, bin scripts, Makefiles, how to run/build/test/lint, or any dev environment commands.\n","hogli",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/hogli/SKILL.md",[649],{"path":600,"priority":284},{"basePath":651,"description":652,"displayName":653,"installMethods":654,"rationale":655,"selectedPaths":656,"source":285,"sourceLanguage":18,"type":259},".agents/skills/implementing-agent-modes","Guidelines to create/update a new mode for PostHog AI agent. Modes are a way to limit what tools, prompts, and prompt injections are applied and under what conditions. Achieve better results using your plan mode.","implementing-agent-modes",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/implementing-agent-modes/SKILL.md",[657],{"path":600,"priority":284},{"basePath":659,"description":660,"displayName":661,"installMethods":662,"rationale":663,"selectedPaths":664,"source":285,"sourceLanguage":18,"type":259},".agents/skills/implementing-mcp-tools","Guide for exposing PostHog product endpoints as MCP tools. Use when creating new or updating API endpoints, adding MCP tool definitions, scaffolding YAML configs, or writing serializers with good descriptions. Covers the full pipeline from Django serializer to generated TypeScript tool handler.","implementing-mcp-tools",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/implementing-mcp-tools/SKILL.md",[665],{"path":600,"priority":284},{"basePath":667,"description":668,"displayName":669,"installMethods":670,"rationale":671,"selectedPaths":672,"source":285,"sourceLanguage":18,"type":259},".agents/skills/implementing-mcp-ui-apps","Guide for adding MCP UI apps — interactive visualizations that render tool results in MCP clients like Claude Desktop. Use when adding a new detail or list view for an MCP tool, creating view components in products/*/mcp/apps/, or linking tools to UI apps via YAML.","implementing-mcp-ui-apps",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/implementing-mcp-ui-apps/SKILL.md",[673],{"path":600,"priority":284},{"basePath":675,"description":676,"displayName":677,"installMethods":678,"rationale":679,"selectedPaths":680,"source":285,"sourceLanguage":18,"type":259},".agents/skills/implementing-warehouse-sources","Implement and extend PostHog Data warehouse import sources. Use when adding a new source under posthog/temporal/data_imports/sources, adding datasets/endpoints to an existing source, or adding incremental sync, resumable imports, webhook ingestion, pagination, credentials validation, and source tests.","implementing-warehouse-sources",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/implementing-warehouse-sources/SKILL.md",[681],{"path":600,"priority":284},{"basePath":683,"description":684,"displayName":685,"installMethods":686,"rationale":687,"selectedPaths":688,"source":285,"sourceLanguage":18,"type":259},".agents/skills/improving-drf-endpoints","Use when editing, reviewing, or auditing DRF viewsets and serializers in PostHog. Triggers on files in posthog/api/, products/*/backend/api/, products/*/backend/presentation/, or any file importing rest_framework. Covers field typing, schema annotations, enum collision fixes, and OpenAPI spec quality — everything that flows downstream into generated TypeScript types and MCP tools.","improving-drf-endpoints",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/improving-drf-endpoints/SKILL.md",[689,690,692,694,696],{"path":600,"priority":284},{"path":691,"priority":603},"references/common-anti-patterns.md",{"path":693,"priority":603},"references/quick-reference-table.md",{"path":695,"priority":603},"references/serializer-fields.md",{"path":697,"priority":603},"references/viewset-annotations.md",{"basePath":699,"description":700,"displayName":701,"installMethods":702,"rationale":703,"selectedPaths":704,"source":285,"sourceLanguage":18,"type":259},".agents/skills/ingestion-pipeline-doctor-nodejs","Ingestion pipeline architecture overview and convention reference. Use when you need a quick orientation to the pipeline framework or want to know which doctor agent to use for a specific concern.\n","ingestion-pipeline-doctor-nodejs",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/ingestion-pipeline-doctor-nodejs/SKILL.md",[705],{"path":600,"priority":284},{"basePath":707,"description":708,"displayName":709,"installMethods":710,"rationale":711,"selectedPaths":712,"source":285,"sourceLanguage":18,"type":259},".agents/skills/isolating-product-facade-contracts","Plan and execute incremental product isolation migrations to a facade plus contract layer in PostHog, following the Visual review architecture. Use when a product still exposes internals (models/logic/views) across boundaries and needs a safe, multi-PR migration toward contracts.py + facade/api.py + presentation separation.","isolating-product-facade-contracts",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/isolating-product-facade-contracts/SKILL.md",[713,714],{"path":600,"priority":284},{"path":715,"priority":603},"references/phased-migration-plan.md",{"basePath":717,"description":718,"displayName":719,"installMethods":720,"rationale":721,"selectedPaths":722,"source":285,"sourceLanguage":18,"type":259},".agents/skills/making-scenes-tab-aware","Guides converting PostHog frontend scenes to be tab aware for internal scene tabs. Use when adding or refactoring a `SceneExport` scene, fixing state leaking between internal tabs, preserving scene state across tab switches, or moving scene-level URL state out of child logics. Triggers on files with `SceneExport`, `tabId`, `tabAwareScene`, `urlToAction`, `actionToUrl`, or `useAttachedLogic`.","making-scenes-tab-aware",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/making-scenes-tab-aware/SKILL.md",[723,724,726,728],{"path":600,"priority":284},{"path":725,"priority":603},"references/audit-commands.md",{"path":727,"priority":603},"references/migration-checklist.md",{"path":729,"priority":603},"references/repo-patterns.md",{"basePath":731,"description":732,"displayName":733,"installMethods":734,"rationale":735,"selectedPaths":736,"source":285,"sourceLanguage":18,"type":259},".agents/skills/modifying-taxonomic-filter","Guides safe modification of the TaxonomicFilter — PostHog's multi-tab picker for events, actions, properties, cohorts, and more. Front-loads the empirical product reality (what users actually pick and search for) so changes can be judged against real behavior, not architectural taste. Use when adding features, fixing bugs, or refactoring TaxonomicFilter.","modifying-taxonomic-filter",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/modifying-taxonomic-filter/SKILL.md",[737,738,740,742,744,746],{"path":600,"priority":284},{"path":739,"priority":603},"references/architecture.md",{"path":741,"priority":603},"references/call-sites-and-blast-radius.md",{"path":743,"priority":603},"references/common-pitfalls.md",{"path":745,"priority":603},"references/refreshing-product-reality.md",{"path":747,"priority":603},"references/testing-patterns.md",{"basePath":749,"description":750,"displayName":751,"installMethods":752,"rationale":753,"selectedPaths":754,"source":285,"sourceLanguage":18,"type":259},".agents/skills/monitoring-capture-service","Guide for using the Grafana MCP to monitor and diagnose the capture service (rust/capture) in production. Use when investigating latency, event loss, Kafka backpressure, Redis issues, rate limiting, Envoy proxy issues, or any capture health question. Covers prod-us and prod-eu environments.\n","monitoring-capture-service",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/monitoring-capture-service/SKILL.md",[755,756],{"path":600,"priority":284},{"path":757,"priority":603},"references/investigation-playbooks.md",{"basePath":759,"description":760,"displayName":761,"installMethods":762,"rationale":763,"selectedPaths":764,"source":285,"sourceLanguage":18,"type":259},".agents/skills/monitoring-ingestion-pipeline","Guide for using the Grafana MCP to monitor and diagnose the Node.js ingestion pipeline workers in production. Use when investigating event lag, drops, pipeline errors, person/group processing, Kafka consumer health, Redis, Postgres, ClickHouse downstream health, or any ingestion worker question. Covers prod-us and prod-eu environments.\n","monitoring-ingestion-pipeline",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/monitoring-ingestion-pipeline/SKILL.md",[765,766],{"path":600,"priority":284},{"path":757,"priority":603},{"basePath":768,"description":769,"displayName":770,"installMethods":771,"rationale":772,"selectedPaths":773,"source":285,"sourceLanguage":18,"type":259},".agents/skills/playwright-test","Write a playwright test, make sure it runs, and is not flaky.","playwright-test",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/playwright-test/SKILL.md",[774],{"path":600,"priority":284},{"basePath":776,"description":777,"displayName":778,"installMethods":779,"rationale":780,"selectedPaths":781,"source":285,"sourceLanguage":18,"type":259},".agents/skills/qa-team","Multi-agent QA review team for code changes. This skill should be used when the user asks to \"review my code\", \"run QA\", \"qa-team\", \"review this branch\", \"code review\", \"check my changes\", or wants a comprehensive multi-perspective code review of the current branch's changes. Spawns parallel specialist agents (security, database, reliability, compatibility, data integrity, performance, frontend, copy) that independently review the diff and produce a converged report. Also includes two generalist reviewers for convergence validation.\n","qa-team",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/qa-team/SKILL.md",[782,783,785],{"path":600,"priority":284},{"path":784,"priority":603},"references/incident-patterns.md",{"path":786,"priority":603},"references/personas.md",{"basePath":788,"description":789,"displayName":790,"installMethods":791,"rationale":792,"selectedPaths":793,"source":285,"sourceLanguage":18,"type":259},".agents/skills/query-clickhouse-via-metabase","Run ClickHouse `system.query_log` analysis via the internal Metabase API. Use when investigating slow queries, materialization candidates, per-team query performance, ClickHouse cost or memory issues, or any system.query_log question. Covers prod-us and prod-eu, SSO-gated cookie auth via `hogli`, and ready-to-run query patterns.\n","query-clickhouse-via-metabase",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/query-clickhouse-via-metabase/SKILL.md",[794],{"path":600,"priority":284},{"basePath":796,"description":797,"displayName":798,"installMethods":799,"rationale":800,"selectedPaths":801,"source":285,"sourceLanguage":18,"type":259},".agents/skills/react-doctor","Diagnose and fix React codebase health issues. Use when reviewing React code, fixing performance problems, auditing security, or improving code quality.","react-doctor",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/react-doctor/SKILL.md",[802],{"path":600,"priority":284},{"basePath":804,"description":805,"displayName":806,"installMethods":807,"rationale":808,"selectedPaths":809,"source":285,"sourceLanguage":18,"type":259},".agents/skills/scene-menu-bar","Conventions for adding or editing the SceneMenuBar above a scene's \u003CSceneTitleSection>. Use when adding new menu items, moving items between menus, gating behind feature flags, building a new scene's menubar, or wiring rich inputs (tags, combobox) into the bar.","scene-menu-bar",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/scene-menu-bar/SKILL.md",[810],{"path":600,"priority":284},{"basePath":812,"description":813,"displayName":814,"installMethods":815,"rationale":816,"selectedPaths":817,"source":285,"sourceLanguage":18,"type":259},".agents/skills/sending-notifications","How to send real-time in-app notifications from PostHog backend code. Use when integrating notifications into a new feature, wiring up a notification source (alerts, comments, approvals, pipelines, issues), or choosing the right target type and priority for a notification.","sending-notifications",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/sending-notifications/SKILL.md",[818],{"path":600,"priority":284},{"basePath":820,"description":821,"displayName":822,"installMethods":823,"rationale":824,"selectedPaths":825,"source":285,"sourceLanguage":18,"type":259},".agents/skills/setup-web-tests","Set up Python test environment in Claude Code for web where flox is unavailable. Use when you need to run backend tests and `uv sync` fails due to Python version mismatch.","setup-web-tests",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/setup-web-tests/SKILL.md",[826],{"path":600,"priority":284},{"basePath":828,"description":829,"displayName":830,"installMethods":831,"rationale":832,"selectedPaths":833,"source":285,"sourceLanguage":18,"type":259},".agents/skills/survey-sdk-audit","Audit PostHog survey SDK features and version requirements","survey-sdk-audit",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/survey-sdk-audit/SKILL.md",[834],{"path":600,"priority":284},{"basePath":836,"description":837,"displayName":838,"installMethods":839,"rationale":840,"selectedPaths":841,"source":285,"sourceLanguage":18,"type":259},".agents/skills/using-kea-disposables","Use when adding timers (`setInterval`, `setTimeout`), event listeners (`window.addEventListener`, `document.addEventListener`, `MediaQueryList.addEventListener`), or any other resource that needs cleanup inside a kea logic. Every logic has `cache.disposables.add(setup, key?, options?)` and `cache.disposables.dispose(key)` available via the globally registered `disposablesPlugin` (`frontend/src/kea-disposables.ts`). Replaces the bare `cache.foo = setInterval(...)` + `beforeUnmount: clearInterval(cache.foo)` pattern and auto-pauses background work when the tab is hidden.","using-kea-disposables",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/using-kea-disposables/SKILL.md",[842],{"path":600,"priority":284},{"basePath":844,"description":845,"displayName":846,"installMethods":847,"rationale":848,"selectedPaths":849,"source":285,"sourceLanguage":18,"type":259},".agents/skills/writing-skills","Guide for writing PostHog agent skills — job-to-be-done templates that teach agents how to use MCP tools to achieve a goal. Use when adding new product functionality that agents should know how to work with, creating a new skill, or updating existing skills in products/*/skills/.","writing-skills",{"claudeCode":12},"SKILL.md frontmatter at .agents/skills/writing-skills/SKILL.md",[850],{"path":600,"priority":284},{"basePath":852,"description":853,"displayName":854,"installMethods":855,"rationale":856,"selectedPaths":857,"source":285,"sourceLanguage":18,"type":259},"products/data_warehouse/skills/auditing-warehouse-data-health","Audit the health of a PostHog project's data warehouse — find every broken or degraded pipeline item across sources, sync schemas, materialized views, batch exports, and transformations. Use when the user asks \"what's broken in my warehouse?\", \"give me a health check\", \"audit my data pipeline\", \"why are some dashboards stale?\", or wants a one-shot triage summary before deciding where to spend time. Produces a prioritized report of issues grouped by severity and type, with recommended next steps.\n","auditing-warehouse-data-health",{"claudeCode":12},"SKILL.md frontmatter at products/data_warehouse/skills/auditing-warehouse-data-health/SKILL.md",[858],{"path":600,"priority":284},{"basePath":860,"description":861,"displayName":862,"installMethods":863,"rationale":864,"selectedPaths":865,"source":285,"sourceLanguage":18,"type":259},"products/data_warehouse/skills/diagnosing-failed-warehouse-syncs","Diagnose why a data warehouse sync is failing and recommend the right recovery action. Use when the user asks \"why isn't my Stripe/Postgres/Hubspot sync working?\", \"this table has been stuck for hours\", \"the data in the warehouse looks wrong\", or wants to troubleshoot a specific source or schema. Covers source-level vs schema-level failures, stuck Running states, credential and schema-drift errors, incremental-field misconfig, CDC prerequisite failures, and the cancel / reload / resync / delete-data recovery actions.\n","diagnosing-failed-warehouse-syncs",{"claudeCode":12},"SKILL.md frontmatter at products/data_warehouse/skills/diagnosing-failed-warehouse-syncs/SKILL.md",[866],{"path":600,"priority":284},{"basePath":868,"description":869,"displayName":870,"installMethods":871,"rationale":872,"selectedPaths":873,"source":285,"sourceLanguage":18,"type":259},"products/data_warehouse/skills/setting-up-a-data-warehouse-source","Guide the user through connecting a new data warehouse source — Postgres, MySQL, Stripe, Hubspot, MongoDB, Salesforce, BigQuery, Snowflake, and so on. Use when the user wants to \"connect Stripe\", \"import data from Postgres\", \"add a new data source\", \"sync my warehouse tables\", or wants to pick sync methods for each table. Walks through source-type discovery, credential validation, table discovery, per-table sync_type selection, and the final create call. Also covers picking a good prefix and what to do right after creation.\n","setting-up-a-data-warehouse-source",{"claudeCode":12},"SKILL.md frontmatter at products/data_warehouse/skills/setting-up-a-data-warehouse-source/SKILL.md",[874,875],{"path":600,"priority":284},{"path":876,"priority":603},"references/sync-types.md",{"basePath":878,"description":879,"displayName":880,"installMethods":881,"rationale":882,"selectedPaths":883,"source":285,"sourceLanguage":18,"type":259},"products/data_warehouse/skills/suggesting-data-imports","Use when the user asks about revenue, payments, subscriptions, billing, CRM deals, support tickets, production database tables, or other data that PostHog does not collect natively. Also use when a query fails because a table does not exist or returns no results for expected external data. The data warehouse can import from SaaS tools (Stripe, Hubspot, etc.), production databases (Postgres, MySQL, BigQuery, Snowflake), and other arbitrary data sources. Covers checking existing sources, identifying the right source type, and guiding the setup.","suggesting-data-imports",{"claudeCode":12},"SKILL.md frontmatter at products/data_warehouse/skills/suggesting-data-imports/SKILL.md",[884],{"path":600,"priority":284},{"basePath":886,"description":887,"displayName":888,"installMethods":889,"rationale":890,"selectedPaths":891,"source":285,"sourceLanguage":18,"type":259},"products/data_warehouse/skills/tuning-incremental-sync-config","Change the sync configuration of an existing data warehouse schema — switch sync_type, pick a different incremental_field, set primary_key_columns, choose cdc_table_mode, or change sync_frequency. Use when the user asks \"switch my orders table from full refresh to incremental\", \"this table is syncing too slowly / too frequently\", \"I need to pick a different incremental column\", \"set up CDC for this Postgres table\", or when diagnosis of a failing sync pointed to an incremental-field or PK misconfiguration.\n","tuning-incremental-sync-config",{"claudeCode":12},"SKILL.md frontmatter at products/data_warehouse/skills/tuning-incremental-sync-config/SKILL.md",[892],{"path":600,"priority":284},{"basePath":894,"description":895,"displayName":896,"installMethods":897,"rationale":898,"selectedPaths":899,"source":285,"sourceLanguage":18,"type":259},"products/experiments/skills/analyzing-experiment-session-replays","Analyze session replay patterns across experiment variants to understand user behavior differences. Use when the user wants to see how users interact with different experiment variants, identify usability issues, compare behavior patterns between control and test groups, or get qualitative insights to complement quantitative experiment results.","analyzing-experiment-session-replays",{"claudeCode":12},"SKILL.md frontmatter at products/experiments/skills/analyzing-experiment-session-replays/SKILL.md",[900],{"path":600,"priority":284},{"basePath":902,"description":903,"displayName":904,"installMethods":905,"rationale":906,"selectedPaths":907,"source":285,"sourceLanguage":18,"type":259},"products/experiments/skills/configuring-experiment-analytics","Configures the analytics side of a PostHog experiment — exposure criteria (default `$feature_flag_called` vs custom exposure events), primary and secondary metrics, the supported metric types (count, sum, ratio with `math` and `math_property`, retention with `retention_window_start` and `start_handling`), multivariate user handling (\"Exclude\" vs \"First seen variant\"), and how to read results once the experiment is live. Use when the user adds or edits a primary or secondary metric (e.g. \"add a secondary metric tracking 'downloaded_file' per user\"), sets up a ratio metric (e.g. \"revenue from purchase_completed / pageviews\"), sets up a retention metric (e.g. \"$pageview → uploaded_file, 7-day window\"), configures custom exposure (e.g. \"only count users who hit /checkout\"), changes multivariate handling, or asks \"who is in the analysis?\", \"how do I measure impact?\", \"is this winning?\", \"what's the confidence level?\", or \"should I ship?\".","configuring-experiment-analytics",{"claudeCode":12},"SKILL.md frontmatter at products/experiments/skills/configuring-experiment-analytics/SKILL.md",[908,909,911],{"path":600,"priority":284},{"path":910,"priority":603},"references/interpreting-results.md",{"path":912,"priority":603},"references/metric-configuration.md",{"basePath":914,"description":915,"displayName":916,"installMethods":917,"rationale":918,"selectedPaths":919,"source":285,"sourceLanguage":18,"type":259},"products/experiments/skills/configuring-experiment-rollout","Configures the rollout shape of a PostHog experiment — the variant split (50/50, 80/20, A/B/C ratios), the overall rollout percentage that gates how many users enter the experiment, and the disambiguation when a percentage like \"roll out to 25%\" could mean either. Use when the user mentions a rollout percentage, variant split, or traffic distribution; gives a ratio like 60/40, 70/30, or 80/20; asks \"who sees the test variant?\"; wants to increase, decrease, or change the rollout or split on a draft or running experiment; weighs equal vs uneven splits; or proposes a mid-experiment split change (often an anti-pattern that needs reset or end-and-restart).","configuring-experiment-rollout",{"claudeCode":12},"SKILL.md frontmatter at products/experiments/skills/configuring-experiment-rollout/SKILL.md",[920,921],{"path":600,"priority":284},{"path":922,"priority":603},"references/changing-distribution-after-launch.md",{"basePath":924,"description":925,"displayName":926,"installMethods":927,"rationale":928,"selectedPaths":929,"source":285,"sourceLanguage":18,"type":259},"products/experiments/skills/creating-experiments","Guides agents through the 3-step experiment creation flow: defining the hypothesis, configuring rollout, and setting up analytics. Delegates rollout decisions to configuring-experiment-rollout and metric setup to configuring-experiment-analytics.\nTRIGGER when: user asks to create a new experiment or A/B test, OR when you are about to call experiment-create.\nDO NOT TRIGGER when: user is updating an existing experiment, managing lifecycle, or only browsing experiments.","creating-experiments",{"claudeCode":12},"SKILL.md frontmatter at products/experiments/skills/creating-experiments/SKILL.md",[930],{"path":600,"priority":284},{"basePath":932,"description":933,"displayName":934,"installMethods":935,"rationale":936,"selectedPaths":937,"source":285,"sourceLanguage":18,"type":259},"products/experiments/skills/finding-experiments","Resolves a PostHog experiment reference from natural language to a concrete experiment ID by browsing `experiment-list` (not feature-flag tools), with disambiguation when multiple experiments match. Use when the user names or quotes an experiment (\"split test demo\", \"the File engagement boost experiment\", \"onboarding retention test\", \"landing page hero experiment\", \"pricing experiment\"), describes it loosely (\"the signup experiment\", \"my pricing test\", \"the one with the new checkout\"), uses a relative reference (\"latest\", \"most recent\", \"the one I created yesterday\"), filters by status (running, draft, stopped, archived), or otherwise refers to an experiment by anything other than its concrete ID.","finding-experiments",{"claudeCode":12},"SKILL.md frontmatter at products/experiments/skills/finding-experiments/SKILL.md",[938],{"path":600,"priority":284},{"basePath":256,"description":10,"displayName":258,"installMethods":940,"rationale":941,"selectedPaths":942,"source":285,"sourceLanguage":18,"type":259},{"claudeCode":12},"SKILL.md frontmatter at products/experiments/skills/managing-experiment-lifecycle/SKILL.md",[943],{"path":600,"priority":284},{"basePath":945,"description":946,"displayName":947,"installMethods":948,"rationale":949,"selectedPaths":950,"source":285,"sourceLanguage":18,"type":259},"products/feature_flags/skills/cleaning-up-stale-feature-flags","Identify and clean up stale feature flags in a PostHog project. Use when the user wants to find unused, fully rolled out, or abandoned feature flags, review them for safety, and then disable or delete them. Covers staleness detection, dependency checking, and safe removal workflows.","cleaning-up-stale-feature-flags",{"claudeCode":12},"SKILL.md frontmatter at products/feature_flags/skills/cleaning-up-stale-feature-flags/SKILL.md",[951],{"path":600,"priority":284},{"basePath":953,"description":954,"displayName":955,"installMethods":956,"rationale":957,"selectedPaths":958,"source":285,"sourceLanguage":18,"type":259},"products/feature_flags/skills/copying-flags-across-projects","Copy a feature flag from one PostHog project to one or more target projects in the same organization. Use when the user wants to duplicate a flag, promote a flag from staging to production, sync flags across projects, or replicate a flag configuration in a different workspace. Covers cohort remapping, scheduled-change handling, encrypted payloads, and the safe defaults (disabled in target, no scheduled changes).","copying-flags-across-projects",{"claudeCode":12},"SKILL.md frontmatter at products/feature_flags/skills/copying-flags-across-projects/SKILL.md",[959],{"path":600,"priority":284},{"basePath":961,"description":962,"displayName":963,"installMethods":964,"rationale":965,"selectedPaths":966,"source":285,"sourceLanguage":18,"type":259},"products/growth/skills/diagnosing-sdk-health","Diagnoses the health of a project's PostHog SDK integrations — which SDKs are up to date, which are outdated, and what to do about it. Use when a user asks about PostHog SDK versions, outdated SDKs, upgrade recommendations, \"SDK health\", \"SDK doctor\", or when events or features seem off and it might be due to using an old SDK.\n","diagnosing-sdk-health",{"claudeCode":12},"SKILL.md frontmatter at products/growth/skills/diagnosing-sdk-health/SKILL.md",[967],{"path":600,"priority":284},{"basePath":969,"description":970,"displayName":971,"installMethods":972,"rationale":973,"selectedPaths":974,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/exploring-llm-clusters","Investigate LLM analytics clusters — understand usage patterns in AI/LLM traffic, compare cluster behavior, compute cost/latency metrics, and drill into individual traces within clusters.","exploring-llm-clusters",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/exploring-llm-clusters/SKILL.md",[975,976],{"path":600,"priority":284},{"path":977,"priority":978},"scripts/print_clusters.py","low",{"basePath":980,"description":981,"displayName":982,"installMethods":983,"rationale":984,"selectedPaths":985,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/exploring-llm-costs","Investigate LLM spend in PostHog — total cost over time, cost by model, provider, user, trace, or custom dimension, token and cache-hit economics, and cost regressions. Use when the user asks \"how much are we spending on LLMs?\", \"which model / user / feature is most expensive?\", \"why did cost spike?\", wants to build a cost dashboard or alert, or pastes a trace URL and asks about its cost.\n","exploring-llm-costs",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/exploring-llm-costs/SKILL.md",[986,987,989,991,993,995,997],{"path":600,"priority":284},{"path":988,"priority":603},"references/breakdown-patterns.md",{"path":990,"priority":603},"references/cache-accounting.md",{"path":992,"priority":603},"references/cost-properties.md",{"path":994,"priority":603},"references/cost-sources.md",{"path":996,"priority":603},"references/materializing.md",{"path":998,"priority":603},"references/regression-debugging.md",{"basePath":1000,"description":1001,"displayName":1002,"installMethods":1003,"rationale":1004,"selectedPaths":1005,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/exploring-llm-evaluations","Investigate LLM analytics evaluations of both types — `hog` (deterministic code-based) and `llm_judge` (LLM-prompt-based). Find existing evaluations, inspect their configuration, run them against specific generations, query individual pass/fail results, and generate AI-powered summaries of patterns across many runs. Use when the user asks to debug why an evaluation is failing, surface common failure modes, compare results across filters, dry-run a Hog evaluator, prototype a new LLM-judge prompt, or manage the evaluation lifecycle (create, update, enable/disable, delete).\n","exploring-llm-evaluations",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/exploring-llm-evaluations/SKILL.md",[1006],{"path":600,"priority":284},{"basePath":1008,"description":1009,"displayName":1010,"installMethods":1011,"rationale":1012,"selectedPaths":1013,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/exploring-llm-traces","ABSOLUTE MUST to debug and inspect LLM/AI agent traces using PostHog's MCP tools. Use when the user pastes a trace or session URL (e.g. /llm-analytics/traces/\u003Cid> or /llm-analytics/sessions/\u003Cid>), asks to debug a trace, figure out what went wrong, check if an agent used a tool correctly, verify context/files were surfaced, inspect subagent behavior, investigate LLM decisions, or analyze token usage and costs.\n","exploring-llm-traces",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/exploring-llm-traces/SKILL.md",[1014,1015,1017,1019,1021,1023,1025,1027,1029,1031],{"path":600,"priority":284},{"path":1016,"priority":603},"references/events-and-properties.md",{"path":1018,"priority":603},"references/example-llm-trace.md.j2",{"path":1020,"priority":603},"references/example-llm-traces-list.md",{"path":1022,"priority":978},"scripts/extract_conversation.py",{"path":1024,"priority":978},"scripts/extract_span.py",{"path":1026,"priority":978},"scripts/print_summary.py",{"path":1028,"priority":978},"scripts/print_timeline.py",{"path":1030,"priority":978},"scripts/search_traces.py",{"path":1032,"priority":978},"scripts/show_structure.py",{"basePath":1034,"description":1035,"displayName":1036,"installMethods":1037,"rationale":1038,"selectedPaths":1039,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/feature-usage-feed","Set up an LLM-judge evaluation that extracts canonical use cases for a PostHog feature at scale and streams the results to a Slack channel as a live feed. Use when someone wants to understand how users are actually using a specific AI/LLM-powered feature in production — what they're investigating, what questions they're trying to answer, and what patterns surface — without manually reading hundreds of traces. Assumes the feature emits `$ai_generation` and `$ai_evaluation` events with `$session_id` linkage to the trigger user's recording (the standard setup post the session-summary linkage PRs).\n","feature-usage-feed",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/feature-usage-feed/SKILL.md",[1040],{"path":600,"priority":284},{"basePath":1042,"description":1043,"displayName":1044,"installMethods":1045,"rationale":1046,"selectedPaths":1047,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/skills-store","Discover and use shared team skills stored in PostHog. Use when the user asks to list, browse, load, or manage \"shared skills\", \"team skills\", or references the \"skills store\" / \"skill store\".","skills-store",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/skills-store/SKILL.md",[1048],{"path":600,"priority":284},{"basePath":1050,"description":1051,"displayName":1052,"installMethods":1053,"rationale":1054,"selectedPaths":1055,"source":285,"sourceLanguage":18,"type":259},"products/llm_analytics/skills/working-with-skills","Best practices for agents managing PostHog skills via the MCP `llma-skill-*` tools — how to discover, read, create, update, and refactor skills efficiently, especially large skills with many bundled files. Use whenever you are about to call any `llma-skill-*` tool, asked to author or edit a shared skill, or troubleshoot why a skill write was rejected. Pairs with `skills-store` (which covers the raw tool surface) by adding the decision-tree, efficiency, and pitfall guidance.","working-with-skills",{"claudeCode":12},"SKILL.md frontmatter at products/llm_analytics/skills/working-with-skills/SKILL.md",[1056],{"path":600,"priority":284},{"basePath":1058,"description":1059,"displayName":1060,"installMethods":1061,"rationale":1062,"selectedPaths":1063,"source":285,"sourceLanguage":18,"type":259},"products/logs/skills/authoring-log-alerts","Author useful, low-noise log alerts on services in a PostHog project. Use when the user asks to set up alerts for their logs, suggest alerts they should add, or evaluate whether a service is worth monitoring. Covers service triage, baseline characterisation, threshold drafting, back-testing via simulate, and shipping with a notification destination.\n","authoring-log-alerts",{"claudeCode":12},"SKILL.md frontmatter at products/logs/skills/authoring-log-alerts/SKILL.md",[1064,1065,1067,1069],{"path":600,"priority":284},{"path":1066,"priority":603},"references/threshold-defaults.md",{"path":1068,"priority":603},"references/volume-floor-alerts.md",{"path":1070,"priority":978},"scripts/baseline_stats.py",{"basePath":1072,"description":1073,"displayName":1074,"installMethods":1075,"rationale":1076,"selectedPaths":1077,"source":285,"sourceLanguage":18,"type":259},"products/posthog_ai/skills/auditing-experiments-flags","Audit PostHog experiments and feature flags for configuration issues, staleness, and best-practice violations. Read when the user asks to audit, health-check, or review experiments or feature flags, check flag hygiene, or verify experiment setup.","auditing-experiments-flags",{"claudeCode":12},"SKILL.md frontmatter at products/posthog_ai/skills/auditing-experiments-flags/SKILL.md",[1078,1079,1081,1083,1085,1087],{"path":600,"priority":284},{"path":1080,"priority":603},"references/experiment-checks.md",{"path":1082,"priority":603},"references/finding-taxonomy.md",{"path":1084,"priority":603},"references/flag-checks.md.j2",{"path":1086,"priority":603},"references/remediation-actions.md",{"path":1088,"priority":603},"references/synthesis-patterns.md",{"basePath":1090,"description":1091,"displayName":1092,"installMethods":1093,"rationale":1094,"selectedPaths":1095,"source":285,"sourceLanguage":18,"type":259},"products/posthog_ai/skills/managing-subscriptions","Manage PostHog subscriptions — scheduled email, Slack, or webhook deliveries of insight or dashboard snapshots. Use when the user wants to subscribe to an insight or dashboard, check existing subscriptions, change delivery frequency, add or remove recipients, or stop receiving updates.","managing-subscriptions",{"claudeCode":12},"SKILL.md frontmatter at products/posthog_ai/skills/managing-subscriptions/SKILL.md",[1096],{"path":600,"priority":284},{"basePath":1098,"description":1099,"displayName":1100,"installMethods":1101,"rationale":1102,"selectedPaths":1103,"source":285,"sourceLanguage":18,"type":259},"products/posthog_ai/skills/querying-posthog-data","Required reading before writing any HogQL/SQL or calling execute-sql against PostHog. Use whenever the user wants to search, find, or do complex aggregations PostHog entities (insights, dashboards, cohorts, feature flags, experiments, surveys, hog flows, data warehouse, persons, etc.) and query analytics data (trends, funnels, retention, lifecycle, paths, stickiness, web analytics, error tracking, logs, sessions, LLM traces). Covers HogQL syntax differences from ClickHouse SQL, system table schemas (system.*), available functions, query examples, and the schema-discovery workflow.","querying-posthog-data",{"claudeCode":12},"SKILL.md frontmatter at products/posthog_ai/skills/querying-posthog-data/SKILL.md",[1104,1105,1107,1109,1111,1113,1115,1117,1118,1119,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203],{"path":600,"priority":284},{"path":1106,"priority":603},"references/available-functions.md.j2",{"path":1108,"priority":603},"references/example-error-tracking.md.j2",{"path":1110,"priority":603},"references/example-event-taxonomy.md.j2",{"path":1112,"priority":603},"references/example-funnel-breakdown.md.j2",{"path":1114,"priority":603},"references/example-funnel-trends.md.j2",{"path":1116,"priority":603},"references/example-lifecycle.md.j2",{"path":1018,"priority":603},{"path":1020,"priority":603},{"path":1120,"priority":603},"references/example-logs.md.j2",{"path":1122,"priority":603},"references/example-paths.md.j2",{"path":1124,"priority":603},"references/example-person-property-taxonomy.md.j2",{"path":1126,"priority":603},"references/example-retention.md.j2",{"path":1128,"priority":603},"references/example-session-replay.md.j2",{"path":1130,"priority":603},"references/example-sessions.md.j2",{"path":1132,"priority":603},"references/example-stickiness.md.j2",{"path":1134,"priority":603},"references/example-team-taxonomy.md.j2",{"path":1136,"priority":603},"references/example-trends-breakdowns.md.j2",{"path":1138,"priority":603},"references/example-trends-unique-users.md.j2",{"path":1140,"priority":603},"references/example-web-overview.md.j2",{"path":1142,"priority":603},"references/example-web-path-stats.md.j2",{"path":1144,"priority":603},"references/example-web-traffic-by-device-type.md.j2",{"path":1146,"priority":603},"references/example-web-traffic-channels.md.j2",{"path":1148,"priority":603},"references/guidelines.md",{"path":1150,"priority":603},"references/hogql-extensions.md",{"path":1152,"priority":603},"references/models-actions.md",{"path":1154,"priority":603},"references/models-activity-logs.md",{"path":1156,"priority":603},"references/models-alerts.md",{"path":1158,"priority":603},"references/models-annotations.md",{"path":1160,"priority":603},"references/models-batch-exports.md",{"path":1162,"priority":603},"references/models-cohorts.md",{"path":1164,"priority":603},"references/models-dashboards-insights.md",{"path":1166,"priority":603},"references/models-data-warehouse.md",{"path":1168,"priority":603},"references/models-early-access-features.md",{"path":1170,"priority":603},"references/models-endpoints.md",{"path":1172,"priority":603},"references/models-error-tracking.md",{"path":1174,"priority":603},"references/models-flags-experiments.md",{"path":1176,"priority":603},"references/models-hog-flows.md",{"path":1178,"priority":603},"references/models-hog-functions.md",{"path":1180,"priority":603},"references/models-integrations.md",{"path":1182,"priority":603},"references/models-llm-analytics-reviews.md",{"path":1184,"priority":603},"references/models-logs.md",{"path":1186,"priority":603},"references/models-notebooks.md",{"path":1188,"priority":603},"references/models-session-recording-playlists.md",{"path":1190,"priority":603},"references/models-session-recordings.md",{"path":1192,"priority":603},"references/models-support-tickets.md",{"path":1194,"priority":603},"references/models-surveys.md",{"path":1196,"priority":603},"references/models-usage-metrics.md",{"path":1198,"priority":603},"references/models-variables.md",{"path":1200,"priority":603},"references/person-property-modes.md",{"path":1202,"priority":603},"references/taxonomy-dynamic-properties.md",{"path":1204,"priority":603},"references/taxonomy-skipped-events.md",{"basePath":1206,"description":1207,"displayName":1208,"installMethods":1209,"rationale":1210,"selectedPaths":1211,"source":285,"sourceLanguage":18,"type":259},"products/product_analytics/skills/exploring-autocapture-events","Guides exploration of $autocapture events captured by posthog-js to understand user interactions, find CSS selectors (especially data-attr attributes), evaluate selector uniqueness, query matching clicks ad-hoc, and create actions. Use when the user asks about autocapture data, wants to find what users are clicking, needs to build actions from click events, asks about elements_chain, wants to build a trend or funnel filtered by clicks or other autocapture interactions, asks which properties autocapture sends, or asks how to filter $autocapture events. Only applies to projects using posthog-js autocapture.\n","exploring-autocapture-events",{"claudeCode":12},"SKILL.md frontmatter at products/product_analytics/skills/exploring-autocapture-events/SKILL.md",[1212,1213,1215],{"path":600,"priority":284},{"path":1214,"priority":603},"references/elements-chain-format.md",{"path":1216,"priority":603},"references/example-queries.md",{"basePath":1218,"description":1219,"displayName":1220,"installMethods":1221,"rationale":1222,"selectedPaths":1223,"source":285,"sourceLanguage":18,"type":259},"products/product_analytics/skills/investigate-metric","Diagnose why a product metric changed (dropped, spiked, or plateaued) by orchestrating breakdowns, actors, paths, lifecycle, retention, and annotations queries. Use when the user reports an anomaly, asks \"why did X change?\", or needs root-cause analysis for a trend, funnel, retention, stickiness, or lifecycle metric.\n","investigate-metric",{"claudeCode":12},"SKILL.md frontmatter at products/product_analytics/skills/investigate-metric/SKILL.md",[1224,1225,1227,1229,1231,1233,1235,1237,1239,1241,1243,1245],{"path":600,"priority":284},{"path":1226,"priority":603},"references/box-plot-playbook.md",{"path":1228,"priority":603},"references/common-causes.md",{"path":1230,"priority":603},"references/funnel-playbook.md",{"path":1232,"priority":603},"references/lifecycle-playbook.md",{"path":1234,"priority":603},"references/paths-playbook.md",{"path":1236,"priority":603},"references/retention-playbook.md",{"path":1238,"priority":603},"references/shared-patterns.md",{"path":1240,"priority":603},"references/stickiness-playbook.md",{"path":1242,"priority":603},"references/trend-playbook.md",{"path":1244,"priority":978},"scripts/breakdown_attribution.py",{"path":1246,"priority":978},"scripts/compare_to_prior_periods.py",{"basePath":1248,"description":1249,"displayName":1250,"installMethods":1251,"rationale":1252,"selectedPaths":1253,"source":285,"sourceLanguage":18,"type":259},"products/query_performance_ai/sandboxed_autoresearch_agent/pi_plugin/skills/clickhouse-autoresearch-campaign","Run a ClickHouse query optimization campaign on one git branch using pi-autoresearch, dynamic lanes and hypotheses, baseline result capture, correctness checks, and stagnation-aware lane/campaign review.","clickhouse-autoresearch-campaign",{"claudeCode":12},"SKILL.md frontmatter at products/query_performance_ai/sandboxed_autoresearch_agent/pi_plugin/skills/clickhouse-autoresearch-campaign/SKILL.md",[1254,1255],{"path":600,"priority":284},{"path":1256,"priority":603},"orchestration.md",{"basePath":1258,"description":1259,"displayName":1260,"installMethods":1261,"rationale":1262,"selectedPaths":1263,"source":285,"sourceLanguage":18,"type":259},"products/replay/skills/debugging-local-replay","Debugs why session recordings aren't appearing in the local dev environment. Use when a developer reports that local replay ingestion isn't working, recordings aren't showing up despite /s calls, or the replay pipeline seems broken after hogli start. Covers the full local pipeline: SDK capture, Caddy proxy, capture-replay (Rust), Kafka, ingestion-sessionreplay (Node), recording-api (Node), SeaweedFS, and common failure modes like orphaned processes, stuck phrocs workers, and trigger misconfiguration.\n","debugging-local-replay",{"claudeCode":12},"SKILL.md frontmatter at products/replay/skills/debugging-local-replay/SKILL.md",[1264,1265],{"path":600,"priority":284},{"path":1266,"priority":603},"references/common-failures.md",{"basePath":1268,"description":1269,"displayName":1270,"installMethods":1271,"rationale":1272,"selectedPaths":1273,"source":285,"sourceLanguage":18,"type":259},"products/replay/skills/diagnosing-missing-recordings","Diagnoses why a session recording is missing or was not captured. Use when a user asks why a session has no replay, why recordings aren't appearing, or wants to troubleshoot session replay capture issues for a specific session ID or across their project. Covers SDK diagnostic signals, project settings, sampling, triggers, ad blockers, and quota/billing scenarios.\n","diagnosing-missing-recordings",{"claudeCode":12},"SKILL.md frontmatter at products/replay/skills/diagnosing-missing-recordings/SKILL.md",[1274,1275,1277,1279],{"path":600,"priority":284},{"path":1276,"priority":603},"references/diagnosis-logic.md",{"path":1278,"priority":603},"references/diagnostic-signals.md",{"path":1280,"priority":603},"references/examples.md",{"basePath":1282,"description":1283,"displayName":1284,"installMethods":1285,"rationale":1286,"selectedPaths":1287,"source":285,"sourceLanguage":18,"type":259},"products/replay/skills/finding-replay-for-issue","Finds the most informative session recording linked to an error tracking issue. Use when a user has an error tracking issue ID and wants to watch a replay showing what the user was doing when the error occurred. Ranks linked sessions by recency, activity score, and journey completeness, then summarizes the pre-error context. Replaces blind session picking from potentially hundreds of linked recordings.\n","finding-replay-for-issue",{"claudeCode":12},"SKILL.md frontmatter at products/replay/skills/finding-replay-for-issue/SKILL.md",[1288],{"path":600,"priority":284},{"basePath":1290,"description":1291,"displayName":1292,"installMethods":1293,"rationale":1294,"selectedPaths":1295,"source":285,"sourceLanguage":18,"type":259},"products/replay/skills/investigating-replay","Investigates a session recording by gathering metadata, person profile, same-session events, and linked error tracking issues in one pass. Use when a user provides a recording or session ID and wants to understand what happened — who the user was, what they did, what errors occurred, and whether there are related error tracking issues. Replaces the manual chain of session-recording-get, persons-retrieve, execute-sql, and query-error-tracking-issues-list.\n","investigating-replay",{"claudeCode":12},"SKILL.md frontmatter at products/replay/skills/investigating-replay/SKILL.md",[1296],{"path":600,"priority":284},{"basePath":1298,"description":1299,"displayName":1300,"installMethods":1301,"rationale":1302,"selectedPaths":1303,"source":285,"sourceLanguage":18,"type":259},"products/signals/skills/inbox-exploration","Explore PostHog's Inbox — the surface where signal reports surface as actionable issues and trends. Use when the user asks \"what's in my inbox?\", \"what should I look at?\", \"which reports are actionable?\", \"what's PostHog flagged recently?\", asks about a specific report by ID or title, or wants to see which signal sources are configured. Covers listing, filtering, and drilling into reports, plus pointers to the deeper `signals` skill when raw signals or semantic search are needed.\n","inbox-exploration",{"claudeCode":12},"SKILL.md frontmatter at products/signals/skills/inbox-exploration/SKILL.md",[1304],{"path":600,"priority":284},{"basePath":1306,"description":1307,"displayName":1308,"installMethods":1309,"rationale":1310,"selectedPaths":1311,"source":285,"sourceLanguage":18,"type":259},"products/signals/skills/signals","How to query the document_embeddings table for raw signal data using HogQL. Use when you need to perform semantic search over signals, fetch every signal that contributed to a specific report, or list signal types. For browsing the curated report layer (the Inbox) — listing reports, filtering by status/source, drilling into a single report by ID — use the `inbox-exploration` skill first; drop into this skill afterwards if the user wants the underlying observations.\n","signals",{"claudeCode":12},"SKILL.md frontmatter at products/signals/skills/signals/SKILL.md",[1312],{"path":600,"priority":284},{"basePath":1314,"description":1315,"displayName":1316,"installMethods":1317,"rationale":1318,"selectedPaths":1319,"source":285,"sourceLanguage":18,"type":259},"products/tracing/skills/exploring-apm-traces","Investigates distributed application performance using PostHog APM (OpenTelemetry span) data via MCP. Use when the user asks about service traces, slow HTTP/database spans, error spans, trace IDs, or span attributes — not LLM analytics traces or product logs. Uses posthog:query-apm-spans, posthog:apm-trace-get, posthog:apm-services-list, posthog:apm-attributes-list, and posthog:apm-attribute-values-list.\n","exploring-apm-traces",{"claudeCode":12},"SKILL.md frontmatter at products/tracing/skills/exploring-apm-traces/SKILL.md",[1320],{"path":600,"priority":284},{"basePath":1322,"description":1323,"displayName":1324,"installMethods":1325,"rationale":1326,"selectedPaths":1327,"source":285,"sourceLanguage":18,"type":259},"products/visual_review/skills/triaging-visual-review-runs","Inspects PostHog Visual Review (VR) runs that gate PR merges with screenshot regression checks. Use when the user mentions \"visual review\", \"VR\", \"snapshot diff\", \"screenshot test\", \"storybook regression\", \"playwright snapshot\", asks why a PR is blocked or what changed visually, wants to triage the VR backlog, decide whether a snapshot diff is real vs flaky, or check whether a story has been changing across runs. Also invoke when a PR has a failing `visual-review` status check, when a PR comment mentions \"Visual review\", or when the user is on a branch with an open VR run.\n","triaging-visual-review-runs",{"claudeCode":12},"SKILL.md frontmatter at products/visual_review/skills/triaging-visual-review-runs/SKILL.md",[1328],{"path":600,"priority":284},{"basePath":1330,"description":1331,"displayName":1332,"installMethods":1333,"rationale":1334,"selectedPaths":1335,"source":285,"sourceLanguage":18,"type":259},"products/web_analytics/skills/exploring-live-traffic","Inspects PostHog Web analytics Live tab data — current users online, last-30-minutes pageviews, top pages, referrers, devices, browsers, countries, bot traffic, and the per-minute bot/users charts. Use when the user asks \"who is on my site right now?\", \"what is happening live?\", \"what bots are crawling me?\", asks about the \"live tab\" / \"live dashboard\", wants live numbers (last 30 min), or wants help filtering or drilling into the live view. Also covers building product-analytics insights that mirror what the tiles show.","exploring-live-traffic",{"claudeCode":12},"SKILL.md frontmatter at products/web_analytics/skills/exploring-live-traffic/SKILL.md",[1336],{"path":600,"priority":284},{"basePath":1338,"description":1339,"displayName":1340,"installMethods":1341,"rationale":1342,"selectedPaths":1343,"source":285,"sourceLanguage":18,"type":259},"products/web_analytics/skills/managing-path-cleaning-rules","Inspects URL paths and proposes, tests, orders, and applies project-level path cleaning rules so dynamic segments (numeric IDs, UUIDs, slugs, dates) collapse into readable aliases. Use when the user says \"clean the paths\", \"normalize URLs\", \"group similar pages\", \"too many distinct paths\", \"/users/123 and /users/456 are the same page\", \"set up path cleaning\", or asks why a Web analytics or Paths breakdown is fragmented across thousands of nearly-identical URLs. Covers regex syntax (re2), alias placeholder convention, rule ordering, the test workflow, and applying rules via the project-settings-update MCP tool.","managing-path-cleaning-rules",{"claudeCode":12},"SKILL.md frontmatter at products/web_analytics/skills/managing-path-cleaning-rules/SKILL.md",[1344],{"path":600,"priority":284},{"basePath":1346,"description":1347,"displayName":1348,"installMethods":1349,"rationale":1350,"selectedPaths":1351,"source":285,"sourceLanguage":18,"type":259},"tools/traffic-sim/skills/check-posthog-loading","Inspect how the PostHog JavaScript SDK is loaded across a list of URLs. Use to confirm consistent installation across pages, find pages missing the snippet, detect mismatched API keys or hosts between pages, and verify the load method (head snippet vs deferred vs array.js).\n","check-posthog-loading",{"claudeCode":12},"SKILL.md frontmatter at tools/traffic-sim/skills/check-posthog-loading/SKILL.md",[1352],{"path":600,"priority":284},{"basePath":1354,"description":1355,"displayName":1356,"installMethods":1357,"rationale":1358,"selectedPaths":1359,"source":285,"sourceLanguage":18,"type":259},"tools/traffic-sim/skills/simulate-new-user","Send synthetic first-time-visitor traffic to a URL and confirm that PostHog $pageview events fire. Use when a customer wants to verify that anonymous visitor tracking works, after deploying instrumentation changes, or when debugging \"events not arriving\" reports.\n","simulate-new-user",{"claudeCode":12},"SKILL.md frontmatter at tools/traffic-sim/skills/simulate-new-user/SKILL.md",[1360],{"path":600,"priority":284},{"basePath":1362,"description":1363,"displayName":1364,"installMethods":1365,"rationale":1366,"selectedPaths":1367,"source":285,"sourceLanguage":18,"type":259},"tools/traffic-sim/skills/simulate-returning-user","Send synthetic single-session multi-page traffic to a URL and confirm PostHog $pageview events fire across page views. Use when verifying that cookies persist correctly, that the same distinct_id is reused across navigations, or when debugging session-stitching issues.\n","simulate-returning-user",{"claudeCode":12},"SKILL.md frontmatter at tools/traffic-sim/skills/simulate-returning-user/SKILL.md",[1368],{"path":600,"priority":284},{"basePath":1370,"description":1371,"displayName":1372,"installMethods":1373,"rationale":1374,"selectedPaths":1375,"source":285,"sourceLanguage":18,"type":259},"tools/traffic-sim/skills/verify-posthog-instrumentation","Use this skill to verify that PostHog instrumentation is firing correctly on a website. Drives a real browser at one or more URLs, observes which PostHog events actually arrive, and reports a pass/fail summary. Use after installing the PostHog SDK on a site, after a deploy that touches tracking code, or when events appear missing in the PostHog dashboard.\n","verify-posthog-instrumentation",{"claudeCode":12},"SKILL.md frontmatter at tools/traffic-sim/skills/verify-posthog-instrumentation/SKILL.md",[1376],{"path":600,"priority":284},{"basePath":1378,"displayName":1379,"installMethods":1380,"rationale":1381,"selectedPaths":1382,"source":285,"sourceLanguage":18,"type":1387},"products/visual_review/cli","@posthog/visual-review-cli",{"npm":1379},"cli ecosystem detected at products/visual_review/cli",[1383,1385],{"path":1384,"priority":284},"package.json",{"path":1386,"priority":978},"src/index.ts","cli",{"basePath":1389,"installMethods":1390,"rationale":1392,"selectedPaths":1393,"source":285,"sourceLanguage":18,"type":1387},"bin/hobby-installer",{"go":1391},"github.com/posthog/posthog/bin/hobby-installer","cli ecosystem detected at bin/hobby-installer",[1394,1396,1398],{"path":1395,"priority":284},"go.mod",{"path":1397,"priority":284},"README.md",{"path":1399,"priority":603},"main.go",{"basePath":1387,"installMethods":1401,"rationale":1403,"selectedPaths":1404,"source":285,"sourceLanguage":18,"type":1387},{"cargo":1402},"posthog-cli","cli ecosystem detected at cli",[1405,1407,1408,1410],{"path":1406,"priority":284},"Cargo.toml",{"path":1397,"priority":284},{"path":1409,"priority":603},"src/main.rs",{"path":1411,"priority":978},"src/lib.rs",{"basePath":1413,"installMethods":1414,"rationale":1416,"selectedPaths":1417,"source":285,"sourceLanguage":18,"type":1387},"funnel-udf",{"cargo":1415},"funnels","cli ecosystem detected at funnel-udf",[1418,1419,1420],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"basePath":1422,"installMethods":1423,"rationale":1425,"selectedPaths":1426,"source":285,"sourceLanguage":18,"type":1387},"livestream",{"go":1424},"github.com/posthog/posthog/livestream","cli ecosystem detected at livestream",[1427,1428,1429],{"path":1395,"priority":284},{"path":1397,"priority":284},{"path":1399,"priority":603},{"basePath":1431,"installMethods":1432,"rationale":1434,"selectedPaths":1435,"source":285,"sourceLanguage":18,"type":1387},"rust/batch-import-worker",{"cargo":1433},"batch-import-worker","cli ecosystem detected at rust/batch-import-worker",[1436,1437,1438],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1440,"installMethods":1441,"rationale":1443,"selectedPaths":1444,"source":285,"sourceLanguage":18,"type":1387},"rust/capture",{"cargo":1442},"capture","cli ecosystem detected at rust/capture",[1445,1446,1447],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1449,"installMethods":1450,"rationale":1452,"selectedPaths":1453,"source":285,"sourceLanguage":18,"type":1387},"rust/capture-logs",{"cargo":1451},"capture-logs","cli ecosystem detected at rust/capture-logs",[1454,1455,1456,1457],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1459,"installMethods":1460,"rationale":1462,"selectedPaths":1463,"source":285,"sourceLanguage":18,"type":1387},"rust/common/hogvm",{"cargo":1461},"hogvm","cli ecosystem detected at rust/common/hogvm",[1464,1465],{"path":1406,"priority":284},{"path":1411,"priority":978},{"basePath":1467,"installMethods":1468,"rationale":1470,"selectedPaths":1471,"source":285,"sourceLanguage":18,"type":1387},"rust/cyclotron-janitor",{"cargo":1469},"cyclotron-janitor","cli ecosystem detected at rust/cyclotron-janitor",[1472,1473,1474],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1476,"installMethods":1477,"rationale":1479,"selectedPaths":1480,"source":285,"sourceLanguage":18,"type":1387},"rust/cymbal",{"cargo":1478},"cymbal","cli ecosystem detected at rust/cymbal",[1481,1482,1483,1484],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1486,"installMethods":1487,"rationale":1489,"selectedPaths":1490,"source":285,"sourceLanguage":18,"type":1387},"rust/embedding-worker",{"cargo":1488},"embedding-worker","cli ecosystem detected at rust/embedding-worker",[1491,1492,1493],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1495,"installMethods":1496,"rationale":1497,"selectedPaths":1498,"source":285,"sourceLanguage":18,"type":1387},"rust/feature-flags",{"cargo":221},"cli ecosystem detected at rust/feature-flags",[1499,1500,1501,1503,1504],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1502,"priority":603},"src/bin/warm-flags-cache.rs",{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1506,"installMethods":1507,"rationale":1509,"selectedPaths":1510,"source":285,"sourceLanguage":18,"type":1387},"rust/flags-consumer",{"cargo":1508},"flags-consumer","cli ecosystem detected at rust/flags-consumer",[1511,1512,1513],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1515,"installMethods":1516,"rationale":1518,"selectedPaths":1519,"source":285,"sourceLanguage":18,"type":1387},"rust/hypercache-server",{"cargo":1517},"hypercache-server","cli ecosystem detected at rust/hypercache-server",[1520,1521,1522],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1524,"installMethods":1525,"rationale":1527,"selectedPaths":1528,"source":285,"sourceLanguage":18,"type":1387},"rust/ingestion-consumer",{"cargo":1526},"ingestion-consumer","cli ecosystem detected at rust/ingestion-consumer",[1529,1530,1531],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1533,"installMethods":1534,"rationale":1536,"selectedPaths":1537,"source":285,"sourceLanguage":18,"type":1387},"rust/kafka-assigner",{"cargo":1535},"kafka-assigner","cli ecosystem detected at rust/kafka-assigner",[1538,1539,1540],{"path":1406,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1542,"installMethods":1543,"rationale":1545,"selectedPaths":1546,"source":285,"sourceLanguage":18,"type":1387},"rust/kafka-deduplicator",{"cargo":1544},"kafka-deduplicator","cli ecosystem detected at rust/kafka-deduplicator",[1547,1548,1549,1550],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1552,"installMethods":1553,"rationale":1555,"selectedPaths":1556,"source":285,"sourceLanguage":18,"type":1387},"rust/personhog-leader",{"cargo":1554},"personhog-leader","cli ecosystem detected at rust/personhog-leader",[1557,1558,1559,1560],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1562,"installMethods":1563,"rationale":1565,"selectedPaths":1566,"source":285,"sourceLanguage":1571,"type":1387},"rust/personhog-replica",{"cargo":1564},"personhog-replica","cli ecosystem detected at rust/personhog-replica",[1567,1568,1569,1570],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},"fr",{"basePath":1573,"installMethods":1574,"rationale":1576,"selectedPaths":1577,"source":285,"sourceLanguage":18,"type":1387},"rust/personhog-router",{"cargo":1575},"personhog-router","cli ecosystem detected at rust/personhog-router",[1578,1579,1580,1581],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1583,"installMethods":1584,"rationale":1586,"selectedPaths":1587,"source":285,"sourceLanguage":18,"type":1387},"rust/personhog-writer",{"cargo":1585},"personhog-writer","cli ecosystem detected at rust/personhog-writer",[1588,1589,1590,1591],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1593,"installMethods":1594,"rationale":1596,"selectedPaths":1597,"source":285,"sourceLanguage":18,"type":1387},"rust/property-defs-rs",{"cargo":1595},"property-defs-rs","cli ecosystem detected at rust/property-defs-rs",[1598,1599,1600,1601],{"path":1406,"priority":284},{"path":1397,"priority":284},{"path":1409,"priority":603},{"path":1411,"priority":978},{"basePath":1603,"installMethods":1604,"rationale":1605,"selectedPaths":1606,"source":285,"sourceLanguage":18,"type":1387},"tools/hogli",{"pypi":645},"cli ecosystem detected at tools/hogli",[1607,1609,1610,1613,1615],{"path":1608,"priority":284},"pyproject.toml",{"path":1397,"priority":284},{"path":1611,"priority":1612},"LICENSE","high",{"path":1614,"priority":603},"src/hogli/cli.py",{"path":1616,"priority":978},"src/hogli/__main__.py",{"basePath":1618,"installMethods":1619,"rationale":1621,"selectedPaths":1622,"source":285,"sourceLanguage":18,"type":1387},"tools/phrocs",{"go":1620},"github.com/posthog/posthog/phrocs","cli ecosystem detected at tools/phrocs",[1623,1624,1625],{"path":1395,"priority":284},{"path":1397,"priority":284},{"path":1399,"priority":603},{"sources":1627},[1628],"manual",{"npmPackage":1630},"@posthog/root",{"closedIssues90d":243,"description":1632,"forks":244,"homepage":1633,"license":250,"openIssues90d":245,"pushedAt":246,"readmeSize":241,"stars":247,"topics":1634},"🦔 PostHog is an all-in-one developer platform for building successful products. We offer product analytics, web analytics, session replay, error tracking, feature flags, experimentation, surveys, data warehouse, a CDP, and an AI product assistant to help debug your code, ship features faster, and keep all your usage and customer data in one stack.","https://posthog.com",[1635,1636,1637,1638,1639,1640,1641,221,1642,1643,1644,1645,1646,1647,1648],"analytics","python","react","javascript","typescript","ab-testing","experiments","session-replay","ai-analytics","cdp","data-warehouse","product-analytics","surveys","web-analytics",{"downloads":8},{"classifiedAt":1651,"discoverAt":1652,"extractAt":1653,"githubAt":1653,"npmAt":1654,"updatedAt":1651},1778695659926,1778695623992,1778695651179,1778695654741,[220,219,221,223,222],{"evaluatedAt":254,"extractAt":1657,"updatedAt":254},1778695660274,[],[1660,1688,1715,1743,1774,1795],{"_creationTime":1661,"_id":1662,"community":1663,"display":1664,"identity":1670,"providers":1674,"relations":1681,"tags":1684,"workflow":1685},1778695720086.7703,"k176r34g5a5fjn1z1a4gq6v88186nje0",{"reviewCount":8},{"description":1665,"installMethods":1666,"name":1668,"sourceUrl":1669},"Designs an A/B test or experiment with clear hypothesis, variants, success metrics, sample size, and duration. Use when planning experiments to validate product changes or test hypotheses.",{"claudeCode":1667},"product-on-purpose/pm-skills","measure-experiment-design","https://github.com/product-on-purpose/pm-skills",{"basePath":1671,"githubOwner":1672,"githubRepo":1673,"locale":18,"slug":1668,"type":259},"skills/measure-experiment-design","product-on-purpose","pm-skills",{"evaluate":1675,"extract":1680},{"promptVersionExtension":212,"promptVersionScoring":213,"score":1676,"tags":1677,"targetMarket":224,"tier":1679},100,[1640,219,222,220,1678],"data-analysis","verified",{"commitSha":265},{"parentExtensionId":1682,"repoId":1683},"k1721116hsfj7zg78w03432n8986n6y8","kd78ksv1wjj826ds5j1sh2kqnx86mhqf",[220,1640,1678,219,222],{"evaluatedAt":1686,"extractAt":1687,"updatedAt":1686},1778696438706,1778695720086,{"_creationTime":1689,"_id":1690,"community":1691,"display":1692,"identity":1698,"providers":1701,"relations":1708,"tags":1711,"workflow":1712},1778695383013.736,"k1715e8neqfzk3xmy387cvmbjs86nn8f",{"reviewCount":8},{"description":1693,"installMethods":1694,"name":1696,"sourceUrl":1697},"Design lean startup experiments (pretotypes) for a new product. Creates XYZ hypotheses and suggests low-effort validation methods like landing pages, explainer videos, and pre-orders. Use when validating a new product idea, creating pretotypes, or testing market demand.",{"claudeCode":1695},"phuryn/pm-skills","brainstorm-experiments-new","https://github.com/phuryn/pm-skills",{"basePath":1699,"githubOwner":1700,"githubRepo":1673,"locale":18,"slug":1696,"type":259},"pm-product-discovery/skills/brainstorm-experiments-new","phuryn",{"evaluate":1702,"extract":1707},{"promptVersionExtension":212,"promptVersionScoring":213,"score":1676,"tags":1703,"targetMarket":224,"tier":1679},[222,1704,219,1705,1706],"lean-startup","hypothesis-testing","product-discovery",{"commitSha":265},{"parentExtensionId":1709,"repoId":1710},"k177sb9mbjrhss1kp0pyfg5p4n86n75e","kd759mc43bg9ypk46ka87r3wa586npt5",[219,1705,1704,1706,222],{"evaluatedAt":1713,"extractAt":1714,"updatedAt":1713},1778696325158,1778695383013,{"_creationTime":1716,"_id":1717,"community":1718,"display":1719,"identity":1725,"providers":1730,"relations":1737,"tags":1739,"workflow":1740},1778696113180.8157,"k174kwts9kpz0tjrtay7wpe83586msq7",{"reviewCount":8},{"description":1720,"installMethods":1721,"name":1723,"sourceUrl":1724},"A discipline for designing experiments (A/B tests, multivariate, holdouts) so the results actually answer the question you asked. Hypothesis writing, sample size, duration, segment analysis, interpretation, decision-making, and the common failure modes that produce confidently wrong shipping decisions.",{"claudeCode":1722},"rampstackco/claude-skills","Experiment Design","https://github.com/rampstackco/claude-skills",{"basePath":1726,"githubOwner":1727,"githubRepo":1728,"locale":18,"slug":1729,"type":259},"skills/experiment-design","rampstackco","claude-skills","experiment-design",{"evaluate":1731,"extract":1735},{"promptVersionExtension":212,"promptVersionScoring":213,"score":1732,"tags":1733,"targetMarket":224,"tier":1679},99,[219,222,220,1678,1734],"decision-making",{"commitSha":265,"license":1736},"MIT",{"repoId":1738},"kd7bebccrrd1xf6w868aggftrd86m86v",[220,1678,1734,219,222],{"evaluatedAt":1741,"extractAt":1742,"updatedAt":1741},1778696859460,1778696113180,{"_creationTime":1744,"_id":1745,"community":1746,"display":1747,"identity":1753,"providers":1759,"relations":1766,"tags":1769,"workflow":1770},1778699093242.588,"k17bmad8esdm244kq3rwtmm9ms86nnyc",{"reviewCount":8},{"description":1748,"installMethods":1749,"name":1751,"sourceUrl":1752},"A/B-Tests und Funktionsoptimierung für KI-Agenten. Wählen Sie automatisch die beste Option mit Multi-Armed Bandits und kontextbezogenen Bandits (LinUCB). Kein Data Warehouse erforderlich – funktioniert ab der Anfrage.",{"claudeCode":1750},"Whatsonyourmind/oraclaw","OraClaw Bandit","https://github.com/Whatsonyourmind/oraclaw",{"basePath":1754,"githubOwner":1755,"githubRepo":1756,"locale":1757,"slug":1758,"type":259},"mission-control/packages/clawhub-skills/oraclaw-bandit","Whatsonyourmind","oraclaw","de","oraclaw-bandit",{"evaluate":1760,"extract":1765},{"promptVersionExtension":212,"promptVersionScoring":213,"score":1732,"tags":1761,"targetMarket":224,"tier":1679},[1762,1640,221,219,1763,1764],"optimization","machine-learning","mcp",{"commitSha":265,"license":1736},{"repoId":1767,"translatedFrom":1768},"kd76fmxm1ng903s4fmj0p7hxxs86ndkg","k17ewnzxwqzf8m1b1t3c7srke186nx9a",[1640,219,221,1763,1764,1762],{"evaluatedAt":1771,"extractAt":1772,"updatedAt":1773},1778698869396,1778698837670,1778699093242,{"_creationTime":1775,"_id":1776,"community":1777,"display":1778,"identity":1782,"providers":1784,"relations":1791,"tags":1792,"workflow":1793},1778696113180.8162,"k17bkjna4r1wf6fsg43qw9fj7586n9ad",{"reviewCount":8},{"description":1779,"installMethods":1780,"name":1781,"sourceUrl":1724},"A platform decision framework for experimentation. When to use Statsig vs PostHog vs GrowthBook vs Optimizely vs Amplitude vs Eppo vs Kameleoon. How to migrate between them. How to coordinate when multi-platform is genuinely warranted. The decisions that compound for years and the ones you can defer. Triggers on which experimentation platform, choose Statsig vs PostHog, evaluate experimentation tools, switch experimentation platform, migrate from Optimizely, consolidate experimentation tools, multi-platform experimentation, experimentation platform decision, ab test platform selection, feature flag platform vs experiment platform, warehouse-native experiments, vendor lock-in experimentation. Also triggers when a team is asking about cost, governance, or migration cost across experimentation tools, or when an evaluation is starting.",{"claudeCode":1722},"experimentation-platform-orchestrator",{"basePath":1783,"githubOwner":1727,"githubRepo":1728,"locale":18,"slug":1781,"type":259},"skills/experimentation-platform-orchestrator",{"evaluate":1785,"extract":1790},{"promptVersionExtension":212,"promptVersionScoring":213,"score":1786,"tags":1787,"targetMarket":224,"tier":1679},98,[219,220,222,1788,1789],"growth","decision-framework",{"commitSha":265},{"repoId":1738},[220,1789,219,1788,222],{"evaluatedAt":1794,"extractAt":1742,"updatedAt":1794},1778696900214,{"_creationTime":1796,"_id":1797,"community":1798,"display":1799,"identity":1805,"providers":1809,"relations":1814,"tags":1817,"workflow":1818},1778685615701.8328,"k17amxk3h2kxtrsfb68cxnk5cd86m5gk",{"reviewCount":8},{"description":1800,"installMethods":1801,"name":1803,"sourceUrl":1804},"When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions \"A/B test,\" \"split test,\" \"experiment,\" \"test this change,\" \"variant copy,\" \"multivariate test,\" \"hypothesis,\" \"should I test this,\" \"which version is better,\" \"test two versions,\" \"statistical significance,\" \"how long should I run this test,\" \"growth experiments,\" \"experiment velocity,\" \"experiment backlog,\" \"ICE score,\" \"experimentation program,\" or \"experiment playbook.\" Use this whenever someone is comparing two approaches and wants to measure which performs better, or when they want to build a systematic experimentation practice. For tracking implementation, see analytics-tracking. For page-level conversion optimization, see page-cro.",{"claudeCode":1802},"coreyhaines31/marketingskills","ab-test-setup","https://github.com/coreyhaines31/marketingskills",{"basePath":1806,"githubOwner":1807,"githubRepo":1808,"locale":18,"slug":1803,"type":259},"skills/ab-test-setup","coreyhaines31","marketingskills",{"evaluate":1810,"extract":1813},{"promptVersionExtension":212,"promptVersionScoring":213,"score":1786,"tags":1811,"targetMarket":224,"tier":1679},[220,219,1788,1812,1678],"marketing",{"commitSha":265},{"parentExtensionId":1815,"repoId":1816},"k175jvka8cxxkf91gk8qy25r8186npjr","kd7a4vjty5ay3s25r82cm72wdn86nmg0",[220,1678,219,1788,1812],{"evaluatedAt":1819,"extractAt":1820,"updatedAt":1819},1778685671927,1778685615701]