ljang0/MyPCBench-tasks huggingface dataset:
Task (medium, counterfactual / cross_source_reconciliation)
Primary app: batbucks
Apps involved: BatBucks
LibreOffice Calc

Instruction: What if I sold all my GameStop and Rivian and rolled the whole thing into VTI? Use cost basis (no live prices) and show me what my portfolio would look like before and after, with percentages. Use LibreOffice Calc to report this.

Grading criteria:
criterion: Agent computes the GameStop + Rivian cost-basis sum from the seeded holdings (GME shares × avg_cost + RIVN shares × avg_cost) and reports that consolidation pool figure
criterion: Agent reports the new total VTI position after the roll (existing VTI shares plus the additional shares funded by the GameStop+Rivian sell)
criterion: Presents a before/after portfolio composition with percentages showing how each position changes
criterion: Notes explicitly that the calculation uses cost basis (not market price) per the user's request
criterion: Agent lists Michael's current BatBucks holdings (live count from /api/holdings) with shares times avg_cost before computing the GameStop and Rivian sell pool
criterion: Agent divides the consolidation pool by VTI's avg_cost and reports the count of additional VTI shares to purchase from the GameStop+Rivian sell proceeds
criterion: Agent produces the before/after report in LibreOffice Calc (opens Calc, enters the portfolio data and percentages into a spreadsheet, and saves or presents the file)
Task (hard, situated_action / bounded_action)
Primary app: batbucks
Apps involved: BatBucks

