Same defect as #47, in the skill shipped today by #54.
Problem
SKILLS/PDDA-EOD/SKILL.md invokes the runtime by bare relative path:
utils/pdda/pdda.sh run
utils/pdda/pdda.sh issue-doc-sync
utils/pdda/pdda.sh roadmap
utils/pdda/pdda.sh roadmap-coverage
utils/pdda/pdda.sh changelog
utils/pdda/pdda.sh gh-refresh
These resolve only when the session's CWD is the repo root. Invoked from any subdirectory of a PDDA repo, every call fails.
Why it's worse than a plain failure
The skill's own guardrail says:
If utils/pdda/pdda.sh is absent, PDDA is not installed here; say so and stop.
So a CWD miss doesn't surface as "path wrong" — it is indistinguishable from "PDDA is not installed," and the skill will confidently report a false negative and stop. The failure mode is a wrong answer, not an error.
This matters more for PDDA-EOD than for the pdda skill in #47, because PDDA-EOD is installed device-wide as a symlink (~/.claude/skills/pdda-eod) and is therefore reachable from every repo on the machine.
Proposed fix
Resolve the repo root explicitly before invoking, e.g.:
PDDA_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" || { echo "not a git repo"; exit 1; }
"$PDDA_ROOT/utils/pdda/pdda.sh" run
and distinguish three states rather than two: root not found, PDDA not installed at root, installed.
Relationship to #47
#47 tracks the identical bug in SKILLS/PDDA-hook / the pdda skill. Both should take the same resolution helper so the fix doesn't drift between the two skills — worth fixing together.
Found during a /pdda-eod wrap on 2026-07-22, in the review that preceded merging #54.
Same defect as #47, in the skill shipped today by #54.
Problem
SKILLS/PDDA-EOD/SKILL.mdinvokes the runtime by bare relative path:These resolve only when the session's CWD is the repo root. Invoked from any subdirectory of a PDDA repo, every call fails.
Why it's worse than a plain failure
The skill's own guardrail says:
So a CWD miss doesn't surface as "path wrong" — it is indistinguishable from "PDDA is not installed," and the skill will confidently report a false negative and stop. The failure mode is a wrong answer, not an error.
This matters more for PDDA-EOD than for the
pddaskill in #47, because PDDA-EOD is installed device-wide as a symlink (~/.claude/skills/pdda-eod) and is therefore reachable from every repo on the machine.Proposed fix
Resolve the repo root explicitly before invoking, e.g.:
and distinguish three states rather than two: root not found, PDDA not installed at root, installed.
Relationship to #47
#47 tracks the identical bug in
SKILLS/PDDA-hook/ thepddaskill. Both should take the same resolution helper so the fix doesn't drift between the two skills — worth fixing together.Found during a
/pdda-eodwrap on 2026-07-22, in the review that preceded merging #54.