Co-Authored-By: Claude ... (or any AI/agent) trailer to commit messages. Write the commit message without it.type(scope): subject, with an optional body and footer. Common types: feat, fix, refactor, docs, chore, test, perf, style, build, ci. Mark breaking changes with ! after the type/scope and a BREAKING CHANGE: footer.docs(sysadmin): add Cisco 3750 config note, chore(create_note): ...) so git log stays grep-friendly.Use create_note.sh to create new notes — do not touch a file manually. The script handles the date-prefixed filename, the frontmatter stub, and drops the file into uncategorized/.
The frontmatter schema is fixed. Every note has these keys, in this order:
1---
2title:
3date:
4uuid:
5slug:
6draft: true
7description:
8tags:
9---
Do not add new keys, rename, or drop any — downstream Hugo or Gatsby consumers may break silently. draft: true is the Hugo-style convention, chosen deliberately over Gatsby’s status: draft so both generators work.
Filenames use a date-prefix convention:
YYYY-MM-DD-HHMMSS-slug.md (or YYYY-MM-DD-HHMMSS.md when there’s no title)YYYYMMDDHHMMSS-slug.md — do not rename these retroactively; the UUID in the filename is a stable identifier.uncategorized/ into a topic folder (linux/, reactjs/, sysadmin/, etc.). Do not invent nested subcategories.README.md or summary/index files inside topic directories. The repo’s top-level README.md is the only doc.node_modules, nothing that would bloat the submodule for the parent site.