brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
monorepo-developmentNavigate LangChain's Python monorepo packages, package-local uv workflows, validation commands, API stability checks, PR conventions, and docs/model-reference guidance.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when a task changes repository structure, package metadata, public Python APIs, tests, lint/type workflows, documentation examples, or contributor-facing conventions in the LangChain Python monorepo.
uv, package roots, dependency groups, public API checks, model IDs, or optional dependencies are unclear.libs/core: Core primitives and abstractions in langchain-core; use for base interfaces, schemas, messages, tools, runnables, callbacks, serialization, and API contracts shared across packages.libs/langchain_v1: Actively maintained langchain package; use for high-level public utilities and agent/application APIs that depend on langchain-core and LangGraph.libs/langchain: langchain-classic; treat as legacy/classic surface and avoid new feature work unless the user specifically targets classic behavior or compatibility.libs/text-splitters: langchain-text-splitters; use for text chunking utilities and splitter-specific tests.libs/partners/<provider>: Team-maintained integration packages such as OpenAI, Anthropic, Ollama, DeepSeek, xAI, and others; keep provider-specific behavior here and route deeper provider implementation to the integrations sub-skill if present at ../integrations/SKILL.md.libs/standard-tests: langchain-tests; use for standardized conformance tests shared by integrations.libs/model-profiles: langchain-model-profiles; use for model profile data tooling and profile refresh operations.cd libs/<package>
uv sync --group test
uv run --group test pytest tests/unit_tests/path/to/test_file.py
make lint_package
make type
Adjust groups by package metadata: use --group lint for lint-only commands, --group typing or --all-groups when mypy needs optional typing dependencies, and add --group test_integration only for explicitly requested integration tests. Do not use pip, poetry, conda, or ad-hoc virtual environments for LangChain package development.
Before changing a public function, class, method, or exported symbol:
__init__.py or documented as public.*, new_option: str | None = None.tests/unit_tests/ tree.Warn the user before making a signature change that could break code written against last week's release.
Prefer package-local validation from the owning directory:
uv run --group test pytest tests/unit_tests/... or make test TEST_FILE=tests/unit_tests/....make lint_package, make lint_tests, or make lint_diff when the package Makefile supports them.make format or make format_diff only after confirming it is appropriate for the task.make type or the package's mypy command through uv run.make check_imports where available; package scripts load source files to catch import-time failures.make check_version where available; these compare package metadata with package-specific version artifacts.Skip or defer integration tests when they need network credentials, provider services, Docker services, or heavy optional dependencies and the user did not ask for them. Record the skip condition in the handoff.
For adding packages or integrations, keep work at an operational level unless the user explicitly asks for provider-specific implementation:
pyproject.toml, uv.lock, package Makefile, tests, and scripts following existing package patterns.[tool.uv.sources] for in-repo dependencies.