agentleFS
alphacrackalphacrack/readme2demo/.claude/skills/add-engine/SKILL.md

add-engine

Skill9 starsChanged 4 months agoMITView on GitHub

Add a new AI agent backend (engine) to readme2demo, or fix parsing for an existing one (claude-code stream-json drift, openhands trajectory changes). Use when adding support for a new coding agent or when transcripts stop parsing after an agent CLI upgrade.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. bablsoft/accessflow★ 12same name
    2. JaimeJunr/polyagent-mcp★ 5same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository9 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the format VERSION is coupled to a pinned CLI in images/base/Dockerfile, bump pin and parser together and say so in the commit message.

    line 50

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Adding or fixing an agent engine

Engines are the ONLY place that knows which AI agent ran. Everything downstream consumes command_log.json.

The contract (engines/base.py)

Implement AgentEngine and decorate with @register:

  • name: CLI value for --engine.
  • required_env() / resolve_env(): host env vars forwarded into the sandbox at exec time (never baked into images). Support alternative auth by overriding resolve_env (see ClaudeCodeEngine's key-OR-oauth-token, including the credential-format validation — copy it).
  • credential_env_vars(): which forwarded names hold the secret. The default covers every required_env() name matching KEY|TOKEN|SECRET — if your credential is NOT in required_env() (any alternative auth resolved in resolve_env), you MUST override this too or the secret goes untreated.
  • build_command(limits): one shell string run via bash -lc inside the container; reads the prompt from PROMPT_CONTAINER_PATH, writes the raw transcript to TRANSCRIPT_CONTAINER_PATH, stderr next to it.
  • parse_transcript(path) -> CommandLog: PURE, deterministic, no LLM calls, tolerant of malformed lines and schema drift. Reuse truncate_output, scan_markers, scan_adjusted from claude_code.py so markers and truncation behave identically across engines.

Parsing requirements

  • Pair command events with their results; unpaired commands get exit_code=None (never fabricate 0).
  • Extract: Bash-equivalent commands + outputs (head 3KB + tail 1KB truncation), file edits, FIX/BLOCKED/ADJUSTED_SUCCESS markers, outcome (blocked > success-marker > failed), cost/turns/duration when available (None when not — budget logic treats None as unknown, not zero).

Checklist

  1. engines/<name>.py with the above; module docstring stating the transcript format assumptions and its drift-tolerance strategy.
  2. Fixture transcript in tests/fixtures/ exercising: success + failure pairs, a marker, a malformed line, string-vs-list content shapes.
  3. Tests: parse the fixture, verify counts/exit codes/markers/outcome; missing-env EngineError; build_command shape (uses the canonical container paths, not hardcoded strings).
  4. If the format VERSION is coupled to a pinned CLI in images/base/Dockerfile, bump pin and parser together and say so in the commit message.
  5. README: add the engine to the auth/requirements section.

Known drift landmines

  • claude-code stream-json: tool_result.content is a string OR a list of text blocks; the final result event can be absent when the agent is killed (marker alone then decides success).
  • openhands trajectories: JSON array, {"events": [...]} wrapper, or JSONL — detect all three.

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.