Write Memo
Saves a memo to ~/memo in the correct subdirectory with the YY-MM-DD-slug.md filename format defined in ~/memo/STRUCTURE.md.
Directory Decision (from STRUCTURE.md)
| Content type | Directory |
|---|---|
| Production incident post-mortem or investigation | incidents/ |
| OS / infra how-to, server config, middleware, network, storage | infra/ |
| JVM internals, Java performance, Java tooling | java/ |
| Cross-cutting engineering standard, code review, team process | engineering/ |
| Scoped to one product or codebase | projects/<project-name>/ |
| Saved external article or reference verbatim | Clippings/ |
| AI agent design doc | agent-proposals/ |
| Personal / non-work | personal/ |
Filename Format
YY-MM-DD-descriptive-slug.md
- Date: today's date in
YY-MM-DDformat (e.g.26-05-23) - Slug: lowercase kebab-case, no redundant date words
- Example:
26-05-23-motionpro-vpn-container.md
Steps
1. Determine inputs
If the user hasn't specified the memo content, ask. If the user hasn't specified a title/slug or directory, infer from the content using the decision table above.
| Input | How to get it |
|---|---|
| Content | User provides or you draft it |
| Directory | Apply decision table to the content |
| Slug | Derive from the topic (kebab-case, descriptive) |
| Date | Today's date (date +%y-%m-%d) |
2. Construct the target path
DATE=$(date +%y-%m-%d)
DIR=~/memo/<chosen-dir> # e.g. ~/memo/infra
SLUG="<descriptive-slug>" # e.g. motionpro-vpn-container
FILE="$DIR/$DATE-$SLUG.md"
For projects/, create the subdirectory if it doesn't exist:
mkdir -p ~/memo/projects/<project-name>
3. Write the file
Use the Write tool to create $FILE with the memo content.
4. Add an entry to RECENT_UPDATE.md
Append a checkbox line to ~/memo/RECENT_UPDATE.md that links to the new file using an Obsidian wiki-link:
- [ ] YY-MM-DD [[<dir>/<YY-MM-DD-slug>|<Human-readable title>]]
- Path inside the link: relative to the vault root, without the
.mdextension (e.g.infra/26-06-25-motionpro-vpn-container) - Display title: the H1 heading from the memo, or a clean title-case version of the slug if there is no H1
- For
projects/memos the path isprojects/<project-name>/<YY-MM-DD-slug>
Example:
- [ ] 26-06-25 [[infra/26-06-25-motionpro-vpn-container|MotionPro VPN Container Setup]]
Use the Edit tool to append the line (do not rewrite the whole file).
Confirm with the user: Saved to ~/memo/<dir>/<filename>.md
Gotchas
- Check if the file already exists before writing — if it does, confirm with the user whether to overwrite or use a different slug.
Clippings/entries should preserve the source URL in a footer line:> Source: <url>projects/subdirectory name should match the product/codebase name exactly (e.g.projects/pulsar-a/,projects/goven/).- Do not add a date prefix to the slug itself — the prefix is always the leading
YY-MM-DD-portion only.