Upgrades
Section titled “Upgrades”web_deploy
Section titled “web_deploy”kb web deploy upgradeopen startup_page (from config.yaml) Latest _WorkingOn-Tasks _WorkingOn-Projects Home page (default) with links to _WorkingOn Tasks _WorkingOn ProjectCC (Claude Code)
Section titled “CC (Claude Code)”- CCstatusline
my_OpenClaw
Section titled “my_OpenClaw”- I often have multiple Claude code instances running, working on different tasks or projects. How does this utility deal with this? I assume it doesn’t. How could we upgrade this utility to manage multiple Claude code sessions?
- One practical use of this utility is to continue our desired Claude code instance after hitting a rate limit. I have a SMTM System for managing tasks. Review it at
D:\FSS\KB\Business\03_Processes\Simple Markdown Task Management\SMTM_System.md. What is the most effective way to remotely continue the desired Claude Code session? Is a /task-continue command sufficient. This skill generally expects something in the human response section at the bottom of the task note. - Can I assume that you will understand all future references to CC as Claude Code? If not, add it to global CLAUDE.md.
Windows Startup
Section titled “Windows Startup”- Fix LilySpeech startup timing
Idea Capture
Section titled “Idea Capture”- Obsidian web clipper CAN be used on mobile devices without a pro subscription
- Best Cross-Platform Free Option
- Syncthing + Mobius Sync is recommended for reliable, private, and free (for a single folder/vault) bidirectional sync between Android, iOS, and desktop.[youtube +2]
- Share with Sean, after working
- Try Obsidian mobile 1 mn, if needed
- if sync alternative not good enough
- For all saved articles/clippings …
- Rate on a 0 to 10 scale.
- Summarize key ideas and how they can benefit.
- Best Cross-Platform Free Option
Cheatsheets
Section titled “Cheatsheets”- for WSL aliases, tmux, AHK
- always current with SSOT
Date formating
Section titled “Date formating”- define my unambiguous date format; per the AHK script
- { Months := [“JA”, “FE”, “MR”, “AP”, “MY”, “JN”, “JL”, “AU”, “SE”, “OC”, “NO”, “DE”] CurrentYear := FormatTime(, “yyyy”) CurrentMonth := Integer(FormatTime(, “MM”)) ; Convert “01” to 1 CurrentDay := FormatTime(, “dd”) MonthAbbreviation := Months[CurrentMonth] FormattedDate := CurrentYear . MonthAbbreviation . CurrentDay . ”: ” SendText(FormattedDate) }
Obsidian Wep Clipper
Section titled “Obsidian Wep Clipper”- Template: create better one, apply to all existing clips
- template should also add to top of article a 2-4 bullet summary of key points, and (ideally) how it benefits my smart debt mission
- organize/save into General Notes, instead??
SDC Mission PDA
Section titled “SDC Mission PDA”- Upgrade icons for links to $D mission pages on Android and iPad, using new logo.
- [aistudio chat](https://drive.google.com/file/d/14g8asJYtiQRvE8AjiJhhPEUpY1c3llG9/view?usp=sharing, https://drive.google.com/file/d/1B0jW2HOyaRAjoX5sNTXUHJsuyO9JGwTx/view?usp=sharing, https://drive.google.com/file/d/1BLvlEsHVZGrZ-jp3u-7c64Ufwoeid-kr/view?usp=sharing, https://drive.google.com/file/d/1FyFk98mgJ475ZCUdqgzGesBepYXNVQqD/view?usp=sharing, https://aistudio.google.com/app/prompts?state=%7B%22ids%22:%5B%221PcghT53DFh7A9t6AZI65j3PMJwGWPRPf%22%5D,%22action%22:%22open%22,%22userId%22:%22110125519267764925776%22,%22resourceKeys%22:%7B%7D%7D&usp=sharing, https://drive.google.com/file/d/1Tg1lEcnAI03mJzAzhzJrQeUXfmohkArd/view?usp=sharing, https://drive.google.com/file/d/1_38moPpTFbRxZdka7wElkwXn1XrsSZtC/view?usp=sharing, https://drive.google.com/file/d/1f7vMLJHVN3QwOqD90joH5h4lLLikfT-0/view?usp=sharing, https://drive.google.com/file/d/1fgTn9ppA9939D7wf9bieLVFOTGblimLb/view?usp=sharing, https://drive.google.com/file/d/1jlDi1FICbwUMLymdJidywV5yrIPSzUWi/view?usp=sharing, https://drive.google.com/file/d/1zOPbkw4Ff3h-M4kadhTv7BqTEIJtJyeC/view?usp=sharing)
- Convert to a PDA
- convert
d:\FSS\Websites\SDC.com\Mission\smartdebt-mission.htmlinto a PDA - deploy to Android, iPad
- upgrades
- confirm hot reloading, when change Next Steps
- add reminder notification system
- notifications.yaml
- device: cron-schedule, show-queryparam (current valid values: “next”, empty = showall)
- notifications.yaml
- could add show values
- next-only: only shows Next Steps, and parent element; with title: FOCUS
- next-n: only show n Next Steps, and parent element, for extreme FOCUS
Monorepo
Section titled “Monorepo”- SD Logo Animation - Dot “Bloom”
- SD favicon
- Stroke Weight: The “S” and “D” characters are quite thin at this scale. On standard-resolution (non-Retina) monitors, these thin lines may appear “blurry” or “grayed out” due to anti-aliasing.
- Recommendation: For the 16px export specifically, try manually thickening the “SD” letters by about 0.5–1px. Aligning the vertical strokes of the “D” and “S” strictly to the pixel grid will make them look much sharper.
- The Gold Dot: The accent dot is very small (looks like 1.5–2px). It risks looking like a random “stray pixel” or a glitch rather than a deliberate design choice.
- Recommendation: Increase the diameter of the gold dot for the 16px version. Making it 3px or 4px wide ensures it remains a distinct “accent” rather than a speck.
- Stroke Weight: The “S” and “D” characters are quite thin at this scale. On standard-resolution (non-Retina) monitors, these thin lines may appear “blurry” or “grayed out” due to anti-aliasing.
- Components
- Heading animation, property, similar to global and mail
- Very light primary brand colour from theme, add some animation similar to or better than the border being animated and disappearing. Ask AI for other alternatives so it is not a perfect copy of their approach.
- Half second of no styling. Then part second of fading in the background of the text. Add additional animation similar or better than border animation.
- Heading animation, property, similar to global and mail
- Tailwind v4
notify.py
Section titled “notify.py”- WORKS WELL - simply turning all WAIT flags OFF; notifications simply stream to terminal, with optional TTS on some
- WAIT notifications are blocking subsequent notifications
- what is a practical solution here? Less critical notifications that do not have a wait status, could and should proceed as scheduled. Then, upgrade the UX as follows …
- UX: clear indicate status after showing/saying a notification
- show notification text in a box, but show continuation prompt on terminal line that also indicates if in Waiting status:
- WAITING for input … (in green)
- AckCan you spare for the leaf next Monday at 9:00 pm?nowledge: Enter; Exit: Ctrl+C
- Snooze: ‘s’ for 5 min, ‘s20’ for 20 min
- Next: ‘n’ to show next 5 notifications, ‘n10’ for next 10
- WAITING for input … (in green)
- also speak that “Waiting for acknowledgement or Snooze”
- Needs to have more of a dashboard like UI, where status is very clear, especially if waiting for acknowledgment, and all subsequent notifications are listed, in ascending order
- Any other suggestions to make this app more effective?
- show notification text in a box, but show continuation prompt on terminal line that also indicates if in Waiting status:
KB Structure
Section titled “KB Structure”- consolidate these
- D:\FSS\KB\Business\04_AI\06_Tools and Platforms.md
- D:\FSS\KB\Business\04_AI\08_Resources.md
- AI Rules
- better organize the rules and context resources used for actively used AI tools, currently warp and cursor. The master sources probably should exist in the knowledge base, with symbolic links accessed by these tools.
- also clean up and reorganize the warp subfolder, moving session logs to the logs main folder.
Globe and Mail article capture
Section titled “Globe and Mail article capture”- automate for future
- transform all existing to make it easy to search, and perhaps cross-link in KB
- could use MarkItDown
- Microsoft MarkItDown is an open‑source tool from Microsoft that converts many file types (Office docs, PDFs, images, audio, web pages) into clean, structured Markdown optimized for use with LLMs and search. a simple Python API (
MarkItDown().convert(path)), batch processing of folders, and a plugin system to add custom format handlers, making it suitable for building chatbots, wikis, or backend services that need large‑scale document ingestion
- Microsoft MarkItDown is an open‑source tool from Microsoft that converts many file types (Office docs, PDFs, images, audio, web pages) into clean, structured Markdown optimized for use with LLMs and search. a simple Python API (
Web Dev
Section titled “Web Dev”- use Bun/Deno hybrid: Bun instead of Deno where possible
- Try Bun for local dev and CI to shave minutes off builds, validate native module compatibility before switching full time.
Email Names
Section titled “Email Names”- ‘nextsteps@’ is good for a general entry point, but it is not great as a lead magnet that clear suggests a tangible benefit
- roadmap@ is better … better alternatives?
AutoHotKey
Section titled “AutoHotKey”- SSoT issue
- My current process requires that I manually synchronize the KB cheatsheet with the AHK hotstrings and hotkeys actually used, in d:\FSS\Software\Utils\AutoHotkey\AllScripts.ahk (which itself “includes” several other .ahk files).
- Is there a better process that is not vulnerable to human oversight and copy/paste errors?
Cleanups
Section titled “Cleanups”- purge node_modules, except created by pnpm
- consolidate Python installs (3.10.4, 3.11.5, 3.13.1)
System Utils
Section titled “System Utils”- create a dashboard to easily execute all utils, see Cheatsheets, etc.
- Use uv to run python utils
uvxreplacesuv runoruv tool run
Obsidian
Section titled “Obsidian”- Plugins
-
- Graphic Organizer — Creates a visual tree showing folders and files on a zoomable canvas, giving you a bird’s-eye view of your vault structure.
- Synaptic View — Turns a note into a configurable dashboard that opens the files, web pages, journals and calendar views you need most — without building a manual homepage.
- Kanban Bases View — Turns an Obsidian Base into a kanban board where notes are grouped into columns from any chosen property, and you can move cards between columns with drag and drop.
- Stop Copying Files Into Obsidian | Folder Bridge Plugin Obsidian usually forces you to move files into your vault just to work with them. That ends today. I’m going to show you how to virtually mount a hidden system folder, a media library, or remote sync folder directly into your sidebar without moving a single file into your vault
-
- Purge to be minimal idea-capture tool
- Inbox!!!
- move fron Dynalist to KB
- Software: all
- Personal: Sean
-
Obsidian Skills
Section titled “Obsidian Skills” - upgrade kb-online to a PWA
- a PWA could upgrade your Obsidian-to-Astro static site setup, making it more seamless across devices with offline access, faster loading, and potentially automated updates for content changes. Here’s how it could work:
- Core enhancements with PWA basics: Add a manifest.json and service worker to your Astro site. This lets users “install” it as an app on any device (mobile/desktop), with full-screen mode, home screen icons, and offline caching of your static pages/assets. Since your site is already static, this is straightforward—Astro has good PWA integration via plugins like @astrojs/pwa or vite-pwa. Your knowledge base becomes accessible offline, which is a big win over a plain website.
- Automated hot loading of content changes: “Hot loading” (real-time or near-real-time updates without manual rebuilds) isn’t inherent to static sites, but a PWA can bridge this with some tweaks:
-
- Service worker for dynamic updates: Configure the service worker to periodically check for new builds or content hashes when online (e.g., via fetch() on a version endpoint). If changes are detected (say, from a rebuilt Astro site deployed to Vercel/Netlify), it can prompt the user to refresh or auto-update the cache in the background. This isn’t true “hot” reloading like in dev mode, but it enables seamless pulls of new content without full page reloads.
- Syncing from Obsidian: To automate the pipeline, hook your Obsidian vault (assuming it’s in a Git repo) to a CI/CD workflow (e.g., GitHub Actions). On file changes/pushes, auto-rebuild the Astro site and deploy. Then, in the PWA, use background sync (via service worker’s sync event) or periodic polling to fetch updated pages or data. If you want bidirectional edits (editing notes from the PWA), you’d need to store notes in IndexedDB (or Dexie.js) and sync back to your Obsidian vault via an API (e.g., GitHub API or a simple backend like Supabase).
- Implementation outline: Start with Astro’s PWA plugin, add a service worker script (e.g., using Workbox) to handle caching strategies like network-first for dynamic parts. For hot updates, expose a /updates endpoint in your Astro site that returns a manifest of changed files. The SW can compare and fetch diffs. This could be built in a weekend if your static site is simple.
-
- a PWA could upgrade your Obsidian-to-Astro static site setup, making it more seamless across devices with offline access, faster loading, and potentially automated updates for content changes. Here’s how it could work:
KB/Task/Project Management
Section titled “KB/Task/Project Management”-
use Obsidian for more …
- Building Your AI-Powered Second Brain: How Claude Code + Obsidian Changed Everything About My Knowledge Management | by Alek Dobrohotov | Sep, 2025 | Medium
- https://medium.com/@aleksandardobrohotov/b uilding-your-ai-powered-second-brain-how-claude-code-obsidian-changed-everything-about-my-37dc3bdd199e
-
-
Obsidian AI plugins
- https://chatgpt.com/c/68fcefff-701c-8333-a6fe-91c8feed041f
- https://www.perplexity.ai/search/- summarize-the-benefits-of-usin-ScGEX64DQPyGUJV7kceiAw
- Smart Connections
-
idea capture: Obsidian mobile app, instead of Dynalist
-
task/project management (replacing Ecco, Dynalist)
-
notes: instead of Dynalist
-
with Claude Code
-
Open your Obsidian vault folder with your preferred IDE or terminal
- Run
claudefrom terminal to initialize Claude Code in your project - Run
initto create the CLAUDE.md file where you can:
- Add crucial information about yourself
- Link to important files that define who you are
- Explain your tag system and what each tag means
- Describe your folder structure
- Note that you use Zettelkasten methodology
- Provide any context that helps Claude Code navigate and search effectively
The CLAUDE.md file becomes your AI’s instruction manual. You can write whatever you want — this is where you teach Claude Code how to understand your specific system.
Monorepo Review — Deferred (2026-05-14)
Section titled “Monorepo Review — Deferred (2026-05-14)”Source: 2026-05-14_Monorepo-Review-Report (in Tasks/)
SDC-related — on hold while mBR is the focus
Section titled “SDC-related — on hold while mBR is the focus”- A3. Define sd-app ↔ sd-api boundary. No imports between them today. When SD comes off hold: generate a TS client from FastAPI’s OpenAPI schema into
packages/sd-api-client/. Effort ~2-4h. - Review SDC-specific findings (C2 sdc BaseLayout, etc.) only after mBR is production-ready and SDC business activities resume.
Findings I Could Not Verify Within Budget (from the review)
Section titled “Findings I Could Not Verify Within Budget (from the review)”These need a focused future pass — adding here so they don’t get lost:
- Astro
<Image>migration scope. Need per-image audit across all sites. 17 raw<img>tags surfaced, but full migration plan needs file-by-file review. - sd-app bundle composition. Need a real
pnpm build+ size analysis (Chart.js? moment? full lodash?). Suspected heavy deps but not confirmed. - Tailwind content glob bloat. Globs are now correct (added shared package), but didn’t measure CSS bundle sizes before/after to confirm the fix didn’t bloat output.
- Heading hierarchy on brand pages. Need Playwright + axe with
heading-orderrule enabled across all sites. - Form a11y in sd-app calculator forms. Need manual + axe audit when forms are built.
Astro features audit (Talbot-requested follow-up)
Section titled “Astro features audit (Talbot-requested follow-up)”“Identify all other Astro features that could be used but are not. I’m committed to Astro, and it continues to evolve.”
Suggested scope for that audit:
- View Transitions API (Astro 4+)
- Content Layer API (Astro 5+)
- Server Islands (Astro 5+)
- Astro DB (deprecated → migrate off)
- Image service customization (
astro:assetsconfig) defineCollection+ content schemas- Astro Actions
- Astro
<Picture>for art direction prerenderflags / hybrid renderingclient:onlystrategy use cases- Astro middleware for CSP nonces
Monorepo Review — mBR design-system follow-ups (added 2026-05-14)
Section titled “Monorepo Review — mBR design-system follow-ups (added 2026-05-14)”The D1 foundation is committed (token chain wired into mBR via @brand/mbr/tokens.css + themes + Tailwind token-driven config). Remaining migration work:
- Migrate ~30 ad-hoc hex values in
sites/mbr/src/styles/global.csstohsl(var(--*))token references. Examples:#d6dbd3(line 49 border),#1b5c40,#2b3d33,#a62845. Risk: each one is a visual change that needs browser verification at 390px / 768px / 1280px + dark mode. Best done one section at a time with screenshot comparison. - Migrate component-level hardcoded colors in
sites/mbr/src/components/**.astro. Same risk profile. - Refresh visual-regression baselines after the migration —
pnpm test:e2e --update-snapshotsfromsites/template/(mbr has its own snapshots too if E2E is configured). pnpm colors:mbralias at monorepo root for parity withpnpm colors:sd/pnpm colors:ts.
Monorepo Review — D5 brand-contract unification (added 2026-05-14)
Section titled “Monorepo Review — D5 brand-contract unification (added 2026-05-14)”Deferred during the autonomous-execution session. The straightforward path I’d planned doesn’t work:
- Brand contracts (
src/brand/*/index.ts) currently use() => import('.svg?raw')lazy form. BrandLogo.astro bypasses this entirely with static imports at the top of the file (Astro frontmatter can’t await dynamic imports for SSR rendering). - “Make BrandLogo iterate the contract” therefore needs either (a) a codegen step that reads contracts and emits BrandLogo’s static-import block, (b) Astro Content Collections for SVG manifests, or (c) accepting some duplication and just unifying the type shape (discriminated union for Props).
Recommended (c) — smallest, lowest risk:
type Props = | { brand: 'sd'; variant?: 'leafDot' | 'leafSquare' | 'leafRect' | 'circle' } | { brand: 'ts'; variant?: 'circle' } | { brand: 'mbr'; variant?: 'dollarDot' | 'dollarDotS' };Then have each contract export a Variants type that the Props type imports. This unifies the type source without requiring a runtime refactor.
Logo reduction: per Talbot’s note, SD’s 4 logo variants were for design iterations; logo is now set. The 3 non-default variants (circle, leafSquare, leafRect) are still referenced by sites/template/src/pages/logo-test.astro and LogoShowcase.astro — they document design history. Keep them in the codebase; don’t delete. If reducing to one canonical variant, also remove those test/showcase references — but that loses the design-history artifact.
sd-app paraglide messages drift (discovered 2026-05-14)
Section titled “sd-app paraglide messages drift (discovered 2026-05-14)”pnpm --filter @smart-debt/sd-app run check currently surfaces ~30+ Property '<message_key>' does not exist on type 'typeof import("$paraglide/messages")' errors. Examples:
snapshot_col_net_bal,snapshot_col_pct_increase,snapshot_cta_heading,snapshot_summary_headingtl_snapshot_col_loan_balance,tl_snapshot_basis_label,tl_snapshot_annual_payment_label
Source: apps/sd-app/src/routes/[country]/[lang]/term-loan/+page.svelte (and likely siblings) reference keys not present in packages/i18n/messages/{en,fr}.json (or wherever paraglide source files live).
This is a pre-existing drift, not a regression. CI svelte-check for sd-app is commented out in .github/workflows/test.yml until reconciled. Fix:
- Audit which message keys are referenced in
apps/sd-app/src/routes/ - Add missing keys to
packages/i18n/messages/en.json(English) +fr.json(French — or English fallback string with// TODO: translate) - Run paraglide compile: should regenerate
$paraglide/messagestypes - Re-enable the sd-app svelte-check step in CI
Once fixed, also pursue T-I6: add noUncheckedIndexedAccess: true to apps/sd-app/tsconfig.json and fix the violations it surfaces (financial-math code benefits most — catches array[i] returning undefined silently propagating NaN through projections).