SEO / Portfolio / Public Site

BarkBowl Redesign Research Report

Report summary

BarkBowl already has a strong premise, but the live public implementation currently undermines it. The homepage says BarkBowl is “premium dogfood for teams that eat their own roadmap,” prices work in engineering time, and invites users to browse Products, Time Cart, How It Works, Dogfooding Program,

Status
Research archive item
Category
SEO / Portfolio / Public Site
Length
6,201 words
Reading time
29 minutes
Report type
evaluation

Key topics

  • SEO / Portfolio / Public Site
  • SEO
  • Portfolio
  • Public Site
  • WordPress
  • TypeScript
  • Runtime
  • Privacy
  • Physics

Research provenance

Archive status
Research archive item
Content identity
sha256:fa2565e6b09a33e56cf2e40570dfffb017bf67ce640d21c00d164f44f0b2290b

For citation, use the report title and canonical URL. Archival presence does not establish authorship or promote report statements into portfolio evidence.

Source availability: 30 citation markers in the source export have no recoverable source links. Those markers are omitted from this reader; any supplied bibliography and ordinary links remain. Check the original sources before relying on the cited claims.

This page renders the archived Markdown as safe, formatted HTML. It is background research and does not become a portfolio claim without evidence review.

Full report

On this page

Executive summary

BarkBowl already has a strong premise, but the live public implementation currently undermines it. The homepage says BarkBowl is “premium dogfood for teams that eat their own roadmap,” prices work in engineering time, and invites users to browse Products, Time Cart, How It Works, Dogfooding Program, Field Reports, and About. In practice, the critical navigation paths for Time Cart, How It Works, Dogfooding Program, Field Reports, About, and Privacy return 404s, the products archive is empty, and the homepage exposes a raw [barkbowl_time_budget_calculator] shortcode instead of a functioning interactive tool. That combination makes the site feel unfinished, reduces trust, and prevents the joke from turning into an educational experience.

The right redesign direction is not “make it more like a normal ecommerce site.” The strongest BarkBowl source material defines it as a time-commerce dogfooding product whose central mechanic is that software teams “pay” with time rather than money, and whose honest architecture is a custom WordPress plugin with a branded theme rather than WooCommerce painted over. That premise is reinforced by WordPress guidance that site-critical functionality should live in plugins, not themes, and that custom post types should be registered in plugins so content remains portable if the theme changes.

The redesign should therefore do three things at once. First, restore credibility by fixing route integrity, page titles, seeded content, and core interactions. Second, make the site much funnier by leaning into “deadpan premium pet-retail seriousness applied to software waste.” Third, make it much more educational by pairing every joke with a plain-English translation, a visible time formula, a lesson link, and a practical async or process substitute. That “learn while you laugh” pattern is consistent with strong edutainment examples: Kahoot markets “interactive learning,” “real-time engagement,” and instant feedback, while Brilliant emphasizes visual, interactive, step-by-step learning and explicit progression through challenge, streaks, levels, and daily goals.

Technically, the most robust implementation is a strict WordPress split: a BarkBowl Theme for presentation and a BarkBowl Core plugin for custom content models, cart/session logic, REST controllers, telemetry, seeders, quiz scoring, simulator formulas, admin tools, and rollout controls. WordPress REST guidance supports versioned namespaces, route registration on rest_api_init, explicit permission_callback usage, controller classes, and JSON Schema-backed validation. For accessibility, target WCAG 2.2 AA for titles, labels, focus, keyboard access, and predictable navigation, then also support reduced motion as an additional design guardrail. For performance, build toward 75th percentile Core Web Vitals targets of LCP ≤ 2.5s, INP ≤ 200ms, and CLS ≤ 0.1, and capture your own real-user monitoring rather than relying only on aggregate public data.

One limitation remains: this audit is based on the crawl-visible public site and the provided project documents. That is enough for a high-confidence redesign brief, but it is not the same thing as a full instrumented accessibility, JavaScript-behavior, or admin workflow audit. In particular, exact contrast values, full focus order, and current plugin/theme internals still require hands-on QA in the implementation environment.

Prioritized implementation checklist

The current highest-confidence priorities are below. The ordering reflects the live site’s broken trust path first, then core BarkBowl mechanics, then educational expansion, then optimization and launch governance. The rationale for that order comes directly from the present site failures, the WordPress architecture guidance, and the uploaded BarkBowl architecture documents.

PriorityTaskWhat changesEffort
NowRepair route integrityCreate real pages for Time Cart, How It Works, Dogfooding Program, Field Reports, About, Privacy, Accessibility; remove all 404 nav pathsS
NowReplace placeholder browser titlesGive every page a descriptive <title> and aligned visible <h1>S
NowCreate BarkBowl Core plugin and BarkBowl ThemeEnforce plugin/theme separation before feature work continuesM
NowRegister content modelCPTs for Products, Lessons, Field Reports, Quizzes, Glossary Terms; taxonomies for category, work stage, risk, appetite, topicM
NowSeed launch contentImport 24 products, 8 lessons, 6 field reports, quiz content, glossary contentM
NowBuild working product archive and PDPsFilters, sort, product cards, product detail, formula explainers, lesson links, async substitutesM
NowImplement server-backed Time CartSession cookie, cart rows, TTL, subtotal math, sprint-share math, receipt generationL
NextReplace shortcode with real Time Burn SimulatorLive calculator with scenario inputs and educational outputM
NextBuild Quiz Lab“What Is Your Team Overfeeding?” quiz, result archetypes, recommended lesson pathM
NextBuild Lesson hub and cross-linkingJoke + translation + formula + checklist + related products + related field reportsM
NextAdd telemetry and rollout flagsProduct analytics, event taxonomy, experiment support, ring rollout toggles, receipt completion metricsL
NextAccessibility hardeningKeyboard support, focus, labels, ARIA wiring, reduced motion, screen-reader QAM
NextSEO and schemaDescriptive titles/meta, JSON-LD for visible content only, sitemap, robots, canonicals, internal linkingS
NextPerformance optimizationBundle budgets, image pipeline, lazy-loading, Web Vitals instrumentation, cache strategyM
LaterDogfooding admin dashboardGross time sold, top products, top async substitutes, TTL expiry rate, quiz completion, route error healthM
LaterSocial and share surfacesPrintable receipt, “share your burn” image card, field report cards, open graph packM
LaterContent iteration loopMonthly product refresh, new field reports, new quiz variants, archive hygieneS

Experience strategy and site architecture

BarkBowl should be positioned as a premium grocery parody for software teams, where the shelf joke is immediate but the lesson is equally immediate. The current site already signals the right conceptual raw material: products are categories like Feature Kibble, Bug Biscuits, Sprint Chow, Refactor Jerky, Incident Snacks, and Roadmap Rations; time, not money, is the currency; and “Build a Bowl” is the core action. The failure is not premise but follow-through. The redesign should preserve those aisles and the dogfooding/time-commerce fiction, then add a second layer that explicitly teaches how time burn accumulates in software delivery.

The top-line goals should be:

GoalMeaning in practice
Make it funnierStronger naming, packaging-grade microcopy, better visual satire, more confident retail deadpan
Make it more educationalEvery product gets plain-English translation, time formula, lesson link, “what it teaches,” and async substitute
Make it more trustworthyNo broken routes, no placeholder titles, no exposed scaffolding, seeded content everywhere
Make it more product-likeWorking cart, working receipt, working quiz, working simulator, telemetry-backed dogfooding
Make it more reusableKeep critical behavior in the plugin; keep presentation and tokens in the theme

The required pages and routes should be these:

RoutePagePurpose
/HomePremise, featured aisles, featured products, lesson highlights, quiz CTA
/build-a-bowl/Build a BowlPrimary discovery landing page
/products/Product archiveFilterable catalog of all BarkBowl products
/product-category/{term}/Aisle archiveCategory landing pages for each aisle
/snack/{slug}/Product detailFormula, translation, ingredients, warning, async substitute, related lesson
/time-cart/Time CartCart, subtotal math, sprint-share, receipt preview, TTL
/how-it-works/How It WorksExplain time-commerce, formulas, joke-to-lesson system
/learn/Learn hubLesson archive
/lesson/{slug}/Lesson detailShort educational module
/quiz-lab/Quiz LabQuiz archive and explainer
/quiz-lab/team-overfeeding-checkup/Flagship quizMain launch quiz
/field-reports/Field Reports archiveStory-led case studies
/field-report/{slug}/Field report detailSpecific report page
/dogfooding-program/Dogfooding ProgramRings, rollout process, telemetry, exit criteria
/glossary/GlossaryCore definitions
/about/AboutBrand explanation and project framing
/privacy/PrivacyPrivacy notice and telemetry disclosure
/accessibility/AccessibilityAccessibility statement
/search/SearchSearch results
/404/404Helpful recovery page with clear next steps
flowchart TD
    A[Home] --> B[Build a Bowl]
    A --> C[Learn]
    A --> D[Quiz Lab]
    A --> E[Field Reports]
    A --> F[Dogfooding Program]
    B --> G[Products]
    G --> H[Category Archive]
    H --> I[Product Detail]
    I --> J[Time Cart]
    I --> K[Related Lesson]
    K --> D
    D --> L[Quiz Result]
    L --> K
    E --> M[Field Report Detail]
    J --> N[Checkout Receipt]
    A --> O[Glossary]
    A --> P[About]

