Discover NL programming artifact files in a directory by category (A: plugin, B: project config, F: memory)
From nlpmnpx claudepluginhub xiaolai/nlpm-for-claude --plugin nlpmshared//discoverRuns full product discovery cycle—from ideation and assumption mapping to experiment design—for a product or feature idea. Includes checkpoints for prioritization.
/discoverInitiates multi-AI discovery research: asks clarifying questions on intensity, focus area, and output format, then runs structured workflow on provided topic.
/discoverRuns full user research cycle for a product or feature: creates 2-4 personas, empathy map, journey map, and summary with key insights and design implications.
/discoverExecutes evidence-based product discovery through customer interviews and assumption testing for a product concept, producing validation docs, lean canvas, interview logs, and wave decisions.
/discoverAssesses project health across architecture, dependencies, test coverage, security, and technical debt; generates scored report with verdict, findings, and recommendations.
/discoverSearches local, skills.sh, and GitHub for tools/capabilities matching a query, displays results table, and installs user-selected ones.
Purpose: Discover NL programming artifacts by path pattern.
Input: directory path, category filter (A, B, or both) Output: classified file list with line counts
Patterns to search (relative to target directory):
| Pattern | Notes |
|---|---|
.claude-plugin/plugin.json | Plugin manifest |
.claude-plugin/marketplace.json | Marketplace entry |
commands/**/*.md | Exclude commands/shared/ — those are shared partials |
commands/shared/**/*.md | Shared partials |
agents/**/*.md | Agent definitions |
skills/**/SKILL.md | Skill definitions |
hooks/**/*.json | Hook configs |
.mcp.json | MCP config |
.lsp.json | LSP config |
settings.json | Root-level settings |
| Pattern | Notes |
|---|---|
CLAUDE.md | Root project instructions |
.claude/CLAUDE.md | Claude config directory instructions |
**/CLAUDE.md | Subdirectory CLAUDE.md files (monorepo packages) |
.claude/rules/**/*.md | Rule files |
.claude/settings.json | Claude settings — also check for inline hooks key |
.claude/settings.local.json | Local Claude settings — also check for inline hooks key |
.claude/**/*.local.md | Local plugin config files |
.claude/commands/**/*.md | User-level custom commands |
| Pattern | Notes |
|---|---|
~/.claude/projects/*/memory/*.md | Project memory files |
~/.claude/projects/*/memory/MEMORY.md | Memory index |
Always skip these directories during traversal:
node_modules/.git/target/dist/build/vendor/__pycache__/.next/.venv/directory (absolute path), category ("A", "B", "F", or "both"){ path, category, pattern_matched, line_count }.claude/settings.json, .claude/settings.local.json): after discovering the file, flag whether it contains a top-level hooks key — if so, note inline_hooks: true on the entry so the scanner knows to treat it as a hook source as wellcommands/**/*.md results, exclude any file whose path contains /commands/shared/ (those match the shared partials pattern instead).gitkeep files are not artifacts — ignore them**/CLAUDE.md in Category B will also match the root CLAUDE.md — deduplicate: if a file was already matched by the root CLAUDE.md pattern, do not add it again~ to the user's home directory before globbing