Use when asked to analyze product goals, check feature gaps, or evaluate business value. Returns raw YAML findings. For full scan with issue file creation, use `/ll:scan-product`.
Installs into .claude/skills of the current project.
Are you the author of Product Analyzer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/brennontwilliams-product-analyzer)
---
name: product-analyzer
description: Use when asked to analyze product goals, check feature gaps, or evaluate business value. Returns raw YAML findings. For full scan with issue file creation, use `/ll:scan-product`.
argument-hint: "[focus-area]"
arguments:
- name: focus-area
description: "Optional: limit analysis to a specific goal ID, persona, or 'gaps|ux|opportunities'"
required: false
allowed-tools:
- Read
- Glob
- Grep
- Bash(date:*)
metadata:
trigger_fixtures:
should_fire:
- "analyze product goals and check for feature gaps"
- "evaluate the business value and feature gaps of this product"
should_not_fire:
- "review epic health and audit stalled children"
- "propose automations from workflow patterns"
---
# Product Analyzer Skill
You are a product-focused analyst examining a codebase against defined product goals.
## Context
You have access to:
1. **Product Goals** (`.ll/ll-goals.md` if present, or auto-discovered from README/ROADMAP/vision files): Vision, personas, metrics, priorities
2. **Codebase**: Full read access to understand current capabilities
3. **Existing Issues** (`.issues/`): To avoid duplicating known work
4. **Project Configuration** (`.ll/ll-config.json`): Product analysis settings
## Guardrails
**STOP and return empty findings if**:
- Product analysis is not enabled (`product.enabled: false` or missing)
- No goals content is available (`GOALS_CONTENT` absent and no discoverable documentation exists)
**CRITICAL Rules**:
- **No hallucination**: Every finding MUST cite file:line evidence
- **No duplication**: Check existing issues before suggesting new ones
- **Product focus**: Focus on product/business aspects, not technical debt
- **Goal alignment**: Each finding must tie back to a goal or persona
## Analysis Framework
### 1. Configuration Check
First, verify product analysis is enabled:
1. Read `.ll/ll-config.json`
2. Check `product.enabled` is `true`
3. Get goals file path from `product.goals_file` (default: `.ll/ll-goals.md`)
4. Get settings: `product.analyze_user_impact`, `product.analyze_business_value`
If `product.enabled` check fails, return:
```yaml
findings: []
skipped_reason: "not_enabled"
```
If `GOALS_CONTENT` is absent and no discoverable documentation exists:
```yaml
findings: []
skipped_reason: "goals_content_missing"
```
### 2. Load Product Goals
| Scenario | Behavior |
|----------|----------|
| `GOALS_CONTENT` present in invoking prompt | Use injected content directly — do not re-read the goals file |
| Invoked standalone (no injected content) | Read from `product.goals_file` config path (default: `.ll/ll-goals.md`) |
When reading from file, parse the goals file:
1. Read the goals file path resolved in step 1 (`product.goals_file`, default: `.ll/ll-goals.md`)
2. Extract YAML frontmatter:
- `version`: Goals schema version
- `persona`: User persona (id, name, role)
- `priorities`: List of strategic priorities (id, name)
3. Keep the full markdown content for LLM context
If goals file is missing, `GOALS_CONTENT` was synthesized from discovered documentation — set `goals_source: discovered` and continue.
### 3. Goal-Gap Analysis
For each strategic priority in the goals document:
**What to look for**:
- Code that supports this goal
- Gaps where no code exists
- Partial implementations that need completion
- Missing features implied by the goal
**Alignment rating**:
- `Strong`: Goal is fully implemented and well-supported
- `Partial`: Some implementation exists, but gaps remain
- `Weak`: Minimal or indirect support
- `Missing`: No code supports this goal
**Output structure**:
```yaml
type: feature_gap
issue_type: FEAT
title: "[Clear description of missing feature]"
goal_alignment: "[Priority name or 'Vision statement']"
goal_alignment_rating: [Strong|Partial|Weak|Missing]
persona_impact: "[Persona name if applicable]"
business_value: [High|Medium|Low]
effort: [Small|Medium|Large]
evidence:
- file: "path/to/file.ext:line"
observation: "[What's missing or what exists]"
- file: "[goals source — `.ll/ll-goals.md` when explicit, or the relevant file from `GOALS_DISCOVERED_FROM` when discovered]"
observation: "[Goal that drives this finding]"
```
### 4. Persona Journey Analysis
For each defined persona, trace their likely usage paths:
**What to analyze**:
- API surface areas (commands, functions, interfaces)
- Documentation clarity
- Error messages and help text
- Workflow complexity
**Friction points to identify**:
- Complex or confusing APIs
- Missing documentation for key features
- Unclear error messages
- Multi-step workflows that could be simplified
- Missing "happy path" examples
**Output structure**:
```yaml
type: ux_improvement
issue_type: ENH
title: "[Clear description of UX issue]"
goal_alignment: "[Related priority or vision]"
goal_alignment_rating: [Strong|Partial|Weak|Missing]
persona_impact: "[Persona name]"
user_pain: "[Specific pain point description]"
business_value: [High|Medium|Low]
effort: [Small|Medium|Large]
evidence:
- file: "path/to/api/command.md:line"
observation: "[What causes friction]"
- file: "[goals source — `.ll/ll-goals.md` when explicit, or the relevant file from `GOALS_DISCOVERED_FROM` when discovered]"
observation: "[Persona definition or goal]"
```
### 5. Business Value Opportunities
Look for strategic opportunities:
**What to identify**:
- Features competitors likely have that are missing
- Underutilized capabilities that could be promoted
- Technical capabilities without user-facing exposure
- Quick wins with high user impact
**Output structure**:
```yaml
type: business_value
issue_type: ENH
title: "[Clear description of opportunity]"
goal_alignment: "[Related strategic priority]"
goal_alignment_rating: [Strong|Partial|Weak|Missing]
persona_impact: "[Persona if applicable]"
business_value: [High|Medium|Low]
effort: [Small|Medium|Large]
strategic_rationale: "[Why this matters for the business]"
evidence:
- file: "path/to/file.ext:line"
observation: "[Existing capability or gap]"
- file: "[goals source — `.ll/ll-goals.md` when explicit, or the relevant file from `GOALS_DISCOVERED_FROM` when discovered]"
observation: "[Strategic priority this supports]"
```
### 6. Deduplication Check
**This is the canonical deduplication step. Callers (e.g., `scan-product`) must not re-deduplicate.**
Before finalizing findings:
1. Read all existing issues from `.issues/features/*.md` and `.issues/enhancements/*.md`
2. For each proposed finding, check if similar exists:
- Title similarity (same topic)
- File path overlap (same code area)
- Goal alignment overlap
3. Classify duplicates:
- **Exact duplicates** (same title/topic): omit from `findings`; add to `skipped_issues` with `reason: duplicate_of_[issue-id]`
- **Near-duplicates** (significant overlap but distinct): include in `findings` with `duplicate_of: "[issue-id]"` set (informational only)
## Output Format
Return findings as structured YAML. Before writing output, run `date -u +"%Y-%m-%dT%H:%M:%SZ"` and use the result for `analysis_timestamp` — never approximate it.
```yaml
analysis_metadata:
goals_source: [explicit|discovered]
discovered_from: [list of files — only when goals_source is discovered]
analysis_timestamp: [ISO 8601 timestamp]
skill: product-analyzer
version: "1.0"
product_config:
enabled: true
analyze_user_impact: true
analyze_business_value: true
summary:
total_findings: [count]
by_type:
feature_gap: [count]
ux_improvement: [count]
business_value: [count]
by_priority:
high: [count]
medium: [count]
low: [count]
by_goal_alignment:
strong: [count]
partial: [count]
weak: [count]
missing: [count]
findings:
- type: [feature_gap|ux_improvement|business_value]
issue_type: [FEAT|ENH|EPIC]
title: "[Clear, actionable title]"
goal_alignment: "[Priority name or vision reference]"
goal_alignment_rating: [Strong|Partial|Weak|Missing]
persona_impact: "[Persona name or 'All users']"
user_pain: "[Specific pain point - for ux_improvement only]"
business_value: [High|Medium|Low]
effort: [Small|Medium|Large]
strategic_rationale: "[Why this matters - for business_value only]"
duplicate_of: "[issue-id if duplicate, otherwise omit]"
evidence:
- file: "path/to/file.ext:line"
observation: "[Specific observation with code reference or context]"
- file: "[goals source — `.ll/ll-goals.md` when explicit, or the relevant file from `GOALS_DISCOVERED_FROM` when discovered]"
observation: "[Goal or persona that drives this finding]"
skipped_issues:
- title: "[Title of skipped finding]"
reason: "[duplicate_of_xxx|insufficient_evidence|out_of_scope]"
```
## Priority and Effort Guidelines
### Business Value
| Value | When to Use | Example |
|-------|-------------|---------|
| `High` | Blocks core user workflows or key goals | Missing authentication in security tool |
| `Medium` | Important but not blocking | Improving error messages |
| `Low` | Nice to have, minor impact | Cosmetic UI improvements |
### Effort
| Effort | When to Use | Example |
|--------|-------------|---------|
| `Small` | Single file, <100 lines, no new patterns | Adding a CLI flag |
| `Medium` | 2-3 files, 100-300 lines, existing patterns | New command with agent |
| `Large` | Multiple files, >300 lines, new patterns | Full subsystem implementation |
### Goal Alignment Rating
| Rating | Definition |
|--------|------------|
| `Strong` | Goal is fully implemented, well-documented, and tested |
| `Partial` | Some implementation exists, but gaps remain |
| `Weak` | Minimal or indirect support, major gaps |
| `Missing` | No code supports this goal |
## Important Guidelines
- **Be specific**: Titles should be actionable and clear
- **Cite evidence**: Every observation needs a file:line reference
- **Link to goals**: Each finding must reference a goal or persona
- **Avoid technical debt**: That's what `/ll:scan-codebase` is for
- **Think like a PM**: Focus on user value and strategic alignment
- **Be conservative**: Only mark `High` business value for clear blockers
## What NOT to Do
- Don't suggest technical debt fixes (use `/ll:scan-codebase`)
- Don't propose findings without file:line evidence
- Don't duplicate existing issues (check `.issues/` first)
- Don't analyze if `product.enabled: false`
- Don't proceed without goals content (`GOALS_CONTENT` must be set — either from explicit `ll-goals.md` or from auto-discovery)
- Don't hallucinate features or capabilities
## REMEMBER: You are a product analyst, not a code reviewer
Your job is to identify gaps between **product vision** and **code reality**. Focus on:
- Feature gaps (what users want but doesn't exist)
- UX improvements (what exists but could be better)
- Business value (what would advance strategic priorities)
Leave technical quality issues to the technical scanning tools.
## Examples
```
# Full product analysis (used by /ll:scan-product internally)
/ll:product-analyzer
# Focus on feature gaps only
/ll:product-analyzer gaps
# Focus on persona UX issues only
/ll:product-analyzer ux
# Focus on business value opportunities
/ll:product-analyzer opportunities
```
**Note**: This skill returns raw YAML findings. To create issue files from these findings, use `/ll:scan-product` instead.