The architecture split should be strict because WordPress explicitly advises keeping design in themes and reusable, site-critical behavior in plugins; it also recommends putting custom post types in plugins so content remains portable if the theme changes.

LayerOwnsMust not own
BarkBowl Themetheme.json, design tokens, templates, template parts, patterns, navigation, layout, CSS, non-critical presentational JS, editorial styling, search/404 templates, print styling for receipt pagesCart state, session logic, checkout records, telemetry storage, seeders, scoring logic, CPT registration
BarkBowl Core PluginCPTs, taxonomies, custom fields, seeders, REST controllers, cart and receipt logic, session cookie, telemetry API, quiz engine, simulator math, admin settings, dogfooding dashboard, feature flags, permissionsBrand-only template decisions, nav styling, theme-specific layouts
Custom tablesSessions, cart items, receipts, telemetry events, quiz attempts, feature flag assignmentsLong-form editorial content
WordPress editorLessons, field reports, glossary terms, product descriptive content, approved assetsRuntime operational state
flowchart LR
    A[BarkBowl Theme] --> B[Templates and Tokens]
    C[BarkBowl Core Plugin] --> D[CPTs and Taxonomies]
    C --> E[REST Controllers]
    C --> F[Cart and Receipt Engine]
    C --> G[Quiz and Simulator Engine]
    C --> H[Telemetry and Flags]
    E --> I[Browser TypeScript Modules]
    F --> J[Session Cookie]
    H --> K[Admin Dashboard]
    D --> L[WordPress Content Database]
    F --> M[Custom Runtime Tables]
    H --> M
    G --> M

The content model should be the following:

TypeSlugKey fields
CPTbb_producttitle, slug, SKU, tagline, plain-English translation, formula display, typical time price minutes, typical time price label, ingredients, warning, async substitute text, related lesson, related glossary terms, hero image, aisle badge, display order
CPTbb_lessontitle, slug, teaser, plain summary, learning objective, read time, lesson sections, formula callout, checklist, related products, related reports, next lesson
CPTbb_field_reporttitle, slug, summary, report date, situation, what happened, what it taught, metrics, related lesson, related products, pull-quote
CPTbb_quiztitle, slug, intro, questions JSON, answer weights JSON, result archetypes JSON, completion CTA
CPTbb_glossary_termterm, slug, short definition, longer definition, plain-English note, related terms, related lessons
Taxonomybb_product_categoryFeature Kibble, Bug Biscuits, Sprint Chow, Refactor Jerky, Incident Snacks, Roadmap Rations
Taxonomybb_work_stageIntake, Discovery, Planning, Build, Review, Release, Operations
Taxonomybb_risk_levelMild, Medium, High, Combustible
Taxonomybb_team_appetiteSolo Snack, Squad Bowl, Cross-Functional Crate, Org-Sized Sack
Taxonomybb_teach_topicDogfooding, Scope Creep, Meetings, Bugs, Refactoring, Incidents, Planning, Roadmaps, Async Work

The visual system should reinforce “luxury dogfood packaging meets delivery telemetry dashboard” without becoming visually noisy. WCAG 2.2 AA requires descriptive titles and labels, visible focus, keyboard-operable interactions, and predictable information architecture, so the design system must privilege clarity first and humor second on critical paths.

Token groupTokenValueUse
Color--bb-bg#FFF9EFWarm cream background
Color--bb-surface#FFFFFFCards and panels
Color--bb-ink#1F2328Primary text
Color--bb-bark#5A432BBrand accent
Color--bb-kibble#D89D2EFeature Kibble accent
Color--bb-biscuit#C75B39Bug/alert accent
Color--bb-jerky#4F7A62Refactor accent
Color--bb-incident#E29A1FIncident highlight
Color--bb-focus#1D4ED8Focus ring
Color--bb-border#DCD4C8Borders and dividers
Type--bb-font-displayFraunces, Georgia, serifHeadlines
Type--bb-font-bodyInter, system-ui, sans-serifBody copy
Type--bb-font-monoIBM Plex Mono, ui-monospace, monospaceFormulas, receipts
Radius--bb-radius-sm8pxInputs, pills
Radius--bb-radius-md14pxCards
Radius--bb-radius-lg22pxHero containers
Shadow--bb-shadow-card0 10px 30px rgba(31,35,40,.08)Cards
Space--bb-space-1..84, 8, 12, 16, 24, 32, 48, 64pxConsistent layout
BreakpointRangePrimary layout behavior
xs0–599pxSingle-column, sticky bottom cart CTA
sm600–899pxSingle-column with denser cards, 2-up product chips
md900–1199pxTwo-column product detail, persistent filters
lg1200–1439pxThree-column archive, rail glossary/tooltips
xl1440px+Wider editorial rhythm, bigger dashboard and receipt views
AssetCountFormatNotes
Wordmark logo2SVGfull and compact
Aisle icons6SVGone per category
Product illustrations24SVGone per seeded product
Lesson icons8SVGone per lesson
Field report thumbnails6SVG/WebPsocial and archive use
Quiz result badges6SVGone per result archetype
Receipt stamps4SVG“No money accepted,” “Time burned,” etc.
Open graph images10PNG/WebPhome, quiz, lesson, field reports
Simulator UI diagram1SVGexplanatory asset
Accessibility icon set1SVGkeyboard, focus, motion, labels

Content system and seeded data

The seeded content should treat the catalog as the narrative shell and the educational layer as the real value. Current BarkBowl language already establishes the aisles; the new system should make each product card teach one operational lesson and guide users toward a short learning object. That is how the site becomes both much funnier and much more educational.

Seeded product catalog

