Agent skill

Langchain CI Integration

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Wire LangChain 1.0 / LangGraph 1.0 tests into a GitHub Actions pipeline — unit tests with FakeListChatModel, VCR-gated integration tests, warning-filter policy, and eval-regression merge gates.

MITAuto-check passedAI & LLM Engineering

Install Langchain CI Integration

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-ci-integration -a claude-code

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

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace langchain-ci-integration --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/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/langchain-ci-integration .claude/skills/langchain-ci-integration && 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
langchain-ci-integration
GitHub stars
2.8k
Token cost
~4.4k tokens
SKILL.md length
1,482 words
Files
6 (incl. references)
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Wire LangChain 1.0 / LangGraph 1.0 tests into a GitHub Actions pipeline — unit tests with FakeListChatModel, VCR-gated integration tests, warning-filter policy, and eval-regression merge gates.

  • Works in 6 steps: GHA workflow skeleton with four jobs → Unit job: -W error + filterwarnings to… → Integration job: VCR replay +… → …
  • Setting up GHA for a new LLM service
  • SKILL.md covers Overview, Prerequisites, Instructions and Output, plus 3 more sections
  • Calls pytest and git; reaches github.com

What it does

Langchain CI Integration is an agent skill from jeremylongshore/tons-of-skills-marketplace. Wire LangChain 1.0 / LangGraph 1.0 tests into a GitHub Actions pipeline — unit tests with FakeListChatModel, VCR-gated integration tests, warning-filter policy, and eval-regression merge gates. Complements langchain-local-dev-loop (F23) which covers the inner loop; THIS covers the CI wire-up. Use when setting up GHA for a new LLM service, after a VCR cassette leak incident, or hardening an existing pipeline. Trigger with "langchain ci", "langchain github actions", "langchain test pipeline", "vcr ci", "langchain…

Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/eval-regression-gate.md`, `references/github-actions-workflow.md` and `references/integration-gating.md`). Compatibility notes: Designed for Claude Code

It sits in AI & LLM Engineering, covering Building AI agents, Unit testing and CI/CD. It works with LangChain, GitHub Actions, pytest and LangGraph. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Setting up GHA for a new LLM service
  • After a VCR cassette leak incident
  • Hardening an existing pipeline
  • With langchain ci

Example prompts

  • “langchain ci”
  • “langchain github actions”
  • “langchain test pipeline”
  • “/langchain-ci-integration”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(python:*), Bash(pytest:*)

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. GHA workflow skeleton with four jobs
  2. Unit job: -W error + filterwarnings to neutralize P45
  3. Integration job: VCR replay + filter_headers (P44)
  4. Eval-regression gate: merge-blocking PR comment
  5. Pre-commit hooks: secret scan + prompt lint
  6. Dry-run chain loader: catch ImportError migration breaks

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(python:*)
    • Bash(pytest:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pytest
    • git

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    Also links to:

    • python.langchain.com
    • vcrpy.readthedocs.io
    • docs.github.com
    • docs.pytest.org

    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.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Langchain CI Integration loads about 4.4k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 146 tokens; SKILL.md has 1,482 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~146
When it runs · the whole SKILL.md, loaded when a task matches
~4.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

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 jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 1,482 words, ~4,364 tokens.

Download SKILL.mdSave it as .claude/skills/langchain-ci-integration/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
langchain-ci-integration
description
Wire LangChain 1.0 / LangGraph 1.0 tests into a GitHub Actions pipeline — unit tests with FakeListChatModel, VCR-gated integration tests, warning-filter policy, and eval-regression merge gates. Complements langchain-local-dev-loop (F23) which covers the inner loop; THIS covers the CI wire-up. Use when setting up GHA for a new LLM service, after a VCR cassette leak incident, or hardening an existing pipeline. Trigger with "langchain ci", "langchain github actions", "langchain test pipeline", "vcr ci", "langchain eval gate", "pytest -W error langchain".
allowed-tools
Read, Write, Edit, Bash(python:*), Bash(pytest:*)
compatibility
Designed for Claude Code
version
2.7.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, langchain, langgraph, python, langchain-1.0, ci, github-actions, testing

LangChain CI Integration (Python)

Overview

A PR passes every test on your laptop. You push. GHA runs pytest and aborts during collection — before a single test executes — with:

PytestUnraisableExceptionWarning: Exception ignored in: ...
DeprecationWarning: langchain_community.llms ...

The org runs pytest -W error and a provider SDK emitted a DeprecationWarning at import time, which the warning filter promoted to an exception while pytest was still walking the test tree. This is P45 and it blocks every PR for the team until someone pins a filterwarnings config.

Meanwhile the integration suite has its own failure mode: a VCR cassette recorded three months ago at temperature=0 against Anthropic is now flaking against a snapshot. temperature=0 is not deterministic on Claude — it still nucleus-samples (P05) — so the cassette captured one valid completion, not the valid completion. And yesterday a reviewer caught Authorization: Bearer sk-ant-... in a cassette file that had been committed six weeks ago (P44) because vcrpy records all request headers by default.

This skill covers the outer loop: the GitHub Actions workflow, the unit / integration / eval gate separation, VCR cassette hygiene, pytest warning policy, and a merge-blocking eval regression gate. The inner loop — fake model fixtures, VCR recording workflow, local determinism tricks — lives in langchain-local-dev-loop (F23); cross-reference it, do not duplicate it. Pin: langchain-core 1.0.x, langgraph 1.0.x, actions/checkout@v4, actions/setup-python@v5, vcrpy 6.x. Pain-catalog anchors: P05, P43, P44, P45.

Prerequisites

  • Python 3.10, 3.11, or 3.12 (matrix)
  • langchain-core >= 1.0, < 2.0, langgraph >= 1.0, < 2.0
  • pytest >= 8, pytest-asyncio, vcrpy >= 6 (integration)
  • langchain-local-dev-loop (F23) applied locally — fixtures and recording workflow
  • GitHub repo with Actions enabled; secrets set for any live-API nightly job

Instructions

Step 1 — GHA workflow skeleton with four jobs

Single workflow at .github/workflows/tests.yml. Matrix on unit only; keep integration and eval single-version to control cost.

yaml
name: tests

on:
  pull_request:
  push:
    branches: [main]
  schedule:
    - cron: "0 6 * * *"  # nightly live-API re-record check (06:00 UTC)

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  unit:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python: ["3.10", "3.11", "3.12"]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python }}
          cache: pip
          cache-dependency-path: |
            pyproject.toml
            requirements*.txt
      - run: pip install -e ".[test]"
      - run: pytest tests/unit/ -W error --timeout=30 -q

  integration:
    needs: unit
    if: github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'run-integration')
    runs-on: ubuntu-latest
    env:
      RUN_INTEGRATION: "1"
      VCR_MODE: "none"  # replay-only; nightly cron flips to "once"
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: "3.12", cache: pip }
      - run: pip install -e ".[test,integration]"
      - run: pytest tests/integration/ -W error --timeout=60 -q

  eval:
    needs: unit
    if: github.event_name == 'pull_request'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with: { fetch-depth: 0 }   # need base ref for delta comparison
      - uses: actions/setup-python@v5
        with: { python-version: "3.12", cache: pip }
      - run: pip install -e ".[test,eval]"
      - run: python scripts/run_eval.py --baseline origin/${{ github.base_ref }} --head HEAD --n 100
      # run_eval.py posts a PR comment and exits nonzero on regression > threshold

  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: "3.12", cache: pip }
      - run: pip install -e ".[dev]"
      - run: ruff check .
      - run: python scripts/dryrun_load_chains.py   # catches ImportError migration regressions

See GHA Workflow Reference for the full job definitions including the secret-injection pattern, the matrix caching nuance, and the softprops/action-gh-release-style PR comment action used by the eval job.

Step 2 — Unit job: -W error + filterwarnings to neutralize P45

Root cause of the collection abort: pytest collects tests by importing them. Some provider SDKs emit DeprecationWarning on import. With -W error those become exceptions during collection. Fix at the filter level, not by dropping -W error (which would mask real warnings).

In pyproject.toml:

toml
[tool.pytest.ini_options]
filterwarnings = [
    "error",
    # P45 — neutralize known import-time noise; scoped per module so new
    # warnings from YOUR code still fail the build.
    "ignore::DeprecationWarning:langchain_community.*",
    "ignore::DeprecationWarning:pydantic.*",
    "ignore:Pydantic serializer warnings:UserWarning",
]
asyncio_mode = "auto"
testpaths = ["tests"]

The ordering matters — "error" first, specific "ignore" entries after, so the filters override the global promote-to-error. Keep the list narrow: a blanket ignore::DeprecationWarning hides regressions you need to see.

Unit tests use FakeListChatModel fixtures from F23 (do not redefine them here). One CI-specific gotcha (P43): FakeListChatModel does not emit response_metadata["token_usage"], so any callback that asserts on token counts will break. Either subclass the fake and inject generation_info, or gate the assertion:

python
def test_chain_uses_tokens(patched_chat_model):
    result = chain.invoke({"input": "hi"})
    if patched_chat_model.__class__.__name__ == "FakeListChatModel":
        pytest.skip("fake model doesn't emit token_usage (P43)")
    assert result.response_metadata["token_usage"]["total_tokens"] > 0

Budget: unit job should finish in <2 minutes across the 3-version matrix. If it doesn't, something is calling out to a real provider — check with pytest --collect-only -q | wc -l and audit which tests lack fake-model fixtures.

Step 3 — Integration job: VCR replay + filter_headers (P44)

Integration tests replay pre-recorded VCR cassettes. Three rules:

  1. Gate the job. if: contains(github.event.pull_request.labels.*.name, 'run-integration') or env.RUN_INTEGRATION == "1", plus a nightly cron that flips to VCR_MODE=once and re-records against live APIs. PRs default to pure replay.
  2. Enforce filter_headers at the fixture level — not per-test. A single conftest.py prevents any contributor from recording a cassette with raw credentials.
  3. Pre-commit + CI both scan cassettes for leaked keys. Belt and suspenders.

Fixture (lives in tests/integration/conftest.py, owned by this skill's pipeline concern — F23 owns the recording workflow):

python
import vcr
import pytest

@pytest.fixture(scope="module")
def vcr_config():
    return {
        "filter_headers": [
            "authorization",
            "x-api-key",
            "anthropic-version",
            ("openai-organization", "REDACTED"),
        ],
        "filter_post_data_parameters": ["api_key"],
        "record_mode": "none",  # CI default: replay only
        "match_on": ["method", "scheme", "host", "port", "path", "query"],
    }

Integration suite must finish in <5 minutes wall-clock on the runner, or you will start getting cancellation flakes from the concurrency block. If you exceed 5 minutes, split into a nightly-only long tier.

See Integration Gating for the full live-vs-replay decision tree, cost-per-run budget worksheet, and the VCR_MODE flip pattern.

Step 4 — Eval-regression gate: merge-blocking PR comment

The eval job runs the langchain-eval-harness harness (see that skill for the harness itself — this skill only covers the CI wire-up) against both the PR branch and the merge base. Post a comment; block merge on regression.

scripts/run_eval.py is a thin CI wrapper: check out baseline and head via git worktree, run the harness at each ref, diff the results, post a PR comment, exit nonzero on regression. Full implementation in Eval Regression Gate.

Thresholds:

GateThresholdRationale
Aggregate scoredrop >2%One-sigma noise on n=100 with well-behaved evals
Per-example scoredrop >5% on any single caseCatches quiet regressions masked by aggregate averaging
Sample size floorn ≥ 100Below this, aggregate delta is dominated by noise

The PR comment is a Markdown table with before / after / Δ per metric plus a bold red line if the gate failed. Required-status-check on the eval job completes the enforcement. See Eval Regression Gate for the comment template and the noise-budget calculation.

Step 5 — Pre-commit hooks: secret scan + prompt lint

Two layers: local (pre-commit) and CI (re-runs the same hooks as a final catch). Local alone is not sufficient — contributors can skip with -n. CI alone is slow. Run both.

.pre-commit-config.yaml:

yaml
repos:
  - repo: local
    hooks:
      - id: vcr-secret-scan
        name: VCR cassette secret scan (P44)
        entry: python scripts/scan_cassettes.py
        language: system
        files: "tests/integration/cassettes/.*\\.ya?ml$"
        pass_filenames: true

      - id: prompt-convention-lint
        name: prompt-convention lint
        entry: python scripts/lint_prompts.py
        language: system
        files: "prompts/.*\\.j2$|src/.*prompts?\\.py$"

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.6.9
    hooks:
      - id: ruff
      - id: ruff-format

  - repo: https://github.com/Yelp/detect-secrets
    rev: v1.5.0
    hooks:
      - id: detect-secrets
        args: ["--baseline", ".secrets.baseline"]

scan_cassettes.py greps for sk-[A-Za-z0-9]{20,}, sk-ant-[A-Za-z0-9_-]{20,}, AIza[A-Za-z0-9_-]{35} (Google), xoxb-, and Bearer [A-Za-z0-9._-]{20,}. Fail on any match. This is your last line of defense before P44 ships to main. See Pre-Commit Hooks for the full pattern list, the prompt-convention lint rules (aligned with claude-prompt-conventions), and the detect-secrets baseline-rotation policy.

Show full SKILL.md (616 more words)Show less
Step 6 — Dry-run chain loader: catch ImportError migration breaks

LangChain 0.x → 1.0 moved integrations into provider packages. A chain that imports from langchain.chat_models import ChatOpenAI works in local dev if you still have the old compat shim installed, and explodes in CI. Dry-run-load every chain module at lint time:

python
# scripts/dryrun_load_chains.py
import importlib, pathlib, sys, traceback

failures = []
for py in pathlib.Path("src/chains").rglob("*.py"):
    mod = str(py.with_suffix("")).replace("/", ".")
    try:
        importlib.import_module(mod)
    except Exception:
        failures.append((mod, traceback.format_exc()))

if failures:
    for mod, tb in failures:
        print(f"::error::chain {mod} failed to import\n{tb}")
    sys.exit(1)

Runs in the lint job. Costs ~5 seconds. Catches every ImportError and every top-level NameError from a bad rename before a single unit test fires.

Output

  • GHA workflow with four isolated jobs (unit / integration / eval / lint)
  • pyproject.toml filterwarnings config that survives -W error (P45)
  • VCR conftest.py fixture with enforced filter_headers (P44)
  • run_eval.py CI wrapper that posts PR comments and blocks merge on regression
  • .pre-commit-config.yaml with cassette secret scan + prompt lint + ruff
  • Dry-run chain loader that catches migration ImportErrors
Gate policy
GateRequired?Target speedOn failure
unit (3 Python versions)yes, every PR<2 minblock PR
lint + dryrun-loadyes, every PR<30 sblock PR
integration (VCR replay)on run-integration label or nightly<5 minblock merge when run
integration (live, nightly cron)no<15 minopen issue on fail
eval regression (n≥100)yes, every PR<10 minblock merge if agg >2% or per-example >5%
pre-commit (local)yes<10 sreject commit

Error Handling

ErrorCauseFix
PytestUnraisableExceptionWarning during collection-W error + SDK import-time DeprecationWarning (P45)Add scoped filterwarnings = ["ignore::DeprecationWarning:langchain_community.*"] to pyproject.toml
VCR replay mismatch after weeks of passingCassette recorded at temp=0 on Anthropic (P05); model driftRe-record on nightly cron with VCR_MODE=once; treat replay mismatches as eval-gate concerns, not unit failures
sk-ant-... in cassette flagged by reviewervcrpy records all headers by default (P44)Enforce filter_headers in conftest.py; add scan_cassettes.py to pre-commit AND CI
Callback AssertionError: 'token_usage' not in response_metadataFakeListChatModel doesn't emit metadata (P43)Subclass the fake to inject generation_info, or pytest.skip on fake-model detection
ImportError: cannot import name 'ChatOpenAI' from 'langchain.chat_models' in CI onlyLegacy compat shim installed locally, not in CIAdd dryrun_load_chains.py to lint job; fail at lint, not at test
Eval job times out at 10 minn too large or harness not using asyncio concurrencyCap at n=100 for PRs; run n=500 nightly; see F23 for async harness pattern
Concurrency block cancels integration runLong job + rapid pushesDo not disable; keep integration <5 min or split long tier to nightly

Examples

Wiring a new repo from scratch

Copy the Step 1 workflow, the Step 2 pyproject.toml block, and the Step 5 pre-commit config. Create tests/unit/, tests/integration/cassettes/, scripts/run_eval.py, scripts/dryrun_load_chains.py, scripts/scan_cassettes.py. Apply langchain-local-dev-loop (F23) first so fake-model fixtures exist before the unit job runs. Enable required status checks: unit (3.10), unit (3.11), unit (3.12), lint, eval. Integration stays optional (label-gated).

See GHA Workflow Reference for the complete copy-pasteable workflow.

Hardening after a P44 cassette-leak incident

Rotate every leaked key first (not a CI concern — incident response). Then: add scan_cassettes.py to pre-commit, re-scan the full history with git log -p -- tests/integration/cassettes/, rewrite history with git-filter-repo if keys hit main, enforce the filter_headers fixture going forward. See Pre-Commit Hooks for the full pattern list and the detect-secrets baseline-rotation playbook.

Wiring the eval harness into an existing repo

The harness itself lives in langchain-eval-harness. THIS skill only supplies run_eval.py (the CI wrapper that reads the harness output, computes deltas, and posts PR comments) plus the gate thresholds. Drop in the Step 4 script, add the eval job to .github/workflows/tests.yml, make eval a required status check. See Eval Regression Gate for the PR-comment Markdown template and the n≥100 noise-budget derivation.

Resources

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

Files

SKILL.md and 5 other files (references) in skills/.curated/langchain-ci-integration of jeremylongshore/tons-of-skills-marketplace.

  • SKILL.md
  • references/eval-regression-gate.md
  • references/github-actions-workflow.md
  • references/integration-gating.md
  • references/one-pager.md
  • references/pre-commit-hooks.md

Open the folder on GitHubat commit cfae287

Compare with similar skills

Langchain CI Integration 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.

Langchain CI Integration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Langchain CI Integration this skilljeremylongshore/tons-of-skills-marketplace2.8k—~4.4kAutomated safety check: PassMIT
Langgraph Testing Evaluationsoba-labs/langchain-agent-skills107—~2.3kAutomated safety check: PassMIT
Simple Modern Uvjlevy/simple-modern-uv301—~1.9kAutomated safety check: PassMIT
Code PatternsAedelon/claude-code-blueprint120—~1.2kAutomated safety check: PassCustom licence
Add Example AgentGetBindu/Bindu10k—~1.1kAutomated safety check: NotesCustom licence
Failproof AI SDK IntegrationFailproofAI/failproofai5.3k—~6kAutomated safety check: PassCustom licence

Similar skills

  • Langgraph Testing Evaluation

    soba-labs/langchain-agent-skills

    A skill your agent uses when you need to test or evaluate LangGraph/LangChain agents: writing unit or integration tests, generating test scaffolds, mocking LLM/tool behavior, running trajectory…

    107 GitHub stars~2.3k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check passed
  • Simple Modern Uv

    jlevy/simple-modern-uv

    Start, selectively modernize, fully migrate, or update Python projects using simple-modern-uv practices: uv, ruff, BasedPyright, pytest, GitHub Actions CI, and tag-driven PyPI publishing.

    301 GitHub stars~1.9k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Code Patterns

    Aedelon/claude-code-blueprint

    Reference patterns for REST APIs, pytest/vitest testing, Docker multi-stage builds, GitHub Actions CI/CD, PostgreSQL, TypeScript generics, Python async, and React Server Components.

    120 GitHub stars~1.2k tokensUpdated 7 mo ago
    DevOps & CloudAuto-check passed
  • Add Example Agent

    GetBindu/Bindu

    Add a new self-contained example agent under examples/. An agent skill from GetBindu/Bindu.

    10k GitHub stars~1.1k tokensUpdated 1 mo ago
    AI & LLM EngineeringAuto-check: notes
  • Failproof AI SDK Integration

    FailproofAI/failproofai

    Helps instrument a custom Python or TypeScript agent to record events for Failproof AI, verify what gets written, and run an evaluator worker that scores the runs.

    5.3k GitHub stars~6k tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed
  • Omnigent Framework Detection

    omnigent-ai/omnigent

    Scans Python agent code for framework imports and recommends the matching Omnigent executor type, or says when the framework is not natively supported yet.

    11k GitHub stars~610 tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Questions about Langchain CI Integration

What does Langchain CI Integration do?

Wire LangChain 1.0 / LangGraph 1.0 tests into a GitHub Actions pipeline — unit tests with FakeListChatModel, VCR-gated integration tests, warning-filter policy, and eval-regression merge gates. Langchain CI Integration is an agent skill from jeremylongshore/tons-of-skills-marketplace.0 tests into a GitHub Actions pipeline — unit tests with FakeListChatModel, VCR-gated integration tests, warning-filter policy, and eval-regression merge gates.

When should I use Langchain CI Integration?

Langchain CI Integration fits situations like: setting up GHA for a new LLM service; after a VCR cassette leak incident; hardening an existing pipeline; with langchain ci.

How do I install Langchain CI Integration in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-ci-integration -a claude-code`. Or copy the skill folder (skills/.curated/langchain-ci-integration in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/langchain-ci-integration in your project. Claude Code loads it when a task matches its description.

How do I install Langchain CI Integration in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill langchain-ci-integration -a codex`. Or copy the skill folder (skills/.curated/langchain-ci-integration in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/langchain-ci-integration in your project. Codex loads it when a task matches its description.

Can I use Langchain CI Integration 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 jeremylongshore/tons-of-skills-marketplace --skill langchain-ci-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/langchain-ci-integration, .gemini/skills/langchain-ci-integration, .github/skills/langchain-ci-integration and .opencode/skills/langchain-ci-integration in your project.

What does Langchain CI Integration need to run?

Going by SKILL.md and its folder, Langchain CI Integration needs the command-line tools its instructions call (pytest and git). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(python:*), Bash(pytest:*). Compatibility (from SKILL.md): Designed for Claude Code.

Does Langchain CI Integration access the network?

SKILL.md names 5 domains. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. As links in the text: python.langchain.com, vcrpy.readthedocs.io, docs.github.com and docs.pytest.org. This is read from the text; nothing was executed.

Is Langchain CI Integration 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 Langchain CI Integration use?

Langchain CI Integration is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Langchain CI Integration use?

About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.6k tokens, read only when the agent opens those files.

What are the alternatives to Langchain CI Integration?

Skills that share tags, products or a category with Langchain CI Integration: Langgraph Testing Evaluation (soba-labs/langchain-agent-skills, 107 stars), Simple Modern Uv (jlevy/simple-modern-uv, 301 stars), Code Patterns (Aedelon/claude-code-blueprint, 120 stars) and Add Example Agent (GetBindu/Bindu, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Langchain CI Integration?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.