Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/.licenserc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ header:
- docker/x86_64/manylinux2014/oneAPI.repo
- docs/cpp/index/loader-compatibility.csv
- docs/requirements.txt
- AGENTS.md
- '**/AGENTS.md'
- .github/copilot-instructions.md
- .github/instructions/*.instructions.md

comment: never

Expand Down
8 changes: 8 additions & 0 deletions .github/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — .github/

CI/CD workflows, automation, templates, and Copilot instructions.

- Keep required checks and matrix in workflow files only.
- Keep instruction docs long-lived (no mutable values).
- Treat workflow/job renames as breaking for tooling; change only intentionally.
- When CI behavior changes, align contributor-facing docs.
23 changes: 23 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# GitHub Copilot Instructions — ScalableVectorSearch

This file is the canonical instruction set for Copilot behavior in this repository
(required flow, precedence, and fallback rules).

`AGENTS.md` is reserved for AGENTS-aware tooling context and should not duplicate
Copilot policy text.

## Mandatory
1. Read root `AGENTS.md` first.
2. Read the nearest directory `AGENTS.md` for edited files.
3. If multiple apply, use the most specific.

## Authoring rules
- Keep suggestions minimal and scoped.
- Use source-of-truth files for mutable details.
- Do not invent or hardcode versions/flags/matrices.

## Source-of-truth files
- `CMakeLists.txt`, `cmake/*.cmake`
- `.github/workflows/`
- `.clang-format`, `.pre-commit-config.yaml`
- `include/svs/`, `bindings/python/`
10 changes: 10 additions & 0 deletions .github/instructions/build-system.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
applyTo: "{CMakeLists.txt,cmake/**}"
---

# Build System Instructions for GitHub Copilot

- Use existing option/target patterns; avoid introducing parallel build paths.
- Keep configuration values referenced from existing CMake modules.
- Do not hardcode versions/toolchain assumptions in instructions or comments.
- For behavior changes, suggest updating/validating CI workflows in `.github/workflows/`.
10 changes: 10 additions & 0 deletions .github/instructions/testing.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
applyTo: "tests/**"
---

# Testing Instructions for GitHub Copilot

- Add regression tests for bug fixes.
- Keep tests deterministic and scoped to changed behavior.
- Prefer smallest test surface that proves correctness.
- Refer to repository test/build configuration as source of truth rather than duplicating values.
12 changes: 12 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# AGENTS.md

This file is for AGENTS-aware tools.

Scope:
- Tool-specific guidance for AGENTS-aware agents.
- Repository context that is not Copilot-specific.

For Copilot policy (required flow, source-of-truth, fallback rules), see:
- `.github/copilot-instructions.md` (canonical for Copilot behavior)

Do not duplicate Copilot policy here.
7 changes: 7 additions & 0 deletions benchmark/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# AGENTS.md — benchmark/

Benchmark harness and performance-eval code.

- Keep runs reproducible (inputs/config in repo).
- Separate harness changes from algorithm changes when possible.
- If shared with tests, validate impacted test targets.
8 changes: 8 additions & 0 deletions bindings/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — bindings/

Interop layer between core C++ and exposed APIs.

- Read: `bindings/cpp/AGENTS.md`, `bindings/python/AGENTS.md`.
- Keep contracts aligned with `include/svs/`.
- Make ownership/lifetime explicit across boundaries.
- Pair behavior/signature changes with tests (and examples when user-facing).
7 changes: 7 additions & 0 deletions bindings/cpp/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# AGENTS.md — bindings/cpp/

C++ binding/demo integration code.

- `include/svs/` is API authority.
- Avoid parallel abstractions that drift from core API.
- Call out ABI-facing changes in PR notes.
8 changes: 8 additions & 0 deletions bindings/python/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — bindings/python/

Python package, extension bindings, and Python-facing behavior.

- Source of truth: files under `bindings/python/` (+ cross-check with `CMakeLists.txt`).
- Keep API compatibility by default.
- Preserve clear dtype/shape validation and error messages.
- Add tests for every user-visible behavior change.
8 changes: 8 additions & 0 deletions cmake/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — cmake/

Build modules, dependency wiring, and feature toggles.

- `CMakeLists.txt` + `cmake/*.cmake` are authoritative.
- Keep option names/defaults stable unless task requires change.
- Prefer additive options over rewrites.
- Validate option/target changes against CI workflows.
8 changes: 8 additions & 0 deletions examples/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — examples/

User-facing C++/Python examples.

- Keep examples runnable and minimal.
- Prefer clarity over micro-optimization.
- Update examples when public APIs change.
- Do not embed mutable version/environment details.
8 changes: 8 additions & 0 deletions include/svs/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — include/svs/

Public C++ headers and API contracts.

- Backward compatibility is default.
- Prefer additive API evolution.
- Keep headers self-contained and aligned with CMake C++ standard.
- Pair public API changes with tests and docs.
8 changes: 8 additions & 0 deletions tests/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# AGENTS.md — tests/

Unit/integration/benchmark-adjacent tests.

- Add regressions for bug fixes.
- Keep tests deterministic and scoped.
- Match test scope to changed surface area.
- Gate assertions for arch/feature-specific behavior.
7 changes: 7 additions & 0 deletions tools/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# AGENTS.md — tools/

Developer and maintenance tools/scripts.

- Keep tools deterministic and automation-friendly.
- Avoid local-machine assumptions.
- If outputs feed tests/benchmarks, preserve output contract.
7 changes: 7 additions & 0 deletions utils/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# AGENTS.md — utils/

Utility binaries/helpers for benchmarking and characterization.

- Keep behavior explicit (comments/CLI help).
- Keep utility code separate from core library logic.
- Preserve output format when consumed by scripts.
Loading