CategoryProductSKUTaglinePlain-English translationTime formulaTypical time priceWhat it teachesIngredientsWarningAsync substitute
Feature KibbleTiny Ticket Tender BitsBB-FTR-TTB-009“Just one button” in bite-sized denial.Small requests expand once acceptance criteria appear.1h discovery + 5h build + 2h QA + 1h review9 p-hTiny features are rarely tinysingle-sentence request, hidden acceptance criteria, one reviewerExpands on contact with stakeholdersClarifying Note Cup
Feature KibbleOAuth Kibble ProBB-FTR-OAU-025Single sign-on, multiple sign-offs.Enterprise auth has hidden integration and rollout cost.2h discovery + 16h build + 4h QA + 2h review + 1h rollout25 p-hIntegration work hides in “platform” asksenterprise ask, security crumbs, integration hairMay require new env variablesDecision memo + integration spike
Feature KibbleDashboard Variety BoxBB-FTR-DAS-044Packed with metrics nobody wanted until the exec invite landed.Dashboards cost scoping, data, QA, and polish.3h scoping + 24h build + 8h data wrangling + 6h QA + 3h polish44 p-hMetrics should justify their maintenance costexec curiosity, orphan metrics, CSV dustFrequently mistaken for strategyWeekly KPI digest
Feature KibbleEdge-Case FeastBB-FTR-ECF-021Happy path sold separately.Exceptions multiply implementation effort.2h scoping + 8h build + 6h exceptions + 3h QA + 2h review21 p-hEdge cases are where estimates go to moltoptional cases, legal sprinkles, boolean crumbsCase count triples after demoRule table first
Bug BiscuitsFlake NibblesBB-BUG-FLK-003Now with intermittent crunch.Flaky bugs consume time even before a fix exists.30m triage + 1h repro + 1h fix + 30m verify3 p-hReproduction quality mattersrace-condition flakes, stale mocks, timing dustUsually disappears during screen shareRepro template
Bug BiscuitsRegression RoundsBB-BUG-REG-006Baked from yesterday’s confidence.Regressions cost more than the original defect.1h triage + 2h fix + 2h QA + 1h release watch6 p-hEvery fix needs guardrailsprevious fix residue, test gap crumbs, release steamReturns after cheerful deploy notesGuardrail test first
Bug BiscuitsCannot-Repro ChewsBB-BUG-CNR-003Mystery flavor, browser-dependent.Weak bug reports turn diagnosis into archaeology.45m intake + 1h logs + 1h retry + 30m follow-up3.25 p-hBetter intake reduces wasted cyclesvague screenshots, browser variance, mystery gravyDiagnosis may exceed symptom sizeStructured bug intake
Bug BiscuitsHotfix SprinklesBB-BUG-HFX-005Add directly to Friday.Hotfixes compress decision-making and raise risk.30m triage + 2h fix + 1h review + 1.5h deploy/check5 p-hUrgency taxes code qualityalert pings, narrowed scope, Friday fumesConsume before weekendFeature flag rollback
Sprint ChowCommitment Chow Family PackBB-SPR-CMT-006Over-portioned promises for growing roadmaps.Sprint plans fail when commitments outrun capacity.2h scope pack + 1h dependency check + 2h tradeoff debate + 1h plan rewrite6 p-hCommitments need capacity mathpromises, dependency glitter, slide garnishBest before priorities changeSingle-page sprint brief
Sprint ChowEstimation NuggetsBB-SPR-EST-010Now with objective-looking numbers.Estimation creates confidence, not certainty.90m refinement × 6 + 30m re-baseline9.5 p-hPrecision is not predictabilitycards, poker faces, optimism powderCreates false certainty when overfedWritten sizing notes
Sprint ChowCeremony Sampler SackBB-SPR-CER-049A balanced blend of planning, updates, reviewing, and regretting.Scrum ceremonies can multiply cost when they stop serving delivery.2h planning × 7 + 15m daily × 7 × 10 + 1.5h review × 7 + 1h retro × 749 p-hMeetings are parallel burnplanning oats, daily crumbs, review glaze, retro saltNot a substitute for deliveryAsync status board
Sprint ChowHardening Week KibbleBB-SPR-HAR-138Crunchy release prep for teams that treat QA like weather.Late quality work becomes a sprint-consuming event.(5 days × 3 engineers × 8h) + (2 days × 1 QA × 8h) + 2h freeze huddle138 p-hQuality must move leftlate defects, release anxiety, freeze crystalsUsually means quality arrived lateDefinition-of-Done tune-up
Refactor JerkyNaming Cleanup StripsBB-REF-NAM-004Lean, chewy, and invisible to stakeholders.Small clarity refactors reduce future friction.1h scan + 2h rename + 1h tests4 p-hShared language speeds teams upvague classes, inconsistent nouns, grep smokeMay trigger unrelated opinionsNaming glossary
Refactor JerkyDependency Detox TwistsBB-REF-DDT-014Removes stale packages and reveals hidden trauma.Dependency maintenance is real product work.2h audit + 6h upgrade + 4h fallout + 2h QA14 p-hForgotten dependencies compound riskstale packages, CVE dust, API driftCan summon a changelog stormDependency audit cadence
Refactor JerkyTest Harness JerkyBB-REF-THJ-010Dense with future relief.Building better tests buys down future bug cost.2h harness + 6h tests + 2h stabilize10 p-hAutomation is an anti-regression assetmanual steps, copy-paste residue, assertion crumbsFeels slow until next outageGolden-path smoke tests
Refactor JerkyArchitectural Reseal PackBB-REF-ARP-028No visible features. Strong future chew.Deep refactors are option purchases for future speed.4h design + 16h refactor + 8h regression28 p-hHidden architecture still shapes throughputcoupling, duplicate logic, hidden seamsStakeholders may see no visible changeArchitectural decision record
Incident SnacksPager CrunchiesBB-INC-PGR-003Best served loud.Even small incidents destroy planned focus.(15m ack × 3) + (45m diagnose × 2) + (30m comms × 2)3.25 p-hInterruptions have real operating costalerts, adrenaline, half contextPairs poorly with sleepRunbook refresh
Incident SnacksSeverity-One StewBB-INC-SEV-015A whole-meal derailment.Major incidents consume multiple people and displace roadmap work.(2h incident cell × 4) + (2h recovery × 3) + 1h stakeholder brief15 p-hIncidents tax planned deliveryincident channel foam, rollback stock, customer commsConsumes the whole sprintTabletop drill
Incident SnacksRollback BisqueBB-INC-RBK-004Rich, reversible, occasionally lumpy.Rollbacks are cheaper when designed early.30m decision + 1h rollback + 2h verify3.5 p-hSafe release design reduces blast radiusrelease notes, restore scripts, humilityNot all rollbacks are cleanCanary release
Incident SnacksPostmortem Pumpkin BitesBB-INC-PMB-004Gentle on blame, firm on learning.Retrospective rigor matters after incidents.1h timeline + 1h write-up + 1h review + 1h action follow-up4 p-hLearnings need owners and follow-throughtimeline puree, action-item seeds, memory fogSpoils if blame is addedBlameless write-up template
Roadmap RationsStakeholder Alignment FeastBB-RDM-ALN-015Slow-cooked consensus in a premium tray.Broad approval chains inflate time cost.60m × 12 attendees × 1.25 repetition factor15 p-hApproval sprawl is measurableopinions, calendars, alignment brothFrequently repeats itselfRecorded walkthrough + comment window
Roadmap RationsReprioritization PelletsBB-RDM-RPR-008Same backlog, different weather.Constant priority changes destroy flow efficiency.45m prep + 1h realignment × 6 + 1h board rewrite7.75 p-hChurn has carrying costnew-ask glaze, stale commitments, roadmap binderDestroys momentum in large dosesWeekly intake cutoff
Roadmap RationsCommittee Product Ownership PlatterBB-RDM-CPO-006Five approvers, one backlog, zero final answer.Product ownership by committee slows decisions.(30m × 5 approvers) + 2h reconciliation + 1h roadmap polish5.5 p-hSingle-threaded ownership mattersfive approvers, one backlog, garnish of hesitancyNever fully sold outSingle-threaded owner
Roadmap RationsQ4 Promise LoafBB-RDM-Q4P-007Sliced thin for maximum confidence.Roadmaps are inventory, not output.2h planning + 2h roadmap art + 2h dependency guesswork + 1h exec polish7 p-hAnnounced work is not delivered workquarterly confidence, dependency glaze, optimism crustShelf life ends at implementationCapacity-first planning

Launch lessons

Lesson slugTitleWhat it teachesFormatRead timeRelated products
time-is-the-priceTime Is the PriceWhy BarkBowl prices in person-hours instead of dollarsmicro-lesson + formula cards4 minTiny Ticket Tender Bits, Ceremony Sampler Sack
tiny-features-grow-teethTiny Features Grow TeethWhy “small” requests expand through clarifications, exceptions, and QAexplainer + worked example5 minTiny Ticket Tender Bits, Edge-Case Feast
meetings-are-parallel-burnMeetings Are Parallel BurnWhy attendee count multiplies cost faster than teams noticeexplainer + calculator5 minStakeholder Alignment Feast, Ceremony Sampler Sack
bugs-charge-interestBugs Charge InterestWhy regressions, weak bug reports, and hotfixes cost more than they lookchecklist + example5 minRegression Rounds, Cannot-Repro Chews
refactors-buy-future-speedRefactors Buy Future SpeedWhen invisible work pays back and how to explain itdecision guide6 minDependency Detox Twists, Architectural Reseal Pack
incidents-steal-planned-workIncidents Steal Planned WorkHow operational interruptions displace roadmap workexplainer + scenario grid5 minSeverity-One Stew, Pager Crunchies
roadmaps-are-inventory-not-outputRoadmaps Are Inventory, Not OutputWhy planned work and delivered work are not the same thingarticle + checklist5 minQ4 Promise Loaf, Reprioritization Pellets
dogfooding-rings-and-release-safetyDogfooding Rings and Release SafetyWhy BarkBowl itself should be rolled out in rings with metrics and kill switchesprocess guide6 minRollback Bisque, Postmortem Pumpkin Bites

Field reports

SlugTitleSummaryMain lesson
we-added-one-tiny-feature-and-lost-a-tuesdayWe Added One Tiny Feature and Lost a TuesdayA seemingly tiny request accreted edge cases, review loops, and polish work until the team lost a full day.Tiny features are multiplication, not addition
the-cart-expired-during-refinement-as-designedThe Cart Expired During Refinement, as DesignedA BarkBowl cart timed out before the team could agree, making indecision visible as product behavior.Time limits can teach priority discipline
why-story-points-taste-like-chickenWhy Story Points Taste Like ChickenA playful analysis of why estimation folklore often becomes certainty theater.Estimates are communication tools, not laws
we-bought-an-incident-and-shipped-a-postmortemWe Bought an Incident and Shipped a PostmortemA launch saved by rollback, documentation, and a cleaner incident review than the original release plan.Recovery quality matters as much as prevention
the-roadmap-was-full-and-the-sprint-was-hungryThe Roadmap Was Full and the Sprint Was HungryA team promised more items than capacity allowed, then compensated with meetings instead of tradeoffs.Capacity must constrain commitments
how-a-refactor-paid-back-in-three-releasesHow a Refactor Paid Back in Three ReleasesA small but disciplined refactor removed dependency and testing drag across several subsequent releases.Invisible work can have visible payback

Quiz Lab questions and results

