[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71E6DKVG09MB193NNT4JGRP":3,"skill-same:01M71E6DKVG09MB193NNT4JGRP":88},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M71E6DKVG09MB193NNT4JGRP","auditing-experiments-flags",null,"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.","patinaproject\u002Fskills","patinaproject","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F229996889?v=4","01M71E58JKTDNY1138WYZK44TR","Patina Project","01M71E58K5GH4K16MV6A8BQ6NZ",1,"MIT","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"experiments","auditing experiments flags","flags","best-practice","review","when","for","hygiene","feature","health-check","issues","configuration","posthog","experiment","read","check","feature flags","health","verify","audit","2026-11-10 10:12:30",false,"---\nname: auditing-experiments-flags\ndescription: '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.'\n---\n\n# Auditing experiments and feature flags\n\nThis skill teaches you how to run configuration audits on experiments and feature flags.\nAll checks use the experiment and feature flag read tools (`experiment-get`, `experiment-list`, `feature-flag-get-definition`, `feature-flag-get-all`) — no SQL queries are needed for Phase 1 checks.\n\n## Usage modes\n\n### Quick check (single entity)\n\nWhen the user asks about a specific experiment or flag:\n\n1. Fetch the entity via `experiment-get` (experiment ID) or `feature-flag-get-definition` (numeric flag ID).\n2. Apply the relevant checks from [experiment checks](.\u002Freferences\u002Fexperiment-checks.md) or [flag checks](.\u002Freferences\u002Fflag-checks.md).\n3. Report findings inline as markdown, grouped by severity (CRITICAL first, then WARNING, then INFO).\n4. Include entity links as `[Experiment: name](\u002Fexperiments\u002Fid)` or `[Flag: key](\u002Ffeature_flags\u002Fid)`.\n\n### Scoped audit (one domain)\n\nWhen the user asks to audit all experiments or all flags:\n\n1. Bulk-fetch via `experiment-list` or `feature-flag-get-all`.\n2. Run all checks for that domain against each entity.\n3. Group findings by severity, then by entity.\n4. Report as inline markdown.\n\n### Full audit (comprehensive)\n\nWhen the user asks for a comprehensive audit of both experiments and flags:\n\n1. Fetch all experiments via `experiment-list` and all flags via `feature-flag-get-all`.\n2. Run all experiment checks and all flag checks.\n3. Apply [recurring patterns](.\u002Freferences\u002Fsynthesis-patterns.md) to identify patterns across multiple findings.\n4. If there are more than 5 entities with findings, output as a notebook artifact via `notebooks-create` for easier navigation. Otherwise report inline.\n\n## Output format\n\nFor each finding, include:\n\n- **Severity badge**: `🔴 CRITICAL`, `🟡 WARNING`, or `🔵 INFO`\n- **Check name**: Which check produced this finding\n- **Entity link**: Markdown link to the entity\n- **What's wrong**: One-sentence description\n- **Action**: What to do about it (see [remediation actions](.\u002Freferences\u002Fremediation-actions.md))\n\nExample:\n\n> 🟡 **WARNING** — Flag integration · [Experiment: checkout-redesign](\u002Fexperiments\u002F42)\n> The linked feature flag is inactive (paused). Traffic is not being split.\n> **Action**: Re-enable the flag or end the experiment.\n\n## Handling unavailable data\n\nSome checks require activity logs (`feature-flags-activity-retrieve` for flags), which may not be available in every session.\nIf activity log data is unavailable:\n\n- Skip `checkActivityHistory` (experiment check) entirely.\n- Skip the \"toggle instability\" and \"never activated\" sub-checks in flag lifecycle checks.\n- In your report, note which checks were skipped and why:\n  > _Skipped: Activity history checks (activity logs not available via current tools)_\n\n## Partial failures\n\nIf a fetch call fails for some entities:\n\n- Continue with the entities you could fetch.\n- Report which entities could not be assessed and why.\n- Do not silently omit entities from the audit.\n\n## Reference files\n\n- [Experiment checks](.\u002Freferences\u002Fexperiment-checks.md) — experiment configuration checks\n- [Flag checks](.\u002Freferences\u002Fflag-checks.md) — feature flag checks\n- [Finding types](.\u002Freferences\u002Ffinding-taxonomy.md) — severity and category definitions\n- [Recurring patterns](.\u002Freferences\u002Fsynthesis-patterns.md) — patterns across multiple findings\n- [Remediation actions](.\u002Freferences\u002Fremediation-actions.md) — what to do about each finding\n","# Auditing experiments and feature flags\n\nThis skill teaches you how to run configuration audits on experiments and feature flags.\nAll checks use the experiment and feature flag read tools (`experiment-get`, `experiment-list`, `feature-flag-get-definition`, `feature-flag-get-all`) — no SQL queries are needed for Phase 1 checks.\n\n## Usage modes\n\n### Quick check (single entity)\n\nWhen the user asks about a specific experiment or flag:\n\n1. Fetch the entity via `experiment-get` (experiment ID) or `feature-flag-get-definition` (numeric flag ID).\n2. Apply the relevant checks from [experiment checks](.\u002Freferences\u002Fexperiment-checks.md) or [flag checks](.\u002Freferences\u002Fflag-checks.md).\n3. Report findings inline as markdown, grouped by severity (CRITICAL first, then WARNING, then INFO).\n4. Include entity links as `[Experiment: name](\u002Fexperiments\u002Fid)` or `[Flag: key](\u002Ffeature_flags\u002Fid)`.\n\n### Scoped audit (one domain)\n\nWhen the user asks to audit all experiments or all flags:\n\n1. Bulk-fetch via `experiment-list` or `feature-flag-get-all`.\n2. Run all checks for that domain against each entity.\n3. Group findings by severity, then by entity.\n4. Report as inline markdown.\n\n### Full audit (comprehensive)\n\nWhen the user asks for a comprehensive audit of both experiments and flags:\n\n1. Fetch all experiments via `experiment-list` and all flags via `feature-flag-get-all`.\n2. Run all experiment checks and all flag checks.\n3. Apply [recurring patterns](.\u002Freferences\u002Fsynthesis-patterns.md) to identify patterns across multiple findings.\n4. If there are more than 5 entities with findings, output as a notebook artifact via `notebooks-create` for easier navigation. Otherwise report inline.\n\n## Output format\n\nFor each finding, include:\n\n- **Severity badge**: `🔴 CRITICAL`, `🟡 WARNING`, or `🔵 INFO`\n- **Check name**: Which check produced this finding\n- **Entity link**: Markdown link to the entity\n- **What's wrong**: One-sentence description\n- **Action**: What to do about it (see [remediation actions](.\u002Freferences\u002Fremediation-actions.md))\n\nExample:\n\n> 🟡 **WARNING** — Flag integration · [Experiment: checkout-redesign](\u002Fexperiments\u002F42)\n> The linked feature flag is inactive (paused). Traffic is not being split.\n> **Action**: Re-enable the flag or end the experiment.\n\n## Handling unavailable data\n\nSome checks require activity logs (`feature-flags-activity-retrieve` for flags), which may not be available in every session.\nIf activity log data is unavailable:\n\n- Skip `checkActivityHistory` (experiment check) entirely.\n- Skip the \"toggle instability\" and \"never activated\" sub-checks in flag lifecycle checks.\n- In your report, note which checks were skipped and why:\n  > _Skipped: Activity history checks (activity logs not available via current tools)_\n\n## Partial failures\n\nIf a fetch call fails for some entities:\n\n- Continue with the entities you could fetch.\n- Report which entities could not be assessed and why.\n- Do not silently omit entities from the audit.\n\n## Reference files\n\n- [Experiment checks](.\u002Freferences\u002Fexperiment-checks.md) — experiment configuration checks\n- [Flag checks](.\u002Freferences\u002Fflag-checks.md) — feature flag checks\n- [Finding types](.\u002Freferences\u002Ffinding-taxonomy.md) — severity and category definitions\n- [Recurring patterns](.\u002Freferences\u002Fsynthesis-patterns.md) — patterns across multiple findings\n- [Remediation actions](.\u002Freferences\u002Fremediation-actions.md) — what to do about each finding\n",{"name":5,"description":7},"main","e6ee720f466a8344a52abd87679191fadde3b63f",".agents\u002Fskills\u002Fauditing-experiments-flags","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills","https:\u002F\u002Fgithub.com\u002Fpatinaproject","https:\u002F\u002Fwww.patinaproject.com","The best way to pick your next pair of boots or shoes.","2026-11-12 00:44:02",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add patinaproject\u002Fskills --skill auditing-experiments-flags",{"tool":58,"command":59},"bunx","bunx skills add patinaproject\u002Fskills --skill auditing-experiments-flags",{"tool":61,"command":62},"pnpm","pnpm dlx skills add patinaproject\u002Fskills --skill auditing-experiments-flags","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002FSKILL.md",true,[66,72,76,80,84],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fexperiment-checks.md","REFERENCE","参考文档",9055,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002Freferences\u002Fexperiment-checks.md",{"path":73,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Ffinding-taxonomy.md",2696,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002Freferences\u002Ffinding-taxonomy.md",{"path":77,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fflag-checks.md",5511,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002Freferences\u002Fflag-checks.md",{"path":81,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fremediation-actions.md",5304,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002Freferences\u002Fremediation-actions.md",{"path":85,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fsynthesis-patterns.md",1521,"https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fauditing-experiments-flags\u002Freferences\u002Fsynthesis-patterns.md",[89,97,125,137,160,184],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":96},"01M72KDQJR99954NE224VB3KZ2","code-review","Review the changes since a fixed point (commit, branch, tag, or merge-base) along five axes: Standards (does the code follow this repo's documented coding standards?), Spec (does the code match what the originating issue\u002Fspec asked for?), Evidence (does each claim in the pull request have evidence that shows it?), Bugs (does the changed code have logic errors, unhandled states, races, or regressions?), and Security (does the change open injection, auth, secret, input, or CI workflow holes?). Runs the reviews in parallel sub-agents, tags every finding Important, Nit, or Pre-existing, and reports them side by side with what blocks merge. Given an earlier reviewed head and its findings, it reviews only the newer commits, rechecks the earlier findings, and never repeats one. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fcode\u002Fskills\u002Fcode-review\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":113,"publishedAt":39},"01M71ESEDVHD9EXN6787XHP7HD","writing-for-pstack","Write or tighten an operator prompt for a patina-mode run. Use when the operator asks to write, revise, or review a prompt that will be passed to patina-mode.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-pstack\u002FSKILL.md",[103,108],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[25,114,115,116,23,117,118,119,120,121,122,123,24,124],"pstack","writing","writing for pstack","run","mode","write","operator","use","tighten","prompt","revise",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":133,"publishedAt":39},"01M71ESCJ0SSJFFENF8HYDKBTJ","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwriting-for-agents\u002FSKILL.md",[131,132],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},{"categoryNo":109,"categoryName":110,"taxonomyType":111,"taxonomyTypeDesc":112},[134,25,115,135,121,136,24],"writing for agents","editing","documents",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":39},"01M71ESA1NN9WVMD2HA5Z1RRDY","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwizard\u002FSKILL.md",[],[139,144,145,146,147,148,24,149,150,151,152,153,121,154,155,156,25,157,158,159],"interactive","can","credentials","one","Bash","invoke","dashboard","generate","human","secrets","provisioning infrastructure","ci","up","setting","running","only",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":166,"publishedAt":39},"01M71ES8FAN567N3JEPG8W6AS1","wayfinder","Plan a huge chunk of work (more than one agent session can hold) as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwayfinder\u002FSKILL.md",[],[162,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,145,183,147],"more","true","decision","session","time","chunk","as","shared","map","tickets","destination","at","tracker","plan","work","agent session","one at a time",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":190,"publishedAt":39},"01M71ES6PWJPKBW8R24YFH4PY6","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fpatinaproject\u002Fskills\u002Fblob\u002Fmain\u002Fplugins\u002Fwork\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[191,192,193,194,195,196,197,198,168,199],"wait","wait what","stop","it","land","re","pitch","message","last"]