151 lines
35 KiB
JSON
151 lines
35 KiB
JSON
{"prompt": "- transcode ladder: 240p to 1080p, 5 rungs\n- per-title encoding would be nice but not v1\n- must handle a 4h source without blowing memory\n- output HLS + DASH from one pass if possible\n- retry a failed rung without redoing the whole thing\n\nwrite the design for this before anyone touches ffmpeg", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
|||
|
|
{"prompt": "transcode worker that shells out to ffmpeg per rung, streams progress to redis, and cleans up temp files even when it's killed", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "video player controls: scrubber with buffered ranges, quality menu, captions toggle, and keyboard shortcuts that match youtube's", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the hls segment length is 10s, drop it to 4", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "our ffmpeg args are built by string concatenation in four places with different escaping. one builder, byte-identical commands for the existing presets", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "some uploads produce a manifest with a 0-duration segment at the end and safari refuses to play it", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "explain how our player picks the initial rung, i want to know if it's bandwidth estimation or just the lowest", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "docs for the playback api — the manifest urls, token expiry, and the drm handshake steps", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "signed playback tokens, short lived, bound to the session and the asset, and rotate without breaking an in-progress stream", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "thumbnail sprite generation at 1 frame per 5 seconds plus the vtt, for scrub previews", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "scrub preview thumbnails on hover, positioned above the cursor and clamped to the player bounds", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "captions default to on, should default to off unless the user's set it", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "playback stalls at the exact same timestamp for one asset on every device. the segment downloads fine with curl", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "plan the live streaming feature — ingest, low latency hls, dvr window, and what we do when the broadcaster's connection drops for 10 seconds", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "read the packager code and tell me whether we're actually producing CMAF or just calling it that", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "encoding guide for content partners: accepted source formats, the bitrate we want, audio loudness target, and what we reject", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "rust: wasm module for client-side thumbnail decoding so the editor can scrub without hitting the server", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the wasm bundle is 4mb because we're not running wasm-opt", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "our rust crate has three error enums that wrap each other with From impls that lose context. one error type with a proper source chain, same failure classification", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "wasm panics in firefox only, with 'unreachable executed' and no useful stack", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "prism design system: build the Button with variants, sizes, loading state, and icon slots. it needs to work as a link too without duplicating styles", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "our component library exports 60 components and 40 of them re-declare the same size and tone props. extract shared prop types and variant logic, no visual change", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "check the design system for components that don't forward refs, several of our composition patterns break because of it", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "component docs for prism: props table per component, do/don't examples, and the accessibility notes we keep forgetting", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "keep going pls", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "en"}
|
||
|
|
{"prompt": "we're at the point where the design system needs a real versioning and adoption strategy. three apps consume it, one is pinned to a version from january, and every breaking change turns into a week of coordination. write the plan — semver policy, codemods, deprecation windows, and how we get the pinned app current", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "codemod that migrates the old Button props to the new api, handling the spread case and leaving a comment where it can't be sure", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "storybook stories for every component state including the ones we forget: loading, error, empty, and rtl", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the package's peerDependencies allows react 17 which we don't support anymore", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "visual regression snapshots differ by a pixel on CI vs local for every text-containing component", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "tell me which components changed public api between 3.x and 4.x, from the code not the changelog", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "migration guide from prism 3 to 4, per component, with the codemod command for the ones we can automate", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "tokens pipeline: figma variables to json to css custom properties and swift/kotlin constants, in one build step", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the token names in figma use spaces and our generator produces invalid css var names for those", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "our dark theme is a separate stylesheet that has drifted from light. derive both from tokens instead, and light mode must render identically to today", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "one component reads a token that doesn't exist in dark mode and falls back to black on black", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "theme switcher with no flash of the wrong theme on first paint, and it should follow the system by default", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "outline how we'd support customer theming — how far we let them go, what stays fixed, and how we keep contrast legal", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "explain the cascade layers we use and whether a consumer's css can override our component styles by accident", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "write the theming docs for customers: what's themeable, the contrast requirements we enforce, and the preview flow", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "brand color picker with a live preview of six components and a warning when a combination fails contrast", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "server side theme resolution so the first byte already has the right variables, no client flash", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the contrast check helper uses the wrong luminance formula for the alpha case", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "design the icon system then implement the sprite build", "purpose": "planning", "secondary": "frontendImpl", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||
|
|
{"prompt": "figure out why the theme flashes and then note the fix in the design system readme", "purpose": "debugging", "secondary": "writing", "mixed": true, "difficulty": 0.6, "slice": "mixed", "lang": "en"}
|
||
|
|
{"prompt": "ok do that", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "en"}
|
||
|
|
{"prompt": "picking up the ingest rewrite from last sprint. next piece is the dedupe — events arrive up to 3 times from the edge, keyed by (source, event_id), and the window needs to cover a 6 hour replay. build it", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "plan the edge ingest topology: workers per region, a durable buffer, and what happens when the central pipeline is down for an hour", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "ingest health page: events per second per region, dedupe rate, and the lag from edge to warehouse", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the dedupe window is 15 minutes, needs to be 6 hours", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the edge worker and the central consumer both validate the event envelope with separate schemas that have drifted. one schema, generated, and list any events that would now be rejected", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "events from one region are 40 minutes stale but the region reports healthy and the queue is empty", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "walk me through what our edge buffer does when its disk fills up", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "write the event ingest api docs for our sdk authors — the envelope, the required fields, batching limits, and the dedupe contract", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "batch endpoint accepting up to 500 events with per-event accept/reject in the response, and a 413 with a clear message over that", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "debug console showing the last 100 events received for a source, live, with the raw payload expandable", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the 413 response has an empty body", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "propose how we handle schema evolution on customer-defined event properties without the warehouse table exploding to 4000 columns", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "events with a property that changes type between string and number silently land as null in the warehouse", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "check whether a customer can send us an event that ends up in another customer's dataset, via the source id or otherwise", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "our property type coercion lives in the edge worker, the consumer and the warehouse loader with three sets of rules. unify, and report which historical events would be typed differently", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "docs page explaining property types, how we coerce, and what happens when a property changes type", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "wieder da — als nächstes bitte den Retry-Pfad für den Warehouse-Loader implementieren, idempotent pro Tagespartition", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "de"}
|
||
|
|
{"prompt": "warehouse loader with per-partition idempotency, a manifest of loaded files, and a repair mode for a single day", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the loader's manifest table has no unique constraint so a double load is possible", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "plan how we prove the pipeline is lossless — reconciliation counts at each hop and an alert when they diverge", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "reconciliation dashboard: counts per hop per hour, with the divergence highlighted and a drill-in to the missing ids", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "counts match at the edge and the consumer but the warehouse is short by 0.02% every day", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "explain the delivery guarantee we actually provide end to end today, hop by hop", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "sla doc for data freshness and completeness, with what we commit to and how we measure it", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "vamos", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "es"}
|
||
|
|
{"prompt": "here's the crash report from testflight, 40 users hit this yesterday:\n\nIncident Identifier: 8B21F4A1-...\nHardware Model: iPhone16,2\nOS Version: iPhone OS 26.1 (23B74)\n\nException Type: EXC_BREAKPOINT (SIGTRAP)\nException Codes: 0x0000000000000001, 0x00000001045f21c4\nTriggered by Thread: 0\n\nThread 0 name: Dispatch queue: com.apple.main-thread\nThread 0 Crashed:\n0 Halyard 0x1045f21c4 HalyardCore.MediaCache.evict(to:) + 340 (MediaCache.swift:188)\n1 Halyard 0x1045f0a08 HalyardCore.MediaCache.insert(_:key:) + 212 (MediaCache.swift:141)\n2 Halyard 0x10460b114 closure #1 in HalyardUI.FeedViewModel.prefetch() + 96 (FeedViewModel.swift:77)\n3 libswift_Concurrency.dylib 0x1a2f1c880 swift_task_switch + 60\n\nMediaCache.swift:188 is `precondition(bytes >= 0)`. so we're going negative on the byte count somewhere", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "pasted-context", "lang": "en"}
|
||
|
|
{"prompt": "rewrite MediaCache with an actor so the byte accounting can't race, same eviction policy and the same cache hit behavior", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the cache size limit is 50mb which is nothing for video, make it 500", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.1, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "prefetching for the feed: next two items, cancelled when they scroll past, and never on cellular unless the user allowed it", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "feed cells that autoplay muted when 60% visible and pause otherwise, with a smooth first frame instead of a black flash", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "review our media cache eviction and tell me whether a large item can starve everything else", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "plan the offline downloads feature for the ios app — what's stored, the drm license, storage limits, and what happens when the user's subscription lapses", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.9, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "internal doc on how the media cache and the download store relate, they're two things and everyone thinks they're one", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "downloads screen with per-item progress, pause/resume, storage used, and a delete-all with the space it'll free", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "downloaded items disappear after an app update", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the download directory is in Documents so it's backed up to icloud, move it to Application Support with the exclude flag", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "license renewal for downloads in the background, before expiry, and a clear state in the ui when it fails", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "tell me how our download license expiry interacts with the device being offline for a month", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "help article about downloads: what you can download, how long it stays, and the device limit", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "map out the plan for a tv app — which platforms, how much we share with ios, and the focus-engine work", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "our playback state is duplicated between the player wrapper and the view model, and they disagree during seeks. one source of truth", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "sure go", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "en"}
|
||
|
|
{"prompt": "need a decision on our api pagination before the sdk ships. we currently return a `next_url` on some endpoints, page numbers on others, and one endpoint returns everything. i want one scheme, the reasoning, and the migration for the two public endpoints that already have consumers", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "cursor pagination on the remaining 14 endpoints, opaque cursors, stable ordering, and a hard max page size of 200", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "infinite list with a load-more button as a fallback and a live 'showing X of Y' when we know the total", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the page size param is capped at 1000 in one endpoint and unbounded in another", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "our list endpoints each implement their own pagination inline. one shared helper, and every endpoint returns the same result set as before", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "paging through a list while items are being created skips records, and the cursor is supposedly stable", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "does our cursor encode enough to be stable if the sort column has duplicate values? check the encoding", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "pagination section for the api docs — the cursor contract, what's guaranteed, and the recommended loop with a code sample", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "filtering and sorting params across the list endpoints, consistent syntax, and reject unknown fields rather than ignoring them", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "filter builder ui that maps to the api's filter syntax, with a raw mode for power users", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "sorting by a nullable column puts nulls first ascending and first descending too", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the default sort is by id which looks random to users, make it created_at desc", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "sketch out how we'd support field selection (sparse fieldsets) without letting someone request a 40-way join", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "look at our filter parsing for injection risk, it builds sql fragments and i want to know how carefully", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "reference doc for the filter syntax — operators per type, combining rules, and the limits", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "our query param parsing accepts both snake_case and camelCase inconsistently per endpoint. pick snake_case, accept camel with a deprecation header for two releases", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "plan the api v3 surface and then implement the new list endpoints", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.8, "slice": "mixed", "lang": "en"}
|
||
|
|
{"prompt": "explain how the cursor works and then document it properly", "purpose": "review", "secondary": "writing", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||
|
|
{"prompt": "next up?", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "vague-eval", "lang": "en"}
|
||
|
|
{"prompt": "our admin tooling is 40 rails views bolted on over four years and support can't do half of what they need without asking an engineer. i want the plan for a real internal tool: what support can do, the audit and permission model, and whether we build it or use retool", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "support impersonation with a banner, a time limit, full audit, and a hard block on the destructive actions", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "admin customer view: account summary, recent activity, subscription state, and the five actions support actually uses, all above the fold", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the impersonation banner is grey and people miss it, make it unmissable", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "our admin actions bypass the normal service layer and write directly. route them through the same services so validation and audit apply", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "a support action to reset a user's password sends the email to the admin's address about 1 in 20 times", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "list what actions in the admin tool have no audit record", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "support playbook: the ten most common tickets, what to check, and the exact admin action for each", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "bulk operations for support — apply a change to a list of accounts from a pasted csv, with a preview and a dry run", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "bulk action review screen: what will change per row, warnings for the risky ones, and a typed confirmation for over 100 rows", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "csv paste with a trailing newline creates one empty row that errors", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "figure out the permissions model for internal tools — roles for support, finance, and engineering, with least privilege actually enforced", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "a finance role can see the admin routes for account deletion even though the nav hides them", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "does hiding a nav item ever equal enforcing a permission in our admin? show me where the checks are", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "internal doc listing the admin roles and exactly what each can do, for the soc2 evidence", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the admin authorization is a mix of before_actions, view conditionals and a helper. one policy layer, same effective access for every existing role", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.8, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "ちょっと戻ってきた。次は管理画面の一括操作にプレビューを付けたい、まず設計から", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "ja"}
|
||
|
|
{"prompt": "half done, take it from here", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|
||
|
|
{"prompt": "i want the plan for making our onboarding not terrible. current state: 11 steps, 40% drop off at step 4 (workspace setup), no way to skip, and the empty product afterwards. i'd like the redesign proposal with what we can cut and what we measure", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "workspace provisioning on signup — create the org, the default project, sample data, and an invite link, all in one transaction-ish flow with rollback if a step fails", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "new onboarding: 4 steps, progress bar, skip-for-now on every step, and it resumes where you left off if you close the tab", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "step 2's continue button is disabled until a field that's supposedly optional is filled", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the onboarding state is tracked in three places — a users column, localstorage, and a segment trait. one source of truth, and existing half-onboarded users must not be sent back to step 1", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "some users land in the product with no default project and everything 404s. can't tell which signup path does it", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "trace every path into the app that creates a user, i suspect there are more than the three i know about", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "onboarding email sequence copy, 4 emails, tied to what the user has and hasn't done", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "sample data generator that produces a believable small workspace, deleteable in one click", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "empty states across the six main screens with a single clear next action each, replacing the current 'no data' text", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the sample data has 2024 dates so everything looks stale", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "plan the activation metrics — what counts as activated, how we instrument it, and the funnel we report weekly", "purpose": "planning", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "the funnel numbers in amplitude don't match our db counts by about 15% and i don't know which to trust", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "explain what our signup analytics events fire on, exactly, because i think one fires before the account exists", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "tracking plan doc: every onboarding event, when it fires, its properties, and who owns it", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "boundary", "lang": "en"}
|
||
|
|
{"prompt": "our analytics calls are sprinkled inline in components. move them behind a typed tracking module, same events with the same properties", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "invite flow: multiple emails at once, role per invite, resend, revoke, and a clear state for pending vs accepted", "purpose": "backendImpl", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "members page with pending invites in the same list, greyed, with resend and revoke inline", "purpose": "frontendImpl", "secondary": null, "mixed": false, "difficulty": 0.5, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "an expired invite link says 'something went wrong' instead of 'this invite expired'", "purpose": "quickFix", "secondary": null, "mixed": false, "difficulty": 0.2, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "accepting an invite while logged into a different account joins the wrong account", "purpose": "debugging", "secondary": null, "mixed": false, "difficulty": 0.7, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "check the invite token for whether it can be reused after acceptance, and whether it leaks the org name to a stranger", "purpose": "review", "secondary": null, "mixed": false, "difficulty": 0.6, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "invite email copy plus the landing page copy for someone who's never heard of us", "purpose": "writing", "secondary": null, "mixed": false, "difficulty": 0.3, "slice": "core", "lang": "en"}
|
||
|
|
{"prompt": "design the team roles model then build the invite-with-role part", "purpose": "planning", "secondary": "backendImpl", "mixed": true, "difficulty": 0.7, "slice": "mixed", "lang": "en"}
|
||
|
|
{"prompt": "review the onboarding code and fix the small stuff you find", "purpose": "review", "secondary": "quickFix", "mixed": true, "difficulty": 0.5, "slice": "mixed", "lang": "en"}
|
||
|
|
{"prompt": "thats it for now, just tidy", "purpose": "refactor", "secondary": null, "mixed": false, "difficulty": 0.4, "slice": "vague-eval", "lang": "en"}
|