My Obsidian Methods and Habits 2023

An update on my 2022 post, I have started leveraging Meta-Data/Properties more and have refined several other parts of my workflow.

PTIs

Projects, Tickets/Tasks, and Issues, are the core to my daily workflow, everything that needs to be done is created as its own note and assigned one of the 3 labels. These labels are meta-data of course, made prettier since the addition of Properties into Obsidian.

Inside of each note I will put a blurb about the issue at the top then start recording all actions in the Daily Log section, broken down by date. All of the frontmatter/properties make these notes useful for my Homepage, but the Daily Log sections are what enable my Daily Note workflow.

My Daily Log sections consist of checkboxes and bullet points, so that they can be queried and embedded with Dataview. This can be slightly less desirable when it comes to writing large amounts of information but it works for me.

The "closed" property is a new thing I am doing. There is no easy way to reliably determine when a PTI was closed, so I cannot attribute them easily in my Monthly and Yearly notes. I hope this new inclusion will make reflection easier.

PTI Example

---
pti: ticket
status: open
closed: yyyy-mm-dd
user: [[Joe Pechi]]
group: 
source: https://ticket.contoso.com/1492
relates: 
id: <% tp.file.creation_date("YYYYMMDDHHmmssSS") %>
---

contents of stuff to say words

## Daily Log
### [[{{date:YYYY-MM-DD}}]]
- [-] Task1
    - [x] Alternate method
- [ ] Task2
    - notes about it
- [ ] Updates scheduled for [[2023-12-21]]

Periodic Notes

Daily Note

I include a morning and evening checklist, as well as an adhoc notes section but these should be mostly self-writing, based on everything I do in my PTIs for a given day.

Planned Tasks

This section is built from a query and an embed, the query polls all of my notes and pulls out any task (checkbox) that has todays date in it. I can include a task with a date in any PTI or another periodic note, and it will appear on the correct day automagically.

The embed comes from my Weekly Note, an easy way to keep some goals in view.

Notes

While I have an adhoc note area, the query in this section is where most of the work is done. It will poll over my PTIs and pull out the contents of every section that matches todays date. I should never be changing a previous date without cause, so this makes my Daily Note self-writing and immutable.

I hide the header of embedded sections, I would recommend you do the same if you go with this method.

Daily Note Template

## Morning
- [ ] Check Tickets

---
## Planned Tasks
~~~dataview
TASK FROM ""
WHERE contains(text, "{{date:YYYY-MM-DD}}")
GROUP by file.link
~~~
![[{{date:YYYY-[W]W}}#Plans]]

---
## Notes
- 

~~~dataview
TASK  FROM "00 Meta/04 PTIs"
WHERE meta(section).subpath = "{{date:YYYY-MM-DD}}"
Group by file.link
~~~
---
## Evening
- [ ] [Timesheet]()
- [ ] Terminate sessions

Weekly Note

My Weekly Notes are really just a concatenation of my abridged daily notes, showing every PTI I worked on that week broken down into days. You can see the #### Plans header here that is pulled into my Daily Note.

Weekly Note Template

## The {{date:Wo}} week of {{date:YYYY}}
### Tasks
- [ ] Disk checks

### Review
#### Accomplishments
- 

#### Blockers
- 

#### Plans
- [ ] 

## Monday <% tp.date.weekday("MM-DD", -7) %>
~~~dataview
TABLE
FROM "30 PTIs" FLATTEN file.lists AS L 
WHERE meta(L.section).subpath = "<% tp.date.weekday("YYYY-MM-DD", -7) %>"
GROUP BY file.link AS "PTIs"
~~~

## Tuesday <% tp.date.weekday("MM-DD", -6) %>
~~~dataview
TABLE
FROM "30 PTIs" FLATTEN file.lists AS L 
WHERE meta(L.section).subpath = "<% tp.date.weekday("YYYY-MM-DD", -6) %>"
GROUP BY file.link AS "PTIs"
~~~

## Wednesday <% tp.date.weekday("MM-DD", -5) %>
~~~dataview
TABLE
FROM "30 PTIs" FLATTEN file.lists AS L 
WHERE meta(L.section).subpath = "<% tp.date.weekday("YYYY-MM-DD", -5) %>"
GROUP BY file.link AS "PTIs"
~~~~

## Thursday <% tp.date.weekday("MM-DD", -4) %>
~~~dataview
TABLE
FROM "30 PTIs" FLATTEN file.lists AS L 
WHERE meta(L.section).subpath = "<% tp.date.weekday("YYYY-MM-DD", -4) %>"
GROUP BY file.link AS "PTIs"
~~~

## Friday <% tp.date.weekday("MM-DD", -3) %>
~~~~dataview
TABLE
FROM "30 PTIs" FLATTEN file.lists AS L 
WHERE meta(L.section).subpath = "<% tp.date.weekday("YYYY-MM-DD", -3) %>"
GROUP BY file.link AS "PTIs"
~~~

Homepage

My Homepage is made using Efemkays MCL and Kepano's Cards, it selectively displays my PTIs. My home method below is simpler than my work method where I break my PTIs down into their categories using "blank/transparent" callouts and hide "onhold" under a collapsed blank callout. For bonus points I add an image on the top.

If you are using my theme, PLN, you will see some better displays of tasks that exist in every card/PTI because I added bullet points onto the front of each.

Simple Homepage Template

---
cssclasses:
  - cards
---
> [!multi-column]
>
>> [!blank|min-0]
>> ![dev0.png](/img/user/00%20Meta/00%20Meta/dev0.png)
>
>> [!blank-titled|min-0] `\=dateformat(date(today), "DDDD ('W'W-Qq)")`

## PTIs
~~~dataview
TABLE "Status: " + status, "PTI: " + pti, filter(file.tasks, (t) => t.status = " ").text
FROM "00 Meta/04 PTIs"
WHERE status = "open" OR status = "onhold"
~~~