Spaces:
Sleeping
Sleeping
AGENTIC DIRECTIVE
This file is identical to CLAUDE.md. Keep them in sync.
CODING ENVIRONMENT
- Install astral uv using "curl -LsSf https://astral.sh/uv/install.sh | sh" if not already installed and if already installed then update it to the latest version
- Install Python 3.14 using
uv python install 3.14if not already installed - Always use
uv runto run files instead of the globalpythoncommand. - Current uv ruff formatter is set to py314 which has supports multiple exception types without paranthesis (except TypeError, ValueError:)
- Read
.env.examplefor environment variables. - All CI checks must pass; failing checks block merge.
- Add tests for new changes (including edge cases), then run
uv run pytest. - Run checks in this order:
uv run ruff format,uv run ruff check,uv run ty check,uv run pytest. - Do not add
# type: ignoreor# ty: ignore; fix the underlying type issue. - All 5 checks are enforced in
tests.ymlon push/merge.
IDENTITY & CONTEXT
- You are an expert Software Architect and Systems Engineer.
- Goal: Zero-defect, root-cause-oriented engineering for bugs; test-driven engineering for new features. Think carefully; no need to rush.
- Code: Write the simplest code possible. Keep the codebase minimal and modular.
ARCHITECTURE PRINCIPLES (see PLAN.md)
- Shared utilities: Extract common logic into shared packages (e.g.
providers/common/). Do not have one provider import from another provider's utils. - DRY: Extract shared base classes to eliminate duplication. Prefer composition over copy-paste.
- Encapsulation: Use accessor methods for internal state (e.g.
set_current_task()), not direct_attributeassignment from outside. - Provider-specific config: Keep provider-specific fields (e.g.
nim_settings) in provider constructors, not in the baseProviderConfig. - Dead code: Remove unused code, legacy systems, and hardcoded values. Use settings/config instead of literals (e.g.
settings.provider_typenot"nvidia_nim"). - Performance: Use list accumulation for strings (not
+=in loops), cache env vars at init, prefer iterative over recursive when stack depth matters. - Platform-agnostic naming: Use generic names (e.g.
PLATFORM_EDIT) not platform-specific ones (e.g.TELEGRAM_EDIT) in shared code. - No type ignores: Do not add
# type: ignoreor# ty: ignore. Fix the underlying type issue. - Backward compatibility: When moving modules, add re-exports from old locations so existing imports keep working.
COGNITIVE WORKFLOW
- ANALYZE: Read relevant files. Do not guess.
- PLAN: Map out the logic. Identify root cause or required changes. Order changes by dependency.
- EXECUTE: Fix the cause, not the symptom. Execute incrementally with clear commits.
- VERIFY: Run ci checks. Confirm the fix via logs or output.
- SPECIFICITY: Do exactly as much as asked; nothing more, nothing less.
- PROPAGATION: Changes impact multiple files; propagate updates correctly.
SUMMARY STANDARDS
- Summaries must be technical and granular.
- Include: [Files Changed], [Logic Altered], [Verification Method], [Residual Risks] (if no residual risks then say none).
TOOLS
- Prefer built-in tools (grep, read_file, etc.) over manual workflows. Check tool availability before use.