Claude_Code / AGENTS.md
Jainish1808
Move project files to repository root for Hugging Face Space
bf177ff

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.14 if not already installed
  • Always use uv run to run files instead of the global python command.
  • Current uv ruff formatter is set to py314 which has supports multiple exception types without paranthesis (except TypeError, ValueError:)
  • Read .env.example for 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: ignore or # ty: ignore; fix the underlying type issue.
  • All 5 checks are enforced in tests.yml on 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 _attribute assignment from outside.
  • Provider-specific config: Keep provider-specific fields (e.g. nim_settings) in provider constructors, not in the base ProviderConfig.
  • Dead code: Remove unused code, legacy systems, and hardcoded values. Use settings/config instead of literals (e.g. settings.provider_type not "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: ignore or # 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

  1. ANALYZE: Read relevant files. Do not guess.
  2. PLAN: Map out the logic. Identify root cause or required changes. Order changes by dependency.
  3. EXECUTE: Fix the cause, not the symptom. Execute incrementally with clear commits.
  4. VERIFY: Run ci checks. Confirm the fix via logs or output.
  5. SPECIFICITY: Do exactly as much as asked; nothing more, nothing less.
  6. 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.