{"id":"418fcd10-f577-465f-8135-2922ee209ff4","shortId":"cKaKVy","kind":"skill","title":"dogfooding","tagline":"Run an internal dogfooding program: scenario map, routines, triage spec, ship/no-ship gate.","description":"# Dogfooding\n\n## Scope\n\n**Covers**\n- Designing and running a **dogfooding loop** where the product team uses the product like a real user would\n- Creating \"**creator commitments**\" when the product is for creators (e.g., publish a podcast, ship a workflow, run weekly reports)\n- Capturing issues as **reproducible artifacts** (not vibes): logs, severity, decisions, owners, and follow-through\n\n**When to use**\n- \"Set up a dogfooding program / dogfooding sprint for our product team.\"\n- \"We’re shipping soon—make sure we’re using the product daily and fixing the biggest pain.\"\n- \"We built this for creators; our team needs to *be creators* to understand the workflow.\"\n- \"Create an internal beta plan and a weekly dogfooding report template.\"\n\n**When NOT to use**\n- You need to validate **market demand** or solve **who is the customer / what is the problem** (do discovery first)\n- The product team cannot realistically represent the workflow (e.g., regulated roles, hardware constraints) without proxies\n- You’re looking for user research replacement (dogfooding complements -- not replaces -- external user feedback)\n- The only goal is \"QA everything\" (use a QA/test plan; dogfooding is for **experience + value + workflow realism**)\n- You need structured usability testing with real external users, task completion metrics, and think-aloud protocols (use `usability-testing`)\n- You’re planning the actual product launch/release rollout (use `shipping-products`)\n- You need a design critique session to evaluate visual/interaction quality (use `running-design-reviews`)\n- You want to build a framework for developing product taste and quality intuition (use `product-taste-intuition`)\n\n## Inputs\n\n**Minimum required**\n- Product summary + target user persona (who it’s for; what job it does)\n- 1–3 core workflows to dogfood (end-to-end)\n- Time box + cadence (e.g., 1 week sprint; 20 min/day; weekly triage)\n- Participants (roles) + any \"creator commitments\" required\n- Environment constraints (prod vs staging; data/privacy constraints; access constraints)\n\n**Missing-info strategy**\n- Ask up to 5 questions from [references/INTAKE.md](references/INTAKE.md).\n- If answers aren’t available, proceed with explicit assumptions and label unknowns. Offer 2 scope options (lean vs thorough).\n\n## Outputs (deliverables)\n\nProduce a **Dogfooding Pack** in Markdown (in-chat; or as files if requested):\n\n1) **Context snapshot** (product, persona, workflows, constraints, time box)\n2) **Dogfooding charter** (goals, participants, rules, cadence, definitions)\n3) **Scenario map + routines** (daily/weekly tasks + \"creator commitments\")\n4) **Dogfooding log + triage board spec** (fields, severity scale, decision rules)\n5) **Weekly dogfooding report** (insights, decisions, shipped fixes, next experiments)\n6) **Risks / Open questions / Next steps** (always included)\n\nTemplates: [references/TEMPLATES.md](references/TEMPLATES.md)\n\n## Workflow (7 steps)\n\n### 1) Frame the dogfooding goal (experience, not just bugs)\n- **Inputs:** Product summary; desired outcomes; [references/INTAKE.md](references/INTAKE.md).\n- **Actions:** Define what \"success\" means for this cycle (e.g., \"team can complete workflow A in <10 min without workarounds\"). Set constraints (environment, data, access).\n- **Outputs:** Context snapshot + explicit success criteria.\n- **Checks:** Success criteria are measurable and tied to a real workflow outcome (not \"feel better\").\n\n### 2) Define representative scenarios + \"creator commitments\"\n- **Inputs:** Target persona + workflows.\n- **Actions:** Create 3–8 scenarios that represent real user goals. If the product is for creators, define a publish cadence (e.g., \"each PM publishes 1 artifact/week\").\n- **Outputs:** Scenario map + routine plan.\n- **Checks:** At least 1 scenario is \"from scratch → shipped/published\" end-to-end.\n\n### 3) Set up the capture system (log, severity, triage)\n- **Inputs:** Existing tools (Jira/Linear/Notion/Sheets) or \"none\".\n- **Actions:** Define the dogfooding log schema, severity scale, and triage rules. Decide labels/tags to link issues to scenarios and workflow steps.\n- **Outputs:** Dogfooding log + triage board spec.\n- **Checks:** Any issue can be reproduced with a clear \"steps to reproduce + expected vs actual + evidence\".\n\n### 4) Run daily dogfooding sessions (time-boxed)\n- **Inputs:** Scenario map + routines.\n- **Actions:** Each participant runs 1–2 scenarios/day, captures friction immediately, and attaches evidence (screens, logs, timestamps). Record \"workarounds used\".\n- **Outputs:** Daily log entries + a rolling \"top pains\" list.\n- **Checks:** Entries are concrete (repro steps) and prioritized by impact on completing the workflow.\n\n### 5) Triage weekly: decide, assign, and protect focus\n- **Inputs:** Log + top pains.\n- **Actions:** Run triage: cluster duplicates, classify (bug/UX debt/gap/docs), assign owners, and decide \"fix now / schedule / won’t fix (with reason)\". Update scenario map if it was unrealistic.\n- **Outputs:** Prioritized backlog + decision notes.\n- **Checks:** Top 3–5 issues map directly to blocked/slow scenarios and have an owner + next action.\n\n### 6) Ship loop: verify fixes by dogfooding again (no-ship gate)\n- **Inputs:** \"Fix now\" items + release plan.\n- **Actions:** For each fix, re-run the scenario end-to-end. Apply a simple gate: \"We can complete the scenario with no hidden workarounds in the chosen environment.\"\n- **Outputs:** Verified fixes list + any regressions.\n- **Checks:** The gate is based on completing scenarios, not just closing tickets.\n\n### 7) Report + quality gate + next cycle plan\n- **Inputs:** Final log + triage outcomes.\n- **Actions:** Produce the weekly report. Run [references/CHECKLISTS.md](references/CHECKLISTS.md) and score with [references/RUBRIC.md](references/RUBRIC.md). Add Risks/Open questions/Next steps and propose the next dogfooding cycle focus.\n- **Outputs:** Final Dogfooding Pack.\n- **Checks:** Report contains decisions (what changed) and shows evidence-backed learning (not just a bug list).\n\n## Anti-patterns (common failure modes)\n\n1. **Bug-list-only dogfooding.** Treating the dogfooding program as a QA bug bash instead of an experience evaluation. The team files cosmetic bugs but never evaluates whether the core workflow is coherent and valuable.\n2. **Tourist mode.** Participants click around casually instead of committing to real end-to-end scenarios. The feedback is shallow (\"looks fine\") because nobody completed a meaningful task.\n3. **Internal-user bias blindness.** Assuming internal team members represent real users without acknowledging their expert knowledge, muscle memory, and workaround tolerance. Findings don’t transfer to actual users.\n4. **Log without triage.** Capturing hundreds of issues in a spreadsheet but never running a triage session. Issues pile up, owners are never assigned, and the dogfooding program loses credibility.\n5. **One-and-done sprint.** Running a single dogfooding sprint before launch and never repeating. The program produces a snapshot but no continuous improvement loop.\n\n## Quality gate (required)\n- Use [references/CHECKLISTS.md](references/CHECKLISTS.md) and [references/RUBRIC.md](references/RUBRIC.md).\n- Always include: **Risks**, **Open questions**, **Next steps**.\n\n## Examples\n\n**Example 1 (Creator product):** \"We’re building a podcast creation tool. Create a dogfooding program where the whole team publishes 1 short episode/week, and produce a weekly report template.\"\nExpected: scenarios from \"idea to published episode\", creator commitments, log schema, triage cadence, and ship gate tied to publishing.\n\n**Example 2 (B2B workflow product):** \"Set up a 2-week dogfooding sprint for our AI meeting notes tool focused on ‘record to summary to share to action items’.\"\nExpected: scenario map, daily routine, severity scale, triage rules, weekly report, and a verified-fixes list.\n\n**Boundary example (usability testing):** \"Run a usability study with 5 external users to measure task completion rates.\"\nResponse: use `usability-testing` for structured external user research; dogfooding is for internal team experience evaluation.\n\n**Boundary example (launch planning):** \"We finished dogfooding; now plan the rollout to real users.\"\nResponse: use `shipping-products` to plan the launch; dogfooding validates internal readiness, not external release execution.\n\n**Boundary example (no artifact):** \"Dogfood this idea we haven’t built yet.\"\nResponse: dogfooding requires a usable artifact; propose discovery + prototype/usability testing first, then a dogfooding sprint once there’s something to run end-to-end.","tags":["dogfooding","lenny","skills","plus","liqiongyu","agent-skills","ai-agents","automation","claude","codex","prompt-engineering","refoundai"],"capabilities":["skill","source-liqiongyu","skill-dogfooding","topic-agent-skills","topic-ai-agents","topic-automation","topic-claude","topic-codex","topic-prompt-engineering","topic-refoundai","topic-skillpack"],"categories":["lenny_skills_plus"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/liqiongyu/lenny_skills_plus/dogfooding","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add liqiongyu/lenny_skills_plus","source_repo":"https://github.com/liqiongyu/lenny_skills_plus","install_from":"skills.sh"}},"qualityScore":"0.474","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 49 github stars · SKILL.md body (8,622 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:21.913Z","embedding":null,"createdAt":"2026-04-18T22:16:29.832Z","updatedAt":"2026-04-22T00:56:21.913Z","lastSeenAt":"2026-04-22T00:56:21.913Z","tsv":"'1':277,291,360,420,515,525,609,836,1005,1024 '10':451 '2':338,369,481,610,872,1053,1060 '20':294 '3':278,377,493,535,693,901 '4':385,593,931 '5':320,396,647,694,961,1106 '6':406,707 '7':418,773 '8':494 'access':311,459 'acknowledg':915 'action':436,491,550,605,659,706,725,785,1078 'actual':220,591,929 'add':798 'ai':1066 'aloud':210 'alway':412,996 'answer':326 'anti':831 'anti-pattern':830 'appli':738 'aren':327 'around':877 'artifact':58,1165,1179 'artifact/week':516 'ask':317 'assign':651,667,954 'assum':907 'assumpt':333 'attach':616 'avail':329 'b2b':1054 'back':823 'backlog':688 'base':765 'bash':850 'beta':118 'better':480 'bias':905 'biggest':98 'blind':906 'blocked/slow':699 'board':389,575 'boundari':1097,1131,1162 'box':288,368,600 'bug':428,828,838,849,860 'bug-list-on':837 'bug/ux':665 'build':246,1010 'built':101,1172 'cadenc':289,375,510,1045 'cannot':152 'captur':54,539,612,935 'casual':878 'chang':818 'charter':371 'chat':354 'check':466,522,577,633,691,761,813 'chosen':753 'classifi':664 'clear':585 'click':876 'close':771 'cluster':662 'coher':869 'commit':37,302,384,486,881,1041 'common':833 'complement':172 'complet':205,447,644,744,767,897,1112 'concret':636 'constraint':161,305,310,312,366,456 'contain':815 'context':361,461 'continu':984 'core':279,866 'cosmet':859 'cover':16 'creat':35,115,492,1015 'creation':1013 'creator':36,43,104,110,301,383,485,506,1006,1040 'credibl':960 'criteria':465,468 'critiqu':232 'custom':141 'cycl':443,778,807 'daili':94,595,625,1083 'daily/weekly':381 'data':458 'data/privacy':309 'debt/gap/docs':666 'decid':561,650,670 'decis':63,394,401,689,816 'defin':437,482,507,551 'definit':376 'deliver':345 'demand':135 'design':17,231,241 'desir':432 'develop':250 'direct':697 'discoveri':147,1181 'dogfood':1,5,14,21,75,77,123,171,188,282,348,370,386,398,423,553,572,596,713,806,811,841,844,957,970,1017,1062,1124,1137,1154,1166,1175,1187 'done':965 'duplic':663 'e.g':44,157,290,444,511 'end':284,286,532,534,735,737,885,887,1196,1198 'end-to-end':283,531,734,884,1195 'entri':627,634 'environ':304,457,754 'episod':1039 'episode/week':1026 'evalu':235,855,863,1130 'everyth':183 'evid':592,617,822 'evidence-back':821 'exampl':1003,1004,1052,1098,1132,1163 'execut':1161 'exist':545 'expect':589,1033,1080 'experi':191,405,425,854,1129 'expert':917 'explicit':332,463 'extern':175,202,1107,1121,1159 'failur':834 'feedback':177,890 'feel':479 'field':391 'file':357,858 'final':781,810 'find':924 'fine':894 'finish':1136 'first':148,1184 'fix':96,403,671,676,711,720,728,757,1095 'focus':654,808,1070 'follow':67 'follow-through':66 'frame':421 'framework':248 'friction':613 'gate':13,718,741,763,776,988,1048 'goal':180,372,424,500 'hardwar':160 'haven':1170 'hidden':749 'hundr':936 'idea':1036,1168 'immedi':614 'impact':642 'improv':985 'in-chat':352 'includ':413,997 'info':315 'input':261,429,487,544,601,655,719,780 'insight':400 'instead':851,879 'intern':4,117,903,908,1127,1156 'internal-us':902 'intuit':255,260 'issu':55,565,579,695,938,948 'item':722,1079 'jira/linear/notion/sheets':547 'job':274 'knowledg':918 'label':335 'labels/tags':562 'launch':973,1133,1153 'launch/release':222 'lean':341 'learn':824 'least':524 'like':30 'link':564 'list':632,758,829,839,1096 'log':61,387,541,554,573,619,626,656,782,932,1042 'look':166,893 'loop':22,709,986 'lose':959 'make':87 'map':8,379,519,603,681,696,1082 'markdown':351 'market':134 'mean':440 'meaning':899 'measur':470,1110 'meet':1067 'member':910 'memori':920 'metric':206 'min':452 'min/day':295 'minimum':262 'miss':314 'missing-info':313 'mode':835,874 'muscl':919 'need':107,131,196,229 'never':862,943,953,975 'next':404,410,705,777,805,1001 'no-ship':715 'nobodi':896 'none':549 'note':690,1068 'offer':337 'one':963 'one-and-don':962 'open':408,999 'option':340 'outcom':433,477,784 'output':344,460,517,571,624,686,755,809 'owner':64,668,704,951 'pack':349,812 'pain':99,631,658 'particip':298,373,607,875 'pattern':832 'persona':268,364,489 'pile':949 'plan':119,187,218,521,724,779,1134,1139,1151 'pm':513 'podcast':47,1012 'priorit':640,687 'problem':145 'proceed':330 'prod':306 'produc':346,786,979,1028 'product':25,29,40,81,93,150,221,227,251,258,264,363,430,503,1007,1056,1149 'product-taste-intuit':257 'program':6,76,845,958,978,1018 'propos':803,1180 'protect':653 'protocol':211 'prototype/usability':1182 'proxi':163 'publish':45,509,514,1023,1038,1051 'qa':182,848 'qa/test':186 'qualiti':237,254,775,987 'question':321,409,1000 'questions/next':800 'rate':1113 're':84,90,165,217,730,1009 're-run':729 'readi':1157 'real':32,201,475,498,883,912,1143 'realism':194 'realist':153 'reason':678 'record':621,1072 'references/checklists.md':791,792,991,992 'references/intake.md':323,324,434,435 'references/rubric.md':796,797,994,995 'references/templates.md':415,416 'regress':760 'regul':158 'releas':723,1160 'repeat':976 'replac':170,174 'report':53,124,399,774,789,814,1031,1090 'repres':154,483,497,911 'repro':637 'reproduc':57,582,588 'request':359 'requir':263,303,989,1176 'research':169,1123 'respons':1114,1145,1174 'review':242 'risk':407,998 'risks/open':799 'role':159,299 'roll':629 'rollout':223,1141 'routin':9,380,520,604,1084 'rule':374,395,560,1088 'run':2,19,51,240,594,608,660,731,790,944,967,1101,1194 'running-design-review':239 'scale':393,557,1086 'scenario':7,378,484,495,518,526,567,602,680,700,733,746,768,888,1034,1081 'scenarios/day':611 'schedul':673 'schema':555,1043 'scope':15,339 'score':794 'scratch':529 'screen':618 'session':233,597,947 'set':72,455,536,1057 'sever':62,392,542,556,1085 'shallow':892 'share':1076 'ship':48,85,226,402,708,717,1047,1148 'ship/no-ship':12 'shipped/published':530 'shipping-product':225,1147 'short':1025 'show':820 'simpl':740 'singl':969 'skill' 'skill-dogfooding' 'snapshot':362,462,981 'solv':137 'someth':1192 'soon':86 'source-liqiongyu' 'spec':11,390,576 'spreadsheet':941 'sprint':78,293,966,971,1063,1188 'stage':308 'step':411,419,570,586,638,801,1002 'strategi':316 'structur':197,1120 'studi':1104 'success':439,464,467 'summari':265,431,1074 'sure':88 'system':540 'target':266,488 'task':204,382,900,1111 'tast':252,259 'team':26,82,106,151,445,857,909,1022,1128 'templat':125,414,1032 'test':199,215,1100,1118,1183 'think':209 'think-aloud':208 'thorough':343 'ticket':772 'tie':472,1049 'time':287,367,599 'time-box':598 'timestamp':620 'toler':923 'tool':546,1014,1069 'top':630,657,692 'topic-agent-skills' 'topic-ai-agents' 'topic-automation' 'topic-claude' 'topic-codex' 'topic-prompt-engineering' 'topic-refoundai' 'topic-skillpack' 'tourist':873 'transfer':927 'treat':842 'triag':10,297,388,543,559,574,648,661,783,934,946,1044,1087 'understand':112 'unknown':336 'unrealist':685 'updat':679 'usability-test':213,1116 'usabl':198,214,1099,1103,1117,1178 'use':27,71,91,129,184,212,224,238,256,623,990,1115,1146 'user':33,168,176,203,267,499,904,913,930,1108,1122,1144 'valid':133,1155 'valu':192 'valuabl':871 'verifi':710,756,1094 'verified-fix':1093 'vibe':60 'visual/interaction':236 'vs':307,342,590 'want':244 'week':52,122,292,296,397,649,788,1030,1061,1089 'whether':864 'whole':1021 'without':162,453,914,933 'won':674 'workaround':454,622,750,922 'workflow':50,114,156,193,280,365,417,448,476,490,569,646,867,1055 'would':34 'yet':1173","prices":[{"id":"566845d7-16cb-4a3e-8ad4-404f3680b593","listingId":"418fcd10-f577-465f-8135-2922ee209ff4","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"liqiongyu","category":"lenny_skills_plus","install_from":"skills.sh"},"createdAt":"2026-04-18T22:16:29.832Z"}],"sources":[{"listingId":"418fcd10-f577-465f-8135-2922ee209ff4","source":"github","sourceId":"liqiongyu/lenny_skills_plus/dogfooding","sourceUrl":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/dogfooding","isPrimary":false,"firstSeenAt":"2026-04-18T22:16:29.832Z","lastSeenAt":"2026-04-22T00:56:21.913Z"}],"details":{"listingId":"418fcd10-f577-465f-8135-2922ee209ff4","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"liqiongyu","slug":"dogfooding","github":{"repo":"liqiongyu/lenny_skills_plus","stars":49,"topics":["agent-skills","ai-agents","automation","claude","codex","prompt-engineering","refoundai","skillpack"],"license":"apache-2.0","html_url":"https://github.com/liqiongyu/lenny_skills_plus","pushed_at":"2026-04-04T06:30:11Z","description":"86 agent-executable skill packs converted from RefoundAI’s Lenny skills (unofficial). Works with Codex + Claude Code.","skill_md_sha":"5d73f052ccc4e3b44cbceb8dd19ab365fb3c852e","skill_md_path":"skills/dogfooding/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/dogfooding"},"layout":"multi","source":"github","category":"lenny_skills_plus","frontmatter":{"name":"dogfooding","description":"Run an internal dogfooding program: scenario map, routines, triage spec, ship/no-ship gate."},"skills_sh_url":"https://skills.sh/liqiongyu/lenny_skills_plus/dogfooding"},"updatedAt":"2026-04-22T00:56:21.913Z"}}