Skip to content

The unified vault at D:\FSS\KB\ is the operating system for managing Talbot’s businesses and (eventually) personal domains.

  • SSOT for all information, providing clear context for AI agents and humans
  • Context for any scope (departments, single/multiple/all businesses).
    • Memory system: automatic, learning, efficient. See KB-OS-Context.
  • Local KB
    • privacy
    • off-line functionality
  • No vendor lock-in
    • with AI models or KB format (Obsidian markdown files in folders)
  • AI model independence
    • can us local and multiple models for token efficiency
  • Integrated task/project management. See SMTM_System.

D:\FSS\KB\
├── Core\ — Cross-business: governance, AI, processes, logs, misc
├── MBR\ — myBetterRates
├── SDC\ — $MART DEBT Coach
├── FSS\ — Talbot Stevens
└── .obsidian\ — Vault config (plugins, themes, settings — one for all)

Key rule: Content that applies to two or more businesses lives in Core\. Content specific to one business lives in that business’s folder.


FilePurpose
Core\CONSTITUTION.mdVault charter — mission, structure rules, governing principles
Core\DASHBOARD.mdOperational hub — current focus, recent decisions, active projects
<Biz>\<Dept>\JOB_DESCRIPTION.mdDept scope, responsibilities, and SSOT links

Start at CONSTITUTION to understand the whole; start at DASHBOARD for current work.

DASHBOARD.md vs Folder Note: DASHBOARD.md is reserved for elevated hubs — vault root, business roots, an Ongoing-Project home, or a purpose-built dept index (e.g. Core/AI/Skills/DASHBOARD.md). Ordinary content folders use a Folder Note instead (Waypoint-generated, see Folder Notes.md) — cheap, auto-maintained, the right default everywhere else. Where a folder is both (an Ongoing-Project home that’s also an ordinary Obsidian folder), DASHBOARD.md wins and serves double duty — no separate Folder Note is created for it. Worked example: Core/Processes/Projects/KB-OS/DASHBOARD.md.


Each business (MBR, SDC, FSS) uses a dept-first layout:

FolderContains
Strategy\Identity, positioning, IP, competitive analysis
IT\Systems, processes, dev standards, UX
Mktg\Brand, content, distribution, growth
Offerings\Products, services, pricing
Notes\ or Misc\Notes without a clear dept home
_WorkingOn\Active tasks, projects, research

Not every dept exists until there’s content to put in it (activate on first need).


DeptContents
AI\Claude Code, skills, prompting guides, AI tool notes
Cancer50\Cross-business pledge coordination
IT\Cross-business IT (apps, infrastructure)
Logs\AI, Branding, Dev, Decisions, Projects, Snapshots, System logs
Misc\Clippings, Glossary, meeting notes, miscellaneous
Processes\SMTM, KB-OS, Software Dev, cheatsheets
Utils\Custom and external utility references

Full guide: Core\Processes\Simple Markdown Task Management\SMTM_System.md

Key rules (SMTM v5.2+ dept routing):

  • Dept-owned tasks: <Biz>\<Dept>\Tasks\<Name>.md (e.g. Core\IT\Tasks\, Core\Processes\Tasks\) — no date prefix
  • KB-native Ongoing Project tasks: self-contained in Core\<Dept>\Projects\<name>\Tasks\ (e.g. KB-OS)
  • Cross-dept / vault-level tasks: Core\_WorkingOn\Tasks\<Name>.md; master tracker: Core\_WorkingOn\Tasks\_active.md
  • Logs: YYYY-MM-DD_Description.md in the owning dept’s Logs\ (date prefix on logs, not tasks)
  • Scratch: _WorkingOn\Tasks\_tmp.md per business — Talbot’s personal scratch space, never modified by AI without explicit request
  • Scaffold a new Task: right-click any Tasks\ folder → New File — the SMTM Templater wizard fires via file regex .*/Tasks/.* (v5.4) and auto-registers the task
  • /task-start and /task-continue auto-load the owning dept’s charter chain (JOB_DESCRIPTION → Staff file → project STATUS) from the task’s path (2026-07-09); team org chart: Agent-Team.md

Full guide: Core\Processes\Capture-Routing.md (consolidated from Core\Ideas-Workflow.md, 2026-07-09)

Summary:

  1. Capture — bullet in appropriate <Dept>\Inbox.md (or _tmp.md when routing uncertain)
  2. Promote — when ready to act, convert to TaskNote in <Dept>\Tasks\<Name>.md
  3. Archive — completed/parked tasks move to <Dept>\Tasks\archive\YYYY-MM\

Mobile capture: Obsidian mobile → dept Inbox directly.


_WorkingOn\ means active — so a finished research report that remains foundational must not stay there. Research follows the same three-stage lifecycle as tasks, owned by the dept whose decisions it informs:

StageLocationMeaning
In flight<Biz>\_WorkingOn\Research\<topic>.mdBeing produced; may change daily
Enduring<Biz>\<Dept>\Research\<topic>.mdComplete, frozen, still load-bearing for that dept’s decisions
Superseded<Biz>\<Dept>\Research\archive\YYYY-MM\Replaced by newer research, or the decision it informed is closed