QuestionDiagnostic focus
When someone says “tiny change,” what usually happens next?Scope creep
How many people must agree before a simple release moves?Approval sprawl
What is your team’s default response to uncertainty?Meeting/ceremony bias
Which hurts more: the original bug or the bug after the bug?Regression cost awareness
When engineers request refactor time, how is it handled?Refactor maturity
How often does planned work get interrupted by incidents?Operational volatility
What happens after reprioritization?Roadmap churn
If one meeting could be swapped for async, would it?Async readiness
Result archetypeDiagnosisSuggested lesson pathSuggested products
Feature Kibble PackYour team overfeeds “small” requests until they become medium projects.Time Is the Price → Tiny Features Grow TeethTiny Ticket Tender Bits, Edge-Case Feast
Bug Biscuit KennelYour team spends more time identifying and re-fixing than preventing.Bugs Charge InterestRegression Rounds, Cannot-Repro Chews
Sprint Chow ClubYour team is buying process comfort faster than delivery confidence.Meetings Are Parallel Burn → Roadmaps Are Inventory, Not OutputCeremony Sampler Sack, Estimation Nuggets
Refactor Jerky SyndicateYour team understands the problem but underfunds preventive engineering.Refactors Buy Future SpeedDependency Detox Twists, Architectural Reseal Pack
Incident Snack Response UnitPlanned work is being eaten by interrupts and recovery loops.Incidents Steal Planned WorkPager Crunchies, Severity-One Stew
Roadmap Rations CooperativeThe organization’s planning and approval loop is the biggest time sink.Roadmaps Are Inventory, Not Output → Dogfooding Rings and Release SafetyStakeholder Alignment Feast, Q4 Promise Loaf

Glossary

TermPlain-English definition
DogfoodingUsing your own product internally so real behavior reveals flaws early
Time commerceA BarkBowl framing where work is priced in time instead of money
Person-hourOne hour of one person’s time
Person-dayEight person-hours
Sprint shareThe percentage of a sprint’s capacity consumed by a set of work
TTLTime to live; how long a cart or record remains valid before expiring
Async substituteA lower-burn alternative that replaces synchronous coordination
Scope creepA request growing after agreement without a matching time adjustment
Context-switch taxTime lost whenever people stop one task to handle another
Review dragDelay and effort added by review hops, comments, and rework
Definition of DoneThe explicit quality bar for calling work complete
Ring rolloutA staged release pattern from small internal cohorts to broader audiences
Blameless postmortemReviewing an incident to learn, not to punish
WIPWork in progress; active work currently consuming attention
Lead timeThe time from request to delivered outcome

Time Cart, formulas, and simulator

Time currency should remain simple and legible. The prescription below follows the present site’s premise and the BarkBowl source material: keep the shelf label easy, expand the formula on detail pages, and make the receipt feel uncomfortably concrete.

Unit or formulaDefinition
minOne minute of one person’s time
hrSixty minutes
p-hPerson-hours = minutes ÷ 60
p-dayPerson-days = person-hours ÷ 8
sprint-share %(person-hours ÷ (team_size × sprint_days × work_hours_per_day)) × 100
Cart subtotal minutesΣ(product_minutes × quantity)
Async savingssync_total_person_hours - async_total_person_hours
Burn band<5% sprint = snack, 5–15% = meal, 15–30% = crate, >30% = kennel fire
Cart TTLDefault 72 hours after first add; visible countdown on cart
Receipt recordFrozen snapshot of item formula, quantity, subtotal, timestamp, and lesson links

The Time Burn Simulator should be a real interactive tool, not a shortcode placeholder. Its behavior should borrow from successful interactive-learning systems: clear inputs, immediate feedback, explanatory output, and a recommended next action.

InputTypeDefault
Team sizenumber6
Sprint length in daysnumber10
Work hours per daynumber8
Meetings per weeknumber8
Average attendees per meetingnumber6
Interruptions per person per daynumber4
Review hops per itemnumber2
Scope changes per sprintnumber3
Incident count per sprintnumber1
Async replacement ratepercentage20%
OutputMeaning
Weekly or sprint person-hours burnedCore cost number
Person-days consumedSimplified aggregate
Sprint-share percentageCapacity impact
Largest burn sourceTop culprit category
Async savings opportunityEstimated recoverable time
Risk bandMild / Medium / High / Combustible
Recommended productSatirical mirror of the pattern
Recommended lessonEducational next step
Recommended field reportStory-led reinforcement

Voice, tone, and sample copy

The voice should be deadpan, premium, observant, and systems-focused. The humor should punch at process waste, not at people. That fits the current BarkBowl premise and also protects usability: the more critical the task, the lower the joke density should be.

SurfaceHumor densityRule
Hero and aisle banners7/10Big laugh, fast understanding
Product cards6/10Retail deadpan with clear formula
Product detail pages5/10Joke + translation + plain formula
Lessons and glossary3/10Prioritize memory and clarity
Quiz results5/10Light humor, practical next step
Receipts4/10Wry, not cute
Errors, forms, and accessibility text1/10Mostly straight, mildly on-brand at most
SurfaceSample copy
HeroFeed your roadmap. Learn where your time actually goes. BarkBowl is a satirical grocery shelf for features, bugs, refactors, ceremonies, and planning rituals priced in the hours your team will never get back.
Product cardTiny Ticket Tender Bits — “Just one button” in bite-sized denial. Typical order: 9 p-h. Plain English: Small requests expand once acceptance criteria show up.
Product detailWhy this costs more than it looks: the request sounds tiny, but clarification, QA, review, and edge cases all eat time. BarkBowl calls that Feature Kibble. Your calendar calls it Thursday.
ReceiptNo money accepted. You burned 21 p-h, roughly 2.6 p-days, or 4.4% of a six-person two-week sprint. Shipping was instant because the work already lived in your calendar.
Quiz resultYou’re overfeeding Roadmap Rations. Your biggest burn is not coding speed; it is decision density. Read Roadmaps Are Inventory, Not Output, then try an async substitute before adding more alignment to the bowl.
Error messageWe couldn’t add that snack right now. Nothing is lost. Try again, or refresh the bowl. If this keeps happening, the product is successfully dogfooding itself a little too hard.

Engineering specification and launch governance

The engineering build should follow WordPress and web-platform guidance closely. Register custom REST routes on rest_api_init, use explicit namespaced and versioned routes, supply permission_callback for every route, use JSON Schema-backed validation and sanitization, and keep unknown payload properties out of write handlers. Use a narrow-scope host-only session cookie with Secure, HttpOnly, SameSite=Lax, and Path=/; store carts server-side in custom tables; and use transients only for caches because WordPress explicitly notes transient expiration is a maximum time, not a minimum. For telemetry, structure events so the system emits traces, metrics, and logs or log-equivalent analytics signals; for performance, instrument real-user monitoring in addition to lab checks.

Frontend architecture

ModuleResponsibility
core/http.tsFetch wrapper, credentials, nonce header, error normalization
core/session.tsRead bootstrap payload, expose session/cart state
core/events.tsLightweight pub/sub for UI modules
catalog/filters.tsArchive filters, querystring sync, reset/apply behavior
catalog/cards.tsProduct card hydration and quick-add behavior
product/formula.tsPDP formula expansion, “what it teaches,” async substitute module
cart/store.tsClient state mirroring server cart snapshot
cart/drawer.tsCart UI, item updates, TTL UI, subtotal updates
receipt/view.tsCheckout receipt formatting, print/share behavior
quiz/engine.tsQuestion flow, scoring, result rendering
lesson/progress.tsMicro-lesson progress tracking and next-step CTA
simulator/formulas.tsTime Burn Simulator calculations
telemetry/client.tsEvent batching, sendBeacon/fetch fallback, schema versioning
a11y/disclosure.tsDisclosure widget controls
a11y/tooltip.tsTooltip trigger and escape behavior
a11y/dialog.tsModal focus trap and return-focus handling

Session and persistence model

ConcernRecommendation
Session cookie name__Host-barkbowl_session
Cookie attributesSecure; HttpOnly; SameSite=Lax; Path=/
Cookie scopehost-only
Session persistencecustom table row keyed by cookie token
Cart persistencewp_bb_cart_item rows linked to session id
Cart TTL72 hours after first item add
Quiz attempt persistencecustom table plus anonymous session link
Cache strategyuse transients only for catalog/filter cache and pre-render data, not cart authority
Time zone for persisted operational timestampsUTC

REST routes

