agentleFS
theinternetitheinterneti/TTA.dev/.claude/skills/core-conventions/SKILL.md

core-conventions

Skill0 starsChanged 7 months agoMITView on GitHub

Use this skill when writing or reviewing Python code in TTA.dev. Covers package manager, type hints, primitives usage, and anti-patterns.

  • Reads credentials
  • Installs packages

The file

Files
SKILL.md

Core Conventions (TTA.dev)

Non-negotiable standards for all code in the TTA.dev repository.

Package Manager

Always use uv, never pip or poetry.

uv add package-name        # Add dependency
uv sync --all-extras       # Sync all dependencies
uv run pytest -v           # Run via uv

Python Version & Types

  • Python 3.11+ required
  • str | None not Optional[str]
  • dict[str, Any] not Dict[str, Any]
  • Google-style docstrings on all public functions

Primitives — Always Use Them

# ✅ Use primitives
workflow = RetryPrimitive(primitive=api_call, max_retries=3)

# ❌ Never write manual retry/timeout loops
for attempt in range(3):  # WRONG
    try: ...

Anti-Patterns

❌ Don't✅ Do
try/except retry loopsRetryPrimitive
asyncio.wait_for()TimeoutPrimitive
Manual caching dictsCachePrimitive
Global variables for stateWorkflowContext
pip installuv add
Optional[str]`strNone`
from primitives.Xfrom ttadev.primitives.X

State Management

Pass state via WorkflowContext, never global variables:

context = WorkflowContext(workflow_id="demo")
result = await workflow.execute(input_data, context)

LLM Provider Strategy

Always use get_llm_client() — never hardcode a model or base URL.

from ttadev.workflows.llm_provider import get_llm_client

cfg = get_llm_client()
# cfg.base_url, cfg.model, cfg.api_key, cfg.provider

Provider hierarchy for TTA.dev apps (automatic, zero config required):

  1. Ollama — default, always available, no API key needed (qwen2.5:7b)
  2. OpenRouter :free — if OPENROUTER_API_KEY is set
  3. Paid models — if a paid key is configured

Never use nvidia/nemotron-3-super-120b-a12b:free — it is a reasoning-only model that returns content: null. Any code reading response.content will crash.

Deep Reference

  • Primitives API & patterns: docs/agent-guides/primitives-patterns.md
  • Python standards: docs/agent-guides/python-standards.md
  • LLM provider strategy: docs/agent-guides/llm-provider-strategy.md
  • TODO management: docs/agent-guides/todo-management.md

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.