Weekly Report — Jun 8 – Jun 14, 2026 (friday mode)
Comprehensive W24 wrap-up (supersedes the Tuesday snapshot; full Jun 8–14 picture now that Jun 11–14 journals landed). Far busier than the mid-week view suggested — and, unusually, well-balanced across presales AND the IC/harness lane. Presales ran hot: dextech.ai end-to-end (prep → call Jun 11 → Superset-migration walkthrough video Jun 12), Basata onboarding call 5 + the promote-metric frustration answered (product feedback captured), plus PBI outro, the PBI PR, and the Bicycle Transit partial-period fix. Internal/Support: DAT-524 short-term (PR #873, merged Jun 3, −4 phantom churn / −$2,421 fake MRR, now live), Datacubed + Aarki MCP monitoring dashboards, and PBI docs shrink (docs#1712). The IC lane did NOT go dark this week — two
/teachself-learning sites shipped (self-taught-design, self-taught-AMQL), ponytail + copywriting skills added, RFC-0005 (vendor-agnostic agent-session memory) now committed with ADR-0001. The one real miss stays DAT-576: raised verbally in the Jun 10 1-on-1 but no written Linear ask logged (last Linear touch May 7), now awaiting manager’s call. Deal note: Wamly lost to BoldBI (external-report drill-down). H1/CV still slipping.
Work
Internal
- DONE — DAT-524 short-term: exclude internal testing Zoho accounts (#P2, [[Internal]]) — PR holistics/dbt#873 merged Jun 3 (+304/-240), approved by Thuan; landed just before this window but is the live Phase-1 reference. (Source:
gh pr view 873on holistics/dbt.) Centralizes the exclusion at the staging layer —stg_zoho__eventsnow anti-joinsmart_utils__zoho_internal_customers(11 audited internal IDs seeded from a manual Slack audit), removing the lone hardcodedcustomer_id != 311602000000080035fromdom_zoho__events. Added a singular guard testassert_no_internal_customers_in_events.sqlagainst future leakage. Measured prod impact: 4 phantom churn events scrubbed, $2,421 fake new_logo MRR removed. Affected reporting: Core Business Metrics, Customer Revenue Overview (DTS100), and churn MRR metrics (churned_mrr_usd,new_logo_mrr_usd,changed_mrr_usd, …). Post-merge: full refresh ofdom_zoho__events+ notify RevOps churn metrics would drop. CI: build 68/68, 2 unrelated test failures (flagged out-of-scope). Backlog reverted DOING→TODO since only short-term shipped — long-term Phase 2 plan (root-cause + push upstream Zoho flagging, ownership to Growth, Data consumes the signal) still TODO; I plan first, Thuan collabs. Analysis: Ampcode, Ampcode, Ampcode (short-term). Linear DAT-524. - PARTIAL — DAT-576 MRR exchange rate (#P2 in [[Backlog]], plan-elevated to forcing-function P1; [[Internal]]) — raised in the Jun 10 1-on-1 as a forced binary decision (re-scope+delegate via the DAT-524 model OR formally de-prioritize). Awaiting manager’s call. (Source:
linear issue view DAT-576.) Linear state is “Analyzing problem”, assignee Chinh, priority Medium, last updated May 7 — i.e. zero Linear movement in 5+ weeks, confirming the W24 plan’s Mon-AM written ask was never logged; the escalation stayed verbal. Scope on record (part of DAT-177 MRR-flow investigation): ingest live FX rates (ECB / Google Finance / Zoho), replace the static rate join infct_mrr, pin historical months to end-of-month rate, validate vs Zoho Billing. Origin = a customer Slack report of MRR diffs between Zoho and Bi.H from FX drift. 9-week carry-over (since W16, 2026-04-13); 3 breached forcing-functions. Recurring miss of the week: progress on surfacing, but decision-in-writing ([[Weekly Planning Rules]] §1) not honored. Linear DAT-576.
Presales
- DONE — [[dextech.ai]] (Superset→Holistics), end-to-end (#P1, [[Presales]]) — the week’s biggest presales arc, run prep→call→asset:
- Prep (Jun 9) — Superset→Holistics migration strategy + slide deck. Core diagnosis: Superset has no semantic-layer concept (datasets are isolated SQL queries/tables — no models, joins, reusable metrics, or RLS), likely why DEX is shopping for a new self-serve BI tool. Real pain = the waterfall reporting cycle (request → ticket → SQL → dashboard), not just embedding. Recommended 3-phase POC — “speed for confidence first, scalability second”: (1) pick 1–2 highest-usage Superset dashboards; (2) replicate 1:1 with a thin/heavy-model zero-relationship dataset; (3) refactor into Holistics-native semantics. Decisions: multi-env via Git branches + dynamic routing; dynamic RLS via JWT payload. Refs: deck Slack, Ampcode, Claude Design.
- Call (Jun 11) — onboarding call held; deal tracked in dealops/2026-05-dex.md. Migration prompt captured to materialize into a reusable AI skill later (Ampcode).
- Superset-migration walkthrough video (Jun 12) — (Source: Ampcode thread.) programmatic Remotion composition (1920×1080, ~89s): title → original Superset dashboard → “run the migration” CLI scene → migrated result in Holistics → outro, with a 1:1 talking-head PiP + sentence-level subtitle overlay. Proves the CLI-driven migration flow as a polished demo asset. Refs: Slack, Ampcode.
- DONE — [[Basata]] onboarding call 5 + promote-metric frustration (#P1, [[Presales]]) — (this is the item earlier marked OPEN; it was DONE Jun 11. Source: Slack thread.) Onboarding call 5 held Jun 11. Separately, Stephanie hit a frustrating UX edge: after promoting an ad-hoc viz metric, it can no longer be edited in the viz builder (and isn’t reachable from the dataset). Diagnosis: intentional — promotion converts a viz-level ad-hoc metric into an official dataset-level metric (reusable across dashboards), so it’s no longer editable from the viz builder; you edit it on the dataset. Closed the loop with an apology + clear explanation, flagged the unclear handoff to the PM (proposed a direct shortcut to the dataset definition), and recommended: keep metrics ad-hoc while experimenting, promote only when the formula is ready to reuse. Customer ask → product-side data debt captured ([[Weekly Planning Rules]] §1). Refs: Slack (internal), Ampcode.
- DONE — Power BI to Holistics — add outro (#P2, [[Presales]]) — closed the W23 follow-up. Shipped migration video ended abruptly (Khai To confirmed an outro was needed); cut a short outro and re-rendered. Also committed + opened the PBI PR (Ampcode). Refs: Slack, Ampcode.
- DONE — [[Bicycle Transit]] inbox / overview follow-up (#P1, [[Presales]]) — closes the W23 open partial-period MTD/YTD comparison ask. (Source: Ampcode thread.) BTS needed to compare a partial window (e.g. Jun 1–2 this year vs Jun 1–2 last year), but
@this monthexpands to the full calendar month and breaks partial comparison. Fix:@this month to todayauto-clips to the elapsed window, so the built-in period-comparison applies the same truncated window to the prior year — “relative-period clipping”. (Nam Tran surfaced theto todaymodifier.) Reusable for any FY/period-aware customer. Refs: Slack.
Duty Support
- DONE — Query-run monitoring dashboard for [[Datacubed]] (US tenant) (#P2, [[Duty Support]]) — proactive query-run consumption tracking so Datacubed stays within plan limits. (Source: Ampcode thread.) Key design choice: aligned to their custom billing cycle, not calendar months. Metrics: cycle-to-date runs, avg daily runs across elapsed cycle days, projected end-of-cycle usage (
cycle-to-date + avg_daily × days_remaining), % of plan allowance used (base + add-ons), running cumulative count. Breakdowns: execution tags (embed/adhoc_query/report/email_schedule), internal-vs-external (embed) source, top dashboards by query intensity (pivot w/ dynamic per-tenant URLs), per-user. Refs: Slack. - DONE — Review
[Aarki] MCP Usage Monitoringdashboard (#P2, [[Duty Support]], Jun 12) — reviewed the AI/MCP usage-monitoring dashboard for Aarki (sibling to the Datacubed work and the earlier SweetSpot/Aurora AI-usage pattern). Refs: Notion, Slack, Ampcode.
Docs
- DONE — Polish / shrink the Power BI migration docs page (#P2, [[Docs]], Jun 14) — PR holistics/docs#1712 merged (+136/−266 — a net tightening). (Source:
gh pr view 1712.) Trimmed the PBI migration page for clarity. Refs: Ampcode.
Strategy / Positioning
- Drafted the “SaaS Revenue Analytics” narrative for anh Thanh (Jun 8) — one analytic project for revenue bundling business definitions, business context, and modeling artifacts (AMQL datasets, metrics, dbt models). The workflow mirrors the STRA-103 agentic analytics infrastructure positioning:
╭────────────────────────────╮
│ CEO / business user │
│ ChatGPT / Claude / Slack │
╰─────────────┬──────────────╯
▼
╭────────────────────────────╮
│ Package expertise AI skill │
│ biz-friendly onboarding │
╰─────────────┬──────────────╯
▼
╭───────────────╮
│ Answerable? │
╰───────┬───────╯
┌─────────┴─────────┐
▼ ▼
╭──────────────╮ ╭────────────────────╮
│ Answer via │ │ Capture request │
│ AMQL/SQL │ │ + definitions │
│ + evidence │ │ + biz context │
╰──────┬───────╯ ╰─────────┬──────────╯
│ ▼
│ ╭────────────────────╮
│ │ AI skill proposes │
│ │ schema/grain/ │
│ │ metric/guardrail │
│ ╰─────────┬──────────╯
│ ▼
│ ╭────────────────────╮
│ │ Data Team reviews │
│ │ + advises │
│ ╰─────────┬──────────╯
│ ▼
│ ╭────────────────────╮
│ │ Project/package │
│ │ updated │
│ ╰─────────┬──────────╯
└────────────────────┘
Continuation of the agentic-semantic-layer thread (anh Thanh + Simon Spaeti + ktx convergence from W23). Reinforced mid-week by reading Holistics’ own Not all semantic layers are equal and an X post drafted on local agentic development (brainstorm, x.com/lelouvincx).
- STRA-103 context (pulled live from Notion) — the SaaS Revenue Analytics narrative is a concrete instance of this positioning. (Source: notion-cli
page view.) STRA-103 argues Holistics should position a new product as “agentic analytics infrastructure” — the semantic runtime that makes AI analytics agents trustworthy, capable, efficient — explicitly not a viz product, dashboard copilot, generic text-to-SQL, or even “just a semantic layer.” The wedge is infrastructure: CLI + MCP server + SDK + package system + hosted control plane that let agents work through governed AMQL instead of raw warehouse schemas. Strategy: sidestep both the mature BI-viz layer and the traditional semantic layer, define a new layer between enterprise data and AI agents — the dbt playbook (high-centrality, code-native, practitioner-led spread, then monetize enterprise governance/control-plane). Core principles that map onto my narrative: agents use AMQL, not raw SQL (NL → semantic resolution → AQL → deterministic SQL → auditable answer); agent-neutral (Claude/ChatGPT/Cursor/Slack); make correctness measurable via evals; the UX shift is “delegated analysis,” not self-service BI, with the unit of work an analysis thread/session rather than a dashboard. My “Data Team reviews + advises” loop = the governance/capture half of that runtime. - 4-week-cadence 1-on-1 — Jun 10 (1-on-1 Report 2026-06-10, Ampcode). Goals review: PBI migration G2 exceeded (company-wide asset), local-dev video G3 met; DAT-576 G1 partial, H1/CV G4 not met (3rd+ slip). Next-period goals: (G1) close DAT-576 as a binary decision; (G2) productionize the TerryWhite FY-aware pattern; (G3) ship the video outro [done]; (G4) name the harness-engineering track — now concrete: Pi coding agent installed + RFC-0005 (agent-agnostic memory-sync vs Amp lock-in) drafted; (G5) force the H1/CV slot. Recurring asks: a shared presales status surface (Notion DB / Linear project) to stop the product-feedback “re-discovery tax” (repeat ask); lane question still open — excelling in both lanes, so the ask is whether the hybrid is the intended steady state. (Source: Ampcode 1-on-1 thread.)
Personal / Tooling
A genuinely active IC/harness week — the opposite of the “near-zero” read the empty mid-week journals first suggested:
/teach-skill self-learning, two sites shipped — using Matt Pocock’steachskill to learn by building: self-taught-design (deployed Jun 13, Ampcode) and self-taught-amql.lelouvincx.com (AMQL via AQLearn, deployed Jun 14, Ampcode). Direct skill investment in both the design and AMQL lanes.- Agent skills added/trialed — ponytail (Jun 14, Ampcode) and the copywriting skill (Jun 13). Continues building a personal harness/skill library.
- RFC-0005 committed — docs/plans/RFC-0005-amp-thread-extraction.md is now in the repo (Revision 2): vendor-agnostic agent-session memory (Amp threads + Pi sessions → one canonical export), with ADR-0001 layered redaction at R2 push. This is the harness-engineering arc made concrete — exactly the IC track the 1-on-1 said to protect.
- Captured design-tooling reference: ui-skills.com.
- OrbStack cleanup actioned (Jun 15, via Pi) — reclaimed ~37.65 GB (50 images, 19 volumes, 18 GB build cache); the P3 backlog item is effectively cleared.
Learning & Notes
- Paul Graham — Write Simply (Jun 13) — “simple is always better.” Flagged as especially apt in the AI era of verbose output. A useful editing lens for customer-facing writing (Basata reply, docs#1712 shrink both reflect it).
- Semantic-layer-for-agents reading — Holistics’ Not all semantic layers are equal, a LinkedIn discussion on semantic layers, and “The Log Is The Agent” (X). All feed the STRA-103 / SaaS-Revenue-Analytics positioning.
- Design fundamentals (Jun 13, [[Design]]) — typography x-height (tall x-height reads larger/easier at small sizes; short feels elegant but vanishes), and an 8-point design checklist: focal point, scanning pattern, typography, palette, contrast, repetition, alignment, proximity. Backs the self-taught-design work.
- The dbt↔BI gray area — r/BusinessIntelligence (non-engineer config) and data-quality tests in CI. Reinforces the dextech.ai diagnosis (ownership of modeling/semantic layer) and the DAT-524 “validate exclusions pre-merge” lesson.
- Mental model crystallized: a BI tool’s defensible moat against Superset-class tools is the semantic layer as a governed contract, not dashboard polish — “if Holistics only replaces Superset for embedding, it doesn’t solve their pain.” Generalizes to the agentic positioning.
- Harness-engineering reading list — captured in Weekly Report W23 → Recommended resources (Fowler, Hashimoto, Raschka, Osmani, Pi source, OSI, Charity Majors pendulum). Directly upgrades the Pi/RFC-0005 work from ad-hoc to systematic; read these before the next harness slice.
Next Week (W25: Jun 15 – Jun 21)
Pulled from [[Backlog]] + open W24 threads, ordered P0 > P1 > P2 > P3 ([[Priority Rules]]).
- P1 — Must Do
- [[Internal]] — DAT-576: convert the 1-on-1 ask into a WRITTEN decision (DAT-576) — 10-week carry-over. The verbal escalation happened; the writing didn’t (no Linear touch since May 7). Mon AM, 15 min: log one Linear comment with the binary ask + whatever the manager signalled ([[Weekly Planning Rules]] §1, §4). NOT a deep-work slot.
- [[Personal]] — H1 self-reflection + CV refresh — slipped 7 weeks, PR cycle imminent, 1-on-1 G5 = forced. Lock an immovable Sat block OR demote out of P1. No 8th silent carry.
- P2 — Should Do
- [[Internal]] — DAT-524 long-term Phase 2 plan doc (DAT-524) — short-term shipped; long-term doc slipped its W24 slot. Root-cause + upstream Zoho flagging (Growth owns, Data consumes). Wed PM, I draft + Thuan collabs.
- [[Duty Support]] — [[TerryWhite Chemmart]] dynamic financial date — productionize (#P2, 1-on-1 G2) — POC2 anchor-metric pattern validated W22. Finalize into a reusable FY-aware artifact + capture AQL quirks on a living page (reuse the Bicycle Transit
@this month to todayclip). Wed deep-work. Refs: Slack, Ampcode POC2. - [[Presales]] — PBI skill hardening (#P2, 2+ demand signals = formalize): (a)
holistics-migrate-power-biasks for the data source before generating AML; (b) codify field-name overridedefinition: @sql {{ #SOURCE."OriginalColumn" }}. Thu, paired. - [[Presales]] — materialize the Superset→Holistics migration prompt into an AI skill (#P2) — captured Jun 11; demand now real after the dextech POC. Pair with the PBI skill work.
- [[Internal]] — Upgrade
dbt-coreto match prefect — 30-min scoping. Thu PM.
- P3 — Nice to Have
- [[Logseq]] — RFC-0005 next slice (reader for Amp/Pi export) + Hugo Google auth — harness arc has real momentum; keep a defended Sat PM slot.
- [[Internal]] — Try ktx — feeds the SaaS Revenue Analytics positioning.
- [[Docs]] — auto-export dashboard PNG feedback to Khai To ([[Backlog]] draft ready) — Fri ship batch.
- [[Teaching]] — set-based vs row-based thinking; viz resources; pudding.cool. Continue the
/teachself-learning habit.
- Monitor (no action — external signal)
- [[Wamly]] — LOST to BoldBI (Jun 8) over external-report drill-down / explore-permissions on shareable links (Slack). Closed out of Backlog → Done. Worth a one-line product-feedback note: shareable-link explore/drill-down is now a named competitive gap vs BoldBI.
- [[dextech.ai]] — call + migration video delivered; waiting on their pick of 1–2 dashboards to start the 3-phase POC.
- [[Basata]] — onboarding call 5 done; promote-metric feedback with PM. [[Bicycle Transit]] — answered; reuse the FY-aware pattern.
- [[Predictive Index]] dropped (stopped evaluating). [[Enhance Fitness]] — sales-led; wait for trial-start.
Career & Personal Consulting
Honest read of the week, Start/Stop/Keep — and a correction to the mid-week draft:
- KEEP — measurable-impact delivery. DAT-524 landed with a prod-metric delta (−4 phantom churn, −$2,421 MRR), not “fixed a filter.” The dextech.ai diagnosis (“Superset has no semantic layer; embedding-only won’t solve the waterfall”) and the Basata answer (naming the ad-hoc→dataset promotion as the real issue, then routing it to the PM) both show the same instinct: find the real problem and capture the product debt. Genuine solutions-engineering judgment.
- KEEP (newly visible) — the IC/harness lane DID get defended this week. The mid-week draft worried Personal/Tooling was “near-zero.” With the full journals in, that’s wrong: two
/teachlearning sites shipped, ponytail + copywriting skills added, RFC-0005 committed with an ADR. You ran a heavy presales week AND invested in the IC track in the same week — that’s the balanced “hybrid” the 1-on-1 was asking about, demonstrated rather than debated. Keep doing this; it’s the strongest answer to the lane question. - STOP — letting decisions live only in conversation. The single durable miss. DAT-576 was raised in the 1-on-1 (good) but the written Linear ask never got logged (no Linear touch since May 7), so it’s “awaiting manager’s call” with no artifact. Your own [[Weekly Planning Rules]] §1: “meeting w/o written outcome = no outcome.” DAT-524 long-term doc also slipped. The pattern is narrow and fixable: execution + verbal ship; the write-up slips. Treat write-ups as 15-min scheduled actions, not deep-work.
- START — close the loop on losses. Wamly lost to BoldBI over shareable-link drill-down. The instinct (“a risk we accept”) is fine, but the loss should become a logged product-feedback / competitive-gap note the same way customer asks become data debts. One Linear/Notion line turns a loss into institutional memory.
- Workload-balance observation: mix this week = Presales-heavy (dextech end-to-end, Basata, PBI ×2, Bicycle Transit) + Internal/Support (DAT-524, Datacubed, Aarki) + Docs + real IC/tooling (teach sites, skills, RFC-0005). This is the healthiest balance in weeks — presales intensity did not crowd out the IC track. The remaining gap is purely the writing/decision layer (DAT-576, H1/CV), not the doing layer.
Recommended resources to learn
Grounded in this week’s themes (semantic layer for agents, Superset/PBI migration, FY-aware date modeling, MRR, harness engineering, design):
- Semantic / context layer for AI agents (powers the STRA-103 narrative + ktx read):
- Cube — Why Agentic AI Needs a Semantic Core; Snowflake — The Agent Context Layer for Trustworthy Data Agents; MotherDuck — Rethinking the Semantic Layer (semantic layer as an AI skill — almost your packaged-skill diagram); Streamkap — The Context Layer (why “customer”/“churn” need explicit definitions — mirrors DAT-524).
- Harness engineering (Pi + RFC-0005 — fuller list in W23 report): start with Martin Fowler / Birgitta Böckeler — Harness engineering and Mitchell Hashimoto — My AI Adoption Journey; then Sebastian Raschka — Components of a Coding Agent for a reference architecture.
- FY-aware date dimensions / YTD-PYTD (for TerryWhite): Fiscal year handling in DB design (almanac/date-dimension pattern, validates the
_v2anchor-metric approach); search “Kimball fiscal calendar date dimension”. - Multi-currency MRR / SaaS revenue (DAT-576 + revenue analytics): MRR vs ARR + 5 MRR types; Chargebee rev-rec guide.
- Writing & design (this week’s learning): Paul Graham — Write Simply; ui-skills.com (design-prototype agent skills, pairs with self-taught-design).
Enrichment sources (pulled live for this report): GitHub
gh pr viewon holistics/dbt#873 + holistics/docs#1712 (impact, status, diff sizes); LinearDAT-576/DAT-524(states, scope, last-updated); Ampcode threads viaread_thread(1-on-1 T-019eb070, Bicycle Transit T-019eb014, Datacubed T-019eaf91, Superset POC T-019ebaed); Slack via slackcli (Basata promote-metric thread, Wamly-lost thread); NotionSTRA-103via notion-cli; web search (semantic-layer-for-agents, FY-date, MRR). Partial: X/Twitter —x.envtoken authenticated but API credits depleted, so tweet bodies (own local-agentic-dev post; ishaansehgal “The Log Is The Agent”) were referenced from journal context, not fetched.