reqloop is the official Baton marketplace
for requirement-level engineering loops. It is a multi-plugin repository: every
directory under plugins/ is an independently versioned Baton PluginPackage,
while the repository root owns only marketplace discovery and shared
plugin authoring rules.
A Baton Plugin coordinates a long-running domain loop, but it does not call a Harness directly. It proposes or submits scoped work through Baton's normal input, context, permission, and routing path. Harnesses provide intelligent execution capabilities, while Harness Plugins such as devloop constrain the development loop inside a Harness.
ReqLoop connects requirement, Forge, devloop, and Kubernetes observations and turns their state and durable user decisions into Resources. Its global Product/Component/Environment/Service catalog now provides read-only deployment visibility; delivery, evaluation, and deployment writes remain longer-term work.
The intended end-to-end development flow is:
develop a plugin
→ build and validate its manifest
→ link the marketplace or plugin into Baton
→ create and enable a PluginInstance in /plugins
→ start its Plugin Worker
→ use its command and Resource/Reconcile workflow
→ restore the same loop after Baton restarts
The repository grows with Baton's external Plugin host and per-Instance Worker processes. Hello validates the smallest Package lifecycle; Hello Counter and Turn Coach exercise Resource/Reconcile, Baton-owned Resource watches, Board presentation, and typed draft verbs; Target Balancer exercises inline Hooks and Baton-owned routing Resources; ReqLoop coordinates global Product, Component, Environment, and Service Resources together with the Project-scoped development loop.
Register this Git repository as a Marketplace and install the Package you need:
baton plugins marketplace add https://github.com/compforge/reqloop.git
baton plugins install compforge/target-balancer --marketplace reqloop
baton plugins install compforge/turn-coach --marketplace reqloop
baton plugins install compforge/reqloop --marketplace reqloop
baton plugins listFor local development, replace the Git URL with the path to your checkout:
baton plugins marketplace add /path/to/reqloopPackage installation globally enables it for current and future sessions. Use
/plugins to inspect, disable, update, or uninstall a Package. Turn Coach
reviews completed turns and recommends the next step; Target Balancer should
stay enabled so each new session can pin its first default Harness choice to a
less-used target; ReqLoop observes
devloop review completion across Workspace
checkouts, asks the user to accept or ignore actionable comments once, and
proposes a Harness fix only when accepted.
.baton-plugin/marketplace.json Marketplace index
plugins/<plugin-name>/ One independently versioned Baton plugin
plugins/reqloop/AGENTS.md ReqLoop architecture and design index
plugins/reqloop/docs/ ReqLoop domain and reconcile details
docs/baton-plugin-harness.* Baton Plugin and Harness relationship
docs/reqloop-workflow.* ReqLoop workflow (SVG and PNG)
CONTRIBUTING.md Rules for adding a plugin
AGENTS.md Architecture and maintenance constraints
Plugin domain models and Connectors stay inside their owning plugin. Baton core only supplies the generic Package, Instance, Resource/Controller and Interaction contracts.
- Hello — a minimal
0.1.0Package for validating Marketplace discovery, installation, and loading. - Hello Counter — demonstrates a writable
Resource combined with a
baton.turnController. - Turn Coach — an end-to-end canary for Baton-owned Resource replay, persistent state, and typed editable drafts.
- Target Balancer — assigns a new session to the least-used eligible target within the selected Harness family and keeps that binding stable.
- ReqLoop — requirement-level coordination connecting development and deployment Resources, exposing active requirements as Harness context, and observing Kubernetes-backed Services by Environment.
See the ReqLoop architecture for its domain model, reconcile flow, integration boundaries, and roadmap.
See CONTRIBUTING.md before adding a plugin.