MethodRoutePurposeAuth/session
GET/wp-json/barkbowl/v1/bootstrapReturn initial config, nonce, session state, flags, token valuespublic
GET/wp-json/barkbowl/v1/productsProduct archive with filters/sort/paginationpublic
GET/wp-json/barkbowl/v1/products/(?P<id>\d+)Product detail payloadpublic
GET/wp-json/barkbowl/v1/lessonsLesson archivepublic
GET/wp-json/barkbowl/v1/lessons/(?P<slug>[a-z0-9-]+)Lesson detailpublic
GET/wp-json/barkbowl/v1/cartCurrent cart snapshotsession
POST/wp-json/barkbowl/v1/cart/itemsAdd product to cartsession + nonce
PATCH/wp-json/barkbowl/v1/cart/items/(?P<key>[A-Za-z0-9_-]+)Update quantitysession + nonce
DELETE/wp-json/barkbowl/v1/cart/items/(?P<key>[A-Za-z0-9_-]+)Remove itemsession + nonce
POST/wp-json/barkbowl/v1/checkoutCreate time-burn receiptsession + nonce
POST/wp-json/barkbowl/v1/quiz/(?P<slug>[a-z0-9-]+)/scoreScore quiz and return archetypesession + nonce
POST/wp-json/barkbowl/v1/telemetryRecord product/quiz/cart/simulator eventssession
GET/wp-json/barkbowl/v1/admin/dashboardDogfooding metrics dashboardauthenticated capability

Because WordPress explicitly uses routes, endpoints, route namespaces, and controller classes in its REST model, the implementation should use namespaced controller classes rather than anonymous endpoint callbacks scattered across the plugin.

Sample JSON payloads

The REST layer should use stable schemas and reject unknown fields where appropriate. WordPress’s REST API schema guidance recommends JSON Schema-backed validation, including explicit properties, required fields, and the ability to reject additional properties.

Product payload

{
  "id": 101,
  "slug": "tiny-ticket-tender-bits",
  "title": "Tiny Ticket Tender Bits",
  "sku": "BB-FTR-TTB-009",
  "category": "feature-kibble",
  "tagline": "“Just one button” in bite-sized denial.",
  "translation": "Small requests expand once acceptance criteria appear.",
  "formula": "1h discovery + 5h build + 2h QA + 1h review",
  "typical_time_price_minutes": 540,
  "typical_time_price_label": "9 p-h",
  "what_it_teaches": "Tiny features are rarely tiny",
  "ingredients": [
    "single-sentence request",
    "hidden acceptance criteria",
    "one reviewer"
  ],
  "warning": "Expands on contact with stakeholders.",
  "async_substitute": "Clarifying Note Cup",
  "related_lesson_slug": "tiny-features-grow-teeth"
}

Cart add request

{
  "product_id": 101,
  "quantity": 1,
  "context": {
    "team_size": 6,
    "sprint_days": 10,
    "work_hours_per_day": 8
  }
}

Checkout receipt response

{
  "receipt_id": "bb_rcpt_20260611_8GQ2ZX",
  "created_at_utc": "2026-06-11T16:48:22Z",
  "session_id": "bb_sess_a8d3f4c29f",
  "items": [
    {
      "product_id": 101,
      "sku": "BB-FTR-TTB-009",
      "title": "Tiny Ticket Tender Bits",
      "quantity": 1,
      "subtotal_minutes": 540,
      "subtotal_label": "9 p-h"
    }
  ],
  "totals": {
    "minutes": 540,
    "person_hours": 9,
    "person_days": 1.125,
    "sprint_share_percent": 1.88,
    "burn_band": "snack"
  },
  "primary_lesson_slug": "tiny-features-grow-teeth",
  "disclaimer": "No money accepted. This receipt records time burn, not payment."
}

Telemetry event

{
  "event_name": "bb_cart_item_added",
  "event_version": 1,
  "occurred_at_utc": "2026-06-11T16:49:01Z",
  "session_id": "bb_sess_a8d3f4c29f",
  "route_name": "product_detail",
  "content_type": "product",
  "content_id": 101,
  "sku": "BB-FTR-TTB-009",
  "value_minutes": 540,
  "ui_surface": "pdp_primary_cta",
  "success": true,
  "flag_state": {
    "new_cart_drawer": true,
    "quiz_inline_recommendations": false
  }
}

Telemetry schema and KPIs

Schema fieldPurpose
event_nameStable event id
event_versionBreaking-change control
occurred_at_utcOrdered event time
session_idAnonymous session correlation
user_idOptional authenticated correlation
route_nameRoute grouping
content_typeproduct / lesson / quiz / field_report / cart
content_id or slugEntity association
ui_surfaceexact interaction point
value_minutestime value attached to event
duration_mslatency or time-to-complete
successbinary outcome
error_codenormalised failure reason
flag_stateactive experiment/rollout state
device_classmobile / tablet / desktop
EventTriggerKPI it supports
bb_page_viewroute renderroute demand, content reach
bb_product_card_viewedproduct card observedcatalog engagement
bb_product_detail_viewedPDP renderPDP CTR
bb_formula_expandedexplanation disclosure openededucational engagement
bb_async_substitute_clickedasync substitute clickededucational-action rate
bb_cart_item_addedadd to cartbuild-a-bowl progression
bb_cart_item_removedremove from cartcart friction analysis
bb_cart_viewedcart page openedcart progression
bb_cart_expiredTTL expirationTTL expiry rate
bb_checkout_startedcheckout CTAcheckout start rate
bb_receipt_createdreceipt successbowl completion rate
bb_quiz_startedquiz entryquiz start rate
bb_quiz_completedquiz result generatedquiz completion rate
bb_lesson_startedlesson page engaged beyond thresholdlesson start rate
bb_lesson_completedlesson finish CTA/history marklesson completion rate
bb_field_report_openedfield report detail viewedstory engagement
bb_simulator_runsimulator output computedtool usage rate
bb_simulator_apply_recommendationoutput CTA clickededucational conversion
bb_frontend_errorclient runtime failureJS reliability
bb_api_errorfailed requestAPI reliability
KPIDefinition
Learning engagement rateSessions with at least one meaningful educational action (formula_expanded, lesson_completed, quiz_completed, async_substitute_clicked, or field_report_opened)
Build-a-Bowl completion rateSessions reaching bb_receipt_created ÷ bb_cart_viewed
Quiz completion ratebb_quiz_completed ÷ bb_quiz_started
Lesson completion ratebb_lesson_completed ÷ bb_lesson_started
Async substitute click ratebb_async_substitute_clicked ÷ bb_product_detail_viewed
Cart TTL expiry ratebb_cart_expired ÷ sessions_with_items
Route error rate4xx/5xx or frontend_error ÷ page views
75th percentile CWV by routeroute-level LCP/INP/CLS
Dogfooding ring adoptionactive internal users by rollout ring
Receipt-to-return ratereturning sessions after a completed receipt

Accessibility checklist and ARIA patterns

WCAG 2.2 guidance requires meaningful page titles, visible focus, labels or instructions for inputs, keyboard operability, and predictable navigation. The WAI APG patterns further define how disclosures, tooltips, and modal dialogs should behave.

AreaTest
TitlesEvery page has a descriptive, unique <title> aligned with its visible H1
KeyboardEvery interactive control is reachable and operable by keyboard
FocusEvery focusable item has a visible focus indicator
Skip linkSkip link lands on main content on every template
LabelsFilters, simulator inputs, and quiz controls all have visible labels
InstructionsComplex inputs include concise visible instructions
Error feedbackForm and cart errors appear near source and are not color-only
MotionNon-essential motion is reduced or disabled when reduced-motion is enabled
DialogsCart/receipt modals trap focus, close on Escape, and return focus to trigger
TooltipsTooltip content is reachable by focus, dismissible, and non-essential
DisclosureFormula explainers announce expanded/collapsed state
Screen readerProduct cards, receipt rows, and quiz results read in sensible order
ContrastText and UI contrast meet AA thresholds
ReflowLayout works at 320px wide without essential loss
Live regionsCart subtotal changes are announced politely, not aggressively

Tooltip pattern

<button
  type="button"
  aria-describedby="tip-time-price"
>
  What is this price?
</button>
<div id="tip-time-price" role="tooltip" hidden>
  BarkBowl prices snacks in team time, not money.
</div>

Disclosure pattern

<button
  type="button"
  aria-expanded="false"
  aria-controls="formula-panel-101"
>
  Show formula
</button>
<div id="formula-panel-101" hidden>
  1h discovery + 5h build + 2h QA + 1h review
</div>

Dialog pattern

<div
  role="dialog"
  aria-modal="true"
  aria-labelledby="cart-title"
  aria-describedby="cart-summary"
  hidden
>
  <h2 id="cart-title">Time Cart</h2>
  <p id="cart-summary">Review your selected snacks and total burn.</p>
  <button type="button">Close</button>
</div>

SEO and performance

Google’s Search guidance emphasizes useful, compelling content, descriptive title links, a clear main heading, sitemap submission, canonical URLs in sitemaps, and structured data that matches visible on-page content. BarkBowl’s current placeholder titles and broken routes are therefore both discoverability and trust problems.

PageSEO titleMeta description
HomeBarkBowl \Time-Commerce Dogfooding for Software Teams
Build a BowlBuild a Bowl \BarkBowl
Time CartTime Cart \BarkBowl
LearnLearn \BarkBowl
Quiz LabQuiz Lab \BarkBowl
Field ReportsField Reports \BarkBowl
Dogfooding ProgramDogfooding Program \BarkBowl

