Community라이팅 & 에디팅github.com

Jamie-BitFlight/data-exploration

Use when exploring unknown structured data files with dasel v3 — discover schema, list keys, find nested values, sample arrays, identify data types across JSON, YAML, TOML, XML, CSV, HCL, INI formats

data-exploration란 무엇인가요?

data-exploration is a Claude Code agent skill that use when exploring unknown structured data files with dasel v3 — discover schema, list keys, find nested values, sample arrays, identify data types across JSON, YAML, TOML, XML, CSV, HCL, INI formats.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Jamie-BitFlight/claude_skills/tree/main/plugins/dasel/skills/data-exploration

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, obra/writing-skills, obra/executing-plans · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Data Exploration with Dasel v3

<when_to_use>

Activate this skill when:

  • Exploring unfamiliar structured data files (config, API responses, datasets)
  • Discovering the schema or shape of a document before modifying it
  • Investigating nested config structures (Kubernetes manifests, CI pipelines, package files)
  • Sampling large arrays or deeply nested objects to understand content
  • Identifying data types before transformation or extraction

</when_to_use>

Supported Formats

Dasel auto-detects format from file extension. Override with -i <format> when reading from stdin or when extension is ambiguous.

Format identifiers: json, yaml, toml, xml, csv, hcl, ini

Universal Exploration Workflow

Follow this sequence when encountering an unknown structured data file. Each step narrows scope.

Step 1 — Format Detection

Dasel infers format from file extension. For stdin or non-standard extensions, specify explicitly:

cat mystery_file | dasel -i json 'keys($this)'

Step 2 — Top-Level Keys

cat config.yaml | dasel -i yaml 'keys($this)'

Output: array of top-level key names. This is always the first exploration command.

Step 3 — Structure Preview

For small files (configs, manifests), dump the full document:

cat config.yaml | dasel -i yaml

For large files, skip to Step 4.

Step 4 — Nested Key Discovery

Navigate level by level:

cat config.yaml | dasel -i yaml 'server'
cat config.yaml | dasel -i yaml 'keys(server)'
cat config.yaml | dasel -i yaml 'keys(server.logging)'

Recursive key discovery across all depths:

cat config.yaml | dasel -i yaml '..keys($this)'

Step 5 — Array Sampling

Preview first few elements without loading entire array:

cat data.json | dasel -i json 'items[0:3]'

Single element inspection:

cat data.json | dasel -i json 'items[0]'

Step 6 — Type Inspection

Determine the type of any node:

cat data.json | dasel -i json 'typeOf(settings)'
cat data.json | dasel -i json 'typeOf(items[0].count)'

Return values: "string", "array", "bool", "null", "int", "float"

Step 7 — Value Extraction

Once path is known, extract specific values:

cat config.yaml | dasel -i yaml 'database.connection.host'
cat data.json | dasel -i json 'users[0].email'

Exploration Patterns

Breadth-First Exploration

Start at root, enumerate keys at each level before going deeper:

cat file.json | dasel -i json 'keys($this)'           # Level 0
cat file.json | dasel -i json 'keys(metadata)'         # Level 1
cat file.json | dasel -i json 'keys(metadata.labels)'  # Level 2

Search-Based Exploration (Large Files)

When the file is too large for manual traversal, use search() with predicates:

# Find all objects containing a specific key
cat data.json | dasel -i json 'search(has("email"))'

# Find all objects with both "id" and "name" keys
cat data.json | dasel -i json 'search(has("id") && has("name"))'

# Find nodes where a value matches
cat data.json | dasel -i json 'search($this == 42)'

Count Elements

cat data.json | dasel -i json 'len(items)'
cat data.json | dasel -i json 'len(keys($this))'

Unique Value Discovery

Extract a field from all array elements, then deduplicate in shell:

cat data.json | dasel -i json 'items.map(category)' | dasel -i json '$this...' | sort -u

Recursive Descent

Find all values for a key name at any depth:

cat data.json | dasel -i json '..name'

Get first element of every nested array:

cat data.json | dasel -i json '..[0]'

Format-Specific Recipes

For detailed per-format exploration commands, see Format-Specific Recipes.

References

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Jamie-BitFlight/agentskill-kaizen-meta-docs

Agentskill kaizen plugin documentation index. Load when needing to read about cross-platform notes, improvement plans, or DuckDB integration.

Jamie-BitFlight/bash-51-features

Bash 5.1 release features and improvements with practical examples. Use when working with Bash 5.1 features, epoch time variables, redirection enhancements, or when user asks about Bash 5.1 changes, new features, or version-specific capabilities.

Jamie-BitFlight/bash-52-features

Bash 5.2 release features and improvements with practical examples. Use when working with Bash 5.2 features, variable handling enhancements, readline improvements, or when user asks about Bash 5.2 changes, new features, or version-specific capabilities.

Jamie-BitFlight/bash-53-features

