| title | Postmortem: Docmgr Usability and Documentation Gaps | ||||
|---|---|---|---|---|---|
| doc-type | reference | ||||
| ticket | PI-LAUNCHER-001 | ||||
| topics |
|
Document every friction point, confusion, and workaround encountered while using docmgr for ticket-based research during the PI-LAUNCHER-001 project. The intent is to provide actionable feedback for improving docmgr's documentation, CLI ergonomics, and validation behavior.
This postmortem was written immediately after completing a full ticket-research-docmgr-remarkable workflow:
- Created ticket PI-LAUNCHER-001
- Added 4 documents (design-doc, logbook, diary, postmortem)
- Downloaded ~10 external source files into
sources/ - Ran
docmgr doctormultiple times - Committed changes and uploaded to reMarkable
The user is an experienced developer but new to docmgr. The workflow was guided by the ticket-research-docmgr-remarkable and diary skills.
What happened:
We downloaded external source files (README.md, source code, JSON) into sources/. These files were third-party artifacts, not documents we authored. We created a .docmgrignore file in sources/ with content * to exclude them from docmgr's view.
What went wrong:
docmgr doctor still scanned the sources/ directory and reported errors:
invalid_frontmatter— "frontmatter delimiters '---' not found"missing_numeric_prefix— "file without numeric prefix"
Why this was confusing:
The .docmgrignore file apparently does not exclude files from validation. Or perhaps .docmgrignore is not recursive, or requires a different format. The skill documentation and docmgr help do not clearly explain:
- Whether
.docmgrignoreaffectsdoctor,validate, or onlysearch - The syntax of
.docmgrignore(gitignore-style? glob? exact paths?) - Whether
.docmgrignorein a subdirectory is respected
Workaround: Added YAML frontmatter to the downloaded source files:
---
title: "OpenClaw Pi Integration"
doc-type: reference
---This is semantically wrong — these are not docmgr documents, they are third-party source artifacts. But it was the only way to silence doctor.
Suggested fix:
- Document
.docmgrignorebehavior clearly: what it affects, what syntax it uses, whether it is recursive - Consider a
docmgr doctor --ignore-sourcesflag or a per-directory.docmgrignorethat actually suppresses validation - Or provide a
docmgr doctor --skip-dir <dir>option for directories likesources/,scripts/,archive/
What happened:
We wrote three substantial documents (design doc, research logbook, diary) totaling ~2,500 lines. None of them had frontmatter initially. When we ran docmgr doc relate, it failed with:
Error: document has invalid frontmatter (fix before relating files):
... frontmatter delimiters '---' not found
Why this was frustrating:
- The error only appeared when running
doc relate, not when writing the files - We had already written 2,500 lines before discovering this requirement
- The skill says "Write the primary analysis document" but does not remind you to add frontmatter first
- The
doc addcommand creates files with frontmatter, but we wrote files directly withwritetool
Workaround: Added frontmatter manually to all three documents:
---
title: "..."
doc-type: design-doc
ticket: PI-LAUNCHER-001
topics:
- pi-agent
- launcher
- declarative-config
---Suggested fix:
- Auto-prepend frontmatter when
docmgr doc addis used (already works) - Provide
docmgr doc fix-frontmatter <file>to auto-add minimal frontmatter - Make
doc relatewarn but not fail on missing frontmatter, or auto-add it - Update the
ticket-research-docmgr-remarkableskill to include a frontmatter check in the workflow
What happened:
First docmgr doctor run produced:
[warning] Unknown vocabulary value for Topics
File: .../index.md
Field: Topics
Value: "declarative-config,glazed,launcher,pi-agent,yaml"
Known values: chat, backend, websocket
Why this was confusing:
- The error message says "add to vocabulary" but does not tell you the exact command
- The suggested command in the error is
docmgr vocab add --category topics --slug declarative-config,glazed,launcher,pi-agent,yaml— but this is wrong! It would create a single slug with commas, not five separate slugs - We had to run
docmgr vocab addfive separate times - The skill says "If vocabulary warnings appear, add it to the vocabulary" but does not explain that you need one command per slug
Workaround: Ran five separate commands:
docmgr vocab add --category topics --slug pi-agent --description "Pi coding agent"
docmgr vocab add --category topics --slug launcher --description "CLI launcher tools"
# ... etcSuggested fix:
- Make
docmgr vocab addaccept multiple--slugarguments in one command - Provide
docmgr vocab add-batch --category topics --slugs "a,b,c" --descriptions "d1,d2,d3" - Or auto-suggest the correct commands in the doctor output, not the incorrect comma-separated version
- Consider auto-adding unknown topics with a placeholder description, then prompting the user to refine
What happened: After writing the design doc, we ran:
docmgr doc relate --doc ttmp/.../design-doc/01-...md --file-note "/abs/path:reason"It failed with:
Error: document has invalid frontmatter (fix before relating files)
Why this was frustrating:
- The error does not say which file has invalid frontmatter. We had to guess it was the target document, not the related file
- The error message is "fix before relating files" but we were trying to relate files to the document
- There is no
--forceor--skip-validationflag to bypass this
Suggested fix:
- Make the error message explicit: "Document X has invalid frontmatter. Run
docmgr validate frontmatter --doc Xfor details." - Add
--skip-frontmatter-checktodoc relatefor power users - Provide
docmgr validate frontmatter --fixto auto-add minimal frontmatter
What happened:
We wanted to verify that doc relate commands had worked. We had to open the markdown file and scroll to the bottom to see the ## RelatedFiles section.
Why this was frustrating:
docmgr doc list --ticket Xshows documents but not their relationsdocmgr doc show <doc>does not exist- The only way to audit relations is to
catthe file orgrepforRelatedFiles
Suggested fix:
- Add
docmgr doc show <doc>that prints frontmatter + related files + changelog entries - Add
docmgr doc list --ticket X --with-relations - Or add
docmgr relate list --doc <doc>
What happened:
The ticket-research-docmgr-remarkable skill provides excellent structure for the output but does not provide a clear step-by-step checklist for the process.
For example, we did not know:
- Whether to write files first or create docs first
- When to run
doctor(after every doc? at the end?) - That
.docmgrignoremight not work as expected - That vocabulary needs to be populated before
doctorpasses
Suggested fix:
- Add an explicit "Step-by-step workflow" section to the skill with numbered steps
- Include a pre-flight checklist: frontmatter, vocabulary,
.docmgrignorebehavior - Provide a template command sequence that can be copy-pasted:
# 1. Create ticket
docmgr ticket create-ticket ...
# 2. Add docs (with frontmatter auto-generated)
docmgr doc add --ticket X --doc-type design-doc --title "..."
# 3. Write content (frontmatter already present)
# 4. Add vocabulary (if using custom topics)
docmgr vocab add --category topics --slug my-topic --description "..."
# 5. Validate
docmgr doctor --ticket X --stale-after 30
# 6. Relate files
docmgr doc relate --doc ... --file-note "path:reason"
# 7. Upload
docmgr upload ...What happened:
We wrote code, committed, then had to separately update docmgr changelog and docmgr task check. The same information (what changed, why, commit hash) is recorded in two places.
Why this was frustrating:
- Triple bookkeeping: git commit message, docmgr changelog entry, docmgr task check
- Easy to forget one of them
- The changelog entry format is verbose for simple changes
Suggested fix:
- Provide
docmgr changelog update-from-git --ticket Xthat auto-generates entries from recent commits - Or
docmgr task check-from-git --ticket Xthat marks tasks as done based on commit messages - Or a
docmgr synccommand that compares git history with docmgr state and suggests updates
Despite the issues above, docmgr worked well for:
- Ticket organization: The
ttmp/YYYY/MM/DD/TICKET-.../structure is excellent - Document types: design-doc, reference, playbook categories are intuitive
- Frontmatter validation: Once present, it keeps metadata consistent
- Doctor: Catches real problems (missing frontmatter, unknown topics)
- reMarkable integration: Uploading a bundle with
--toc-depth 2produced a clean PDF
| Priority | Recommendation | Effort |
|---|---|---|
| High | Clarify .docmgrignore behavior in docs |
Low |
| High | Auto-suggest correct vocab commands in doctor output | Low |
| High | Add explicit step-by-step workflow to skill | Low |
| Medium | docmgr doc fix-frontmatter command |
Medium |
| Medium | docmgr doc show command |
Low |
| Medium | doc relate --skip-frontmatter-check flag |
Low |
| Medium | docmgr changelog update-from-git |
Medium |
| Low | Batch vocab add: --slugs a,b,c |
Low |
| Low | docmgr doctor --skip-dir <dir> |
Low |