Create structured journal entries with YAML frontmatter, template-based sections, and compliance validation. Use when user asks to 'create journal entry', 'new journal', 'document [topic]', 'journal about [topic]', or needs to create timestamped .md files in YYYY/MM/ directories. Supports four entry types: general journal entries, troubleshooting sessions, learning notes, and article summaries. Keywords: journal, documentation, troubleshooting, learning, article-summary, YAML frontmatter, template schemas, validation.
Overall
score
91%
Does it follow best practices?
Validation for skill structure
Automate creation of structured journal entries with template schemas, frontmatter validation, and compliance checking.
Use journal-entry-creator when:
Do NOT use for:
Decision criteria:
| User Intent Signals | Type | Template | Required Tag |
|---|---|---|---|
| "error", "fix", "resolved", "incident" | Troubleshooting | troubleshooting.yaml | troubleshooting |
| "learned", "tutorial", "discovered" | Learning | learning.yaml | learning |
| URL/source, "read", "watched", "summarize" | Article Summary | article-summary.yaml | article/video/podcast/talk |
| General documentation, investigation | Journal Entry | journal-entry.yaml | (flexible) |
MANDATORY - READ BEFORE PROCEEDING:
Before generating any entry, you MUST read the complete template schema file:
# Based on entry type selected, read ENTIRE file:
skills/journal-entry-creator/template/troubleshooting.yaml
skills/journal-entry-creator/template/learning.yaml
skills/journal-entry-creator/template/article-summary.yaml
skills/journal-entry-creator/template/journal-entry.yamlDo NOT generate entries without loading the schema first. The schema defines required sections, frontmatter fields, heading hierarchy, and validation rules.
When to load references:
compliance.md: Only if validation fails and you need detailed rulesedge-cases.md: Only for complex or unusual edge casesexample-*.md: Only if user asks for examples or you need clarification on structurejournal-command.md (superseded by this skill)Beyond standard markdown, this journal system enforces:
All three must match exactly:
2025-02-24-topic.md (slug lowercase-only)date: 2025-02-24# Topic - February 24, 2025 (Month D, YYYY format)File must be in YYYY/MM/ directory matching its date:
2025-02-24-*.md → Must be in 2025/02/2025-11-05-*.md → Must be in 2025/11/Exactly ONE H1 in the entire document with precise format:
# [Title] - [Month D, YYYY]Not allowed:
Tags must:
## Tags sectionExample:
tags:
- troubleshooting
- api-gateway
- aws-lambdaMust match:
## Tags
`troubleshooting` | `api-gateway` | `aws-lambda`ALL code blocks MUST have language identifiers. No bare triple backticks allowed.
Valid:
```bash
git status
```Invalid:
```
git status
```Entry is complete when ALL criteria are met:
Critical violations (NEVER):
Triple sync validation:
YYYY/MM/YYYY-MM-DD-slug.mdPrinciples (high freedom):
Key questions to ask:
Slug generation: Extract 3-6 meaningful keywords (see Phase 3 for detailed rules)
Low freedom - exact steps:
Fallback: If schema file missing or unreadable, STOP and report error. Do not guess structure.
Medium freedom - guided by schema:
mkdir -p YYYY/MMYYYY-MM-DD-slug.md using slug principles belowSlug generation principles:
opencode-killed-process-fix, aws-bedrock-inventory, react-state-patternsExact commands in sequence:
# 1. Validate structure
bash skills/journal-entry-creator/scripts/validate-journal-entry.sh YYYY/MM/YYYY-MM-DD-slug.md
# 2. Format (only if validation passes)
npx prettier --write YYYY/MM/YYYY-MM-DD-slug.md
# 3. Lint and auto-fix
npx markdownlint-cli2 YYYY/MM/YYYY-MM-DD-slug.md --fix
# 4. Re-validate to confirm
bash skills/journal-entry-creator/scripts/validate-journal-entry.sh YYYY/MM/YYYY-MM-DD-slug.mdIf validation fails:
Common scenarios: File exists, date mismatch, schema missing, validation failures, custom structure requests.
Quick reference:
For detailed resolution strategies: Load skills/journal-entry-creator/references/edge-cases.md only when encountering an unusual or complex edge case.
After successful validation, offer to commit:
git add YYYY/MM/YYYY-MM-DD-slug.md
git commit -m "Add journal entry: [Brief Description] (YYYY-MM-DD)"Commit message format:
Add journal entry:Add journal entry: OpenCode process fix (2025-02-24)Commit message format:
Add journal entry:Add journal entry: OpenCode process fix (2025-02-24)cat skills/journal-entry-creator/template/troubleshooting.yaml first, review required fields, then generate.```\ngit status\n``` (no language).```bash\ngit status\n``` (explicit language).2025-02-24-*.md, frontmatter date: 2025-02-25, H1 March 1, 2025.2025-02-24 in filename, date: 2025-02-24 in frontmatter, February 24, 2025 in H1.journal-entry.yaml - General purpose entriestroubleshooting.yaml - Problem resolution sessionslearning.yaml - Knowledge acquisition documentationarticle-summary.yaml - External content summariesLoad with relative paths: skills/journal-entry-creator/template/[file]
validate-journal-entry.sh - Compliance validation (run before commit)compliance.md - Detailed validation rules (load only if validation fails)edge-cases.md - Detailed edge case resolution strategies (load only for complex scenarios)example-journal-entry.md - Real entry example (load only if user asks)example-with-frontmatter.md - Frontmatter example (load only if needed)journal-command.md - Legacy workflow (superseded, do not use)Install with Tessl CLI
npx tessl i pantheon-ai/journal-entry-creator@0.2.0