Bash 5.3 release features and improvements with practical examples. Use when working with Bash 5.3 features, new command substitution, GLOBSORT, loadable builtins, or when user asks about Bash 5.3 changes, new features, or version-specific capabilities.

Jamie-BitFlight/bash-development

This skill should be used when the user asks to "write a bash script", "create a shell script", "implement bash function", "parse arguments in bash", "handle errors in bash", or mentions bash development, shell scripting, script templates, or modern bash patterns.

Jamie-BitFlight/bash-lint

This skill should be used when the user asks to "lint bash script", "run shellcheck", "format shell script", "use shfmt", "fix shellcheck errors", or mentions shell script linting, formatting, code quality, or pre-commit hooks for bash.

Jamie-BitFlight/bash-logging

This skill should be used when the user asks to "add logging to bash script", "colorize output", "implement log levels", "CI/CD sections", "terminal colors in bash", or mentions logging functions, emoji output, collapsible CI sections, or shlocksmith.

Jamie-BitFlight/bash-portability

This skill should be used when the user asks about "POSIX compatibility", "portable shell scripts", "cross-shell compatibility", "bashisms", "shebang selection", or mentions writing scripts that work on different shells (bash, sh, dash, zsh) or different systems.

Jamie-BitFlight/bash-testing

This skill should be used when the user asks to "test bash script", "write shell tests", "use shunit2", "use shellspec", "create test suite for bash", or mentions unit testing, test frameworks, mocking, or test-driven development for shell scripts.

Jamie-BitFlight/brainstorming-skill

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or when users request help with ideation, marketing, and strategic planning. Explores user intent, requirements, and design before implementation using research-validated prompt patterns.

Jamie-BitFlight/clang-format

Configure clang-format code formatting. Use when: user mentions clang-format or .clang-format, analyzing code style/patterns, creating/modifying formatting config, troubleshooting formatting, brace styles/indentation/spacing/alignment/pointer alignment, or codifying conventions.

Jamie-BitFlight/commitlint

When setting up commit message validation for a project. When project has commitlint.config.js or .commitlintrc files. When configuring CI/CD to enforce commit format. When extracting commit rules for LLM prompt generation. When debugging commit message rejection errors.

Jamie-BitFlight/conventional-commits

When writing a git commit message. When task completes and changes need committing. When project uses semantic-release, commitizen, git-cliff. When choosing between feat/fix/chore/docs types. When indicating breaking changes. When generating changelogs from commit history.

Jamie-BitFlight/dasel-reference

Use when querying, modifying, or converting JSON, YAML, TOML, XML, CSV, HCL, or INI with dasel v3. Complete reference for selectors, functions, conditionals, variables, spread operator, type casting, and format-specific patterns.

Jamie-BitFlight/data-transformation

Use when modifying, converting, or transforming structured data with dasel v3 — in-place mutations, format conversion, batch operations, array manipulation, object construction, and merge patterns across JSON, YAML, TOML, XML, CSV, HCL, INI

Jamie-BitFlight/delegate

Decompose substantive work into phases, dispatch each phase to a sub-agent, and adjudicate what comes back. Use whenever a request asks for implementation, investigation, a fix, a review, or any change to files — including small ones — and whenever you are about to read source or run a diagnostic yourself instead of handing it off. Also use when a report from a sub-agent needs judging, when a phase needs re-dispatching, or when a user names one instance of a pattern. Does not apply when your own prompt begins "Your ROLE_TYPE is sub-agent." — then follow references/sub-agent-contract.md instead.

Jamie-BitFlight/enterprise-hibernate-hbm

Dasel v3 query patterns for Hibernate .hbm.xml mapping files — entity-table binding, Java property-to-column extraction, one-to-many set/list/bag relationship tracing, many-to-one foreign key discovery, batch scanning across 60+ HBM files. Use when querying Hibernate ORM class mappings, extracting schema metadata from Java persistence layer, or auditing entity-column relationships in enterprise legacy codebases.

Jamie-BitFlight/enterprise-installanywhere

Dasel v3 query patterns for InstallAnywhere .iap_xml installer definitions — use when querying action sequences, discovering variables, resolving platform conditions, navigating panels, or comparing installer variants. Files are 2.5+ MB, 65,000+ lines — too large for context reads, requires structural dasel queries.

Jamie-BitFlight/enterprise-maven-pom

Dasel v3 selector patterns for Maven POM XML files — use when querying dependency versions, filtering by groupId or scope, extracting module hierarchy from parent POMs, or detecting version conflicts across enterprise multi-module Java projects. Load this skill when working with pom.xml files using dasel.

Jamie-BitFlight/enterprise-spring-xml

Dasel v3 selectors for Spring bean factory XML — use when querying any Spring ApplicationContext XML for bean discovery, dependency wiring, JMS destination mapping, property injection extraction, or cross-bean reference tracing. Load this skill before writing dasel selectors against Spring bean XML files (applicationContext.xml, *_beans.xml, spring-*.xml).

관련 스킬