# neoCoder Agent Instructions

## Project Overview
neoCoder is an AI-native engineering agent for enterprise-scale codebases. It's written in Python and uses the Anthropic Claude API.

## Commands

**Build:** `pip install -e .`
**Test:** `pytest tests/`
**Lint:** `ruff check neoCoder/`
**Typecheck:** `mypy neoCoder/`

## Code Style

- Use Python 3.10+ features (type hints, match statements)
- Follow PEP 8 with 100 char line limit
- Use dataclasses for data structures
- Prefer `pathlib.Path` over `os.path`
- Use `logging` module, not print statements
- All public functions must have docstrings

## Architecture

- `neoCoder/sdk/` — Core SDK (orchestrator, LLM clients, extensions, memory)
- `neoCoder/nca/` — neoCoder Agent implementation
- `neoCoder/cli/` — Command-line interface
- `neoCoder/mcp/` — MCP server integration

## Important Patterns

- Extensions follow the `Extension` base class pattern
- Memory is hierarchical: working → session → long-term
- Configuration flows: settings.json → NCAConfig → OrchestratorConfig
- Session isolation: each agent instance gets unique session ID

## Do NOT

- Add comments explaining obvious code
- Use `print()` for debugging (use `logging.debug()`)
- Hardcode paths (use `Path` and config)
- Create circular imports between modules
