maintainer review treats SKILL.md files in hidden agent directories as library skills
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- nodejs, typescript
Research direction
The issue is in packages/intent/src/review/review.ts lines 565-572. Compare with the logic in packages/intent/src/maintainer/existing.ts lines 74-83. The fix is to add a filter for hidden segments (parts starting with '.') and 'node_modules' to the review's skill discovery. Start by running the reproduction steps to see the failure, then modify the path test in review.ts to match the setup logic. Verify by running maintainer review and maintainer check in a test workspace with a hidden .claude/skills/ directory.
Written by the indexing model from the issue text.
Description
Problem
intent maintainer review treats every SKILL.md under a skills/ directory as a library skill, including skills in hidden agent directories such as .claude/skills/. These are repository-local agent skills: they are not published and declare no sources. Review reports each one as pending, and recording fails, so maintainer check cannot pass in a repository that has project-level agent skills.
maintainer setup already excludes these paths when it registers existing skills, so the two commands disagree on what a library skill is.
Reproduction
In a pnpm workspace with one package skill and one project-level Claude Code skill:
.claude/skills/add-a-package/SKILL.md # repository-local agent skill, no sources
packages/client/skills/client-core/SKILL.md
_artifacts/{domain_map.yaml,skill_spec.md,skill_tree.yaml}
pnpm exec intent maintainer setup
pnpm exec intent maintainer review --updated "Initial review."
pnpm exec intent maintainer check
maintainer setup registers only packages/client/skills/client-core/SKILL.md, as expected.
maintainer review --updated fails:
Review skill:.claude/skills/add-a-package/SKILL.md has unresolved source evidence. Fix the source mapping before recording it.
maintainer check reports:
Review skill .claude/skills/add-a-package/SKILL.md: No source paths declared. Add the evidence used to author this skill.
Adding .claude/** to review.ignore in skill_tree.yaml does not help: that list filters unmapped changes, not skill discovery.
Cause
Review selects skill files with a path test only (review.ts#L565-L572):
basename(path) === 'SKILL.md' &&
(/(^|\/)skills\//.test(path) || /* ... */)
Setup applies the same test and also skips hidden segments and node_modules (existing.ts#L74-L83):
basename(path) === 'SKILL.md' &&
/(^|\/)skills\//.test(path) &&
!path
.split('/')
.some((part) => part.startsWith('.') || part === 'node_modules')
Expected
Review discovers the same default set as setup: hidden agent directories (.claude/, .cursor/, .agents/, …) stay out unless the skill tree declares the path explicitly, or review state already records it.
Suggested fix
Apply the hidden-segment filter of existing.ts to the /(^|\/)skills\// branch in review.ts, and keep the customRoots, declaredSkills and review-state branches as they are. A shared helper would keep the two rules from drifting again.
Environment
@tanstack/intentpreviewhttps://pkg.pr.new/@tanstack/intent@292(commit80ed89d), source checked againstmainat305ca7f- Node.js 24.21, pnpm 12.3.4, macOS arm64
- Dominant language
- TypeScript
- Stars
- 331
- Forks
- 22
- Avg merge
- 12h 17m
- Merged PRs (30d)
- 51
Contributor guide
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 TanStack/intent
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
Similar issues
-
blocklist removal
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
MetaMask/eth-phishing-detect#296544 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
pastelsky/bundlephobia#1122 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
category/development priority/P2 scope/file-operations scope/testing type/enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100