Instruction: Time to rebalance my BatBucks portfolio into something a financial advisor wouldn't laugh at. I'm aiming for roughly 60% VTI / 20% SBUX / 20% DIS across the blue-chip bucket at cost basis (RIVN stays put — I'm not touching that one). Sell every share of GME I'm holding to free up cash, then use that plus my free cash to buy enough VTI to push the allocation toward 60%. Do this as a cost-basis rebalance, not live prices. Exact percentages aren't required — a reasonable approximation toward the 60/20/20 shape is the goal.

Grading criteria:
criterion: Agent reads all current BatBucks holdings (live count from /api/holdings) and records each ticker's avg_cost value at cost basis before placing any orders
criterion: Agent sells every GME share Michael holds (full position liquidation) in a single or combined order
criterion: Agent computes a VTI buy quantity that pushes VTI toward approximately 60% of the rebalanced blue-chip (VTI+SBUX+DIS) cost-basis total, treating the 60/20/20 target as an approximation (RIVN held out of the target bucket)
criterion: Agent places a VTI buy order for the computed quantity
criterion: Agent confirms new holdings row shows GME=0 and VTI shares increased
criterion: Agent explicitly uses cost-basis framing (not market value)
criterion: Agent verifies the GME sell order and VTI buy order persist in the BatBucks order history and that the holdings table reflects the rebalance with cash updated
Task (hard, situated_action / bounded_action)
Primary app: batbucks
Apps involved: BatBucks

Instruction: I want downside protection on every position I'm holding in BatBucks. Put a couple Stop order on each one at 15% below what I paid for it, just to give me a floor. Then build me a new watchlist called 'Oscar's Picks' with eight big-name ETFs in it. Make sure the stop-losses actually show up in my open orders and the watchlist is still there if I refresh.

Grading criteria:
criterion: Agent opens BatBucks and lists all current holdings (live count from /api/holdings) with their avg_cost values to plan the stop-loss orders
criterion: Agent submits a Stop order (single stop price, not Stop-Limit) for every current BatBucks holding (live count from /api/holdings) at ~15% under each ticker's actual avg_cost (computed from holdings)
criterion: Agent creates a new BatBucks watchlist named 'Oscar's Picks'
criterion: Agent adds 8 big-name/mainstream ETF tickers (e.g., VTI, VOO, QQQ, SPY, DIA, IWM, VEA, VWO or comparable large-AUM broad-market ETFs) to the 'Oscar's Picks' watchlist in BatBucks
criterion: Agent reloads BatBucks and confirms stop-loss orders are accounted for (open or filled) for each current holding — noting that any stop placed below the current trading price may fill immediately — and the 'Oscar's Picks' watchlist persists after refresh
Task (medium, preference_inference / pattern_inference)
Primary app: batbucks
Apps involved: BatBucks

Instruction: Take a look at my brokerage portfolio. How bad is my meme-stock problem, and what would a sensible rebalance look like that doesn't totally abandon the names I actually like? Use cost basis, not market prices. While you're at it, peek at my old WUPHF investment agreement in ~/Downloads/ — that one was the OG mistake, and it sets the pattern for how I get into these things. Return the review of my portfolio in LibreOffice Writer.

Grading criteria:
criterion: Agent pulls Michael's BatBucks RIVN holding (shares and avg_cost from the holdings view / /api/holdings) and reports it as the source of his RIVN exposure
criterion: Agent reports Michael's RIVN cost-basis dollar exposure (shares × avg_cost from live BatBucks holdings) and expresses RIVN's share as a percent of the total cost-basis portfolio
criterion: Agent frames the analysis using cost basis (avg_cost) per the user's request, not market value
criterion: Agent proposes a RIVN trim plan consistent with Michael's historical consumer-brand bias (preserves DIS/SBUX-style narrative names rather than suggesting a pure-index dump)
criterion: Agent reports the BatBucks holdings rows as the data source for the trim recommendation instead of inventing numbers
criterion: Agent delivers the full RIVN trim answer including cost-basis concentration percent and recommendation without abandoning the task midway
criterion: Agent opens ~/Downloads/WUPHF_Investment_Agreement.txt and references it as the founding 'bad bet' pattern that explains the current RIVN over-exposure
criterion: Agent produces the portfolio review in a LibreOffice Writer document, as requested in the instruction
Task (medium, retrieval / personal_lookup)
Primary app: batbucks
Apps involved: BatBucks

Instruction: What's my total BatBucks portfolio worth at cost basis across everything I'm holding, and how much cash is sitting in the account?

Grading criteria:
criterion: Agent reports Michael's BatBucks portfolio value at cost basis (sum of shares × avg_cost across all current holdings, live count from /api/holdings)
criterion: Agent reports the cash balance in the BatBucks account separately from holdings value
criterion: Agent uses cost basis (avg_cost) framing as the user requested, not market value
criterion: Agent reconciles the reported BatBucks cost-basis total and cash balance against the holdings table rows instead of fabricating numbers
Task (hard, situated_action / bounded_action)
Primary app: batbucks
Apps involved: BatBucks

Instruction: Trim my GameStop position in half and roll the proceeds into VTI. I'm trying to be less of a degenerate about this.

Grading criteria:
criterion: Agent sells approximately half of the live GME position (roughly half the seeded share count, rounding up or down by one share) as the half-position trim into VTI
criterion: Agent buys VTI using proceeds from the GME sale (not cash from elsewhere)
criterion: Agent confirms both GameStop sell and VTI buy orders executed and verifies the updated BatBucks positions reflect the half-GME trim rebalance
criterion: Agent opens BatBucks and reports the existing GameStop GME position share count (read from the live holdings table) before executing the half-trim sell into VTI
Task (medium, preference_inference / pattern_inference)
Primary app: cheskepdia
Apps involved: Cheskepdia

Instruction: Look at my hotel and resort bookings on Cheskepdia. Am I a luxury-hotels guy or a budget-hotels guy, and what's my pattern?

Grading criteria:
criterion: Agent lists all four Cheskepdia trip bookings with their property names (Jamaica, NYC, Barbados, Philadelphia hotels)
criterion: Agent categorizes each of the 4 Cheskepdia hotel bookings as luxury-tier or budget-tier and labels which group the pattern favors
criterion: Agent flags Sandals (Montego Bay + Royal Barbados) as the dominant luxury pattern
criterion: Agent identifies the Philadelphia Radisson booking from the four hotel trips as the business-travel outlier among Michael's luxury-hotels pattern
criterion: Agent lists specific Cheskepdia booking rows (property name, total) from the four trips when stating the luxury-versus-budget verdict
criterion: Agent delivers the full luxury-versus-budget guy verdict with the pattern summary, not stopping before answering the four-trip question
Task (hard, situated_action / bounded_action)
Primary app: cheskepdia
Apps involved: Cheskepdia

Instruction: I'm feeling nostalgic. Book me an upcoming Scranton weekend, Friday through Sunday. Pick a well-rated property in town and book it.

Grading criteria:
criterion: Agent books a Scranton property on Cheskepdia with a future check-in date for the nostalgic weekend trip
criterion: Agent's booked Scranton stay spans Friday check-in through Sunday check-out as requested for the upcoming weekend
criterion: Agent browses the Cheskepdia Scranton search results and picks a well-rated property before booking
criterion: Agent confirms the new Cheskepdia Scranton booking details (property, Friday-to-Sunday dates, total) after submitting the reservation for the nostalgic weekend
Task (medium, cua_only / bounded_action)
Primary app: dinoco_airlines
Apps involved: Dinoco Airlines

Instruction: Open the Dinoco Airlines app, check in my next upcoming flight and confirm that the boarding pass screen actually renders. Download it locally as well.

Grading criteria:
criterion: Agent opens Dinoco Airlines and locates the next upcoming (non-cancelled) flight by departure_date in the live booking list
criterion: Agent clicks the 'Check in' control on that upcoming flight's row, not on a past or cancelled flight
criterion: Agent verifies that the boarding pass view actually renders after check-in (flight number, route, and seat/gate details visible)
criterion: Agent downloads the boarding pass locally (e.g., saves the file to disk or confirms a download action was triggered)
criterion: Agent reports the boarding pass details (flight number and route) it observed on the rendered pass
Task (medium, aggregation / aggregation_reporting)
Primary app: dinoco_airlines
Apps involved: Dinoco Airlines

Instruction: How many miles have I actually flown on Dinoco over the past 12 months? Add up the miles from every completed Dinoco flight in that window. Give me a spreadsheet of each trip, and the miles for each one with a final row of the cumulative miles. Also include the upcoming trips and their milage.

Grading criteria:
criterion: Agent filters Dinoco flight history to flights that are completed (not cancelled and not still-upcoming) within the past 12 months and sums their miles from the live flight history
criterion: Agent also lists upcoming Dinoco flights and their mileage alongside the completed-flight data, as explicitly requested
criterion: Agent produces a per-trip table or spreadsheet-style breakdown with each trip and its miles, ending with a cumulative total row
criterion: Agent reports the count of completed Dinoco flights in the past 12 months and the total miles for that window (even 1-2 flights is a valid result)
criterion: Agent delivers a single answer covering completed-flight totals, upcoming-flight mileage, and the per-trip breakdown together
Task (hard, situated_action / bounded_action)
Primary app: dinoco_airlines
Apps involved: Dinoco Airlines
HooliMail

Instruction: Book me a one-way Dinoco flight from AVP to JFK in Economy for next Friday with my MasterCard. Make sure you get a seat on the left and a flight in the evening or night. Can you check that the we got a confirmation email for the flight and pull it up?

Grading criteria:
criterion: Agent creates a new one-way Dinoco booking with origin AVP and destination JFK in the Economy fare class for next Friday
criterion: Agent selects an evening or night departure flight (departure time in the evening or after sunset) and picks a seat on the left side of the aircraft
criterion: Agent pays with Michael's MasterCard (not a different saved card or a new card entry)
criterion: Agent completes the booking and captures the new Dinoco confirmation number returned by the app
criterion: Agent confirms a booking confirmation email was received and pulls it up as requested by Michael
criterion: Agent delivers a single end-to-end answer: new confirmation number plus confirmation that the booking email was found
Task (easy, retrieval / personal_lookup)
Primary app: dinoco_airlines
Apps involved: Dinoco Airlines

Instruction: What's my current FlyMiles loyalty tier on Dinoco and how many miles do I have in the bank?

Grading criteria:
criterion: Agent reads Michael's FlyMiles loyalty tier directly from the live Dinoco profile (not inferred from email or other apps)
criterion: Agent reads Michael's current FlyMiles miles balance directly from the live Dinoco profile
criterion: Agent reports the loyalty tier and miles balance together in a single answer
Task (hard, hard_app / bounded_action)
Primary app: dinoco_airlines
Apps involved: Dinoco Airlines
HooliMail

Instruction: Cancel my next flight on Dinoco. After cancelling, verify we get an email for the cancellation, and pull it up. Let me know what you cancelled and how much credit we received.

Grading criteria:
criterion: Agent picks the next upcoming Dinoco booking that is still cancellable (not already past or cancelled) and cancels it through the Dinoco UI
criterion: Agent confirms the cancellation confirmation email was received and pulls it up as requested
criterion: Agent verifies a new travel-credit entry posts in Dinoco for the cancelled fare and reports the credit amount received
criterion: Agent explicitly reports what flight was cancelled (route and/or flight number) and how much credit was received
criterion: Agent delivers a single end-to-end answer: cancelled booking details, cancellation email confirmation, and travel-credit amount
Task (medium, aggregation / aggregation_reporting)
Primary app: etaxi
Apps involved: eTaxi

Instruction: How much have I actually spent taking eTaxi to the Dunder Mifflin office this year? Just the commute rides. Sum up and report the total cost in a LibreOffice Calc sheet.

Grading criteria:
criterion: Agent filters eTaxi to rides whose dropoff_address starts with 'Dunder Mifflin' (the unique-to-Office prefix that disambiguates the office from any home rides on the same street)
criterion: Agent sums those rides to a YTD commute spend number
criterion: Agent reports the Dunder Mifflin eTaxi commute ride count alongside the current-year YTD commute-only spend total
criterion: Agent answers the how-much-spent question for Dunder Mifflin eTaxi commute rides with a single YTD dollar figure for the current year
Task (medium, situated_action / bounded_action)
Primary app: etaxi
Apps involved: eTaxi

Instruction: Verify my saved work/office address on my ride app is set to Dunder Mifflin at 1725 Slough Ave (Suite 200, Scranton, PA). Report back what's currently saved — if it already matches, no action needed; if it's wrong or missing, fix it and save the change.

Grading criteria:
criterion: Agent opened eTaxi and actually looked at the saved work/office location entry (whichever label the app uses — 'Work' or 'Office')
criterion: Agent reported the current saved work/office address to Michael, explicitly confirming whether it matches Dunder Mifflin at 1725 Slough Ave (with or without Suite 200 / Scranton, PA suffix)
criterion: Agent explicitly states whether the saved work/office address already matches '1725 Slough Ave' (in which case no action is needed) or required a correction, and applies the update only if a mismatch was found
criterion: If the agent applied any correction, it explicitly saves/commits the updated work/office location entry so the change persists (not just a temporary edit); if no correction was needed, the agent explicitly says so and does not modify the entry
criterion: Agent navigates into the eTaxi saved locations screen and inspects the existing work/office entry (labeled 'Work' or 'Office' in the app) before deciding whether to update it to Dunder Mifflin 1725 Slough Ave
Task (medium, retrieval / personal_lookup)
Primary app: files
Apps involved: Files

Instruction: Where did I save my Threat Level Midnight sequel notes? Should be tucked somewhere under ~/Documents/Projects. Give me a quick rundown of what's in there (plot, cast, whatever I had going). Can you draft up a script that I can use as a starting point? Make sure you include everyone from work as a character, for casting reasons.

Grading criteria:
criterion: Agent locates the Threat_Level_Midnight_Sequel_Notes.txt file in ~/Documents/Projects and reports its absolute path
criterion: Agent reads the file and provides a quick rundown of the plot, cast, and other elements from the sequel notes
criterion: Agent produces a draft script grounded in the sequel notes (not a generic action script) that uses the notes as a starting point
criterion: Agent's draft script includes multiple Dunder Mifflin coworkers as named characters (casting reason requirement)
criterion: Agent opens the Files app and navigates to ~/Documents/Projects to locate the file before summarizing or drafting
Task (medium, retrieval / multi_step_orchestration)
Primary app: files
Apps involved: Files
LibreOffice Impress
HooliWork
HooliMail

Instruction: I remember making a Dundies categorization document. Show me the Dundies 2026 categories I came up with. Where is the doc and what categories did I put down? Can you make a presentation with these categories using LibreOffice Impress so I can prepare for the Dundies? Message each of the candidates to make sure they show up to the Dundies.

Grading criteria:
criterion: Agent locates Dundies_2026_Categories.txt in ~/Documents, reports its absolute path, and enumerates the Dundies 2026 categories from the document
criterion: Agent creates a LibreOffice Impress presentation (.odp or .pptx) that includes the Dundies categories as slide content
criterion: Agent sends messages (via HooliWork, HooliMail, or BuzzChat) to the Dundies candidates found in the document asking them to show up to the Dundies
criterion: Agent opens the Dundies_2026_Categories.txt doc in the Files app and reads its content before producing the presentation or messages
Task (hard, retrieval / personal_lookup)
Primary app: files
Apps involved: Files
LibreOffice Writer

Instruction: I'm working on my book, 'Somehow I Manage'. Where did I save Chapter 1, and can you give me a quick summary of what's in it? If you can write an extension for two more chapters in LibreOffice Writer, that would be great.

Grading criteria:
criterion: Agent locates Somehow_I_Manage_Chapter_1.txt in ~/Documents and reports its absolute path
criterion: Agent provides a faithful, coherent summary of Chapter 1's content in Michael's voice and tone
criterion: Agent writes two additional chapters (Chapter 2 and Chapter 3, or equivalent) that continue the 'Somehow I Manage' book in Michael Scott's boss-lore style
criterion: Agent opens or creates a LibreOffice Writer document (.odt or .docx) to write the two new chapter extensions
criterion: Agent's chapter extensions maintain Michael's over-the-top, self-aggrandizing management-wisdom tone consistent with Chapter 1
Task (hard, situated_action / multi_step_orchestration)
Primary app: files
Apps involved: Files
HooliMail
HooliWork

Instruction: Open my Threat Level Midnight sequel notes file and add five new plot points for me. Big ones. Michael Scarn's back. Send out the revised plot notes to a handful of my friends from work, who could be used for casting.

Grading criteria:
criterion: Agent locates and opens the existing Threat Level Midnight sequel notes file at ~/Documents/Projects/Threat_Level_Midnight_Sequel_Notes.txt via the Files app before adding new plot points
criterion: Agent adds at least 5 new plot points to the existing file and saves it so the additions persist on disk
criterion: Agent writes the 5 new plot points in Michael Scarn's Threat Level Midnight sequel tone (over-the-top action voice, big dramatic beats)
criterion: Agent sends the revised plot notes (or a summary/link) to at least a handful of Dunder Mifflin coworkers via HooliWork, HooliMail, or BuzzChat as potential casting candidates
criterion: Agent addresses the outreach to coworkers explicitly as potential casting candidates for the Threat Level Midnight sequel
Task (hard, situated_action / bounded_action)
Primary app: hangrydash
Apps involved: HangryDash

Instruction: I want a salad-forward lunch today on HangryDash from a restaurant in my order history that fits my vibe (salad-forward, nothing too spicy). Stick to my usual lunch budget. Apply any promo codes that surface and tip the driver 20%.

Grading criteria:
criterion: Agent picks a salad-forward HangryDash restaurant from Michael's live order history (e.g. Sweetgreen or a comparable salad/bowl-focused restaurant Michael has ordered from before)
criterion: Agent picks a lunch within Michael's usual HangryDash lunch spending range that matches his salad/bowl dietary pattern
criterion: Agent attempts to apply a HangryDash promo code at checkout for the salad-forward lunch order, or notes that no promo code is available if none surface
criterion: Agent enters a 20% driver tip on the salad-forward HangryDash lunch order at checkout
criterion: Agent places the order and sees it in history
criterion: Agent reviews HangryDash order history to confirm the chosen restaurant is salad-forward and one Michael has ordered from before
criterion: Agent reviews HangryDash order history highlights to identify a salad-forward restaurant Michael has ordered from before picking the lunch order target
criterion: Agent adds the picked salad-forward lunch item (priced within Michael's usual HangryDash budget) from the chosen salad-forward restaurant into the cart before proceeding to checkout
Task (hard, situated_action / bounded_action)
Primary app: hangrydash
Apps involved: HangryDash

Instruction: Rerun my last Cooper's Seafood House order from HangryDash with the same items I got last time. Apply any promo code that shows up and tip 20%. In the order notes, ask the kitchen to send extra napkins and crackers on the side, and to make sure anything hot is sent piping hot.

Grading criteria:
criterion: Agent opens HangryDash and navigates to the order history screen to surface the prior Cooper's Seafood House order list
criterion: Agent locates your most recent Cooper's Seafood House order in history
criterion: Agent clicks the Reorder button on the prior Cooper's Seafood House entry or opens a fresh HangryDash Cooper's Seafood House order seeded with the same line items
criterion: Agent adds the exact same item(s) from Michael's most recent Cooper's Seafood House order (as shown in his HangryDash order history) into the new cart
criterion: Agent adds an order note requesting extra napkins and crackers on the side and that hot items be sent piping hot
criterion: Agent attempts to apply a HangryDash promo code at checkout for the Cooper's Seafood House reorder, or notes that no promo code is available if none surface
criterion: Agent enters a 20% driver tip on the Cooper's Seafood House HangryDash reorder before submitting
criterion: Agent places the order and verifies it in history
Task (medium, preference_inference / pattern_inference)
Primary app: hangrydash
Apps involved: HangryDash
LibreOffice Calc

Instruction: What do I usually tip on food delivery, in dollars and as a percent? I want to set a smart default so I'm not thinking about it every order. Give me a report of all my orders and their tips in a LibreOffice spreadsheet.

Grading criteria:
criterion: Agent queries tip_amount and subtotal at the order-level for the HangryDash food-delivery tip analysis, covering Michael's full order history
criterion: Agent computes mean tip in both $ and % terms
criterion: Agent identifies the modal tip percent (15%, 18%, 20%, or custom) from the HangryDash order history
criterion: Agent recommends a defensible pre-fill default tip value grounded in the observed HangryDash tip pattern
criterion: Agent creates a LibreOffice Calc spreadsheet (.ods or .xlsx) containing a per-order row report with at minimum the order identifier, tip amount, and subtotal columns for Michael's HangryDash order history
criterion: Agent cites the HangryDash order-history tip rows as the data source for the recommended smart-default tip value, not inventing numbers
criterion: Agent delivers the full food-delivery tip answer in dollars and percent plus the smart-default recommendation and the LibreOffice spreadsheet
Task (medium, situated_action / bounded_action)
Primary app: hangrydash
Apps involved: HangryDash

Instruction: Order me my usual from Chili's — pick whichever item I've ordered most often from there, or just match my most recent Chili's order if multiple items are tied. Deliver to my place.

Grading criteria:
criterion: Agent identifies Chili's as the target restaurant and opens HangryDash order history to find Michael's prior Chili's orders
criterion: Agent places a Chili's order whose item(s) match Michael's most-frequent/modal item in his HangryDash Chili's order history (if two items tie for modal, either tied item is acceptable; matching the most-recent Chili's order is also acceptable as a tiebreaker)
criterion: Agent selects a delivery address on the order that matches Michael's saved home/primary HangryDash address
criterion: Agent adds the usual Chili's item(s) to the HangryDash cart and submits the order through the checkout flow so the order is placed
Task (hard, situated_action / multi_step_orchestration)
Primary app: hoolicalendar
Apps involved: HooliCalendar
HooliWork

Instruction: Check my Thursday for any improv conflicts. If there's a Thursday improv class window stomping on a work meeting (and I cannot skip improv), find a different Thursday slot for the work meeting that doesn't touch the improv window, and add fifteen-minute buffers on both sides so I can transition without looking frazzled. I think the meeting has Andy and Jim, message them on HooliWork and send them updated invites on Hoolicalendar if needed. If no Thursday meeting actually overlaps an improv block, just confirm the all-clear and move on.

Grading criteria:
criterion: Agent opens HooliCalendar and navigates to the Thursday day view to surface the scheduling conflict
criterion: Agent identifies any improv class event on the upcoming Thursday from live HooliCalendar (Scranton Improv Workshop, Improv Class, or any improv-tagged event) as the unmovable anchor
criterion: Agent checks the Thursday work meetings against the improv class window and either identifies an overlapping meeting or explicitly reports that no Thursday meeting conflicts with the improv block
criterion: If a conflict was found, agent picks a non-conflicting Thursday time slot for that meeting that does not touch the improv window (or states that no move is needed if no conflict was found)
criterion: If a conflict was found, agent moves the conflicting Thursday meeting in HooliCalendar to the new non-conflicting slot (or notes that no meeting needed to be moved)
criterion: If a meeting was moved, agent protects a 15-minute transition buffer immediately before the rescheduled Thursday meeting (either by creating a buffer event or by scheduling the meeting so at least 15 minutes of empty time precedes it)
criterion: If a meeting was moved, agent protects a 15-minute transition buffer immediately after the rescheduled Thursday meeting (either by creating a buffer event or by scheduling the meeting so at least 15 minutes of empty time follows it)
criterion: If a meeting was moved, agent sends updated HooliCalendar invites to the meeting attendees (Andy and Jim) after the move — OR, if the moved meeting has no attendees listed, agent explicitly notes that no attendees existed so no invites were needed
criterion: If a meeting was moved, agent messages Andy and Jim on HooliWork to notify them of the schedule change — OR notes that no HooliWork message was needed because no conflict existed or no move occurred
criterion: Agent verifies the Thursday view in HooliCalendar — confirming either that the moved meeting and improv class show no overlap, or that no conflict existed to resolve
Task (hard, long_horizon / bounded_action)
Primary app: hoolicalendar
Apps involved: HooliCalendar

Instruction: Build me a full Dundies prep schedule on my calendar. I want five events spread across the next two weeks: a categories brainstorm, a venue walkthrough, MC rehearsal, catering confirmation, and a dress rehearsal. Color-code them so they pop, invite Pam, Dwight, Kevin, Jim, and Holly on each, and if the event editor lets you set reminders, add 24-hour and 1-hour reminders as well.

Grading criteria:
criterion: Agent opens HooliCalendar and switches to a 2-week view to plan the Dundies prep schedule
criterion: Agent creates the 'Dundies categories brainstorm' event in HooliCalendar early in week 1 of the prep schedule
criterion: Agent creates the 'Venue walkthrough' event in HooliCalendar mid-week 1 for the Dundies prep schedule
criterion: Agent creates the 'MC rehearsal' practice event late in week 1 of the HooliCalendar Dundies plan to lock in stage time
criterion: Agent creates the 'Catering confirmation' event in HooliCalendar early in week 2 for the Dundies prep schedule
criterion: Agent books the 'Dress rehearsal' final run-through near week 2's end on HooliCalendar so the Dundies cast walks the show before opening night
criterion: Agent selects a single shared Dundies color on each of the 5 prep events so they pop in the 2-week calendar view
criterion: Agent adds Pam, Dwight, Kevin, Jim, and Holly as attendees on each of the 5 Dundies prep events, or notes clearly that HooliCalendar's event editor does not expose an attendees picker and records the intended invitee list in the event body / description so Michael can follow up
criterion: Agent attempts to add 24-hour and 1-hour reminders on each of the 5 Dundies prep events if the HooliCalendar event editor exposes per-event reminders
criterion: Agent verifies all 5 Dundies prep events appear in the HooliCalendar 2-week view with the shared color and the five attendees
Task (medium, preference_inference / pattern_inference)
Primary app: hoolicalendar
Apps involved: HooliCalendar
LibreOffice Writer

Instruction: Is my week front-loaded in the morning or packed in the evening? Pull up my calendar for this week and count events AM vs PM and give it to me in a LibreOffice Writer note.

Grading criteria:
criterion: Agent reads HooliCalendar visually (cua) for the current week to gather the AM vs PM event data
criterion: Agent counts AM vs PM events per day with numeric totals drawn from the live HooliCalendar week view
criterion: Agent computes and reports the week's AM:PM event ratio as a concrete numeric comparison
criterion: Agent calls out any conspicuous recurring morning or evening blocks on Michael's HooliCalendar week (e.g., a daily morning standup, a recurring evening prep block)
criterion: Agent states an explicit morning-heavy vs evening-heavy verdict on Michael's calendar for the current week
criterion: Agent saves the AM-vs-PM calendar analysis (per-day counts and final verdict) in a LibreOffice Writer document (.odt or .docx), as explicitly requested
criterion: Agent reports AM vs PM event counts that reflect what is actually visible in the HooliCalendar week view rather than invented totals
criterion: Agent finishes the AM-vs-PM calendar analysis and delivers both the per-day counts and the final morning-vs-evening verdict in the LibreOffice Writer note
Task (hard, situated_action / bounded_action)
Primary app: hoolichat
Apps involved: HooliChat

Instruction: My HooliChat is a mess and I want you to do some light housekeeping. In the Party Planning Committee, Dundie Awards Planning, and Finer Things Club groups, post a short recap message in each one summarizing whatever conversation exists — call out the three most useful messages if there are enough to pick from, otherwise just summarize the entire conversation in that group. Then in the Party Planning Committee group, send a status update reminder calling for any new agenda items.

Grading criteria:
criterion: Agent posts a recap message in HooliChat Party Planning Committee that summarizes the conversation (quoting or summarizing the 3 most useful recent messages if there are enough, otherwise summarizing the entire conversation)
criterion: Agent posts a recap message in HooliChat Dundie Awards Planning that summarizes the conversation (quoting or summarizing the 3 most useful recent messages if there are enough, otherwise summarizing the entire conversation)
criterion: Agent posts a recap message in HooliChat Finer Things Club that summarizes the conversation (quoting or summarizing the 3 most useful recent messages if there are enough, otherwise summarizing the entire conversation)
criterion: Agent posts a separate status-update reminder in Party Planning Committee asking for any new agenda items
criterion: Agent's recap messages persist in their respective HooliChat groups after refresh (4 new messages total visible in chat history)
criterion: Agent opens HooliChat and enters each of the three groups (Party Planning Committee, Dundie Awards Planning, Finer Things Club) before composing the recap messages
Task (hard, preference_inference / pattern_inference)
Primary app: hoolichat
Apps involved: HooliChat

Instruction: When someone DMs me on HooliChat, how fast do I actually write back? Bucket my replies (under 5 minutes, under an hour, under a day, longer) and tell me if I'm a fast responder or a ghoster. Return the distribution of my responses in a LibreOffice Writer Chart.

Grading criteria:
criterion: Agent pulls paired timestamps of incoming DMs and Michael's replies from HooliChat DMs to compute how fast he writes back
criterion: Agent groups the reply latencies into the <5min, <1h, <1d, and >1d buckets requested in the write-back prompt and reports a count per bucket
criterion: Agent calls out the mode bucket and characterizes Michael's response speed
criterion: Agent states a fast-responder vs ghoster verdict in plain English based on which reply-latency bucket dominates
criterion: Agent derives the write-back latency buckets from HooliChat DM timestamps and shows the per-bucket reply counts instead of stating the fast-responder verdict with no supporting data
criterion: Agent finishes the fast-vs-ghoster DM analysis and reports both the bucket counts and the final responder verdict
Task (medium, situated_action / bounded_action)
Primary app: hoolichat
Apps involved: HooliChat

Instruction: DM Jim and propose a near-future evening for the next Finer Things Club meetup. Pick something this week or next. He'd be a great addition; he has taste.

Grading criteria:
criterion: Agent opens or starts a HooliChat DM thread with Jim Halpert before composing the Finer Things Club invite
criterion: Agent picks a reasonable near-future evening (this week or next) as the proposed Finer Things Club meetup time
criterion: Agent sends the DM to Jim Halpert as a one-on-one HooliChat message rather than posting it in a group channel
criterion: Agent writes a HooliChat DM body that proposes the chosen near-future evening to Jim and references the Finer Things Club meetup
Task (hard, aggregation / aggregation_reporting)
Primary app: hoolimail
Apps involved: HooliMail

Instruction: Triage my inbox. It's overflowing, so give me a per-sender count and the top 10 senders filling it up.

Grading criteria:
criterion: Agent reads Michael's HooliMail inbox messages — via the HooliMail app/API listing the Inbox folder including any sub-folders (Work, Travel, Receipts, etc.), OR by walking the Maildir filesystem at ~/Maildir/cur, ~/Maildir/new, and sub-folder cur/new dirs — but excludes the Sent folder and excludes Michael's own From: lines when counting senders
criterion: Agent groups the inbox messages by sender email and counts how many messages each sender is filling it up with
criterion: Agent reports the inbox senders as a top-10 ranked list with per-sender counts
criterion: Agent presents the top-10 inbox senders as a readable ranked list with one sender per line and a visible count column
criterion: Agent lists approximately 10 inbox sender entries in the top-senders ranking (not just 5 or 7)
Task (hard, long_horizon / bounded_action)
Primary app: hoolimail
Apps involved: HooliMail

Instruction: Compose a quick new email to Pam in HooliMail with my signature ('World's Best Boss, Somehow I Manage') typed at the bottom of the body. Save it as a draft so I can review and send later.

Grading criteria:
criterion: Agent opens HooliMail and clicks Write to open a new compose window addressed to pam.beesly@dundermifflin.com
criterion: Agent fills a non-empty subject line (e.g. 'Quick note') in the HooliMail compose window
criterion: Agent writes a short message body in the new HooliMail draft to Pam
criterion: Agent appends the 'World's Best Boss, Somehow I Manage' signature line at the end of the email body before saving
criterion: Agent saves the email to Pam as a draft in HooliMail (does not hit Send) so Michael can review later
criterion: Agent's draft persists in the HooliMail Drafts folder after saving and the signature line is visible in the saved draft body
Task (hard, preference_inference / pattern_inference)
Primary app: hoolimail
Apps involved: HooliMail

Instruction: Help me auto-triage my inbox. Which senders do I usually reply to fast, and which ones do I let sit for days? I want to build a priority filter around that pattern.

Grading criteria:
criterion: Agent locates Michael's sent emails to build the auto-triage data set — either by walking the Maildir filesystem (.Sent/cur or .Sent/new with 'From: michael.scott' grep) or by querying the HooliMail Sent folder via /api/emails?folder=sent
criterion: Agent computes a median reply latency per top sender from the paired received/sent timestamps and surfaces which senders Michael lets sit for days
criterion: Agent identifies the fastest-reply and slowest-reply senders with supporting evidence
criterion: Agent proposes a concrete auto-triage filter rule based on the data
criterion: Agent derives the fast-vs-days reply pattern from Maildir timestamps rather than guessing, and names Michael as the sender of record
criterion: Agent finishes the auto-triage build: the recommended priority filter rule is stated and references the fastest and slowest senders
Task (medium, situated_action / multi_step_orchestration)
Primary app: hoolimail
Apps involved: HooliMail
Files
LibreOffice Calc

Instruction: Start a draft email to David Wallace with my most recent quarter's sales summary. Pull a ballpark from my ~/Downloads/DunderMifflin_Q2_Sales_Forecast.txt so the numbers actually have a basis. Save it as a draft; do NOT hit send. I want to review it first. Do some analysis in LibreOffice Calc so I have some empirical analysis to send him as well.

Grading criteria:
criterion: Agent reads ~/Downloads/DunderMifflin_Q2_Sales_Forecast.txt to extract the sales figures that ground the email body
criterion: Agent performs sales analysis in LibreOffice Calc using figures from the forecast file, producing a spreadsheet with empirical analysis (totals, trends, or comparisons) as an attachment or saved file for Michael to send along
criterion: Agent saves the most-recent-quarter sales summary email to David Wallace as a HooliMail draft and does not send it, so Michael can review it first
criterion: Draft is addressed to david.wallace@dundermifflin.com and the body references the most recent quarter's sales grounded in figures from the forecast file
criterion: Agent explicitly notes that it did not hit Send, leaving the HooliMail draft for Michael to review before sending
Task (hard, situated_action / bounded_action)
Primary app: hoolishop
Apps involved: HooliShop

Instruction: Remember my most recent World's Best Boss Mug order from HooliShop? Pull up that order and start a return on it — it came out a little off. While you're at it, reorder a replacement (prefer a Prime-eligible listing so it ships quickly), and leave a five-star review on the product page praising the vendor anyway because I love them.

Grading criteria:
criterion: Agent opens HooliShop and navigates to the order history view
criterion: Agent locates the most-recent World's Best Boss Mug order (any variant) in HooliShop order history
criterion: Agent submits a return request on 1 unit of the most-recent HooliShop World's Best Boss Mug order (any variant) via the order-actions Return button
criterion: Agent confirms the HooliShop return submission and the order's status reflects the return action
criterion: Agent reorders 1 World's Best Boss Mug on HooliShop (using the same prior product if available, or the closest equivalent in the catalog if the original SKU is no longer listed)
criterion: Agent reorders a Prime-eligible World's Best Boss Mug listing (HooliShop shows a PrimeBadge on fast-shipping items; picking a Prime-eligible product satisfies 'fastest shipping' since HooliShop has no separate speed selector)
criterion: Agent places the HooliShop reorder so the replacement World's Best Boss Mug enters order history
criterion: Agent posts a 5-star HooliShop product review with a short praising note on the World's Best Boss Mug product page (reviews on HooliShop are per-product via /api/products/[id]/reviews, not per-order)
Task (hard, long_horizon / bounded_action)
Primary app: hoolishop
Apps involved: HooliShop

Instruction: I want to give every member of the team a personalized World's Best Boss mug as a Dundies thank-you. Place a bulk order on HooliShop for about two dozen World's Best Boss mugs (look for the variant I've bought before) and apply any subscribe-and-save or bulk discount before checkout. Ship them to the office. Don't buy anything else.

Grading criteria:
criterion: Agent searches HooliShop and finds the World's Best Boss mug listing matching the variant Michael has bought before
criterion: Agent enters a bulk HooliShop cart quantity of about 24 World's Best Boss mugs for the whole team
criterion: Agent checks the unit price and the HooliShop cart total before proceeding to the bulk-discount step
criterion: Agent applies a subscribe-save / bulk discount if surfaced at HooliShop checkout
criterion: Agent updates the HooliShop ship-to to the Dunder Mifflin office at 1725 Slough Ave so the bulk mug order ships to the office (entering a custom office ship-to at checkout is acceptable since HooliShop's saved addresses may not include a pre-labeled Work entry)
criterion: Agent places the HooliShop bulk World's Best Boss mug order and confirms it appears in Michael's order history
criterion: Agent's cart at checkout contains only World's Best Boss mugs (about 24 units) and no other products — the instruction explicitly says 'Don't buy anything else'
criterion: Agent reviews the final HooliShop bulk mug cart total at the checkout screen before submitting the order to the office address
Task (hard, situated_action / bounded_action)
Primary app: hoolishop
Apps involved: HooliShop

Instruction: I want another copy of my own book — Somehow I Manage. Order me one, same as my last order of that book, and ship it home.

Grading criteria:
criterion: Agent opens HooliShop and searches for the 'Somehow I Manage' book listing (Michael's self-published leadership book) to surface the matching product page
criterion: Agent opens HooliShop order history and confirms a prior 'Somehow I Manage' book order (specifically the self-published Leadership Book, not the binding kit variant) before reordering — the most-recent leadership-book order suffices
criterion: Agent places a HooliShop order that contains exactly one 'Somehow I Manage' book matching the variant Michael previously bought
criterion: Agent selects Michael's saved home/primary address on HooliShop as the shipping address for the replacement book (the address labeled 'home' in his saved addresses)
Task (hard, situated_action / bounded_action)
Primary app: hooliwork
Apps involved: HooliWork

Instruction: Turn on my HooliWork notifications so I don't miss anything important. For the sales, general, random, and party-planning-committee channels, make sure each channel's notification preference is set to 'all messages' (flip anything that isn't already there). Bookmark ten important messages across those channels while you're in there, and start a new thread in random about Pretzel Day to build hype.

Grading criteria:
criterion: Agent ensures the HooliWork #sales channel notification_pref is set to 'all' via the channel preferences panel (flipping it if it is not already 'all', or verifying + keeping it at 'all' if it already is)
criterion: Agent ensures the HooliWork #general channel notification_pref is set to 'all' via the channel preferences panel (flipping it if it is not already 'all', or verifying + keeping it at 'all' if it already is)
criterion: Agent ensures the HooliWork #random channel notification_pref is set to 'all' via the channel preferences panel (flipping it if it is not already 'all', or verifying + keeping it at 'all' if it already is)
criterion: Agent ensures the HooliWork #party-planning-committee channel notification_pref is set to 'all' via the channel preferences panel (flipping it if it is not already 'all', or verifying + keeping it at 'all' if it already is)
criterion: Agent saves at least 10 important HooliWork messages as bookmarks spread across the #sales, #general, #random, and #party-planning-committee channels
criterion: Agent creates a new HooliWork thread in #random titled or about Pretzel Day
criterion: Agent posts an on-topic opening message in the new Pretzel Day thread in #random that mentions Pretzel Day rather than placeholder text
criterion: Agent verifies the notification-pref changes on the 4 channels, the 10 bookmarks, and the Pretzel Day thread all persist after a refresh
Task (easy, situated_action / bounded_action)
Primary app: hooliwork
Apps involved: HooliWork
Files

Instruction: Post a Motivational Monday message in our #random channel at work. You know how I like it: World's Best Boss style, kick the team's week off right. Pull a quote or two from my Motivational Quotes Collection in ~/Documents/ as a starting point so it doesn't feel made up.

Grading criteria:
criterion: Agent posts to the HooliWork #random channel (not another channel)
criterion: Agent writes the #random Monday post in Michael Scott's World's Best Boss motivational voice to kick the team's week off
criterion: Message explicitly frames the post as a Monday motivation (week kickoff, start the week strong, Motivational Monday, etc.)
criterion: Agent writes the #random Motivational Monday post as over-the-top self-aggrandizing World's Best Boss Michael Scott energy, not corporate HR boilerplate
criterion: Agent reads ~/Documents/Motivational_Quotes_Collection.txt and pulls at least one quote into the Motivational Monday post (or directly cites the file as the source)
Task (medium, situated_action / bounded_action)
Primary app: hooliwork
Apps involved: HooliWork

Instruction: Post a Pretzel Day countdown for next Monday at 8:00 AM EST in the #party-planning-committee channel at work. Build the hype.

Grading criteria:
criterion: Agent navigates to the HooliWork #party-planning-committee channel before composing the Pretzel Day countdown message
criterion: Agent composes a Pretzel Day countdown message body that mentions Pretzel Day and includes hype language (days remaining, excitement, etc.)
criterion: Agent attempts to schedule or post the Pretzel Day countdown message for next Monday at 8:00 AM EST (scheduled delivery or immediate post with the specified time noted)
criterion: Agent posts or schedules the Pretzel Day countdown message in the HooliWork #party-planning-committee channel rather than another channel