Skip to content
Back to skills

Devql Explore First

ASecurity

Use always before codebase exploration, bug fixing, SWE-bench tasks, locating symbols, files, or tests, or before using rg, grep, sed, find, or source-file reads in a repository.

  • 239 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aibashgitapi

Works with

  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add bitloops/bitloops --skill devql-explore-first --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Devql Explore First?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Devql Explore First
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bitloops-devql-explore-first/badge)](https://www.skillsdirectory.com/skills/bitloops-devql-explore-first)

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: devql-explore-first
description: >
  Use always before codebase exploration, bug fixing, SWE-bench tasks, locating
  symbols, files, or tests, or before using rg, grep, sed, find, or source-file
  reads in a repository.
---

# DevQL Explore First

<VERY_IMPORTANT>
For code understanding and exploration, DevQL is the primary discovery tool, not
a one-time preflight. Use `bitloops devql query ...` whenever locating symbols,
files, tests, implementations, callers/usages, or the next source region to
inspect.
</VERY_IMPORTANT>

Do not use `sed`, `rg`, `grep`, `find`, `wc`, directory crawling, or broad
source-file reads to discover task-relevant code while DevQL can answer the
lookup. Use traditional tools only to:

- read bounded ranges returned by DevQL
- inspect files you are editing after DevQL selected them
- run tests or git/status commands
- fall back when DevQL fails, is empty, or contradicts the task

Do not run `bitloops devql --help` or `bitloops devql query --help`.

Choose the most specific selector:

- known `symbolFqn`: use `symbolFqn`
- known file or file range: use `path`, optionally with `lines`
- single concrete identifier, method name, literal, error code, path-like
  string, or copied snippet: use `searchMode: LEXICAL`
- architecture role terms such as API endpoint, command handler, repository,
  adapter, or boundary: use `searchMode: ARCHITECTURE`
- multiple related terms, behavior, concept, or task keywords without one exact
  anchor: omit `searchMode` and use default `AUTO`

Fuzzy symbol-name lookup is included in the lexical lane; do not use a separate
fuzzy selector.

Use compact exploration queries. If the prompt has no concrete anchor, start
with the default `AUTO` query:

```bash
bitloops devql query '{ selectArtefacts(by: { search: "<short behavior phrase or task keywords>" }) { count artefacts(first: 10) { path symbolFqn canonicalKind startLine endLine score } } }'
bitloops devql query '{ selectArtefacts(by: { search: "<single identifier, literal, path fragment, or short snippet>", searchMode: LEXICAL }) { count artefacts(first: 10) { path symbolFqn canonicalKind startLine endLine score } } }'
bitloops devql query '{ selectArtefacts(by: { symbolFqn: "<symbol-fqn>" }) { count artefacts(first: 10) { path symbolFqn canonicalKind startLine endLine score } } }'
bitloops devql query '{ selectArtefacts(by: { path: "<repo-relative-path>", lines: { start: <start>, end: <end> } }) { count artefacts(first: 10) { path symbolFqn canonicalKind startLine endLine score } } }'
```

For architecture role context on a known file, use the minimal GraphQL shape and
request role fields only unless target or rule metadata is needed:

```bash
bitloops devql query  '{ selectArtefacts(by: { path: "<repo-relative-path>" }) { architectureRoles(first: 10) { items(first: 10) { role { canonicalKey displayName family description } target { symbolFqn canonicalKind } } } } }'
bitloops devql query  '{ selectArtefacts(by: { symbolFqn: "<symbol-fqn>" }) { architectureRoles(first: 10) { items(first: 10) { role { canonicalKey displayName family description } target { symbolFqn canonicalKind } } } } }'
```

If DevQL returns relevant paths and line ranges:

- read only about 50 lines before and after those ranges
- do not duplicate the same search with `rg`, `grep`, `glob`, or `find`
- for each new exploration question, query DevQL again instead of switching to
  grep/glob/find
- fall back to normal search only if DevQL fails, is empty, or contradicts the task
- use at most 3 DevQL calls before each bounded source-read phase

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.