aai-coding

Pyskills for Answer.AI coding sessions: skill text and companion tooling for clikernel

View the Project on GitHub AnswerDotAI/aai-coding

aai-coding

The Answer.AI coding harness: the shared configuration, skills, and tooling that make a Claude Code or codex session work the way our team works. If you are an LLM reading this, you are probably either setting the harness up (follow SETUP.md, but read this file first) or working inside it and wanting to understand why it is shaped this way, so you can give your user informed advice.

The system in one paragraph

The Claude Code setup and one codex setup are kernel-centric: native file tools are denied, and file reading, editing, searching, and Python execution go through one persistent IPython kernel (clikernel) loaded with curated tooling discovered via pyskills. Codex can instead use a hybrid setup: normal apply_patch and Bash for files and shell work, with a quiet clikernel reserved for Python-specific work. The kernel-centric setup uses two host-level bootstrap skills, persistent-python and pyskills; the hybrid setup uses clikernel-workflow to define the boundary and notebook-dialog-editing for safe kernel-free notebook and aidialog work. Everything else that would conventionally be a host skill is a pyskill in this package: skill text lives in module docstrings, read with doc(), listed by list_pyskills(), and versioned, released, and installed like any other Python code.

What is in here

Design decisions, and why

Using and changing it

Day to day there is nothing to operate. Kernel-centric sessions bootstrap through persistent-python; hybrid codex sessions use clikernel-workflow for Python, notebook-dialog-editing for notebooks and aidialog dialogs, and the native tools otherwise. Both discover Python tooling through the pyskills catalog and read it with doc() or pyskills-doc. To change a skill, edit its source in this checkout and let the team pick it up by pulling; releases go through the standard fastship flow (ship-release), with the version in aai_coding/__init__.py bumped after each release.