Skip to main content

Skill-first local delegation workflow for Codex and Claude Code.

Project description

Ariadne

Your AI coding agent delegates mechanical tasks to a cheap local worker — Aider + DeepSeek — on a separate branch. The agent reviews the patch before anything merges. You never touch the CLI.

How it works

  1. Tell the agent once: "use Ariadne for this session"
  2. The agent runs preflight, creates a worker branch, invokes Aider, and shows you the patch
  3. You decide whether to merge

The agent reads the skill file and handles everything. No CLI knowledge required.

Requirements

Supported platforms: Linux and macOS.

Setup

1. Install Ariadne

pip install ariadne-skill

2. Install Aider

pip install aider-chat

3. Get a DeepSeek API key

Sign up at platform.deepseek.com and create an API key. Top up a small amount — most tasks cost under $0.01.

Export the key in your shell:

export DEEPSEEK_API_KEY="sk-..."

Add that line to ~/.zshrc or ~/.bashrc to persist across sessions.

4. Install the skill into your agent

ariadne install-skill

Detects which agents you have installed (Claude Code, Codex) and asks where to install — globally for all projects, or locally for the current repo. Follow the prompts.

Trigger with /ariadne in Claude Code, or say "use Ariadne".

That's it.

Quick test

At the start of a conversation, tell the agent once:

"Use Ariadne for delegation tasks in this session."

Then just describe your work:

"Write unit tests for src/foo.py."

The agent recognises suitable tasks and triggers Ariadne automatically. You can also trigger explicitly at any time with /ariadne.

What Ariadne handles well

These patterns cover the majority of mechanical coding work in a typical project. If a task has a clear scope and a defined target file, Ariadne is the right tool.

Testing

  • Write unit tests for an existing module
  • Add parametrised or property-based test cases
  • Generate test fixtures and mock factories

Documentation and types

  • Add or improve docstrings
  • Add type annotations to an existing module
  • Translate inline comments to English

Refactoring

  • Rename symbols consistently within a file
  • Extract constants from magic numbers or repeated strings
  • Convert imperative loops to comprehensions or functional style
  • Add input validation or error handling to existing functions

Implementation

  • Fill in a stub or scaffold that is already defined
  • Implement a small interface or abstract base class
  • Add logging to an existing module
  • Convert synchronous functions to async (or vice versa)

Not suited for: architectural decisions, bug diagnosis requiring cross-system tracing, changes spanning many unrelated files, or tasks requiring external context the worker has not been given.

Works especially well with TDD

TDD's red-green-refactor loop maps directly onto Ariadne's delegation model. Each slice is bounded, has a clear success criterion, and touches one file at a time — exactly the conditions under which the worker performs best.

A typical TDD loop with Ariadne:

  1. Red — delegate test writing: --editable tests/test_foo.py --readonly src/foo.py
  2. Green — delegate the implementation: --editable src/foo.py --readonly tests/test_foo.py
  3. Refactor — delegate cleanup under the now-passing tests

The worker never makes architectural decisions. The test suite keeps it honest. Each patch is small enough to review in seconds. That's the loop.

If you are not already using TDD with your agent, the /tdd skill from Matt Pocock's skills collection is a practical starting point. It codifies a red-green-refactor loop and works well alongside Ariadne.

Environment variables

Only needed if you want to change default behaviour:

Variable Default When to change
ARIADNE_AIDER_MODEL deepseek/deepseek-chat If DeepSeek renames the model
ARIADNE_AIDER_IDLE_TIMEOUT 90 Slow API responses
ARIADNE_AIDER_MAX_RUNTIME 600 Very large tasks
ARIADNE_CHECK_TIMEOUT 120 Slow test suites used as a quality gate

Security

Ariadne never writes your API key to any file. DEEPSEEK_API_KEY must come from your shell environment only.

Run artifacts (patches, logs, metadata) are written to .ariadne/ inside the target repository. That directory is git-ignored and never committed. What you build stays local.

Development

Run the test suite — no API key or Aider required:

PYTHONPATH=src python3 -m unittest discover -s tests

Architecture decisions live in docs/adr/. Skill files live in .claude/skills/ariadne/ and .codex/skills/ariadne/.

License

Apache-2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ariadne_skill-0.1.0.tar.gz (87.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ariadne_skill-0.1.0-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file ariadne_skill-0.1.0.tar.gz.

File metadata

  • Download URL: ariadne_skill-0.1.0.tar.gz
  • Upload date:
  • Size: 87.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ariadne_skill-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f001dd9a64a94bd99a3fc572233a67aa3f4a2f380da1c743fda6c4ad541d548
MD5 5cf702b407ad05b8a14013e32a3eb86f
BLAKE2b-256 dd1d63c788742d6be3f817697fc862675ab066841014fd6b42ee8322c9dc8313

See more details on using hashes here.

Provenance

The following attestation bundles were made for ariadne_skill-0.1.0.tar.gz:

Publisher: publish.yml on albertc9/Ariadne

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ariadne_skill-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ariadne_skill-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 34.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ariadne_skill-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a95f7f248322c4831eb703aa48814b18865df99318efbe9dae0a2f55199e0092
MD5 f4829c2d3a6891c7237053ce8dcf81de
BLAKE2b-256 706f9fcd75d6d2255ab3a0039017ca6de65287f07c2b3db47e6ca4c3ec16224c

See more details on using hashes here.

Provenance

The following attestation bundles were made for ariadne_skill-0.1.0-py3-none-any.whl:

Publisher: publish.yml on albertc9/Ariadne

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page