arxdsilva/loops
Agent-driven Go backend workflow: research → plan (+review loop) → role-based parallel implementation → QA verification loop → product proof + PR → reflection into ai-memory. Every step is traced live (status line, pane) and in an HTML report.
Use when implementing or reviewing code whose results must be repeatable and safe under retries and concurrency - injected clock and RNG, ordering and tie-breaks, idempotency keys, worker pipelines, schema migrations with versions and fixtures, atomic writes, untrusted persisted input.
Use when investigating a backend bug, regression, flaky test or production incident in a backend service in any language pack - reduce it to a minimal reproducible artifact, find the first divergence, fix the root cause and keep a regression test.
Use when writing or updating package AGENTS.md files, interface summaries, README sections or, rarely, ADRs in a backend repo in any language pack, without duplicating canonical specs or recording reasoning transcripts.
Use when implementing a scoped backend feature or behaviour change in any language pack (new endpoint, use case, rule, consumer or job), or adding a package, module or command. Covers ownership, TDD, layering, consistency and the completion gate.
Use when designing or reviewing package or module boundaries in any language pack - ports, adapters, dependency direction, cross-layer interfaces, wiring at the composition root, or SOLID size limits and splitting a god type.
Set up loops in the current repository (any language pack) - detect the languages, create .loops/config.json, gitignore run data, install AGENTS.md and CLAUDE.md pointers, and check the tools the detected packs need. Use when the user runs /loops:init or asks to set up loops.
Use when implementing or reviewing background jobs, workflows, sagas, retries, schedulers, leases or locks, or any entity with a lifecycle (orders, payments, subscriptions) - explicit state machines, typed outcomes, hysteresis and indexed work discovery.
Use when writing, reviewing, testing or setting up Clojure backend code in a loops run (the clojure language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up C++ backend code in a loops run (the cpp language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up C# (.NET) backend code in a loops run (the csharp language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Elixir backend code in a loops run (the elixir language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Erlang backend code in a loops run (the erlang language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Go backend code in a loops run (the go language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Java backend code in a loops run (the java language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Kotlin backend code in a loops run (the kotlin language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up PHP backend code in a loops run (the php language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Python backend code in a loops run (the python language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Ruby backend code in a loops run (the ruby language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Rust backend code in a loops run (the rust language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Scala backend code in a loops run (the scala language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up Swift backend code in a loops run (the swift language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when writing, reviewing, testing or setting up TypeScript or JavaScript (Node, Bun) backend code in a loops run (the typescript language pack) - toolchain, layout, race policy, coverage, idioms and footguns.
Use when a loops run may read or write ai-memory - detecting the connection, scoping calls, one briefing at intake, filtered queries, verifying hits, and the reflector's writes (page kinds, tiers, paths). Skip when ai-memory is not connected.
Use when the lead plans or runs a loops wave of role agents, or when asked to work in parallel - contract first, disjoint ownership, spawn and label lanes, relay, gates, lifecycle and model tiers.
Use for the QA quality pass of a loops run, or whenever measuring changed code for CRAP (complexity x coverage), structural duplication or mutation-test survivors - runs crapper, dryer and mutator (or the pack's native mutation tool), maps each finding to its owning lane, and writes qa/quality.r<N>.md.
Generate the HTML report for a loops run and show where it is. Use when the user runs /loops:report or asks for the run report.
Use when reviewing a plan, a diff or a wave of agent work against architecture, consistency, performance and test standards - plan-reviewer, qa-verifier and product-reviewer procedure, reject list and multi-agent integration.
Show the current loops run status and optionally install the loops status line into the user's Claude Code settings. Use when the user runs /loops:status or asks what the run is doing.
Use when writing, reviewing or running backend tests in any language pack - unit, table or parametrised, integration, fuzz, benchmark, race-policy and regression tests, or deciding how to test a change without sleeps or real time.
Work a ticket, issue or task end to end with the loops workflow (research, plan, parallel implementation, QA, product proof, PR, reflection). Use when the user asks to work, implement or ship a ticket/issue, or invokes /loops:work.