Skills hardcode `~/.plannotator`: `plannotator-compound` ignores `$XDG_DATA_HOME` and can silently switch the data directory
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 53/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- developer-experience
Research direction
Start with packages/shared/data-dir.ts to confirm the directory resolution order, then read the listed plannotator-compound skill files and apps/skills/core/plannotator/SKILL.md. Check how skill commands are exposed before assessing the proposed plannotator data-dir approach. Done means the skills use the resolved directory consistently, including XDG-only installs, and document the behavior.
Written by the indexing model from the issue text.
Description
Problem
getPlannotatorDataDir() (packages/shared/data-dir.ts) resolves the data directory as:
PLANNOTATOR_DATA_DIR- an existing
~/.plannotator $XDG_DATA_HOME/plannotator(absolute path)~/.plannotator
The skills still describe and use the pre-XDG default:
apps/skills/extra/plannotator-compound/SKILL.mdlines 25, 58 and 522 (v0.28.30 and main):
${PLANNOTATOR_DATA_DIR:-~/.plannotator}, to readplans/and to create
hooks/compound/enterplanmode-improve-hook.txt;apps/skills/extra/plannotator-compound/references/claude-code-fallback.md;apps/skills/core/plannotator/SKILL.md: the variable table says "default~/.plannotator".
Impact (derived from reading the code at v0.28.30 and main; I have not run the skill end to end)
On an XDG-only install (no ~/.plannotator):
- the skill does not find the plan archive and falls back to the Claude Code mode or asks the user;
- if the improvement hook is enabled, the skill creates
~/.plannotator/hooks/compound/;
that makes~/.plannotatorexist, so rank 2 of the resolution wins and the binary silently
switches to it, leaving plans, history, feedback and drafts under$XDG_DATA_HOME/plannotator
unreachable.
Proposal
Add a command that prints the resolved directory (for example plannotator data-dir) and have the
skills call it instead of re-implementing the resolution. At minimum, document the four-step order
in the skills.
Related: #1051.
- Dominant language
- TypeScript
- Stars
- 8.7k
- Forks
- 649
- Avg merge
- 11h 48m
- Merged PRs (30d)
- 552
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from backnotprop/plannotator
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
backnotprop/plannotator#2317 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
backnotprop/plannotator#2306 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
backnotprop/plannotator#2290 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
backnotprop/plannotator#2243 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
Annotate documentation omits per-file version history and privacy controlsMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
backnotprop/plannotator#1086 · 2 comments ·
Maintainers usually reply within 1 day
All issues in backnotprop/plannotator
Similar issues
-
area:desktop area:ui bug platform:macos
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
anthropics/claude-code#106183 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
feature:App-Tour feature:Chat ready Web
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
digitalfabrik/integreat-app#4523 · 2 reactions ·
Maintainers usually reply within 3 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Required Lexical field accepts two empty paragraphsPossibly taken @lazerg claimed this today. OpenBug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
payloadcms/payload#19222 ·
Maintainers usually reply within 1 day