[{"data":1,"prerenderedAt":727},["ShallowReactive",2],{"repo-tree":3,"repo-\u002Finternal\u002Fdocs\u002Freadme":283},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,69,72,75,78,81,84,86,88,90,93,96,99,102,105,108,111,114,117,120,123,125,127,129,131,133,135,138,141,143,146,149,152,155,158,161,164,167,169,172,175,178,180,183,186,189,192,195,198,201,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275,278,281],{"path":5,"title":6},"\u002Fagents\u002Fbackend-code-style","Backend Conventions",{"path":8,"title":9},"\u002Fagents\u002Fdatabase","Database",{"path":11,"title":12},"\u002Fagents\u002Fportal-code-style","Portal Conventions",{"path":14,"title":15},"\u002Fagents\u002Ftranslation","Translation",{"path":17,"title":18},"\u002Fconventions\u002Fbackend-coding","Backend coding conventions",{"path":20,"title":21},"\u002Fconventions\u002Ffrontend-coding","Frontend coding conventions",{"path":23,"title":24},"\u002Fdevelopment-process","Development process",{"path":26,"title":27},"\u002Flearning-api-preview-hetzner-setup","Learning API Preview on Hetzner + Cloudflare",{"path":29,"title":30},"\u002Flearning-api-preview-vm-plan","Learning API Preview VM Plan",{"path":32,"title":33},"\u002Fmonorepo-structure","Monorepo structure",{"path":35,"title":36},"\u002Foperations","Operations — bugs and support",{"path":38,"title":39},"\u002Fpostmortems\u002F2026-03-16_onboarding-currency-regression","Onboarding Zod transform silently broken — web signups assigned wrong checkout currency",{"path":41,"title":42},"\u002Fpostmortems\u002Freadme","Postmortems",{"path":44,"title":45},"\u002Fpostmortems\u002F_template","TEMPLATE",{"path":47,"title":48},"\u002Fpostmortems\u002Fposthog-comparison","Postmortem practice — comparison with PostHog",{"path":50,"title":51},"\u002Fpreview-environment-plan","Preview Environment Plan",{"path":53,"title":54},"\u002Fprinciples","Engineering principles",{"path":56,"title":57},"\u002Fworking-with-ai","Working with AI",{"path":59,"title":60},"\u002F.claude\u002Fskills\u002Feval-playground\u002Fskill","Eval Playground — Co-development Skill",{"path":62,"title":63},"\u002F.claude\u002Fskills\u002Ffigma-diff-section\u002Fskill","Figma Diff Section Pipeline",{"path":65,"title":66},"\u002Fagents","AGENTS.md",{"path":68,"title":66},"\u002Fclaude",{"path":70,"title":71},"\u002Freadme","Studyflash",{"path":73,"title":74},"\u002Fapps\u002Fcore-api\u002Fagents","Core API (apps\u002Fcore-api)",{"path":76,"title":77},"\u002Fapps\u002Fcore-api\u002Freadme","README",{"path":79,"title":80},"\u002Fapps\u002Femail-previews\u002Fagents","Email Previews (apps\u002Femail-previews)",{"path":82,"title":83},"\u002Fapps\u002Flanding-page\u002Fagents","Landing Page (apps\u002Flanding-page)",{"path":85,"title":83},"\u002Fapps\u002Flanding-page\u002Fclaude",{"path":87,"title":66},"\u002Fapps\u002Flearning-api\u002Fagents",{"path":89,"title":77},"\u002Fapps\u002Flearning-api\u002Freadme",{"path":91,"title":92},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Feval_metrics_design","Surface-Specific Eval Metrics Design",{"path":94,"title":95},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ftest_set","Quiz Eval Test Set",{"path":97,"title":98},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ffrontend\u002Freadme","React + TypeScript + Vite",{"path":100,"title":101},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fcontent-pillar-shallow-coverage\u002Freadme","Content pillar misses subtopics in dense documents",{"path":103,"title":104},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fdocling-empty-section-headers\u002Freadme","Empty section headers dropped by docling chunker",{"path":106,"title":107},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fdocling-table-reading-order\u002Freadme","Table\u002Fbox layout causes wrong reading order",{"path":109,"title":110},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fmetrics\u002Freadme","Quiz eval metrics — canonical rubrics",{"path":112,"title":113},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-04-12-quiz-summary-feedback-current-state","Quiz and Summary Feedback Current State",{"path":115,"title":116},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-04-24-quiz-eval-metrics","Quiz Evaluation Metrics",{"path":118,"title":119},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-05-01-quiz-eval-current-state","Quiz Eval Current State",{"path":121,"title":122},"\u002Fapps\u002Flearning-api\u002Fmonitoring\u002Freadme","Monitoring Stack",{"path":124,"title":77},"\u002Fapps\u002Flearning-api\u002Fshared\u002Freadme",{"path":126,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fflashcard_agent\u002Freadme",{"path":128,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fingestion_agent\u002Freadme",{"path":130,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fquiz_agent\u002Freadme",{"path":132,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fsummary_agent\u002Freadme",{"path":134,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Fparser\u002Freadme",{"path":136,"title":137},"\u002Fapps\u002Fmarketing-emails-preview\u002Fagents","Marketing Emails Preview (apps\u002Fmarketing-emails-preview)",{"path":139,"title":140},"\u002Fapps\u002Fmobile-app\u002Fagents","StudyFlash Mobile App - Claude Code Configuration",{"path":142,"title":140},"\u002Fapps\u002Fmobile-app\u002Fclaude",{"path":144,"title":145},"\u002Fapps\u002Fmountain-max\u002Fagents","Mountain Max (apps\u002Fmountain-max)",{"path":147,"title":148},"\u002Fapps\u002Fmountain-max\u002Fgame\u002Freadme","Mountain Max Game",{"path":150,"title":151},"\u002Fapps\u002Fportal\u002Fagents","Portal (apps\u002Fportal)",{"path":153,"title":154},"\u002Fapps\u002Fportal\u002Freadme","Nuxt Minimal Starter",{"path":156,"title":157},"\u002Fapps\u002Fportal\u002Fapp\u002Fcomposables\u002Ffiles\u002Freadme","File Upload Composables",{"path":159,"title":160},"\u002Fapps\u002Fportal\u002Fdocs\u002Flibrary-routing","Library Routing Documentation",{"path":162,"title":163},"\u002Fapps\u002Fsupabase\u002Fagents","Supabase (apps\u002Fsupabase)",{"path":165,"title":166},"\u002Fapps\u002Fwrapped\u002Fagents","Wrapped (apps\u002Fwrapped)",{"path":168,"title":98},"\u002Fapps\u002Fwrapped\u002Freadme",{"path":170,"title":171},"\u002Finfra\u002Freadme","infra\u002F",{"path":173,"title":174},"\u002Finfra\u002Fdns\u002Freadme","DNS Infrastructure",{"path":176,"title":177},"\u002Finfra\u002Fdokploy\u002Freadme","studyflash-dokploy",{"path":179,"title":77},"\u002Finfra\u002Fdokploy\u002Fsdk\u002Fnodejs\u002Freadme",{"path":181,"title":182},"\u002Finfra\u002Finfisical\u002Freadme","Infisical Infrastructure",{"path":184,"title":185},"\u002Finfra\u002Flearning-api\u002Freadme","Pulumi GCP TypeScript Template",{"path":187,"title":188},"\u002Finfra\u002Fopenreplay\u002Freadme","OpenReplay on Hetzner",{"path":190,"title":191},"\u002Finfra\u002Fscripts\u002Freadme","infra\u002Fscripts\u002F",{"path":193,"title":194},"\u002Finfra\u002Fturborepo-cache\u002Freadme","Turborepo Remote Cache Infrastructure",{"path":196,"title":197},"\u002Finternal\u002Fchatwoot\u002Freadme","Chatwoot Infrastructure",{"path":199,"title":200},"\u002Finternal\u002Fchatwoot\u002Fprovider\u002Freadme","studyflash-chatwoot-provider",{"path":202,"title":77},"\u002Finternal\u002Fchatwoot\u002Fprovider\u002Fsdk\u002Fnodejs\u002Freadme",{"path":204,"title":205},"\u002Finternal\u002Fdocs\u002Freadme","internal\u002Fdocs",{"path":207,"title":208},"\u002Finternal\u002Fsupport-bot\u002Fclaude","Support Bot (Maximilian)",{"path":210,"title":211},"\u002Finternal\u002Fsupport-bot\u002Freadme","Studyflash Customer Support Bot (Maximilian)",{"path":213,"title":214},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Faccount_issues","Account Issues",{"path":216,"title":217},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fbilling_invoice","Billing Invoice",{"path":219,"title":220},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fcontent_upload","Content Upload",{"path":222,"title":223},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fdata_loss","Data Loss",{"path":225,"title":226},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fflashcard_issues","Flashcard Issues",{"path":228,"title":229},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fgarbage","Garbage",{"path":231,"title":232},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fgeneral_how_to","General How To",{"path":234,"title":235},"\u002Finternal\u002Fsupport-bot\u002Fkb","Knowledge Base Index",{"path":237,"title":238},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Flanguage_issues","Language Issues",{"path":240,"title":241},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmindmap_issues","Mindmap Issues",{"path":243,"title":244},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmisunderstanding","Misunderstanding",{"path":246,"title":247},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmock_exam_issues","Mock Exam Issues",{"path":249,"title":250},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fpodcast_issues","Podcast Issues",{"path":252,"title":253},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fquiz_issues","Quiz Issues",{"path":255,"title":256},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Frefund_request","Refund Request",{"path":258,"title":259},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsubscription_cancellation","Subscription Cancellation",{"path":261,"title":262},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsubscription_info","Subscription Info",{"path":264,"title":265},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsummary_issues","Summary Issues",{"path":267,"title":268},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Ftechnical_errors","Technical Errors",{"path":270,"title":271},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fvideo_issues","Video Issues",{"path":273,"title":274},"\u002Fpackages\u002Fcommon\u002Fdocs\u002Fearly-access-features","Declarative Early Access Features",{"path":276,"title":277},"\u002Fpackages\u002Fcommon\u002Fscripts\u002Freadme","Common Package Scripts",{"path":279,"title":280},"\u002Fpackages\u002Fdevtools\u002Ffigma-plugins\u002Freadme","Figma plugins",{"path":282,"title":77},"\u002Fpackages\u002Fpulumi-infisical\u002Freadme",{"id":284,"title":205,"body":285,"description":719,"extension":720,"lastReviewed":721,"meta":722,"navigation":723,"owner":721,"path":204,"seo":724,"status":721,"stem":725,"tags":721,"__hash__":726},"repo\u002Finternal\u002Fdocs\u002FREADME.md",{"type":286,"value":287,"toc":711},"minimark",[288,292,305,310,350,360,364,398,402,533,537,548,556,559,563,580,583,664,671,677,681,707],[289,290,205],"h1",{"id":291},"internaldocs",[293,294,295,296,304],"p",{},"Aesthetic sample of the proposed research \u002F write-up surface. Standalone Nuxt 3 + Nuxt Content v3 project — ",[297,298,299,300],"strong",{},"intentionally not in ",[301,302,303],"code",{},"pnpm-workspace.yaml",", so it can't affect the root lockfile, turbo pipeline, or CI.",[306,307,309],"h2",{"id":308},"run","Run",[311,312,317],"pre",{"className":313,"code":314,"language":315,"meta":316,"style":316},"language-sh shiki shiki-themes github-light github-dark","cd internal\u002Fdocs\npnpm install\npnpm dev\n","sh","",[301,318,319,332,342],{"__ignoreMap":316},[320,321,324,328],"span",{"class":322,"line":323},"line",1,[320,325,327],{"class":326},"sj4cs","cd",[320,329,331],{"class":330},"sZZnC"," internal\u002Fdocs\n",[320,333,335,339],{"class":322,"line":334},2,[320,336,338],{"class":337},"sScJk","pnpm",[320,340,341],{"class":330}," install\n",[320,343,345,347],{"class":322,"line":344},3,[320,346,338],{"class":337},[320,348,349],{"class":330}," dev\n",[293,351,352,353,359],{},"Open ",[354,355,356],"a",{"href":356,"rel":357},"http:\u002F\u002Flocalhost:3000",[358],"nofollow",".",[306,361,363],{"id":362},"whats-in-here","What's in here",[365,366,367,374,380,386,392],"ul",{},[368,369,370,373],"li",{},[301,371,372],{},"content\u002F*.md"," — sample write-ups with typed frontmatter",[368,375,376,379],{},[301,377,378],{},"content.config.ts"," — frontmatter schema (zod)",[368,381,382,385],{},[301,383,384],{},"pages\u002Findex.vue"," — filterable table (search, tags, status)",[368,387,388,391],{},[301,389,390],{},"pages\u002F[...slug].vue"," — write-up detail view, prose-styled",[368,393,394,397],{},[301,395,396],{},"public\u002Fdiagrams\u002F*.excalidraw.svg"," — inline Excalidraw embed demo",[306,399,401],{"id":400},"frontmatter-schema","Frontmatter schema",[311,403,407],{"className":404,"code":405,"language":406,"meta":316,"style":316},"language-yaml shiki shiki-themes github-light github-dark","---\ntitle: Power user retention cohort analysis\ndescription: One-liner shown in the table row\ntags: [retention, power-users, mobile]\nstatus: published   # draft | published | archived\nowner: rajiv\ndate: 2026-05-09\nmetabaseUrl: https:\u002F\u002F...   # optional\nlinearUrl:    https:\u002F\u002F...  # optional\n---\n","yaml",[301,408,409,414,427,437,463,478,489,500,514,528],{"__ignoreMap":316},[320,410,411],{"class":322,"line":323},[320,412,413],{"class":337},"---\n",[320,415,416,420,424],{"class":322,"line":334},[320,417,419],{"class":418},"s9eBZ","title",[320,421,423],{"class":422},"sVt8B",": ",[320,425,426],{"class":330},"Power user retention cohort analysis\n",[320,428,429,432,434],{"class":322,"line":344},[320,430,431],{"class":418},"description",[320,433,423],{"class":422},[320,435,436],{"class":330},"One-liner shown in the table row\n",[320,438,440,443,446,449,452,455,457,460],{"class":322,"line":439},4,[320,441,442],{"class":418},"tags",[320,444,445],{"class":422},": [",[320,447,448],{"class":330},"retention",[320,450,451],{"class":422},", ",[320,453,454],{"class":330},"power-users",[320,456,451],{"class":422},[320,458,459],{"class":330},"mobile",[320,461,462],{"class":422},"]\n",[320,464,466,469,471,474],{"class":322,"line":465},5,[320,467,468],{"class":418},"status",[320,470,423],{"class":422},[320,472,473],{"class":330},"published",[320,475,477],{"class":476},"sJ8bj","   # draft | published | archived\n",[320,479,481,484,486],{"class":322,"line":480},6,[320,482,483],{"class":418},"owner",[320,485,423],{"class":422},[320,487,488],{"class":330},"rajiv\n",[320,490,492,495,497],{"class":322,"line":491},7,[320,493,494],{"class":418},"date",[320,496,423],{"class":422},[320,498,499],{"class":326},"2026-05-09\n",[320,501,503,506,508,511],{"class":322,"line":502},8,[320,504,505],{"class":418},"metabaseUrl",[320,507,423],{"class":422},[320,509,510],{"class":330},"https:\u002F\u002F...",[320,512,513],{"class":476},"   # optional\n",[320,515,517,520,523,525],{"class":322,"line":516},9,[320,518,519],{"class":418},"linearUrl",[320,521,522],{"class":422},":    ",[320,524,510],{"class":330},[320,526,527],{"class":476},"  # optional\n",[320,529,531],{"class":322,"line":530},10,[320,532,413],{"class":337},[306,534,536],{"id":535},"excalidraw-embedding","Excalidraw embedding",[293,538,539,540,543,544,547],{},"Save Excalidraw drawings as ",[301,541,542],{},".svg"," with ",[297,545,546],{},"\"Embed scene\""," checked. The resulting file is simultaneously:",[365,549,550,553],{},[368,551,552],{},"a renderable SVG (embed with standard markdown image syntax)",[368,554,555],{},"an editable scene (re-open the same file in excalidraw.com to keep editing)",[293,557,558],{},"No runtime React\u002FExcalidraw library needed — it's just an image to the browser.",[306,560,562],{"id":561},"comments-giscus","Comments (giscus)",[293,564,565,566,571,572,575,576,579],{},"Per-page discussion threads via ",[354,567,570],{"href":568,"rel":569},"https:\u002F\u002Fgiscus.app",[358],"giscus",", backed by GitHub Discussions on ",[301,573,574],{},"studyflash-ai\u002Fstudyflash",". Mapping is ",[301,577,578],{},"pathname",", so each write-up route gets its own thread automatically.",[293,581,582],{},"One-time setup:",[584,585,586,596,605,616,630],"ol",{},[368,587,588,589,591,592,595],{},"On the ",[301,590,574],{}," repo, enable ",[297,593,594],{},"Discussions"," (Settings → General → Features).",[368,597,598,599,604],{},"Install the ",[354,600,603],{"href":601,"rel":602},"https:\u002F\u002Fgithub.com\u002Fapps\u002Fgiscus",[358],"giscus GitHub App"," and grant it access to the repo.",[368,606,607,608,611,612,615],{},"Create a Discussion category named ",[301,609,610],{},"Doc comments"," (type: ",[297,613,614],{},"Announcement"," — only maintainers can open threads, anyone with repo access can reply).",[368,617,618,619,622,623,626,627,359],{},"Visit ",[354,620,568],{"href":568,"rel":621},[358],", fill in the repo + category, copy the generated ",[301,624,625],{},"data-repo-id"," and ",[301,628,629],{},"data-category-id",[368,631,632,633,636,637],{},"Set the IDs as env vars (e.g. in a local ",[301,634,635],{},".env"," or in deploy config):",[311,638,640],{"className":313,"code":639,"language":315,"meta":316,"style":316},"NUXT_PUBLIC_GISCUS_REPO_ID=R_kgDO...\nNUXT_PUBLIC_GISCUS_CATEGORY_ID=DIC_kwDO...\n",[301,641,642,654],{"__ignoreMap":316},[320,643,644,647,651],{"class":322,"line":323},[320,645,646],{"class":422},"NUXT_PUBLIC_GISCUS_REPO_ID",[320,648,650],{"class":649},"szBVR","=",[320,652,653],{"class":330},"R_kgDO...\n",[320,655,656,659,661],{"class":322,"line":334},[320,657,658],{"class":422},"NUXT_PUBLIC_GISCUS_CATEGORY_ID",[320,660,650],{"class":649},[320,662,663],{"class":330},"DIC_kwDO...\n",[293,665,666,667,670],{},"Until those IDs are set, the ",[301,668,669],{},"\u003CDocComments \u002F>"," block silently no-ops — the page renders without a comments section.",[293,672,673,674,676],{},"Note: commenters need GitHub read access to ",[301,675,574],{},". This surface is intentionally eng-only.",[306,678,680],{"id":679},"why-standalone-not-in-the-workspace","Why standalone (not in the workspace)",[365,682,683,686,692],{},[368,684,685],{},"True quarantine: a half-finished demo can't break the monorepo's build\u002Flint\u002Ftypecheck pipeline.",[368,687,688,689,359],{},"No root-lockfile churn until\u002Funless we decide to graduate this to ",[301,690,691],{},"apps\u002Fresearch",[368,693,694,695,698,699,702,703,706],{},"The ",[301,696,697],{},".npmrc"," here sets ",[301,700,701],{},"ignore-workspace=true"," so ",[301,704,705],{},"pnpm install"," works without parent-workspace interference.",[708,709,710],"style",{},"html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":316,"searchDepth":334,"depth":334,"links":712},[713,714,715,716,717,718],{"id":308,"depth":334,"text":309},{"id":362,"depth":334,"text":363},{"id":400,"depth":334,"text":401},{"id":535,"depth":334,"text":536},{"id":561,"depth":334,"text":562},{"id":679,"depth":334,"text":680},"Aesthetic sample of the proposed research \u002F write-up surface. Standalone Nuxt 3 + Nuxt Content v3 project — intentionally not in pnpm-workspace.yaml, so it can't affect the root lockfile, turbo pipeline, or CI.","md",null,{},true,{"title":205,"description":719},"internal\u002Fdocs\u002FREADME","MsrNQf_0itFGvTFdyM5hmqOC0HdtJZ30H4qgeOdpk7U",1779007964131]