Recommended schema is conservative: WebSite, Organization, BreadcrumbList, and where appropriate Article for field reports and lessons, only when the structured data reflects visible content. Use JSON-LD because Google recommends it when the setup allows it.

MetricTarget
LCP≤ 2.5s at 75th percentile
INP≤ 200ms at 75th percentile
CLS≤ 0.1 at 75th percentile
JS on first load≤ 170KB gzipped
CSS on first load≤ 90KB gzipped
Largest hero image≤ 180KB optimized
Time-to-interactive-critical surfacescart and filter controls responsive within CWV budget

QA, launch checklist, and acceptance criteria

QA areaLaunch check
RoutesNo visible nav/footer links 404
Content24 products, 8 lessons, 6 field reports, quiz, glossary seeded and rendered
CartAdd, remove, recalc, TTL, and checkout receipt all work
TelemetryKey events flowing to vendor or logs with schema version
AccessibilityKeyboard, focus, labels, dialogs, disclosure, reduced motion pass
SEOTitles, metas, canonicals, sitemap, robots, OG tags live
PerformanceCore Web Vitals budgets passing in lab; RUM shipping
SecurityREST routes on rest_api_init, permission callbacks enforced, nonces/capabilities correct
SessionCookie attributes correct; cart persists as designed
AdminSeeder, settings page, dashboard, and content editing flows work
RolloutFeature flags and ring configuration tested
CopyHumor density matches rules; critical UX text is clear
404/searchHelpful recovery and internal path back to content
Acceptance areaAcceptance criteria
TrustThe site no longer exposes placeholder titles, raw shortcodes, empty primary aisles, or broken core routes
HumorAll launch surfaces read as confident premium parody, not fragmented prototype copy
EducationEvery product includes plain-English translation, formula, what-it-teaches, lesson link, and async substitute
Product mechanicsA visitor can browse, add products, view totals, finish a receipt, and understand the lesson without confusion
WordPress architectureTheme owns presentation; plugin owns content types, operational logic, API, session/cart, telemetry, and seeders
AccessibilityCore journeys are fully keyboard-usable and screen-reader sensible
DiscoverabilityTitles, metas, sitemaps, structured data, and internal links are in place
DogfoodingInternal rollout rings and core instrumentation are ready before broad release

Paste-ready master prompt

The prompt below is designed to be handed directly to a multidisciplinary engineering, design, and content agent. It is intentionally implementation-forward and assumes no special hosting or analytics constraints beyond “modern supported WordPress environment.” It is derived from the current public site audit, the BarkBowl architecture documents, WordPress developer guidance, WCAG 2.2/WAI APG guidance, Google Search documentation, and current interactive-learning product patterns.

You are the implementation lead for a full coordinated redesign of BarkBowl, a WordPress-based satirical time-commerce product for software teams. Your job is to implement the redesign in one sweep across engineering, design, UX writing, content architecture, seeded data, analytics, accessibility, and launch QA.

Do not ask clarifying questions unless something is genuinely impossible. Make reasonable assumptions. Preserve the core BarkBowl premise: this is NOT a real store and NOT a conventional ecommerce site. It is a fake premium dogfood brand for software-team waste. The currency is time, not money. The site must become much funnier, much more educational, and much more trustworthy than the current public implementation.

NON-NEGOTIABLE POSITIONING

BarkBowl is:
- a premium grocery parody for software teams
- a time-commerce product where features, bugs, meetings, refactors, incidents, and roadmap rituals are priced in person-hours/person-days/sprint share
- educational: every joke must have an immediate plain-English translation and a practical lesson
- internally dogfooded: the BarkBowl cart, quiz, simulator, and telemetry must be treated as product features worth measuring

BarkBowl is NOT:
- a WooCommerce repaint
- a real payments funnel
- a pet nutrition education site
- a “clever brochure” with fake buttons and dead ends

CURRENT PROBLEMS TO FIX IN THIS SWEEP

Fix all of these as core acceptance criteria:
- critical navigation routes currently 404
- browser titles are weak/generic
- products archive is empty
- homepage exposes raw shortcode-like scaffolding
- the joke currently outruns explanation
- the site is not educational enough
- the cart premise is under-implemented
- the current public experience feels like a prototype, not a product

ARCHITECTURE DECISION

Build this with:
- one custom WordPress theme: barkbowl-theme
- one custom WordPress plugin: barkbowl-core

Do NOT build on WooCommerce.

Theme responsibilities:
- theme.json
- design tokens
- templates and template parts
- block patterns
- nav/footer/search/404
- page layout and editorial styling
- print styling for receipt pages
- non-critical presentational JS only

Plugin responsibilities:
- CPTs, taxonomies, and custom fields
- content seeders
- REST API controllers
- session management
- Time Cart logic
- checkout receipt creation
- quiz engine and result scoring
- Time Burn Simulator formulas
- telemetry endpoint and event schema
- feature flags / rollout ring support
- admin settings and dashboard

CUSTOM CONTENT MODEL

Create these custom post types:
- bb_product
- bb_lesson
- bb_field_report
- bb_quiz
- bb_glossary_term

Create these taxonomies:
- bb_product_category
- bb_work_stage
- bb_risk_level
- bb_team_appetite
- bb_teach_topic

Key bb_product fields:
- title
- slug
- sku
- tagline
- translation
- formula_display
- typical_time_price_minutes
- typical_time_price_label
- what_it_teaches
- ingredients[]
- warning
- async_substitute
- related_lesson_slug
- display_order
- hero_image_id

Key bb_lesson fields:
- title
- slug
- teaser
- summary
- learning_objective
- read_time_minutes
- sections[]
- checklist[]
- formula_callout
- related_products[]
- related_reports[]
- next_lesson_slug

Key bb_field_report fields:
- title
- slug
- summary
- situation
- what_happened
- what_it_taught
- related_lesson_slug
- related_products[]
- pull_quote

Key bb_quiz fields:
- title
- slug
- intro
- questions_json
- scoring_json
- result_archetypes_json
- completion_cta

Key bb_glossary_term fields:
- term
- slug
- short_definition
- long_definition
- plain_english_note
- related_terms[]
- related_lessons[]

Create custom runtime tables for:
- sessions
- cart items
- receipts
- telemetry events
- quiz attempts
- feature-flag assignments or overrides if needed

ROUTES TO BUILD

Top-level routes:
- /
- /build-a-bowl/
- /products/
- /product-category/{term}/
- /snack/{slug}/
- /time-cart/
- /how-it-works/
- /learn/
- /lesson/{slug}/
- /quiz-lab/
- /quiz-lab/team-overfeeding-checkup/
- /field-reports/
- /field-report/{slug}/
- /dogfooding-program/
- /glossary/
- /about/
- /privacy/
- /accessibility/
- /search/
- /404/

NAVIGATION MODEL

Primary nav:
- Build a Bowl
- Learn
- Quiz Lab
- Time Cart
- Field Reports
- Dogfooding Program
- About

Footer nav:
- Privacy
- Accessibility
- Glossary
- Search
- Sitemap

VOICE AND TONE RULES

Voice:
- deadpan
- premium retail serious
- observant
- systems-focused
- never smug
- never mean to individuals
- jokes target process waste, ambiguity, ritual inflation, delivery theater, approval sprawl, and meeting gravity

Humor density:
- hero and banners: 7/10
- product cards: 6/10
- product detail pages: 5/10
- lessons and glossary: 3/10
- quiz results: 5/10
- receipts: 4/10
- errors/forms/accessibility/legal text: 1/10

Core writing pattern:
1. joke line
2. plain-English translation
3. time formula
4. lesson link
5. async substitute

VISUAL SYSTEM

Create a design system with this feel:
- premium dogfood packaging + delivery dashboard
- warm cream background, dark ink text, brass/golden aisle accents, strong category-coded support colors
- display serif + neutral sans body + monospace for formulas/receipts
- rounded cards, shelf labels, barcode-style details, “no money accepted” stamp treatment
- subtle motion only
- reduced-motion support must disable non-essential motion

Use these breakpoints:
- xs 0–599
- sm 600–899
- md 900–1199
- lg 1200–1439
- xl 1440+

ASSET LIST TO PRODUCE

- primary wordmark logo
- compact icon/logo
- 6 aisle icons
- 24 product illustrations
- 8 lesson icons
- 6 field report thumbnails
- 6 quiz result badges
- receipt stamps
- social OG images
- simulator diagram

TIME CURRENCY AND FORMULAS

The site’s unit system must be:
- min
- hr
- p-h
- p-day
- sprint-share %

Formulas:
- person_hours = minutes / 60
- person_days = person_hours / 8
- sprint_share_percent = person_hours / (team_size * sprint_days * work_hours_per_day) * 100
- cart_subtotal_minutes = sum(item_minutes * quantity)
- async_savings = sync_total_person_hours - async_total_person_hours

