Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Skills hardcode `~/.plannotator`: `plannotator-compound` ignores `$XDG_DATA_HOME` and can silently switch the data directory

Open
#2,305 0 comments 0 reactions 0 assignees View on GitHub

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

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:

  1. PLANNOTATOR_DATA_DIR
  2. an existing ~/.plannotator
  3. $XDG_DATA_HOME/plannotator (absolute path)
  4. ~/.plannotator

The skills still describe and use the pre-XDG default:

  • apps/skills/extra/plannotator-compound/SKILL.md lines 25, 58 and 522 (v0.28.30 and main):
    ${PLANNOTATOR_DATA_DIR:-~/.plannotator}, to read plans/ 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 ~/.plannotator exist, 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from backnotprop/plannotator

All issues in backnotprop/plannotator

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.