{"owner":"ModelEngine-Group","repo":"nexent","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS\n\n<!-- Skills section removed -->\n\n<skills_system priority=\"1\">\n\n## Available Skills\n\n<!-- SKILLS_TABLE_START -->\n<usage>\nWhen users ask to perform tasks, check if any of the available skills below can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.\n\nHow to use skills:\n- Invoke: `npx openskills read <skill-name>` (run in your shell)\n  - For multiple: `npx openskills read skill-one,skill-two`\n- The skill content will load with detailed instructions on how to complete the task\n- Base directory provided in output for resolving bundled resources (references/, scripts/, assets/)\n\nUsage notes:\n- Only use skills listed in <available_skills> below\n- Do not invoke a skill that is already loaded in your context\n- Each skill invocation is stateless\n</usage>\n\n<available_skills>\n\n<skill>\n<name>prompts-writing</name>\n<description>Create, refine, and optimize high-quality YAML prompts for AI assistants. Use when working with prompt templates, system prompts, agent prompts, or any prompt engineering tasks. Provides structure guidelines, template patterns, and quality standards for YAML-based prompts.</description>\n<location>project</location>\n</skill>\n\n<skill>\n<name>skill-creator</name>\n<description>Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.</description>\n<location>project</location>\n</skill>\n\n</available_skills>\n<!-- SKILLS_TABLE_END -->\n\n</skills_system>\n\n---\n\n## Project Overview\n\nNexent is a zero-code platform for auto-generating AI agents. Monorepo with:\n- `backend/` - FastAPI HTTP API\n- `sdk/nexent/` - Core agent framework (pip package)\n- `frontend/` - Next.js web UI\n- `docker/` & `k8s/` - Deployment configs\n\n---\n\n## Developer Commands\n\n### Backend (Python 3.11)\n\n```bash\n# Setup\ncd backend && uv sync --extra data-process --extra test\n\n# Install SDK for development\ncd backend && uv pip install -e \"../sdk[dev]\"\n```\n\n### Run Tests\n\n```bash\n# From project root, with backend venv activated\nsource backend/.venv/bin/activate && python test/run_all_test.py\n\n# Single test file\npytest test/backend/apps/test_agent_app.py -v\n```\n\n### Frontend (Next.js)\n\n```bash\ncd frontend\nnpm run dev          # Development server\nnpm run check-all    # type-check + lint + format + build\n```\n\n### Docker Deployment\n\n```bash\ncd docker\ncp deploy/env/.env.example deploy/env/.env  # Fill required configs\nbash deploy.sh        # Interactive deployment\n```\n\n---\n\n## Architecture\n\n### Environment Variables\n\n**Single source of truth**: `backend/consts/const.py`\n\n- NO direct `os.getenv()` / `os.environ.get()` outside this file\n- SDK (`sdk/nexent/`) NEVER reads env vars - accepts config via parameters\n- Services read from `consts.const` and pass to SDK\n\n### Backend Layer Structure\n\n| Layer | Path | Responsibility |\n|-------|------|----------------|\n| Apps | `backend/apps/` | HTTP boundary: parse input, call services, map exceptions to HTTP |\n| Services | `backend/services/` | Business logic orchestration, raise domain exceptions |\n| Consts | `backend/consts/` | Env vars (`const.py`), exceptions (`exceptions.py`), error codes |\n\n**Exception flow**: Services raise domain exceptions → Apps map to HTTP status codes\n\n---\n\n## Database Migrations\n\n**Location**: `docker/sql/*.sql` (versioned migration scripts)\n\n**Critical rule**: When adding columns/tables via migration script:\n- Update `docker/init.sql` (Docker Compose fresh deploy)\n- Update `k8s/helm/nexent/charts/nexent-common/files/init.sql` (K8s fresh deploy)\n\n**Version**: Tracked in `backend/consts/const.py` as `APP_VERSION`\n\n---\n\n## Testing Conventions\n\n- pytest only (no unittest)\n- Mock at import site with fully-qualified path:\n  ```python\n  mocker.patch(\"backend.services.agent_service.AgentService.run\", return_value={...})\n  ```\n- Async tests: `@pytest.mark.asyncio`\n- Test structure: `test/backend/` and `test/sdk/`\n\n---\n\n## Code Style\n\n- English-only comments and docstrings (enforced by `.cursor/rules/english_comments.mdc`)\n- Import order: stdlib → third-party → project\n- Line length: 119 (sdk ruff config)\n\n---\n\n## Key Files\n\n| File | Purpose |\n|------|---------|\n| `backend/consts/const.py` | All env var definitions, APP_VERSION |\n| `backend/consts/exceptions.py` | Domain exceptions (AgentRunException, LimitExceededError, etc.) |\n| `docker/init.sql` | Database schema for Docker Compose |\n| `k8s/helm/.../init.sql` | Database schema for Kubernetes |\n| `test/run_all_test.py` | Test runner with coverage |\n\n---\n\n## Reference Files\n\nExisting instruction files with detailed rules:\n- `CLAUDE.md` - Backend architecture, env var management, app/service layer rules\n- `.cursor/rules/environment_variable.mdc` - Env var centralization\n- `.cursor/rules/pytest_unit_test_rules.mdc` - Testing patterns\n- `.cursor/rules/english_comments.mdc` - Comment language enforcement\n"},"files":{"AGENTS.md":"# AGENTS\n\n<!-- Skills section removed -->\n\n<skills_system priority=\"1\">\n\n## Available Skills\n\n<!-- SKILLS_TABLE_START -->\n<usage>\nWhen users ask to perform tasks, check if any of the available skills below can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.\n\nHow to use skills:\n- Invoke: `npx openskills read <skill-name>` (run in your shell)\n  - For multiple: `npx openskills read skill-one,skill-two`\n- The skill content will load with detailed instructions on how to complete the task\n- Base directory provided in output for resolving bundled resources (references/, scripts/, assets/)\n\nUsage notes:\n- Only use skills listed in <available_skills> below\n- Do not invoke a skill that is already loaded in your context\n- Each skill invocation is stateless\n</usage>\n\n<available_skills>\n\n<skill>\n<name>prompts-writing</name>\n<description>Create, refine, and optimize high-quality YAML prompts for AI assistants. Use when working with prompt templates, system prompts, agent prompts, or any prompt engineering tasks. Provides structure guidelines, template patterns, and quality standards for YAML-based prompts.</description>\n<location>project</location>\n</skill>\n\n<skill>\n<name>skill-creator</name>\n<description>Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.</description>\n<location>project</location>\n</skill>\n\n</available_skills>\n<!-- SKILLS_TABLE_END -->\n\n</skills_system>\n\n---\n\n## Project Overview\n\nNexent is a zero-code platform for auto-generating AI agents. Monorepo with:\n- `backend/` - FastAPI HTTP API\n- `sdk/nexent/` - Core agent framework (pip package)\n- `frontend/` - Next.js web UI\n- `docker/` & `k8s/` - Deployment configs\n\n---\n\n## Developer Commands\n\n### Backend (Python 3.11)\n\n```bash\n# Setup\ncd backend && uv sync --extra data-process --extra test\n\n# Install SDK for development\ncd backend && uv pip install -e \"../sdk[dev]\"\n```\n\n### Run Tests\n\n```bash\n# From project root, with backend venv activated\nsource backend/.venv/bin/activate && python test/run_all_test.py\n\n# Single test file\npytest test/backend/apps/test_agent_app.py -v\n```\n\n### Frontend (Next.js)\n\n```bash\ncd frontend\nnpm run dev          # Development server\nnpm run check-all    # type-check + lint + format + build\n```\n\n### Docker Deployment\n\n```bash\ncd docker\ncp deploy/env/.env.example deploy/env/.env  # Fill required configs\nbash deploy.sh        # Interactive deployment\n```\n\n---\n\n## Architecture\n\n### Environment Variables\n\n**Single source of truth**: `backend/consts/const.py`\n\n- NO direct `os.getenv()` / `os.environ.get()` outside this file\n- SDK (`sdk/nexent/`) NEVER reads env vars - accepts config via parameters\n- Services read from `consts.const` and pass to SDK\n\n### Backend Layer Structure\n\n| Layer | Path | Responsibility |\n|-------|------|----------------|\n| Apps | `backend/apps/` | HTTP boundary: parse input, call services, map exceptions to HTTP |\n| Services | `backend/services/` | Business logic orchestration, raise domain exceptions |\n| Consts | `backend/consts/` | Env vars (`const.py`), exceptions (`exceptions.py`), error codes |\n\n**Exception flow**: Services raise domain exceptions → Apps map to HTTP status codes\n\n---\n\n## Database Migrations\n\n**Location**: `docker/sql/*.sql` (versioned migration scripts)\n\n**Critical rule**: When adding columns/tables via migration script:\n- Update `docker/init.sql` (Docker Compose fresh deploy)\n- Update `k8s/helm/nexent/charts/nexent-common/files/init.sql` (K8s fresh deploy)\n\n**Version**: Tracked in `backend/consts/const.py` as `APP_VERSION`\n\n---\n\n## Testing Conventions\n\n- pytest only (no unittest)\n- Mock at import site with fully-qualified path:\n  ```python\n  mocker.patch(\"backend.services.agent_service.AgentService.run\", return_value={...})\n  ```\n- Async tests: `@pytest.mark.asyncio`\n- Test structure: `test/backend/` and `test/sdk/`\n\n---\n\n## Code Style\n\n- English-only comments and docstrings (enforced by `.cursor/rules/english_comments.mdc`)\n- Import order: stdlib → third-party → project\n- Line length: 119 (sdk ruff config)\n\n---\n\n## Key Files\n\n| File | Purpose |\n|------|---------|\n| `backend/consts/const.py` | All env var definitions, APP_VERSION |\n| `backend/consts/exceptions.py` | Domain exceptions (AgentRunException, LimitExceededError, etc.) |\n| `docker/init.sql` | Database schema for Docker Compose |\n| `k8s/helm/.../init.sql` | Database schema for Kubernetes |\n| `test/run_all_test.py` | Test runner with coverage |\n\n---\n\n## Reference Files\n\nExisting instruction files with detailed rules:\n- `CLAUDE.md` - Backend architecture, env var management, app/service layer rules\n- `.cursor/rules/environment_variable.mdc` - Env var centralization\n- `.cursor/rules/pytest_unit_test_rules.mdc` - Testing patterns\n- `.cursor/rules/english_comments.mdc` - Comment language enforcement\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AGENTS\n\n<!-- Skills section removed -->\n\n<skills_system priority=\"1\">\n\n## Available Skills\n\n<!-- SKILLS_TABLE_START -->\n<usage>\nWhen users ask to perform tasks, check if any of the available skills below can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.\n\nHow to use skills:\n- Invoke: `npx openskills read <skill-name>` (run in your shell)\n  - For multiple: `npx openskills read skill-one,skill-two`\n- The skill content will load with detailed instructions on how to complete the task\n- Base directory provided in output for resolving bundled resources (references/, scripts/, assets/)\n\nUsage notes:\n- Only use skills listed in <available_skills> below\n- Do not invoke a skill that is already loaded in your context\n- Each skill invocation is stateless\n</usage>\n\n<available_skills>\n\n<skill>\n<name>prompts-writing</name>\n<description>Create, refine, and optimize high-quality YAML prompts for AI assistants. Use when working with prompt templates, system prompts, agent prompts, or any prompt engineering tasks. Provides structure guidelines, template patterns, and quality standards for YAML-based prompts.</description>\n<location>project</location>\n</skill>\n\n<skill>\n<name>skill-creator</name>\n<description>Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.</description>\n<location>project</location>\n</skill>\n\n</available_skills>\n<!-- SKILLS_TABLE_END -->\n\n</skills_system>\n\n---\n\n## Project Overview\n\nNexent is a zero-code platform for auto-generating AI agents. Monorepo with:\n- `backend/` - FastAPI HTTP API\n- `sdk/nexent/` - Core agent framework (pip package)\n- `frontend/` - Next.js web UI\n- `docker/` & `k8s/` - Deployment configs\n\n---\n\n## Developer Commands\n\n### Backend (Python 3.11)\n\n```bash\n# Setup\ncd backend && uv sync --extra data-process --extra test\n\n# Install SDK for development\ncd backend && uv pip install -e \"../sdk[dev]\"\n```\n\n### Run Tests\n\n```bash\n# From project root, with backend venv activated\nsource backend/.venv/bin/activate && python test/run_all_test.py\n\n# Single test file\npytest test/backend/apps/test_agent_app.py -v\n```\n\n### Frontend (Next.js)\n\n```bash\ncd frontend\nnpm run dev          # Development server\nnpm run check-all    # type-check + lint + format + build\n```\n\n### Docker Deployment\n\n```bash\ncd docker\ncp deploy/env/.env.example deploy/env/.env  # Fill required configs\nbash deploy.sh        # Interactive deployment\n```\n\n---\n\n## Architecture\n\n### Environment Variables\n\n**Single source of truth**: `backend/consts/const.py`\n\n- NO direct `os.getenv()` / `os.environ.get()` outside this file\n- SDK (`sdk/nexent/`) NEVER reads env vars - accepts config via parameters\n- Services read from `consts.const` and pass to SDK\n\n### Backend Layer Structure\n\n| Layer | Path | Responsibility |\n|-------|------|----------------|\n| Apps | `backend/apps/` | HTTP boundary: parse input, call services, map exceptions to HTTP |\n| Services | `backend/services/` | Business logic orchestration, raise domain exceptions |\n| Consts | `backend/consts/` | Env vars (`const.py`), exceptions (`exceptions.py`), error codes |\n\n**Exception flow**: Services raise domain exceptions → Apps map to HTTP status codes\n\n---\n\n## Database Migrations\n\n**Location**: `docker/sql/*.sql` (versioned migration scripts)\n\n**Critical rule**: When adding columns/tables via migration script:\n- Update `docker/init.sql` (Docker Compose fresh deploy)\n- Update `k8s/helm/nexent/charts/nexent-common/files/init.sql` (K8s fresh deploy)\n\n**Version**: Tracked in `backend/consts/const.py` as `APP_VERSION`\n\n---\n\n## Testing Conventions\n\n- pytest only (no unittest)\n- Mock at import site with fully-qualified path:\n  ```python\n  mocker.patch(\"backend.services.agent_service.AgentService.run\", return_value={...})\n  ```\n- Async tests: `@pytest.mark.asyncio`\n- Test structure: `test/backend/` and `test/sdk/`\n\n---\n\n## Code Style\n\n- English-only comments and docstrings (enforced by `.cursor/rules/english_comments.mdc`)\n- Import order: stdlib → third-party → project\n- Line length: 119 (sdk ruff config)\n\n---\n\n## Key Files\n\n| File | Purpose |\n|------|---------|\n| `backend/consts/const.py` | All env var definitions, APP_VERSION |\n| `backend/consts/exceptions.py` | Domain exceptions (AgentRunException, LimitExceededError, etc.) |\n| `docker/init.sql` | Database schema for Docker Compose |\n| `k8s/helm/.../init.sql` | Database schema for Kubernetes |\n| `test/run_all_test.py` | Test runner with coverage |\n\n---\n\n## Reference Files\n\nExisting instruction files with detailed rules:\n- `CLAUDE.md` - Backend architecture, env var management, app/service layer rules\n- `.cursor/rules/environment_variable.mdc` - Env var centralization\n- `.cursor/rules/pytest_unit_test_rules.mdc` - Testing patterns\n- `.cursor/rules/english_comments.mdc` - Comment language enforcement\n","category":"root","tokens":1247}]}