The split that matters: freeze the evidence, keep the synthesis living.

  • A research report is a dated snapshot of what the evidence said. Once complete it is frozen — corrections only, never rewritten. It lives in <Dept>\Research\.
  • A synthesis note is the living SSOT that acts on that evidence. It lives in the dept folder proper and is edited freely.

Worked example (2026-08-14): Behavioural-Solutions is the living Strategy SSOT; Behavioral-Knowing-Doing-Gap and Behavioral-Barriers-Playbook are frozen in Core\Processes\Research\; the Gemini research they superseded sits in Core\Processes\Research\archive\2026-08\.

Keeping them apart prevents two failure modes: a living document quietly losing the citations that justified it, and a frozen report being edited until it no longer describes what was actually found.


RuleDetail
Folder Notes (Waypoint)Ordinary content folders get a Folder Note (Waypoint-generated MOC) — see Folder Notes.md. Elevated hubs (vault/business root, Ongoing-Project home, dept index) use DASHBOARD.md instead.
Misc\ per businessNotes without a clear dept home go here, not spread across folders.
WikilinksUse bare filename (no path prefix) for stability across restructures — path-prefixed links break on folder rename. Exception: when the same filename exists in more than one vault location (DASHBOARD.md, Focus.md, Vision.md, Strategic Plan.md, UPGRADES.md, …), always path-qualify: [Focus](/mbr/_workingon/focus/) — bare links resolve first-occurrence-wins, non-deterministically.
link vs !embedA plain wikilink (Note) points at content — the note still has to duplicate the text alongside the link, which is itself an SSOT violation waiting to happen. An embed (!Note, or !Note for just one section) transcludes the target’s actual content — nothing is duplicated, there’s exactly one place to edit. Use embeds whenever a note’s job is to display another note’s SSOT content (not just reference it) — e.g. MBR/_WorkingOn/Focus.md and SDC/_WorkingOn/Focus.md embed their business’s Strategy/Identity/Mission.md rather than restating the mission text. Renders natively in Obsidian; any downstream build (e.g. the monorepo focus-page loaders, sites/{mbr,sdc}/src/utils/load-focus-content.ts) has to resolve embeds itself outside Obsidian. See Mission-SSOT (Focus/logs/) for the worked example.
SSOTOne home per concept. Never copy content to a second location — create a pointer instead.
GitSingle repo at D:\FSS\KB\. Commit after any session that adds substantive content.

CLAUDE.md files — each _WorkingOn\ has a CLAUDE.md providing project-specific context to Claude Code sessions. The global ~/.claude/CLAUDE.md sets cross-project behavior.

Graphify — knowledge graph lives at Core\Misc\graphify-out\. To regenerate:

  • Run /graphify from the main Claude Code session (not a background agent — API key required)
  • .graphifyignore at vault root excludes plugin JS, .git\, graphify-out itself

Claude Code entry points:

  • Vault-level work: open session in D:\FSS\KB\
  • MBR work: open session in D:\FSS\KB\MBR\_WorkingOn\ (picks up CLAUDE.md there)
  • Core/cross-business: open in D:\FSS\KB\Core\_WorkingOn\

Single repo initialized 2026-06-09 at D:\FSS\KB\. Initial commit: b157a9e (791 files).

.gitignore excludes: **/graphify-out/, workspace.json, plugin compiled JS, OS artifacts. .gitattributes: * text=auto (normalizes CRLF/LF across platforms).

No remote configured — local-only as of 2026-06-09.


Obsidian Bases plugin (core plugin — Settings → Core plugins → Bases)

Section titled “Obsidian Bases plugin (core plugin — Settings → Core plugins → Bases)”
IssueWrongCorrect
Code fence name```bases (plural)```base (singular)
Filter formatproperty/condition/value YAML (Dataview style)Expression syntax
Equality filterstatus = "ready"status == "ready" (double ==)
Not-equal filter—status != "complete"
GroupinggroupBy: risk (not supported)Sort by field — no native groupBy
Folder scopefrom: "_WorkingOn/Tasks"file.inFolder("_WorkingOn/Tasks") in filters
Column selectionproperties: [...] in code block (ignored)Click Properties (≡) in table toolbar — Obsidian writes order:
Nested boolean groupsand: list containing a nested or: sub-listConfirmed broken (2026-07-07): a Core/DASHBOARD.md query nesting or: under and: rendered as a table but silently ignored the recency filter — every matching file showed regardless of file.mtime. Splitting into two separate flat and:-only blocks (no nesting) fixed it immediately, with the exact same file.mtime filter unchanged. Always use flat and: lists — one block/view per distinct path scope instead of or:-combining paths.
Relative date filter—Confirmed working (2026-07-07): file.mtime > now() - "14 days" filters correctly when used in a flat and: list (no nested or:). The date arithmetic itself was never the problem — see Nested boolean groups above.

Minimal working Bases block:

filters:
and:
- file.inFolder("_WorkingOn/Tasks")
- status != "complete"
views:
- type: table
name: All Active Tasks
sort:
- property: risk
direction: DESC

Deviating from this structure causes silent failure — the block renders as raw text with no error message.