Skip to content

Collections Overview

my-buddy stores all data as markdown files with YAML frontmatter in src/content/. There are 8 collections, each with its own schema validated by Zod.

CollectionSlug FormatKey Fields
Accountskebab-casetype, status, contact, since
Contactskebab-casefirst_name, last_name, account, is_primary
Dealskebab-caseaccount, stage, value, expected_close
Projectskebab-caseaccount, status, priority, deadline
TasksYYYY-MM-DD-nameproject, status, priority, due
Knowledge Basekebab-casetags, updated
MeetingsYYYY-MM-DD-namedate, attendees, type, account
JournalsYYYY-MM-DDdate, mood, tags, projects

All content lives under src/content/:

src/content/
├── accounts/
├── contacts/
├── deals/
├── projects/
├── tasks/
├── kb/
├── meetings/
└── journals/

Every collection has 5 standard commands:

CommandDescription
/mybuddy.{collection}.createCreate a new entry
/mybuddy.{collection}.view [slug]View entry detail
/mybuddy.{collection}.edit [slug]Edit entry fields
/mybuddy.{collection}.list [filters]List with optional filters
/mybuddy.{collection}.delete [slug]Delete with confirmation

Replace {collection} with: account, contact, deal, project, task, kb, meeting, or journal.

Collections reference each other through frontmatter slug fields and wiki links:

accounts → contacts (via contact.account)
accounts → deals (via deal.account)
accounts → projects (via project.account)
accounts → meetings (via meeting.account)
contacts → deals (via deal.contact)
projects → tasks (via task.project)
projects → meetings (via meeting.project)
projects → journals (via journal.projects)
any → kb (via wiki links in markdown body)

See Content Relationships for details.