FJX

An agent-accelerated forge where humans and LLM agents collaborate on software using the same artifacts.

Kind

Agent Orchestration

Stack

Deno, MCP, Forgejo

Status

spiking

FORGEJO MEMORY accepted closed OPTIONAL supervisor telemetry mgmt ui rejected findings findings issue PM DEV QA human forgejo wiki AGENTS.md project wiki

The Problem

Human–AI collaboration on software usually grows a second system: a side channel for coordination, a bespoke task store, an out-of-band memory layer that only the agents understand. Now there are two sources of truth to keep in sync, and the humans can no longer read what the agents are doing in the tools they already use.

No second source of truth. No out-of-band coordination layer.

The Approach

FJX is an agent-accelerated forge: humans and LLM agents collaborate through the same artifacts — issues, pull requests, comments, labels, and assignees — on a Forgejo instance. Rather than inventing specialized tooling, it leans on existing forge primitives so every workflow stays legible to both sides, and so the whole system improves as the models improve instead of accreting complexity to compensate for them.

Supervision

A supervisor (fjx supervise) runs agent "ticks" — for PM, a sweep of all issue activity since the last tick; for DEV and QA, the next highest-priority issue assigned to them. Each tick spawns the agent in a Docker container with an enforced timeout, and the full transcript is persisted whether the run succeeds, fails, or exits silently — a container that dies without a word still lands in telemetry as a failed run rather than a mystery. The supervisor runs one-shot for a specific role and issue, or as a daemon for "AFK mode," where development is driven entirely through issues and comments.

Observability

Agents you can't inspect are agents you can't trust with autonomy, so the supervisor treats its own behavior as a first-class data source. Every run emits telemetry — JSONL shards per branch, compacted into a queryable store — that a management UI turns into answers to the questions that actually matter when supervising agents:

This is the feedback loop for the prompts themselves: when the telemetry shows an agent re-discovering how to use the fjx CLI every tick, that's a prompt bug with a paper trail.

Where it stands

The system is working as designed and is the daily harness for three or four of my own projects across Deno, Go, and Rust stacks. The role workflow, supervisor, adapters, telemetry pipeline, and management UI all work today. Areas still in need of improvement:

1 Source of truth — issues, PRs & labels; no side-channel task store
3 roles PM · DEV · QA — each a scoped Forgejo account with narrow authority
2 adapters Codex & Claude — swap agents freely; the work history stays put
Containerized Every tick runs in Docker with timeouts and a full transcript