diff --git a/.gitignore b/.gitignore index f1ef255d..b7fe8d82 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,9 @@ poetry.lock # CLDK files .codeanalyzer + +# Agent guide files — un-ignore past the global ~/.gitignore_global rule that +# excludes AGENTS.md, so the CLAUDE.md/AGENTS.md/GEMINI.md guide is tracked. +!CLAUDE.md +!AGENTS.md +!GEMINI.md diff --git a/AGENTS.md b/AGENTS.md new file mode 120000 index 00000000..681311eb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1 @@ +CLAUDE.md \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 1dfc8f23..ea15a2e6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,6 +2,23 @@ Agent guidance for `codellm-devkit/python-sdk`. +## Supported languages + +The SDK exposes one static factory method per language on `CLDK`. Each returns a facade backed by +a per-language `AnalysisBackend` ABC, with a local codeanalyzer backend and (where available) +an optional read-only Neo4j backend — selected by the *type* of the `backend=` config object. + +| Language | Entry point | Local backend | Neo4j backend | Models | +|----------|-------------|---------------|---------------|--------| +| Java | `CLDK.java(...)` | `JCodeanalyzer` (bundled JAR, subprocess) | `JNeo4jBackend` | `cldk/models/java/` | +| Python | `CLDK.python(...)` | `PyCodeanalyzer` (in-process `codeanalyzer-python`) | `PyNeo4jBackend` | re-exported from `codeanalyzer-python` | +| TypeScript | `CLDK.typescript(...)` | `TSCodeanalyzer` (`codeanalyzer-typescript` binary, subprocess) | `TSNeo4jBackend` | `cldk/models/typescript/` | +| C | `CLDK.c(...)` | libclang (in-process, syntactic only) | — | `cldk/models/c/` | + +The legacy `CLDK(language="").analysis(...)` entry still works as a compat shim. Adding a +language means a new factory method + facade + backend ABC/impl(s) + models + tests — **update this +table in the same change**. + ## I implement features myself — you assist For feature work, **I write the implementation myself** to stay fluent in my own SDK. Act as a helper, not the author: diff --git a/GEMINI.md b/GEMINI.md new file mode 120000 index 00000000..681311eb --- /dev/null +++ b/GEMINI.md @@ -0,0 +1 @@ +CLAUDE.md \ No newline at end of file