Skip to content
Back to skills

Product Analyzer

ASecurity

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`.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsgobashrailsapisecuritydocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add BrennonTWilliams/little-loops --skill product-analyzer --agent claude-code

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.

Security grade badge for Product Analyzer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/brennontwilliams-product-analyzer/badge)](https://www.skillsdirectory.com/skills/brennontwilliams-product-analyzer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…