Burn bands:
- under 5% sprint = snack
- 5–15% = meal
- 15–30% = crate
- above 30% = kennel fire

SESSION AND CART RULES

Use a host-only session cookie:
- __Host-barkbowl_session
- Secure
- HttpOnly
- SameSite=Lax
- Path=/

Store cart state server-side.
Cart TTL: 72 hours after first add.
Show countdown only on cart and receipt-adjacent surfaces, not everywhere.
Do not use transients as the source of truth for cart authority.
Use transients only for cacheable catalog/bootstrap data.

REST API

Implement versioned routes under /wp-json/barkbowl/v1/

Required endpoints:
- GET /bootstrap
- GET /products
- GET /products/{id}
- GET /lessons
- GET /lessons/{slug}
- GET /cart
- POST /cart/items
- PATCH /cart/items/{key}
- DELETE /cart/items/{key}
- POST /checkout
- POST /quiz/{slug}/score
- POST /telemetry
- GET /admin/dashboard

Implementation rules:
- register routes on rest_api_init
- every route has explicit permission_callback
- use controller classes
- validate and sanitize request bodies with schema-backed rules
- reject unknown write properties where practical
- use UTC for operational timestamps

FRONTEND TYPESCRIPT MODULES

Create a clean TS module structure:
- core/http.ts
- core/session.ts
- core/events.ts
- catalog/filters.ts
- catalog/cards.ts
- product/formula.ts
- cart/store.ts
- cart/drawer.ts
- receipt/view.ts
- lesson/progress.ts
- quiz/engine.ts
- simulator/formulas.ts
- telemetry/client.ts
- a11y/disclosure.ts
- a11y/tooltip.ts
- a11y/dialog.ts

Use predictable state boundaries. Do not smear business logic into templates.

SEEDED PRODUCT CATALOG

Seed exactly these 24 products:

Feature Kibble
1. Tiny Ticket Tender Bits | BB-FTR-TTB-009 | “Just one button” in bite-sized denial. | Small requests expand once acceptance criteria appear. | 1h discovery + 5h build + 2h QA + 1h review | 9 p-h | teaches tiny features are rarely tiny | ingredients: single-sentence request, hidden acceptance criteria, one reviewer | warning: expands on contact with stakeholders | async substitute: Clarifying Note Cup
2. OAuth Kibble Pro | BB-FTR-OAU-025 | Single sign-on, multiple sign-offs. | Enterprise auth has hidden integration and rollout cost. | 2h discovery + 16h build + 4h QA + 2h review + 1h rollout | 25 p-h | teaches integration work hides in platform asks | ingredients: enterprise ask, security crumbs, integration hair | warning: may require new env variables | async substitute: Decision memo + integration spike
3. Dashboard Variety Box | BB-FTR-DAS-044 | Packed with metrics nobody wanted until the exec invite landed. | Dashboards cost scoping, data, QA, and polish. | 3h scoping + 24h build + 8h data wrangling + 6h QA + 3h polish | 44 p-h | teaches metrics should justify maintenance cost | ingredients: exec curiosity, orphan metrics, CSV dust | warning: frequently mistaken for strategy | async substitute: Weekly KPI digest
4. Edge-Case Feast | BB-FTR-ECF-021 | Happy path sold separately. | Exceptions multiply implementation effort. | 2h scoping + 8h build + 6h exceptions + 3h QA + 2h review | 21 p-h | teaches edge cases are where estimates go to molt | ingredients: optional cases, legal sprinkles, boolean crumbs | warning: case count triples after demo | async substitute: Rule table first

Bug Biscuits
5. Flake Nibbles | BB-BUG-FLK-003 | Now with intermittent crunch. | Flaky bugs consume time even before a fix exists. | 30m triage + 1h repro + 1h fix + 30m verify | 3 p-h | teaches reproduction quality matters | ingredients: race-condition flakes, stale mocks, timing dust | warning: usually disappears during screen share | async substitute: Repro template
6. Regression Rounds | BB-BUG-REG-006 | Baked from yesterday’s confidence. | Regressions cost more than the original defect. | 1h triage + 2h fix + 2h QA + 1h release watch | 6 p-h | teaches every fix needs guardrails | ingredients: previous fix residue, test gap crumbs, release steam | warning: returns after cheerful deploy notes | async substitute: Guardrail test first
7. Cannot-Repro Chews | BB-BUG-CNR-003 | Mystery flavor, browser-dependent. | Weak bug reports turn diagnosis into archaeology. | 45m intake + 1h logs + 1h retry + 30m follow-up | 3.25 p-h | teaches better intake reduces wasted cycles | ingredients: vague screenshots, browser variance, mystery gravy | warning: diagnosis may exceed symptom size | async substitute: Structured bug intake
8. Hotfix Sprinkles | BB-BUG-HFX-005 | Add directly to Friday. | Hotfixes compress decision-making and raise risk. | 30m triage + 2h fix + 1h review + 1.5h deploy/check | 5 p-h | teaches urgency taxes code quality | ingredients: alert pings, narrowed scope, Friday fumes | warning: consume before weekend | async substitute: Feature flag rollback

Sprint Chow
9. Commitment Chow Family Pack | BB-SPR-CMT-006 | Over-portioned promises for growing roadmaps. | Sprint plans fail when commitments outrun capacity. | 2h scope pack + 1h dependency check + 2h tradeoff debate + 1h plan rewrite | 6 p-h | teaches commitments need capacity math | ingredients: promises, dependency glitter, slide garnish | warning: best before priorities change | async substitute: Single-page sprint brief
10. Estimation Nuggets | BB-SPR-EST-010 | Now with objective-looking numbers. | Estimation creates confidence, not certainty. | 90m refinement × 6 + 30m re-baseline | 9.5 p-h | teaches precision is not predictability | ingredients: cards, poker faces, optimism powder | warning: creates false certainty when overfed | async substitute: Written sizing notes
11. Ceremony Sampler Sack | BB-SPR-CER-049 | A balanced blend of planning, updates, reviewing, and regretting. | Scrum ceremonies can multiply cost when they stop serving delivery. | 2h planning × 7 + 15m daily × 7 × 10 + 1.5h review × 7 + 1h retro × 7 | 49 p-h | teaches meetings are parallel burn | ingredients: planning oats, daily crumbs, review glaze, retro salt | warning: not a substitute for delivery | async substitute: Async status board
12. Hardening Week Kibble | BB-SPR-HAR-138 | Crunchy release prep for teams that treat QA like weather. | Late quality work becomes a sprint-consuming event. | (5 days × 3 engineers × 8h) + (2 days × 1 QA × 8h) + 2h freeze huddle | 138 p-h | teaches quality must move left | ingredients: late defects, release anxiety, freeze crystals | warning: usually means quality arrived late | async substitute: Definition-of-Done tune-up

Refactor Jerky
13. Naming Cleanup Strips | BB-REF-NAM-004 | Lean, chewy, and invisible to stakeholders. | Small clarity refactors reduce future friction. | 1h scan + 2h rename + 1h tests | 4 p-h | teaches shared language speeds teams up | ingredients: vague classes, inconsistent nouns, grep smoke | warning: may trigger unrelated opinions | async substitute: Naming glossary
14. Dependency Detox Twists | BB-REF-DDT-014 | Removes stale packages and reveals hidden trauma. | Dependency maintenance is real product work. | 2h audit + 6h upgrade + 4h fallout + 2h QA | 14 p-h | teaches forgotten dependencies compound risk | ingredients: stale packages, CVE dust, API drift | warning: can summon a changelog storm | async substitute: Dependency audit cadence
15. Test Harness Jerky | BB-REF-THJ-010 | Dense with future relief. | Building better tests buys down future bug cost. | 2h harness + 6h tests + 2h stabilize | 10 p-h | teaches automation is an anti-regression asset | ingredients: manual steps, copy-paste residue, assertion crumbs | warning: feels slow until next outage | async substitute: Golden-path smoke tests
16. Architectural Reseal Pack | BB-REF-ARP-028 | No visible features. Strong future chew. | Deep refactors are option purchases for future speed. | 4h design + 16h refactor + 8h regression | 28 p-h | teaches hidden architecture still shapes throughput | ingredients: coupling, duplicate logic, hidden seams | warning: stakeholders may see no visible change | async substitute: Architectural decision record

