agentsclimarketplace

Core conventions

Skill theinterneti/TTA.dev/.github/skills/core-conventions

AI devops for vibe coders

Install
npx -y skills add theinterneti/TTA.dev --skill core-conventions

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use this skill when writing or reviewing Python code in TTA.dev. Covers the package manager (uv), type hint standards, primitives usage, anti-patterns to avoid, state management, and LLM provider strategy. Invoke when the user says "write code", "review code", "add a feature", or asks about conventions or standards.

SKILL.md

2.7 KB, as published. Nobody here has run it

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.12+ 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]`str
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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.