Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Map Dependencies

ASecurity

Use when asked to find dependencies between issues or prepare a dependency-aware sprint plan.

6 stars
0 votes
0 copies
0 views
Added 10/6/2026
ai-agentsgobashnodeexpressgit

Works with

cli

Security Analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned 10/6/2026

$npx -y skills add BrennonTWilliams/little-loops --skill map-dependencies --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Map Dependencies?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Map Dependencies
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/brennontwilliams-map-dependencies/badge)](https://www.skillsdirectory.com/skills/brennontwilliams-map-dependencies)

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

Download with Pro
Files
SKILL.md
---
name: map-dependencies
description: Use when asked to find dependencies between issues or prepare a dependency-aware sprint plan.
disable-model-invocation: true
model: sonnet
model_hint: coding
allowed-tools:
  - Read
  - Glob
  - Grep
  - Bash(ll-deps:*, git:*)
metadata:
  short-description: Use when asked to find dependencies between issues or prepare a dependency-aware
---

# Map Dependencies Skill

This skill performs cross-issue dependency analysis to discover missing relationships, validate existing references, and propose new dependency links using the canonical 6-field relationship vocabulary.

### Canonical Relationship Fields

Issues use six frontmatter fields to express relationships:

| Field | Type | Meaning | Ordering |
|-------|------|---------|---------|
| `parent` | string | Parent issue this was decomposed from | — |
| `blocked_by` | list | Hard dependencies — `──→` — must complete before this issue can start (wave-gated) | Hard stop |
| `depends_on` | list | Soft ordering prerequisites — `-->` — wave-gated (scheduled in a later wave) but non-fatal if the prerequisite is absent | Soft |
| `relates_to` | list | Thematically related issues (no ordering constraint) | — |
| `duplicate_of` | string | Superseded by another issue | — |
| `blocks` | list | Computed inverse of `blocked_by`; written by `ll-deps fix` | — |

Use `blocked_by` only when ISSUE-B **must** complete before ISSUE-A can start. For preferred-but-not-required ordering, use `depends_on` instead.

## When to Activate

Proactively offer or invoke this skill when the user:

- Asks about issue dependencies or relationships
- Wants to find which issues overlap or conflict
- Is preparing for sprint planning and needs dependency context
- Asks to validate or check existing dependency references
- Mentions missing or broken dependency links
- Wants a dependency graph visualization

## Arguments

$ARGUMENTS

Parse arguments for flags:

```bash
AUTO_MODE=false
CHECK_MODE=false

# Auto-enable in automation contexts
if [[ "$ARGUMENTS" == *"--dangerously-skip-permissions"* ]] || [[ -n "${LL_NON_INTERACTIVE:-}" ]] || [[ -n "${DANGEROUSLY_SKIP_PERMISSIONS:-}" ]]; then AUTO_MODE=true; fi

# Explicit flags
if [[ "$ARGUMENTS" == *"--auto"* ]]; then AUTO_MODE=true; fi
if [[ "$ARGUMENTS" == *"--check"* ]]; then CHECK_MODE=true; AUTO_MODE=true; fi
```

- **flags** (optional):
  - `--auto` - Non-interactive mode: apply all HIGH-confidence dependency proposals (≥0.7 conflict score) without prompting. Skip MEDIUM-confidence proposals.
  - `--check` — Check-only mode for FSM loop evaluators. Run dependency analysis without applying changes, print `[ID] deps: N unmapped dependencies` per issue with unmapped deps, exit 1 if any unmapped, exit 0 if all mapped. Implies `--auto`.

## How to Use

Run the `ll-deps` CLI command based on user needs:

### Full Analysis

For comprehensive dependency analysis (file overlaps + validation):
```bash
ll-deps analyze
```

### With Dependency Graph

Include an ASCII dependency graph visualization:
```bash
ll-deps analyze --graph
```

### JSON Output

For programmatic access:
```bash
ll-deps analyze --format json
```

### Sprint-Scoped Analysis

Restrict analysis to only issues in a named sprint:
```bash
ll-deps analyze --sprint my-sprint
ll-deps analyze --sprint my-sprint --graph
ll-deps validate --sprint my-sprint
```

### Validation Only

Check existing dependency references for broken refs, cycles, and missing backlinks:
```bash
ll-deps validate
ll-deps validate --json
```

> **Note:** `ll-deps validate` uses `--json`/`-j` for structured output (consistent with most `ll-*` CLIs), while `ll-deps analyze` uses `--format json`. This is a known pattern inconsistency — `analyze` predates the universal `--json` contract.

### EPIC Tree View

Render an EPIC's child issue hierarchy with dependency edges:
```bash
ll-deps tree --epic EPIC-1773          # Text tree with ├──/└── connectors
ll-deps tree --epic EPIC-1773 -f json  # Structured JSON (root, nodes, edges)
```

### Custom Issues Directory

If issues are not in the default `.issues` directory:
```bash
ll-deps -d path/to/issues analyze
```

## Examples

| User Says | Action |
|-----------|--------|
| "Find missing dependencies" | `ll-deps analyze` |
| "Check dependency references" | `ll-deps validate` |
| "Show dependency graph" | `ll-deps analyze --graph` |
| "Are there broken dependency links?" | `ll-deps validate` |
| "Prepare for sprint planning" | `ll-deps analyze --graph` |
| "Analyze deps for my sprint" | `ll-deps analyze --sprint <name>` |
| "Validate sprint dependencies" | `ll-deps validate --sprint <name>` |
| "Which issues conflict?" | `ll-deps analyze` |
| "Map deps non-interactively" | `/ll:map-dependencies --auto` |
| "Check if all deps are mapped" | `/ll:map-dependencies --check` |
| "Show EPIC child hierarchy" | `ll-deps tree --epic EPIC-NNN` |
| "EPIC tree as JSON" | `ll-deps tree --epic EPIC-NNN --format json` |

## Interpreting Results

### Proposed Dependencies

The analysis identifies issue pairs that reference overlapping files and computes a semantic conflict score:

- **HIGH conflict (>= 0.7)**: Issues modify the same component/section — strong dependency
- **MEDIUM conflict (>= 0.4)**: Issues share files with moderate semantic overlap
- **Confidence**: Based on file overlap ratio (higher = more overlapping files)

Direction is determined by:
1. Priority: Higher priority issue blocks lower
2. Modification type: Structural blocks infrastructure blocks enhancement
3. Fallback: ID ordering with reduced confidence

### Parallel-Safe Pairs

Pairs with conflict score < 0.4 are reported as safe to run in parallel. These touch the same files but different sections/components.

### Validation Issues

- **Broken references**: `## Blocked By` entries referencing nonexistent issues
- **Missing backlinks**: A blocked by B, but B doesn't list A in Blocks
- **Cycles**: Circular dependency chains
- **Stale references**: Dependencies on already-completed issues
- **Broken depends-on references**: `depends_on` frontmatter entries referencing nonexistent issues
- **Broken relates-to references**: `relates_to` frontmatter entries referencing nonexistent issues

## Applying Proposals

After reviewing the analysis output, apply proposed dependencies using `ll-deps apply`:

```bash
ll-deps apply                           # Apply all proposals >= 0.7 confidence
ll-deps apply --min-confidence 0.5      # Lower threshold
ll-deps apply --dry-run                 # Preview without writing
ll-deps apply --sprint my-sprint        # Sprint-scoped apply
ll-deps apply FEAT-001 blocks FEAT-002  # Manual explicit pair
```

`ll-deps apply` writes only the `## Blocked By` direction. Run `ll-deps fix` afterward to add missing `## Blocks` backlinks, then `ll-deps validate` to confirm a clean state.

`ll-deps fix` also enumerates any circular `Blocked By`/`depends_on` chains (member edges plus a suggested lowest-priority-edge cut) without breaking them; pass `ll-deps fix --break-cycles` to apply the suggested cut and restore mutually-blocked issues to the ready pool.

### Auto Mode Behavior

**When `AUTO_MODE` is true**: Skip the AskUserQuestion prompt below. Run `ll-deps apply` automatically (default threshold 0.7). Emit one status line per applied proposal: `[SOURCE-ID] → [TARGET-ID]: dependency added (confidence: HIGH)`

### Check Mode Behavior (--check)

**When `CHECK_MODE` is true**: Run dependency analysis without applying any changes. For each issue with unmapped dependencies (HIGH-confidence proposals not yet in `## Blocked By`), print `[ID] deps: N unmapped dependencies`. After all issues analyzed, if any had unmapped deps: print `N issues with unmapped dependencies`, then `exit 1`. If all mapped: print `All dependencies mapped`, then `exit 0`. This integrates with FSM `evaluate: type: exit_code` routing.

### Interactive Mode (default)

1. Use AskUserQuestion to confirm which proposals to apply:
   - "Apply all" — run `ll-deps apply`
   - "Select individually" — run `ll-deps apply <source> blocks <target>` per pair
   - "Skip all" — don't write changes

2. After applying, fix backlinks and validate:
```bash
ll-deps fix
ll-deps validate
```

3. Stage changes. `ll-deps fix` rewrites backlinks across an open-ended set of *tracked*
   issue files, so stage tracked modifications only — do **not** add the whole directory,
   which would also sweep in unrelated *untracked* drafts under `.issues/` (BUG-1976):
```bash
git add -u {{config.issues.base_dir}}/
```

## Configuration

Uses project configuration from `.ll/ll-config.json`:

- `issues.base_dir` - Base directory for issues (default: `.issues`)
- `issues.categories` - Bug/feature/enhancement directory config
- `sprints.sprints_dir` - Sprint definitions directory (default: `.sprints`)

## Integration

After running dependency mapping:

- Review changes with `git diff`
- Commit with `/ll:commit`
- Use `/ll:create-sprint` for dependency-aware sprint planning
- Run `ll-sprint show [name]` to see execution wave structure
- Use `/ll:verify-issues` to validate dependency integrity

## Best Practices

### Good Dependencies

- Based on **file overlap + semantic conflict** — issues modifying the same component/section should be sequenced
- **Priority ordering** — higher priority issues block lower priority ones
- **Modification type ordering** — structural changes block infrastructure, which blocks enhancements (at same priority)
- Dependencies represent real sequencing needs, not just related topics

### Parallel-Safe Pairs

- Issues touching the **same file but different sections** (e.g., header vs body) are identified as parallel-safe
- The conflict score threshold is 0.4 — pairs below this are not proposed as dependencies
- Review parallel-safe pairs to confirm the tool's assessment is correct for your context

### Avoid

- Creating dependencies between unrelated issues just because they have similar titles
- Circular dependencies (the tool will warn about these)
- Over-connecting — not every pair of related issues needs a dependency edge
- Overriding parallel-safe assessments without good reason — false-positive dependencies reduce sprint throughput

Attribution

BrennonTWilliamsBrennonTWilliams
View sourceSee grades on GitHubMore from BrennonTWilliams →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →