Agent skill

Foundatio Repositories

by exceptionless in exceptionless/Exceptionless

Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions.

Apache-2.0Auto-check passedBackend & APIs

Install Foundatio Repositories

skills CLI
$ npx skills add exceptionless/Exceptionless --skill foundatio-repositories -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install exceptionless/Exceptionless foundatio-repositories --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/exceptionless/Exceptionless.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/foundatio-repositories .claude/skills/foundatio-repositories && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
foundatio-repositories
GitHub stars
2.5k
Token cost
~1.9k tokens
SKILL.md length
383 words
Files
1
Skills in repo
11
Repo updated
First seen
Licence
Apache-2.0

At a glance

Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions.

  • Tasks that involve Search implementation
  • SKILL.md covers Repository Hierarchy, CountAsync +…, FilterExpression (Lucene-style) and Query Extension Methods, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Foundatio Repositories is an agent skill from exceptionless/Exceptionless. Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Search implementation. It works with Elasticsearch. The repository describes itself as: Exceptionless application. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Search implementation

Example prompts

  • “/foundatio-repositories”

What it can do on your machine

Read from SKILL.md and the folder at commit 300e8ca. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are csharp).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • repositories.foundatio.dev
    • parsers.foundatio.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Foundatio Repositories loads about 1.9k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 383 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~32
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from exceptionless/Exceptionless at commit 300e8ca, republished under its Apache-2.0 licence (© exceptionless). 383 words, ~1,872 tokens.

