Chinh (lelouvincx) / Weekly Report - 2026-W22

Created Mon, 08 Jun 2026 00:00:00 +0000 Modified Mon, 08 Jun 2026 02:24:31 +0000
4341 Words

Weekly Report — May 25 – May 31, 2026 (friday mode)

W22 full week (Mon May 25 – Sun May 31). Net-new vs Tuesday mid-week cut: (1) two more TerryWhite Chemmart asks closed Wed May 27 — global locked dashboard filter (DONE) + dynamic financial date (WAITING, POC in flight, AQL quirks logged); (2) Prusa onboarding call closed Fri May 29 (#P1); (3) Review PR hook in holistics/skills (#P2, PR holistics/skills#16) shipped Thu; (4) Amp plugin updated for holistics mcp subcommand (P3, W21 carry-over finally cleared); (5) plannotator Amp plugin added; (6) [[Pi Coding Agent]] installed + RFC-0005 revised to incorporate it (Logseq harness-research arc); (7) BuyCo hide-tabs/tab-nav closed May 31 (“seems no response” — customer silent, archived without resolution); (8) Feedback — Publish via CLI? resolved; (9) moved house Fri May 29 (leave day). DAT-576 MRR exchange rate still NOT STARTED — 6-week carry-over, slot never fired all week. H1 self-reflection + Spark roadmap also slipped (weekend → moving house). Sloppypasta + Semantic Layer + Pi notes captured.

  • Work

  • Presales

  • DONE — Call with [[Prusa]] (#P1, [[Presales]]) — closed Fri May 29. Chukwudi’s direction (Slack thread): “do a detailed discovery to help him plan a strategy to win his company over.” Modeling question in the Prusa channel already resolved; my action = review it for context + lead the deeper discovery in next session. Refs: Slack. Follow-up captured in [[2026-06-01]] as “Help Prusa w/ extend dataset” (P1) — keeps momentum into W23.

  • TODO — Power BI to Holistics — narrative and video (#P1, [[Presales]]) — promoted P2 → P1 (almost done). Carried + progressed. Tuesday cut already covered Result-First 7-act direction + 3 marketing assets (a-linkedin-post.md, c-demo-transcript.md, d-demo-transcript-short.md). Late-week progress: 3 videos done + face/micro recording done (per [[2026-05-22]] update). Reference signal still Tableau→Sigma post — “long video lost viewers, missing conceptual diagram.” Refs: Slack, Notion: Demo PBI migration, Ampcode, Slack DM anh Khai.

  • TODO — Power BI to Holistics — Themes (#P2, [[Presales]]) — carried from W21 → moved to Backlog mid-week. No movement.

  • Duty Support

  • DONE — Support data question for [[TerryWhite Chemmart]] (#P1, [[Duty Support]]) — closed Mon May 25. Already covered in Tuesday cut: relative_period returns wrong LY values when date parameter is used as filter inside metric definition — parameter-bound where(... in param) clauses treated as literal-bound → resolved before rewrite rule → engine fails to shift WHERE range while shifting GROUP BY key → empty LY columns + data leakage to 2027. Workaround: define LY as base_metric | relative_period(...) w/o internal where, filter at explore level. Trade-off: LY subquery does full table scan. Reproduced CSVs sent to anh Tan Huynh. Refs: Slack, Ampcode (debug), Ampcode (conversation), Ampcode (reproduce csv).

  • DONE — Follow up with [[TerryWhite Chemmart]] (#P1, [[Duty Support]]) — closed Wed May 27. Loop closed w/ anh Tan Huynh + customer.

  • DONE — [[TerryWhite Chemmart]] — global locked dashboard filter (#P2, [[Duty Support]]) — closed Wed May 27. Customer ask (Christo Rootman): dashboard-level filters that are truly hidden + locked from end users — not editable via the Controls panel. Use case = central enforcement of structural filters (operational/active stores, “Like for Like” status) on specific dashboards while reusing the same dataset for other dashboards w/o those filters. Solution shipped: continue w/ local (visual-level) conditions as workaround → use Code Search in Holistics app to audit filter coverage → leverage Local Agentic Development (sync AML to disk + AI agent sweep) to apply filters consistently across dashboard files. Ask validated for product team. Lesson: when customer asks for hidden+locked dashboard filters, first clarify if row-level permissions fit (hidden + locked by design); if RLP overhead is too high for dashboard-specific behavior, hand the visual-level + code-search + agentic workflow. Refs: Slack, Ampcode.

  • WAITING — [[TerryWhite Chemmart]] — dynamic financial date (#P1, [[Duty Support]]) — opened Wed May 27. Elevated P2 → P1 end-of-week — pattern feeds Bicycle Transit (Tue Jun 2 call) + reusable for any FY-aware customer. Context (AU FY starts Jul 1): 2 customer pain points — (a) FY rollover maintenance — every July someone hand-edits exact_period(@(July 2025 - 1 Month Ago)) literals; (b) metric sprawl — same base sales metric cloned for TY / PY / FYTD / PFYTD / QTD windows. Solution pattern (POC2, dynamic anchor): precompute 7 FY helper dims on dim_date (fy_number, fy_start_date, fy_month_number, day_of_month, etc.) via Postgres SQL in AML → expose hidden dataset-level anchor metrics (_anchor_date = max(dim_date.date), _anchor_fy = first(dim_date.fy_number, where: dim_date.date = _anchor_date)) → rewrite _v2 comparison metrics to filter against anchors (e.g. FYTD = where(dim_date.fy_number = _anchor_fy and dim_date.date <= _anchor_date)). Result: rollover-proof, no hardcoded literals, dashboard date-filter drives everything. LEARNING — AQL quirks (logged in [[2026-05-27]] + POC2 thread):

    • == between dim and max(dim) rejected → use >= + <= chained.
    • Multiple dim <op> max(dim) in same where(... and ...) rejected → chain separate | where() clauses.
    • Anchor sub-metrics CAN be referenced in where() filter conditions ✓
    • AQL has no - for Date type → use date_diff('day', a, b) instead.
    • Rewriter limitation — parameter filter inside metric def (where(... matches first(param))) freezes predicate before relative_period shift rule runs → SQL WHERE doesn’t shift for LY. Same root cause as Mon’s relative_period bug above.
    • Subquery collapse — param filter on fact-table date alongside relative_period can deduplicate/merge subqueries → time shift lost entirely → TY == LY values.
    • Join propagation constraint — filters narrow downstream, never widen. Dashboard filter on dim_date.date (“Last Month”) always clamps; intermediate dim_financial_year table can’t bypass without anchor-metric pattern.
    • Refs: Slack, Ampcode (POC 1), Ampcode (POC 2).
  • DONE — [[BuyCo]] — hide tabs + tab navigation (#P2, [[Presales]], customer [[BuyCo]]) — closed Sun May 31. Final note: “Seems no response. Close this task.” Customer silent after workaround delivered (text-block <a href="?_t=<tab_uname>" class="btn-white"> HTML, w/ caveats: resets filters + doesn’t work in embed). Hide-tabs forwarded to product backlog (Di Hoang: no immediate plan; Hoang Do: visual-only easy but edge cases). Refs: Slack (original), Slack (internal).

  • DONE — [[BuyCo]] — dynamic dimension selection (#P2, [[Duty Support]], customer [[BuyCo]]) — closed Wed May 27. Field Parameters equivalent solved via Parameter Field + dynamic-dimensions + dynamic-measures + auto-run on changes. Bookmarks-style multi-widget toggle: hypothesis = collapse into single Param-Field-driven chart if visuals share shape. Refs: Slack (question 3), Ampcode.

  • Docs

  • DONE — Add demo video for local development docs (#P1, [[Docs]]) — closed Thu May 28 (Backlog/Done). W21+W22 carry, finally landed after anh Khai shipped 2-way sync in holistics CLI.

  • DONE — Feedback — Publish via CLI? (Thu May 28). Long-running draft in Backlog closed out — pushed feedback or shelved as auto-export-PNG-style ask supplanted it.

  • TODO — Fix .md URL suffix breaks docs pages (#P2, [[Docs]]) — captured May 26. Triet Pham flagged + Vincent escalated. Same root cause as W14 holistics/docs#1443 (plugin-content-docs shorten-URL behavior). Re-captured in [[2026-06-01]] as a fresh TODO Fix markdown docs not found in docs.h — likely same surface as carried W21 P3 broken-link sweep; check dedup before opening separate PR. Refs: Slack thread.

  • Internal

  • NOT STARTED — DAT-576 MRR exchange rate (#P1, [[Internal]]) — 6-week carry-over (W16 → W22). Mon AM Linear memo slot did not fire. Wed PM + Thu AM re-schedule from Tuesday cut also did not fire. Forcing-function rule ([[Priority Rules]]) breached for 2nd consecutive week. This is no longer a scheduling problem — it’s a prioritization signal. Sales-driven presales (BuyCo, TerryWhite, Prusa) + Logseq harness work consistently win the slot. See Career & Personal Consulting below.

  • PENDING — DAT-524 exclude internal Zoho test accounts (#P2, [[Internal]]) — PENDING DAT-576. Status change: customer-side direction landed end-of-week — [[2026-06-01]] now captures “work with Thuan, split short-term (Thuan executes) / long-term (I plan first)”. Effectively decoupled from DAT-576 wait. Action: open W23 with explicit split.

  • ARCHIVED — Continue Cross-Model Calculation (#P2, [[Internal]], DAT-504) — closed May 25 (Backlog/Done). Open since Nov 2025. Archived because no longer important — not actively blocking customer or internal flow; explicit call to drop rather than silently re-baseline. Forcing-function rule applied ([[Priority Rules]] §3).

  • AI / Reviews

  • DONE — Review PR holistics/skills#16 “Development/hook” (#P2, [[AI]]) — approved Thu May 28; merged Fri May 29 (author: @datbth). Hook = validate-aml.sh PostToolUse → runs holistics aml validate after each Write/Edit on .aml files in the holistics-development plugin. 4 concerns raised in review:

    • Single-file vs cross-file validation — hook only re-checks the edited file; renames/field-removals can silently break dependent models.
    • CWD assumptions — hook assumes agent CWD = project root; running elsewhere → false validation failures.
    • CLI arg-shape drift — tests mock holistics CLI → future CLI arg changes uncaught by CI.
    • Fragile parsingsed regex used to extract file_path from JSON instead of jq.
    • Outcome: Dat accepted risks for minor items (sed, CLI drift); single-file limitation documented in script header. Merged as-is. Refs: Slack, Ampcode.
  • NOTE — holistics mcp naming discussion (Slack) — Thành (thanhdk) flagged mcp is ambiguous (“for MCP” vs “through MCP protocol”). Dat presented 2 paths: (1) keep under mcp now, gradually surface as root commands when real human/automation usage emerges; (2) drop mcp prefix to “sell the idea first,” accept poor non-agent UX, optimize later. Thành preferred (2) + --for-ai / --json-output flag for richer agent format. Open: still being debated; my Amp plugin (next item) follows current holistics mcp <tool> naming.

  • Personal / Tooling

  • DONE — Plan RFC-0005 — amp thread extraction ([[Logseq]], #P3) — captured May 25. Foundation for nightly Amp-thread sync; complements RFC-0004 PARA. Doc under docs/plans/.

  • DONE — RFC-0005 update with [[Pi Coding Agent]] ([[Logseq]], #P3) — closed Sun May 31. Revision 2 generalizes from “Amp Thread Extraction” → “Agent Session Extraction — Vendor-Agnostic Memory”. Key design moves:

    • Vendor-neutral CLI — single Python agent-session entrypoint, auto-dispatches by ID prefix (T-<uuid> Amp / P-<uuid> Pi). Bare UUIDs fail loudly — no silent vendor-inference.
    • Reader protocol — strict Python Reader w/ 3 primitives (list(), export(), locate()). Vendor quirks (Amp CLI shell-out vs Pi local JSONL parsing) hidden behind typed boundary.
    • Selective Pi capture — Pi sessions captured on-demand or when cited in journal/diff (triggers live-fallback during resolve). Unlike Amp’s exhaustive daily discovery — Pi often = throwaway chats, full sync = cache bloat.
    • Redaction at every egress boundary — expanded from R2-push only → also prompt contexts fed to cloud agents + PR comments. Trigger: Pi sessions leaked plaintext API keys + filesystem paths in early tests. Local cache stays full-fidelity; outbound defaults redacted via trufflehog.
    • Robust Pi JSONL parsing — unknown event types or content parts rendered as fenced JSON (not dropped); files modified in last 5s skipped (avoid mid-append reads); single trailing malformed line tolerated for active sessions.
    • AGENTS.md glossary updated w/ canonical terms. Refs: Ampcode, docs/plans/RFC-0005-amp-thread-extraction.md.
  • DONE — Add Hugo site to second-brain-logseq ([[Logseq]], #P3) — closed May 25. Hybrid pre-processor (automation/build-hugo.py) → Cloudflare Pages + Zero Trust Access (Google OAuth + OTP). Live at secondbrain.lelouvincx.com. Refs: Ampcode.

  • DONE — Install [[Pi Coding Agent]] + config skills ([[Personal]], #P3) — closed Thu May 28. Pi (by Earendil) = “minimal terminal coding harness. Adapt Pi to your workflows, not the other way around” (pi.dev). Hard differentiator vs Amp/Claude Code: no MCP, no sub-agents, no plan mode, no built-in todos, no background bash — all rebuilt as extensions/skills/packages. Primitives, not features. Tools: read / write / edit / bash / web_search / web_read. Custom config (see [[Pi Coding Agent]] page): web search via pi-search-hub (tavily + exa), rtk init --agent pi. Preferred LLMs: GLM-5.1, Deepseek V4 Pro, Gemini Flash 3.5. Why I picked it up: studying small harnesses unlocks self-maintenance + better mental model for “what is a coding agent.” Amp’s plugin extension copied from Pi → reading Pi clarifies why Amp made certain choices.

  • NOTE — Improve Pi’s SYSTEM.md (Ampcode) — 4 concrete improvements identified + applied locally:

    • No background processes (&) — explicit ban; prevents orphaned bash processes that confuse users.
    • AGENTS.md awareness — dedicated section defining AGENTS.md as source of truth for commands/preferences/codebase structure + instruct agent to proactively suggest additions when a new command is discovered.
    • No “thanks” for tool results — tool outputs don’t come from user; thanking adds noise.
    • File-link examples + fluent linking style — concrete file:// URL examples (basic, special chars, specific lines, ranges) + do/don’t fluent-link example.
    • Gap addressed: Pi’s original SYSTEM.md described rules abstractly. Concrete worked examples + explicit operational boundaries give the model stronger steering. First contribution path scoped.
  • DONE — Add grill-me + grill-with-docs skills ([[Personal]], #P1) — closed May 26. Already covered in Tuesday cut. Refs: Ampcode, PR agent-skills#20.

  • DONE — Media Manager skill ([[Personal]], #P3) — closed May 26. Already covered in Tuesday cut.

  • DONE — Amp plugin update for holistics mcp subcommand ([[Personal]], #P3) — closed Wed May 27. W21 carry-over finally cleared. Rewrote 2 plugins:

    • holistics-mcp-errors.ts — previously matched on regional MCP server prefixes (bi, eu, sg, us, demo4). Now: regex detects holistics mcp <tool> in bash invocations; captures hard failures (non-zero exit embedded in bash output) + soft failures (parse JSON, lightweight YAML probe for non-empty errors:).
    • holistics-md.ts — intercepts bash outputs containing holistics mcp analytical queries (execute_aql, execute_viz, execute_viz_block); parses verbose nested YAML result_data → inline clean markdown table.
    • Migration impact: regional MCP servers removed; requires holistics CLI ≥ v1.0.6 in PATH; must cd into local Holistics project before running holistics mcp (enables AML sync checks); env routing handled by CLI natively (no more per-region plugin config). Refs: Ampcode. Note: priority was tracked as #P2 in Tuesday plan but #P3 in journal — treating as #P3 (closed quickly).
  • DONE — Add Amp plugin for plannotator ([[Personal]], #P3) — closed Sat May 30. Plannotator = interactive plan + code-review tool for AI coding agents (Claude Code, Gemini CLI, Copilot CLI, Amp). Browser-based UI for visually inspecting / annotating (delete, insert, replace, comment) agent plans + diffs — inline terminal review is clunky. The Amp plugin registers plannotator-review / plannotator-annotate / plannotator-last commands → launches Plannotator UI in browser → intercepts + pauses agent flow → returns structured annotations/approvals/change-requests back into agent loop. Refs: Ampcode, Ampcode (removed alt impl).

  • DONE — Unsub Contabo VPS ([[Personal]], #P3) — closed May 25. Cost-drop.

  • DONE — Review and update [[Personal Context]] ([[Personal]], #P3) — closed Mon Jun 1 (boundary close, logged here for visibility). Long-standing backlog item finally cleared.

  • LEARNING — holistics-migrate-power-bi skill ([[2026-05-28]]) — for snake_case-preferring AML fields backed by mixed-case warehouse columns: don’t create query model; instead override field name on each dimension w/ definition: @sql {{ #SOURCE."OriginalColumn" }}. Cleaner than wrapping a transform layer.

  • Personal — moved house Fri May 29 (took leave). New studio room near girlfriend’s place; better light + balcony for WFH. Rent +x2 (covering younger brother), ~5M VND net. Affordability validated 2 weeks ago via [[Personal Finance Manager App]] modeling. Budget rebalance plan: less café, more home cooking, no expensive game skins. Photos + walkthrough video stored on media.secondbrain.lelouvincx.com. Logged in [[2026-05-30]].

    • New room design
  • Learning & Notes

  • Sloppypasta — heuristic for AI output discipline: “Use AI to accelerate your work or improve what you send. Don’t use it to replace thinking about what you’re sending.” Counter-pattern = copy-pasting raw LLM output to someone — unread, unrefined, unrequested. Applies directly to customer-facing Slack messages, Notion drafts, and PR descriptions.

  • [[Pi Coding Agent]] — minimal-tool harness (vs Amp’s heavyweight). Why interesting: understanding small harnesses unlocks self-maintenance + better mental model for “what is a coding agent.” Amp’s plugin extension copied from Pi → studying Pi clarifies why Amp made certain design choices.

  • [[Semantic Layer]] — gathered Reddit comments from r/dataengineering thread:

    • “Representing your data in a way that reflects how the business talks about it.” Power BI has always had semantic layer; AI is forcing the issue again.
    • “Means of getting away from tribal knowledge and ad-hoc slop houses.”
    • Pattern: instead of letting LLM generate SQL directly, let it query semantic layer → stable interface, consistency, no schema-understanding burden.
    • KPI/dim/table/field/joins/bridges/topics/controls, all w/ rationale. YAML + Parquet + human-approved AI-suggested shadow loop = working MVP pattern someone shared.
  • Tableau → Sigma migration skill — viewing critique: long video lost patience, no conceptual diagram. Direct input into our Result-First 7-act PBI demo structure.

  • holistics-migrate-power-bi 0.1.1 — bumped Fri May 22 (Ampcode). Field-name override pattern (snake_case AML over mixed-case warehouse) → captured as new skill note above.

  • [[Helium Browser]] — trialing as Arc replacement ([[2026-05-31]]). Feedback pending.

  • NOTE — accessories audit — keyboard/mouse downsized to single set (MelGeek O2 + Attach Shark X1 Ultimate V2); Mac upgraded to M4 Pro. Less gear, fewer decision-points.

  • Next Week

    Pulled from pages/Backlog.md, 2026_06_01.md (already captured), and W22 carry-overs. Ordered P1 → P3. 3+ week carry-over rule ([[Priority Rules]]) applied to DAT-576, DAT-524, H1 self-reflection, Spark roadmap.

  • P1 — Must Do

  • [[Internal]] — DAT-576 MRR exchange rate (DAT-576) — 7-week carry-over. Forcing-function breach 2x in a row. Mandatory next step: 30-min Mon AM Linear comment w/ 3-option memo (re-scope / hand-off / de-prioritize). If Mon AM slips again → escalate as prioritization question to anh Triet in next 1-on-1, not as scheduling. See Career & Personal Consulting.

  • [[Presales]] — Prep onboarding call w/ [[Bicycle Transit]] ([[2026-06-01]]) — booked Tue Jun 2, 22:00 VNT (60 min) via Calendly. Invitee: Peter Safonov ([email protected]). Account owner: Chukwudi (Americas). Specific ask (from Calendly form + Nam’s forwarded message): “Build one of our test dashboards… simple, trip activity sliced a few different ways, easily filterable by WTD/MTD/YTD with prior-year comparisons.” Prior context: previous “Bicycle Transit Dashboard” session landed well. Anh Huy assigned to me: “this is your deal, please prepare and sit in this one.” Prep direction: re-use the TerryWhite anchor-metric + Param Field pattern from this week (WTD/MTD/YTD switch = Param Field; prior-year comparison = relative_period w/ external filter pattern). Refs: Slack, Calendly invite.

  • [[Presales]] — Help [[Prusa]] w/ extend dataset (captured [[2026-06-01]]) — Prusa call followed up Fri May 29 → momentum carry. Pair w/ AML + AQL work.

  • [[Teaching]] — Soạn roadmap Spark cho Yên3+ week slip (W20 → W22 weekend missed for moving house). Re-schedule Sat AM W23. If skipped again → demote to P2 and explicitly book a 4h slot, or hand back to Yên to drive.

  • [[Personal]] — H1 self-reflection + CV refresh4-week slip (W19 → W22 weekend missed for moving house). PR cycle approaching. Sat PM + Sun. Carry-over forcing function: if not delivered W23, demote out of P1 and accept reduced PR-cycle prep.

  • [[Duty Support]] — [[TerryWhite Chemmart]] dynamic financial date POC (P1, elevated) — pattern feeds Bicycle Transit Tue Jun 2 call + reusable for any FY-aware customer. Wed deep-work. AQL quirks → write up as living-page entry.

  • [[Presales]] — Power BI to Holistics — narrative and video (P1, almost done) — finish editing 3 recorded videos + cut 3-min marketing version. Publish a-linkedin-post.md draft to anh Khai for review. Thu.

  • P2 — Should Do

  • [[Internal]] — DAT-524 exclude internal Zoho test accounts (DAT-524) — now decoupled from DAT-576. Two-track plan from [[2026-06-01]]: (a) short-term — Thuan executes (review-only on my side); (b) long-term — I plan first. Schedule plan draft Tue PM.

  • [[Docs]] — Fix markdown docs not found / .md URL suffix — dedup the two open items (W21 P3 carry + W22 new P2). Single PR against holistics/docs, same surface as #1443. Fri ship-batch slot.

  • [[Presales]] — PBI agent: ask for data source before implementing — new Backlog item (#P2, [[Presales]]). Tighten holistics-migrate-power-bi skill flow so the agent prompts for the source warehouse/DB before generating AML, instead of guessing then back-pedaling.

  • [[Presales]] — PBI: field name override pattern — new Backlog item (#P2, [[Presales]]). Codify the snake_case-AML / mixed-case-warehouse override pattern (LEARNING from [[2026-05-28]]) into the holistics-migrate-power-bi skill — definition: @sql {{ #SOURCE."OriginalColumn" }} instead of wrapping a query model.

  • [[Presales]] — Polish document embedding (69ccaad3-d8f1, [[Docs]]/[[Presales]]) — keep evidence-mode; no formalization yet (no 2nd demand signal yet).

  • [[Internal]] — Upgrade dbt-core to match prefect — long backlog item, no recent push. Schedule scoping Thu PM.

  • P3 — Nice to Have

  • [[Logseq]] — Execute RFC-0005 v2 (agent session extraction) — implement first vertical slice for Amp threads, then Pi sessions.

  • [[Logseq]] — Hugo site: add Google auth — new Backlog (#P3). Layer in-app Google sign-in beyond Cloudflare Access (or move auth into the site itself).

  • [[Personal]] — Pi harness deeper dive — contribute SYSTEM.md improvement (Ampcode).

  • [[Personal]] — [[Helium Browser]] feedback note — after 1 week of use.

  • [[Presales]] — Power BI to Holistics — Themes — back in Backlog demoted P2 → P3 mid-week W22. Pick up only if Fri ship-batch slot has room.

  • [[Logseq]] — RFC-0004 PARA W22 batch — slipped W22. Try again as Fri ship-batch.

  • [[Docs]] — Auto-export PNG feedback to Khai To — draft already in Backlog; send.

  • [[Personal]] — House setup buys (P1 móc treo + tủ lạnh; P2 ly/khay/pallete/máy giặt; P3 giá sách/rèm) — captured [[2026-05-31]].

  • Monitor (no action — external)

  • [[Wamly]] onboarding — #holistics-wamly-external.

  • [[Predictive Index]] — Nam (sales) followed up.

  • [[Enhance Fitness]] RFP — Chukwudi (sales) followed up.

  • [[TerryWhite Chemmart]] — engine-fix vs canonical-doc reply from anh Tan Huynh.

  • Career & Personal Consulting

    A reflective + honest read of the week. Structured as Start / Stop / Keep ([[Weekly Planning Rules]] §1 — “decisions in writing beat decisions in conversation”).

    Keep

  • Customer-driven duty support → fast close, fast learning loop. Five TerryWhite + BuyCo asks closed inside 5 days. AQL quirks captured live in the journal (parameter-binding bug, financial-date chained-where, date_diff vs -). This is the duty-support flywheel working — answers become reusable skill/doc artifacts. Keep: capture LEARNING bullets inside the same task, not in a separate file.

  • Friday ship-the-small-thing batch principle. Even though moving-house ate Fri PM, the rest of the week shipped 3 small Logseq/tooling items (Amp plugin update, Pi install, plannotator plugin) — proves the small-PR muscle is sticky.

  • Pi Coding Agent investigation. Net-new learning arc — minimal harness lets me reason about agent architecture rather than just consume Amp. Worth keeping as a slow background project.

  • Honest journaling — house move was logged as the reason for weekend slip. No silent re-baselining. That’s the [[Weekly Planning Rules]] §4 anti-pattern guard working as designed.

    Stop

  • Stop putting DAT-576 in P1 without a structural change. This is the 6th consecutive week the Mon AM slot did not fire. Both the priority page ([[Priority Rules]] §3 “3+ week carry-over rule”) and the planning page ([[Weekly Planning Rules]] §4 “schedule-instead-of-prioritize anti-pattern”) describe this exact failure mode. The honest read: presales + duty support are genuinely more leveraged this quarter, and DAT-576 keeps losing the slot fight. Options for W23:

    • Option A — open the 1-on-1 with “I want to formally hand DAT-576 back to anh Triet to re-scope.” This is the decision-in-writing version.
    • Option B — block a literal 4-hour calendar event with no fallback (“write memo or do nothing else”). Behavioral forcing function.
    • Option C — admit it’s actually P2 right now and accept the slower trajectory. Update the Linear issue accordingly.
    • Recommendation: A — surface upward before pretending to schedule it again.
  • Stop loading the weekend with both H1 reflection AND a moving day AND Spark roadmap. Three immovable items + a life event = guaranteed silent re-baseline. The [[Weekly Planning Rules]] §4 “unbounded weekend” guard caught this in plan W22 but the named items still slipped. Either move H1 reflection into weekday deep-work blocks OR cut to 1 weekend deliverable, named.

    Start

  • Start tracking presales hit-rate per call. Five calls this month (BuyCo, Basata, Enhance Fitness, Predictive Index, Prusa). A 1-line outcome per call in [[Backlog]] under each customer gives a real signal vs my self-perception. Connects to [[Personal Productivity Analysis]] project — first concrete dataset for the weekly-report ingestion idea.

  • Start a weekly “AQL/AML quirks” living page. This week alone captured 4 distinct quirks (financial-date chain, date_diff, anchor sub-metric where(), snake_case field override). Each is reused-once = save next time. Skip if duplicate of dax-to-aql.md — but I suspect at least 2 are net-new.

  • Start treating PR cycle prep as a Q-level objective, not a weekly checkbox. 4 weeks of slip is the loudest signal of the year. Either book multi-week prep arc or formally lower the bar w/ manager.

    Workload mix (this week, rough split)

    ╭─────────────────────────────────────────────────────╮
    │  Presales        ████████████████░░░░░░░░░  ~35%   │
    │  Duty Support    ████████████░░░░░░░░░░░░░  ~25%   │
    │  Logseq/Tooling  ███████████░░░░░░░░░░░░░░  ~22%   │
    │  Personal/Move   █████████░░░░░░░░░░░░░░░░  ~18%   │
    │  Internal (DAT)  ░░░░░░░░░░░░░░░░░░░░░░░░░   0%    │
    ╰─────────────────────────────────────────────────────╯
    

    Internal at literally zero is the takeaway. Presales/Duty pull keeps winning the slot. Make the prioritization explicit upward.

  • Sourced from this week’s themes: agent harnesses, semantic layer, AQL parameter binding, presales narrative discipline.

  • Agent harnesses (Pi-style minimal)

    • Anthropic — Building effective agents — canonical taxonomy of agent patterns (workflow vs agent, prompt chaining, routing, parallelization, orchestrator-workers, evaluator-optimizer). Directly maps to Pi’s minimal tool set + Amp’s plugin extensions.
    • Pi docs — read the tools spec end-to-end. Cross-reference w/ Amp’s plugin manifest.
    • Geoffrey Litt — Malleable software — pairs w/ the “self-maintainable harness” goal.
    • Keyword: agentic loop, tool-use harness, system prompt minimalism.
  • Semantic layer (for [[Semantic Layer]] page + Holistics talking points)

  • AQL parameter-binding deep-dive

    • Internal: write 1 short Notion page mapping parameter-bound where() → literal-bound where() resolution order. Cross-link relative_period, period_to_date, with_filter, keep_grains.
    • Pair w/ Holistics docs — Modeling Patterns (already in Backlog as P3).
  • Presales narrative (PBI demo)

  • House setup / WFH ergonomics (since you moved)

    • Search: WFH balcony desk setup, 1-room studio acoustics, monitor arm under 1M VND.
    • Reddit: r/battlestations, r/MalLivingRoom, r/InteriorDesignVN.
  • Tooling

    • Helium Browser docs — capture migration friction notes vs Arc.
    • plannotator — own plugin; document usage publicly if it stabilizes.