Work Tracker

✍️ Day Summary

I updated the marketing-intel documentation to reflect the D-light v0 shipment and implemented a plan for future GA4 work. I refactored several routes in marketing-intel from using an SQLite facade to utilizing Mongoose models. Finally, I fixed multiple bugs in the astroacharya calendar logic related to date handling and tithi calculation.


📊 Daily Overview

Total Activity: 109 commits + 23 merges across 8 repositories


🚀 GitHub Activity

1. vipin-kaushik-content 🔒 — 38 commits

fix(hygiene): dedicated daemon-bash copy to work around macOS TCC · 8c2621b

Granting Full Disk Access to /bin/bash does NOT work on modern macOS —
Apple-signed system binaries have a static TCC identity that overrides
user-added FDA grants at the kernel layer. Symptom: launchctl shows
last terminating signal = Killed: 9, log file is empty, daemon never
emits a heartbeat.

feat(hygiene): T33 — workspace-side precommit-check policy + touch helper · 658aabb

Shared policy script invoked by per-project pre-commit hooks via the
~/.gstack/workspace-root symlink. Single source of “what blocks and what warns.”

Policy v1 (conservative):
size-caps — block on RED only (caps exceeded = clear regression)
state-shape — WARN only (gaps clear on PR merge; never block dev commits…

docs(state): T33 — 5 sibling PRs opened (hygiene policy hooks) · 6363df8

Per-project pre-commit dispatchers landed across all 5 sibling repos:
VK#151 (husky, base=production), VK-mb#12 (.githooks/), astroacharya#21
(.githooks/), Astroclarity#5 (husky, appends to existing lint-staged),
Campaigner#5 (.githooks/).

feat(hygiene): T35-T37 hardening — integration fixture + weekly cron + STATE render · f495bad

T36 — Hygiene daemon section auto-rendered into workspace STATE.md.
collect.sh now splices a block between

/ markers each

tick: heartbeat freshness, per-component status table, last 3 ledger
transitions.

docs(state): close Workstream D Phase 4 — only T38 (opt-in LLM) remains · 5ea08b5

T35 + T36 + T37 landed in f495bad. Workstream D scope per the parent plan
is complete except T38, which the plan itself defers until manual rhythm
proves the dashboard is enough.

Affects: workspace.

fix(hygiene): adversarial review fixes (F1-F12, F19) + report · f112bfe

Closes the adversarial review of Workstream D. Full report at
docs/reports/workstream-d-adversarial-review-2026-06-20.md.

REAL BUGS (correctness):

  • F1 lock-cleanup race in collect.sh.

…and 32 more commits in this repo.

2. astroacharya 🔒 — 21 commits + 15 merges

chore(hooks): T33 — hygiene policy dispatcher (workspace-side) · 0b58f04

astroacharya has no husky (Python project), so adopt the .githooks/
pattern (same approach as the workspace + VK-mb):

  • .githooks/pre-commit — calls workspace precommit-check.sh astroacharya.
    size-caps red blocks; state-shape gaps warn.
  • .githooks/post-commit — calls workspace post-commit-touch.sh.
  • scripts/instal…

feat(panchang): TM-066 correctness roll-up — TM-059 sunrise + TM-062.1 Ugadi masa filter · 5dd3669

Item #1 of the Panchang/Gochar/Festivals V1 spec
(docs/plans/2026-05-24-panchang-gochar-festivals.md, locked 2026-05-24).
Foundation pass: every gochar event + festival calc reads the same
sunrise + masa primitives, so these two fixes ripple through items 2-5.

TM-059 — sunrise/sunset: NOAA simplified → swe.rise_trans

feat(calendar): TM-047 — /v1/calendar/hindu/{year} with V1 envelope · fff7b9a

Item #2 of the Panchang/Gochar/Festivals V1 spec
(docs/plans/2026-05-24-panchang-gochar-festivals.md, locked 2026-05-24).
Builds directly on the TM-066 foundation shipped in PR #22.

New endpoint:

GET /v1/calendar/hindu/{year}?lat=&lon=&tz=&month=

revert(festivals): TM-062.1 masa filter broke real Ugadi, restored phantom · 27aeab0

QA pass on the merged /v1/calendar/hindu/{year} endpoint caught a critical
bug introduced by TM-062.1 in PR #22. The Saura masa filter dropped the
real Ugadi date and kept the phantom Vaishakha Shukla Pratipada.

feat(calendar): TM-061.1 — tithi-kshaya recovery in compute_yearly_calendar · 6dee478

Closes the bug surfaced by /qa earlier today: real Ugadi 2026 (and Ugadi
in many other years) was silently missing from /v1/calendar/hindu/{year}
because tithi=1 is skipped between consecutive sunrises in those years.

feat(sky-today): TM-047 item #3 — production-readiness envelope · a5ad953

  • X-Powered-By: AstroAcharya middleware on every response
  • 60/min rate limit on /v1/sky/today (parity with /v1/panchanga/*)
  • Top-level provenance + citations + cache fields (additive; existing
    flattened shape preserved — tithi/nakshatra/yoga/planets/scene unchanged)
  • OpenAPI summary + description on the endpoint

…and 15 more commits in this repo.

Merges:

  • Merge pull request #29 from Rupali59/envelope-honesty-tz-fix-2026-06-20
  • Merge pull request #30 from Rupali59/tm061-b7-jan1-sankranti-fix-2026-06-20
  • Merge pull request #25 from Rupali59/tm061-tithi-kshaya-2026-06-20
  • Merge pull request #26 from Rupali59/tm047-item3-production-readiness-2026-06-20
  • Merge pull request #31 from Rupali59/pra-sunrise-correctness-2026-06-20
  • Merge pull request #34 from Rupali59/docs-prabc-trifecta-2026-06-20
  • …and 9 more

3. marketing-intel 🔒 — 25 commits + 2 merges

chore(hooks): T33 — hygiene policy dispatcher (workspace-side) · 4a5c783

Campaigner has no husky, so adopt the .githooks/ pattern (matching
workspace + VK-mb + astroacharya):

  • .githooks/pre-commit — calls workspace precommit-check.sh Campaigner.
    size-caps red blocks; state-shape gaps warn.
  • .githooks/post-commit — calls workspace post-commit-touch.sh.
  • scripts/install-hooks.sh — sets…

chore(deps): bump @types/node from ^20 to ^22 (T14) · f21c9b0

T14 locked align action: workspace runtime is Node 22.22.0 (per
~/Documents/GitHub/Vipin Kaushik/CLAUDE.md), but Campaigner’s
@types/node was pinned to ^20.

npm install clean. npm run lint shows 5 pre-existing issues
(2 react/no-unescaped-entities errors + 3 unused eslint-disable
warnings), unrelated to this bump.

chore: rename ai-studio-applet → marketing-intel + rewrite README · 7ac6a47

refactor: delete briefing engine + Gemini editorial loop + dependents · 8585860

The Gemini editorial-author loop violates the workspace rule “never
invent Vipin’s voice” (workspace memory feedback_no_invented_vipin_voice).
Per docs/plans/2026-06-20-marketing-intel-d-light.md §“Cut”, removes
the editorial paths while keeping the Gemini client wrapper for v0.1
use (GSC topic classification, anomaly…

refactor: delete SubredditSidebar (Reddit-centric dashboard chrome) · 55a7060

docs(claude.md): rename + deprecate SQLite facade + clarify user model · 923a6f0

…and 19 more commits in this repo.

Merges:

  • Merge pull request #5 from Rupali59/chore/hygiene-hooks-t33-2026-06-20
  • Merge pull request #6 from Rupali59/chore/types-node-22-2026-06-20

4. Sanskrit-texts10 commits

refactor: Normalize corpus to uniform schema + consolidate file structure · f2034e2

Migrate every text JSON off the pre-normalization shape (source, header,
book, english_meaning, hindi_meaning, source_file, source_chunk,
is_duplicate) onto the uniform schema (text_id, title_sa, title_en,
category, chapters[].shlokas[] with text/english/hindi/status).

feat: Digitize Uttara Kalamrita + Minaraja Uttarakhanda (100% translated) · 3792b90

  • uttara_kalamrita: 324 shlokas across 9 chapters, graduated from
    README-stub to full digitized text with English + Hindi.
  • minaraja_yavana_jataka: add the Uttarakhanda (MS_040–071, ~1,887
    shlokas) with English + Hindi, completing the text to 4027 shlokas.

chore(state): catch up to workspace state + plans convention · b13cd88

sanskrit-texts (6th sibling) was bypassed in the 2026-06-19 workspace
sweep. Catch up:

  • add docs/plans/README.md (project-plan convention)
  • fix malformed .gitignore that hid the tracked docs/ tree; un-ignore
    docs/ (BPHS lexicons now tracked); ignore tool-local config + raw
    digitization intermediates
  • STATE.md /…

chore(hooks): T33 — per-project hygiene hooks (6th sibling parity) · da480bd

sanskrit-texts was bypassed in the 2026-06-19 T33 rollout. The hooks are
project-type-agnostic — thin dispatchers that resolve the workspace via
~/.gstack/workspace-root and delegate to the shared
scripts/hygiene/precommit-check.sh, so a no-build data corpus works
identically to the Node/Python siblings.

docs(decisions): record T33 hooks installed (supersedes deferred note) · e23cbe2

Affects: sanskrit-texts

docs(state): reconcile to post-commit reality (corpus shipped, T33 done) · 50ee4d9

Affects: sanskrit-texts

…and 4 more commits in this repo.

5. VipinKaushik-mb 🔒 — 3 commits + 4 merges

chore(hooks): T33 — hygiene policy dispatcher (workspace-side) · d4f8bb9

VK-mb has no husky, so adopt the .githooks/ pattern (same approach the
workspace uses):

  • .githooks/pre-commit — calls workspace precommit-check.sh VipinKaushik-mb.
    size-caps red blocks; state-shape gaps warn.
  • .githooks/post-commit — calls workspace post-commit-touch.sh for the
    touch-file fast path.
  • scripts/in…

chore(deps): bump @types/node from ^20 to ^22 in ui/ (T14) · 3e47793

T14 locked align action: workspace runtime is Node 22.22.0 (per
~/Documents/GitHub/Vipin Kaushik/CLAUDE.md), but VK-mb/ui’s @types/node
was pinned to ^20. The types were lying about the runtime.

Verified: npm run typecheck (tsc —noEmit) passes after install.
Installed: @types/node 22.19.21.

chore(deps): zod ^3.23.8 → ^4.0.0 in server/ (T14) · fa2bcd6

T14 locked align action — VK is already on zod 4; VK-mb/server was the
last laggard.

Zero code changes required. The two existing schemas in server/routes/
(appointments.js + me.js) use surface features that didn’t change
between v3 and v4:

Merges:

  • Merge pull request #13 from Rupali59/chore/types-node-22-2026-06-20
  • Merge pull request #11 from Rupali59/chore/un-gitignore-docs-2026-06-19
  • Merge pull request #12 from Rupali59/chore/hygiene-hooks-t33-2026-06-20
  • Merge pull request #14 from Rupali59/chore/zod-4-2026-06-20

6. Youvan 🔒 — 6 commits

feat: fresh Youvan public site — design system + home shell (P2) · 9a42afe

Replaces the retired portfolio (archived → Youvan-legacy/). Next 16 +
React 19 + Tailwind v4. Implements docs/DESIGN.md: both-theme tokens
(warm-ink dark default + warm-paper light), class-based theme toggle
(no-FOUC), fonts (Fraunces/Newsreader/Tiro Devanagari/Noto Nastaliq
Urdu/DM Sans), per-script line-height, honor…

chore: portless slug (youvan.localhost); PORT in .env.local · 9812409

Per the next-dev rule: PORT lives in .env.local (gitignored), .portlessrc
enables portless wrapping. dev/start scripts call the helper.

feat(home): Variant C ornament set (mandala divider, drop-cap, pillar labels) · 09f7370

Brings the home from B-restraint to the approved C direction (docs/DESIGN.md):
mandala hairline divider above Recent Essays, saffron Latin-only drop-cap on
the featured opening, gold pillar labels on essay rows. Diyas removed from the
navbar per feedback (Diya component retained for later use). Build verified.

feat: P3 — public pages wired to live data (home, writing, reader) · 06af947

Reads youvan.posts directly (Next server components, force-dynamic):

  • lib/db.ts (cached mongo client), lib/posts.ts (queries + facets),
    lib/format.ts (date/lang/pillar/num helpers), lib/render.ts (marked +
    RTL script-segmentation pass).
  • Home: real featured + recent (8).

fix(qa): mobile nav, stub pages, Latin-only drop-cap · c8f8bda

QA pass on the live site found 3 issues, all fixed:

  • ISSUE-001 (High): no mobile nav / no theme toggle on mobile. Added a shared
    SiteHeader (used by home/writing/reader — DRY) with desktop nav, an
    always-visible theme toggle, and a mobile Menu drawer.
  • ISSUE-002 (Med): Palmistry/Social Work/About nav linked to de…

chore: vercel.json for the new Next app (drop old Nx build:vercel) · 5f48e22

7. Astroclarity 🔒 — 2 commits + 2 merges

chore(hooks): T33 — hygiene policy dispatcher (workspace-side) · 4510db8

  • .husky/pre-commit — appends hygiene dispatcher AFTER existing
    lint-staged step. Calls workspace precommit-check.sh Astroclarity.
    size-caps red blocks; state-shape gaps warn.
  • .husky/post-commit — new file; touch-file fast path.

chore(hooks): T33 — also wire post-commit touch-file fast path · 7e14a63

Appends touch-file dispatcher to existing .husky/post-commit (which already
echoes a “commit successful” message). Calls workspace post-commit-touch.sh
so collect.sh’s next tick re-audits only this project.

Affects: Astroclarity.

Merges:

  • Merge pull request #4 from Rupali59/chore/un-gitignore-docs-2026-06-19
  • Merge pull request #5 from Rupali59/chore/hygiene-hooks-t33-2026-06-20

8. kirti-portfolio 🔒 — 4 commits

feat: headshot, share icons, social previews, aligned layout + tokens · dc9dc28

  • tokens: add —surface + —space-4..60 scale in globals.css; convert
    on-scale spacing literals to tokens (value-identical output)
  • nav: align logo/links to the 920px column via .nav-inner (was full-bleed)
  • headshot: wire public/Headshot.png into profile + sidebar via PROFILE.headshot
  • credits: table-layout:fixed…

feat: analytics event layer (share, contact, outbound, section_view) · 891b39a

  • lib/analytics.ts: track() wrapper → GA4 (consent-aware) + Vercel Analytics
  • SmartLink: client; auto outbound_click on external links + optional event prop
  • ShareBar/Nav/SectionNav: fire share, contact_click, section_view events
  • Placeholder: priority prop for above-the-fold LCP image
  • docs/ANALYTICS.md: event tax…

feat: SEO infra — robots, sitemap, JSON-LD, canonical, favicon · 21f3b9e

  • app/robots.ts + app/sitemap.ts (homepage; /share disallowed/noindex)
  • app/page.tsx: Person/ProfilePage JSON-LD for name-search entity
    (sameAs left empty until real social URLs land); + wires page CTAs to analytics
  • app/layout.tsx: canonical, author, keywords, robots index directives
  • app/icon.tsx: KK monogram fa…

docs: add Figma feedback for Kirti (designer growth + structure) · 2913bdb

Constructive critique of the in-progress Figma file: strengths (tokens/styles),
major gaps (no screens/components/states/responsive/empty-states), a step-by-step
structure to finish the design, and prioritized Figma skills to level up.


📈 Development Analytics

Daily Summary

MetricToday
Commits109
Merges23
Skill runs0
Decisions0
Eurekas0
CEO plans0
Notes touched0

Decisions logged today

None today.

Eurekas

None today.

Strategic plans authored

None today.

Notes touched

None today.

Running totals (as of this date)

Active days last 90:           69 / 90  (substantive)
Days with any signal last 90:  72 / 90
Skill runs (since 2026-03-25):  75
Commits this year (authored):  1407
Decisions logged this year:    5
Eurekas this year:             5
CEO plans authored this year:  13
Projects touched this year:    57
Top projects last 90:          VipinKaushik (26d), portfolio (22d), astroacharya (18d), Mothership (15d), vipin-kaushik-content (15d)

💭 My Notes

[Your own thoughts, observations, or context for this day — this section is never overwritten by automation]