Download SKILL.mdSave it as .claude/skills/foundatio-repositories/SKILL.md (or your agent's skills folder).
name
foundatio-repositories
description
Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions.

Foundatio Repositories

Foundatio.Repositories provides a high-level Elasticsearch abstraction. Use repository methods for normal query, count, patch, and pagination work. Reserve raw IElasticClient for migrations or index maintenance that cannot be expressed through repositories.

Documentation: https://repositories.foundatio.dev / https://parsers.foundatio.dev

Repository Hierarchy

text
IRepository<T>                             — CRUD, Patch, Remove
  └─ ISearchableRepository<T>              — FindAsync, CountAsync, aggregations
       └─ IRepositoryOwnedByOrganization<T>
            └─ IRepositoryOwnedByProject<T>
                 └─ IRepositoryOwnedByOrganizationAndProject<T>
InterfaceEntityIndex Type
IEventRepositoryPersistentEventDailyIndex (date-partitioned)
IStackRepositoryStackVersionedIndex (single index)
IProjectRepositoryProjectVersionedIndex
IOrganizationRepositoryOrganizationVersionedIndex
IUserRepositoryUserVersionedIndex
ITokenRepositoryTokenVersionedIndex
IMigrationStateRepositoryMigrationStateVersionedIndex

Important: .Index(start, end) only routes to correct daily shards for DailyIndex (events). It is a no-op for VersionedIndex.

CountAsync + AggregationsExpression

CountAsync returns a CountResult with .Total (long) and .Aggregations (AggregationsHelper).

AggregationsExpression DSL
ExpressionMeaning
cardinality:fieldDistinct count
terms:fieldTerms aggregation
terms:(field~SIZE)Terms with bucket size limit
terms:(field~SIZE sub_agg)Terms with nested aggregation
terms:(field @include:VALUE)Terms with include filter
date:fieldDate histogram (auto interval)
date:field~1dDate histogram, daily interval
date:field~1MDate histogram, monthly interval
date:(field sub_agg)Date histogram with nested agg
sum:field~DEFAULTSum with default value
min:field / max:fieldMin/Max aggregation
avg:fieldAverage aggregation
-sum:field~1Sort descending by this agg (prefix -)

Multiple aggregations are space-separated: "cardinality:stack_id terms:type sum:count~1"

Accessing Aggregation Results

Naming convention: {type}_{field} — the aggregation type prefix + underscore + field name.

csharp
result.Aggregations.Cardinality("cardinality_stack_id").Value
result.Aggregations.Terms<string>("terms_type").Buckets       // .Key, .Total
result.Aggregations.DateHistogram("date_date").Buckets        // .Date, .Total
result.Aggregations.Sum("sum_count").Value
result.Aggregations.Min<DateTime>("min_date").Value
result.Aggregations.Max<DateTime>("max_date").Value
result.Aggregations.Average("avg_value").Value

// Nested aggs inside buckets
foreach (var bucket in result.Aggregations.Terms<string>("terms_stack_id").Buckets)
    bucket.Aggregations.Cardinality("cardinality_user").Value;

FilterExpression (Lucene-style)

FilterExpression accepts Lucene query syntax parsed by Foundatio Parsers:

csharp
.FilterExpression("type:error (status:open OR status:regressed)")
.FilterExpression($"project:{projectId}")
.FilterExpression($"stack:{stackId}")
.FilterExpression($"signature_hash:{signature}")
.FilterExpression("is_deleted:false")

Building OR filters from collections:

csharp
string filter = String.Join(" OR ", stackIds.Select(id => $"stack:{id}"));
Show full SKILL.md (182 more words)Show less

Query Extension Methods

MethodPurposeFile
.Organization(id)Filter by organization_idOrganizationQuery.cs
.Organization(ids)Filter by multiple org IDsOrganizationQuery.cs
.Project(id)Filter by project_idProjectQuery.cs
.Stack(id) / .Stack(ids)Filter by stack_idStackQuery.cs
.ExcludeStack(id)Exclude stack_idStackQuery.cs
.AppFilter(sf)Apply app-level system filterAppFilterQuery.cs
.SystemFilter(query)Chain a pre-built queryFoundatio built-in
.EnforceEventStackFilter()Resolve stack filters to event IDsEventStackFilterQuery.cs
.DateRange(start, end, field)Date range filterFoundatio built-in
.Index(start, end)Route to daily shards (events only)Foundatio built-in
.FieldEquals(expr, value)Exact field matchFoundatio built-in
.SortExpression(sort)Sort expressionFoundatio built-in

Pagination

Use SearchAfterPaging() for deep pagination (never offset-based). NextPageAsync() returns Task<bool> and mutates results in-place.

csharp
var results = await _repository.GetAllAsync(o => o.SearchAfterPaging().PageLimit(500));
do
{
    foreach (var doc in results.Documents)
    {
        // process document
    }
} while (!cancellationToken.IsCancellationRequested && await results.NextPageAsync());

Key rules:

  • Never use while(true) { ... break; } — use do/while or while(condition)
  • Always check CancellationToken in the loop condition

PatchAllAsync / PatchAsync

Use PartialPatch for field-level updates, ScriptPatch for Painless scripts. Pass o => o.ImmediateConsistency() when write-then-read consistency is needed (tests). Use o => o.Notifications(false) to suppress change notifications.

csharp
await _tokenRepository.PatchAllAsync(
    q => q.Organization(orgId).FieldEquals(t => t.IsSuspended, false),
    new PartialPatch(new { is_suspended = true }),
    o => o.ImmediateConsistency());

Anti-Patterns

Avoid these in normal repository/query work:

  • Use _elasticClient.SearchAsync<T>(...) — use CountAsync or FindAsync
  • Use _elasticClient.MultiGetAsync(...) — use GetByIdsAsync
  • Use _elasticClient.DeleteByQueryAsync<T>(...) — use RemoveAllAsync
  • Use _elasticClient.UpdateByQueryAsync<T>(...) — use PatchAllAsync
  • Use _elasticClient.Indices.RefreshAsync(...) — use o => o.ImmediateConsistency()
  • Use while(true) { ... break; } for pagination — use do/while or while(condition)

© exceptionless, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/foundatio-repositories of exceptionless/Exceptionless.

Open the folder on GitHubat commit 300e8ca

Compare with similar skills

Foundatio Repositories next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Foundatio Repositories compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Foundatio Repositories this skillexceptionless/Exceptionless2.5k—~1.9kAutomated safety check: PassApache-2.0
Product Full-Text Searchlobehub/lobehub83k—~4.1kAutomated safety check: PassCustom licence
Elasticsearch Authnaspectrr/deer405—~1.2kAutomated safety check: NotesMIT
Elasticsearch Authzaspectrr/deer405—~1.8kAutomated safety check: PassMIT
Elasticsearch File Ingestaspectrr/deer405—~684Automated safety check: PassMIT
Elasticsearch Security Troubleshootingaspectrr/deer405—~4.9kAutomated safety check: PassMIT

Similar skills

  • Guides work on LobeHub's own product search: the shared search repository, provider choice, Elasticsearch mappings, change syncing and reindexing.

    83k GitHub stars~4.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Elasticsearch Authn

    aspectrr/deer

    Authenticate to Elasticsearch using native, file-based, LDAP/AD, SAML, OIDC, Kerberos, JWT, or certificate realms.

    405 GitHub stars~1.2k tokensUpdated 5 mo ago
    Backend & APIsAuto-check: notes
  • Elasticsearch Authz

    aspectrr/deer

    Manage Elasticsearch RBAC: native users, roles, role mappings, document- and field-level security.

    405 GitHub stars~1.8k tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms.

    405 GitHub stars~684 tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • Diagnose and resolve Elasticsearch security errors: 401/403 failures, TLS problems, expired API keys, role mapping mismatches, and Kibana login issues.

    405 GitHub stars~4.9k tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • Elasticsearch File Ingest

    Kilo-Org/kilo-marketplace

    Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms.

    190 GitHub stars~2.8k tokensUpdated 10 days ago
    Backend & APIsAuto-check passed

More from exceptionless/Exceptionless

All 11 skills in this repo
  • Emil Design Eng

    exceptionless/Exceptionless

    This skill encodes Emil Kowalski's philosophy on UI polish, component design, animation decisions, and the invisible details that make software feel great.

    2.5k GitHub starsUsed in 28 repos~6.8k tokens
    Auto-check passed
  • Shadcn Svelte

    exceptionless/Exceptionless

    Manages shadcn-svelte components and projects — adding, updating, fixing, debugging, styling, and composing UI.

    2.5k GitHub stars~3.6k tokensUpdated today
    Auto-check passed
  • Dogfood

    exceptionless/Exceptionless

    Systematically dogfood Exceptionless locally. An agent skill from exceptionless/Exceptionless.

    2.5k GitHub stars~759 tokensUpdated today
    Auto-check passed
  • Aspire Diagnostics

    exceptionless/Exceptionless

    Inspect local Aspire resource health, logs, traces, and browser telemetry.

    2.5k GitHub stars~769 tokensUpdated today
    Auto-check passed
  • Releasenotes

    exceptionless/Exceptionless

    Evaluate semantic-version impact and generate formatted changelogs from git history since the last release tag.

    2.5k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Tanstack Form

    exceptionless/Exceptionless

    Build Svelte forms with TanStack Form, Zod validation, and API error mapping.

    2.5k GitHub stars~544 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Foundatio Repositories

What does Foundatio Repositories do?

Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions. Foundatio Repositories is an agent skill from exceptionless/Exceptionless. Query, aggregate, patch, or paginate Exceptionless data through its Elasticsearch repository abstractions.

When should I use Foundatio Repositories?

Foundatio Repositories fits situations like: tasks that involve Search implementation.

How do I install Foundatio Repositories in Claude Code?

Run `npx skills add exceptionless/Exceptionless --skill foundatio-repositories -a claude-code`. Or copy the skill folder (.agents/skills/foundatio-repositories in exceptionless/Exceptionless) into .claude/skills/foundatio-repositories in your project. Claude Code loads it when a task matches its description.

How do I install Foundatio Repositories in Codex?

Run `npx skills add exceptionless/Exceptionless --skill foundatio-repositories -a codex`. Or copy the skill folder (.agents/skills/foundatio-repositories in exceptionless/Exceptionless) into .agents/skills/foundatio-repositories in your project. Codex loads it when a task matches its description.

Can I use Foundatio Repositories in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add exceptionless/Exceptionless --skill foundatio-repositories -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/foundatio-repositories, .gemini/skills/foundatio-repositories, .github/skills/foundatio-repositories and .opencode/skills/foundatio-repositories in your project.

What does Foundatio Repositories need to run?

SKILL.md names no scripts, command-line tools or credentials: Foundatio Repositories is instructions for the agent only.

Does Foundatio Repositories access the network?

SKILL.md names 2 domains. As links in the text: repositories.foundatio.dev and parsers.foundatio.dev. This is read from the text; nothing was executed.

Is Foundatio Repositories safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Foundatio Repositories use?

Foundatio Repositories is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Foundatio Repositories use?

About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Foundatio Repositories?

Skills that share tags, products or a category with Foundatio Repositories: Product Full-Text Search (lobehub/lobehub, 83k stars), Elasticsearch Authn (aspectrr/deer, 405 stars), Elasticsearch Authz (aspectrr/deer, 405 stars) and Elasticsearch File Ingest (aspectrr/deer, 405 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Foundatio Repositories?

exceptionless (a GitHub organization) maintains it in exceptionless/Exceptionless, which has 2,456 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.

Source: exceptionless/Exceptionless on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.