Incident Snacks
17. Pager Crunchies | BB-INC-PGR-003 | Best served loud. | Even small incidents destroy planned focus. | (15m ack × 3) + (45m diagnose × 2) + (30m comms × 2) | 3.25 p-h | teaches interruptions have real operating cost | ingredients: alerts, adrenaline, half context | warning: pairs poorly with sleep | async substitute: Runbook refresh
18. Severity-One Stew | BB-INC-SEV-015 | A whole-meal derailment. | Major incidents consume multiple people and displace roadmap work. | (2h incident cell × 4) + (2h recovery × 3) + 1h stakeholder brief | 15 p-h | teaches incidents tax planned delivery | ingredients: incident channel foam, rollback stock, customer comms | warning: consumes the whole sprint | async substitute: Tabletop drill
19. Rollback Bisque | BB-INC-RBK-004 | Rich, reversible, occasionally lumpy. | Rollbacks are cheaper when designed early. | 30m decision + 1h rollback + 2h verify | 3.5 p-h | teaches safe release design reduces blast radius | ingredients: release notes, restore scripts, humility | warning: not all rollbacks are clean | async substitute: Canary release
20. Postmortem Pumpkin Bites | BB-INC-PMB-004 | Gentle on blame, firm on learning. | Retrospective rigor matters after incidents. | 1h timeline + 1h write-up + 1h review + 1h action follow-up | 4 p-h | teaches learnings need owners and follow-through | ingredients: timeline puree, action-item seeds, memory fog | warning: spoils if blame is added | async substitute: Blameless write-up template

Roadmap Rations
21. Stakeholder Alignment Feast | BB-RDM-ALN-015 | Slow-cooked consensus in a premium tray. | Broad approval chains inflate time cost. | 60m × 12 attendees × 1.25 repetition factor | 15 p-h | teaches approval sprawl is measurable | ingredients: opinions, calendars, alignment broth | warning: frequently repeats itself | async substitute: Recorded walkthrough + comment window
22. Reprioritization Pellets | BB-RDM-RPR-008 | Same backlog, different weather. | Constant priority changes destroy flow efficiency. | 45m prep + 1h realignment × 6 + 1h board rewrite | 7.75 p-h | teaches churn has carrying cost | ingredients: new-ask glaze, stale commitments, roadmap binder | warning: destroys momentum in large doses | async substitute: Weekly intake cutoff
23. Committee Product Ownership Platter | BB-RDM-CPO-006 | Five approvers, one backlog, zero final answer. | Product ownership by committee slows decisions. | (30m × 5 approvers) + 2h reconciliation + 1h roadmap polish | 5.5 p-h | teaches single-threaded ownership matters | ingredients: five approvers, one backlog, garnish of hesitancy | warning: never fully sold out | async substitute: Single-threaded owner
24. Q4 Promise Loaf | BB-RDM-Q4P-007 | Sliced thin for maximum confidence. | Roadmaps are inventory, not output. | 2h planning + 2h roadmap art + 2h dependency guesswork + 1h exec polish | 7 p-h | teaches announced work is not delivered work | ingredients: quarterly confidence, dependency glaze, optimism crust | warning: shelf life ends at implementation | async substitute: Capacity-first planning

LAUNCH LESSONS

Seed these 8 lessons:
- time-is-the-price
- tiny-features-grow-teeth
- meetings-are-parallel-burn
- bugs-charge-interest
- refactors-buy-future-speed
- incidents-steal-planned-work
- roadmaps-are-inventory-not-output
- dogfooding-rings-and-release-safety

Each lesson must include:
- joke line
- plain summary
- one formula or worked example
- one checklist
- related products
- related field report
- next lesson CTA

FIELD REPORTS

Seed these 6 field reports:
- we-added-one-tiny-feature-and-lost-a-tuesday
- the-cart-expired-during-refinement-as-designed
- why-story-points-taste-like-chicken
- we-bought-an-incident-and-shipped-a-postmortem
- the-roadmap-was-full-and-the-sprint-was-hungry
- how-a-refactor-paid-back-in-three-releases

QUIZ LAB

Create flagship quiz:
- slug: team-overfeeding-checkup
- title: What Is Your Team Overfeeding?
- 8 questions focused on scope creep, approval count, meeting bias, bug quality, refactor maturity, incident interruption, roadmap churn, and async readiness
- return one of 6 result archetypes:
  - Feature Kibble Pack
  - Bug Biscuit Kennel
  - Sprint Chow Club
  - Refactor Jerky Syndicate
  - Incident Snack Response Unit
  - Roadmap Rations Cooperative

Every result page must include:
- diagnosis headline
- short explanation
- two recommended products
- one linked lesson
- one linked field report
- one async substitute recommendation

GLOSSARY

Seed these terms:
- dogfooding
- time commerce
- person-hour
- person-day
- sprint share
- TTL
- async substitute
- scope creep
- context-switch tax
- review drag
- definition of done
- ring rollout
- blameless postmortem
- WIP
- lead time

TIME BURN SIMULATOR

Build a real simulator with inputs:
- team size
- sprint length in days
- work hours per day
- meetings per week
- average attendees
- interruptions per person per day
- review hops per item
- scope changes per sprint
- incident count per sprint
- async replacement rate

Outputs:
- person-hours burned
- person-days
- sprint-share %
- largest burn source
- async savings opportunity
- burn band
- recommended product
- recommended lesson
- recommended field report

TELEMETRY

Emit at least these events:
- bb_page_view
- bb_product_card_viewed
- bb_product_detail_viewed
- bb_formula_expanded
- bb_async_substitute_clicked
- bb_cart_item_added
- bb_cart_item_removed
- bb_cart_viewed
- bb_cart_expired
- bb_checkout_started
- bb_receipt_created
- bb_quiz_started
- bb_quiz_completed
- bb_lesson_started
- bb_lesson_completed
- bb_field_report_opened
- bb_simulator_run
- bb_simulator_apply_recommendation
- bb_frontend_error
- bb_api_error

Telemetry schema fields:
- event_name
- event_version
- occurred_at_utc
- session_id
- route_name
- content_type
- content_id or slug
- ui_surface
- value_minutes
- duration_ms
- success
- error_code
- flag_state
- device_class

KPIs:
- learning engagement rate
- build-a-bowl completion rate
- quiz completion rate
- lesson completion rate
- async substitute click rate
- cart TTL expiry rate
- route error rate
- 75th percentile route-level CWV
- dogfooding ring adoption
- receipt-to-return rate

ACCESSIBILITY REQUIREMENTS

Target WCAG 2.2 AA.
Must support:
- descriptive page titles
- visible focus indicators
- keyboard access for all critical interactions
- visible labels and instructions
- skip link on all templates
- non-color-only errors
- disclosure aria-expanded/aria-controls
- tooltip aria-describedby/role=tooltip
- dialog role=dialog aria-modal=true return focus to trigger
- reduced-motion support for non-essential animation
- sensible screen-reader order on cards, cart, quiz, receipt

SEO REQUIREMENTS

Implement:
- descriptive unique titles
- aligned visible H1s
- useful meta descriptions
- crawlable internal links
- sitemap.xml
- robots.txt sitemap reference
- canonicals
- OG/Twitter metadata
- JSON-LD only for visible content
- Organization, WebSite, BreadcrumbList, Article where appropriate

PERFORMANCE REQUIREMENTS

Build toward:
- LCP <= 2.5s at 75th percentile
- INP <= 200ms at 75th percentile
- CLS <= 0.1 at 75th percentile
- first-load JS <= 170KB gzipped
- first-load CSS <= 90KB gzipped
- optimized images and lazy loading
- real-user monitoring for key routes

SAMPLE COPY TO MATCH

Hero:
“Feed your roadmap. Learn where your time actually goes.”
“BarkBowl is a satirical grocery shelf for features, bugs, refactors, ceremonies, and planning rituals priced in the hours your team will never get back.”

Product card:
“Tiny Ticket Tender Bits — ‘Just one button’ in bite-sized denial.”
“Typical order: 9 p-h.”
“Plain English: Small requests expand once acceptance criteria show up.”

Receipt:
“No money accepted.”
“You burned 21 p-h, roughly 2.6 p-days, or 4.4% of a six-person two-week sprint.”
“Shipping was instant because the work already lived in your calendar.”

Error:
“We couldn’t add that snack right now. Nothing is lost. Try again, or refresh the bowl.”

DOGFOODING PROGRAM PAGE

Explain ring rollout:
- Ring 0: Builder Pack
- Ring 1: Friendly Maintainers
- Ring 2: Cross-Functional Kennel
- Ring 3: Public Yard

For each ring show:
- audience
- success criteria
- metrics required to advance
- rollback trigger

QA AND ACCEPTANCE

Do not mark complete until all are true:
- all nav/footer routes resolve
- all seeded content renders
- cart add/remove/receipt works
- quiz returns correct archetypes
- simulator produces visible educational outputs
- titles/metas/schema/sitemap/robots exist
- keyboard and focus pass on all core paths
- telemetry fires for all core events
- feature flags/rings are wired and testable
- no placeholder shortcodes or staging copy remain
- the site feels like a premium finished product, not a half-seeded prototype
- every major joke is paired with an immediate educational explanation

FINAL DELIVERABLE EXPECTATION

Produce:
- the finished theme and plugin architecture
- seeded content importers
- templates, patterns, and design tokens
- TypeScript modules
- REST controllers
- accessibility-compliant UI behaviors
- telemetry wiring
- launch-ready content across all routes
- QA checklist and acceptance evidence