maqa

vmaqa-v0.3.1

Idempotent, agent-neutral coordinator → feature → QA workflow with GitHub Issues as the source of truth. Uses Spec Kit taskstoissues for missing issues and supports parallel or sequential dispatch.

Community extension — Independently maintained. Use at your own discretion. Learn more

MAQA — Multi-Agent & Quality Assurance

A spec-kit extension that adds a coordinator → feature → QA multi-agent workflow to any spec-kit project. Works with any language or framework.

How it works

speckit.maqa.sync          →   core taskstoissues for missing issues only
speckit.maqa.coordinator   →   SPAWN[N] feature assignments in isolated worktrees
                           →   SPAWN_QA[N] QA assignments
                           →   coordinator merged #N   →   re-assess, next batch

Each GitHub task issue runs in an isolated git worktree. The QA agent validates the committed implementation against that issue. You review and merge; the coordinator closes the issue only after verifying the commit reached the default branch.

GitHub Issues are the source of truth. Spec Kit's tasks.md remains read-only implementation and dependency context for worker and QA agents; MAQA does not maintain a competing .maqa/state.json backlog. Every command is designed to be safely retried after success, interruption, or partial failure.

Requirements

  • spec-kit >=0.3.0
  • git with worktree support
  • GitHub CLI authenticated for the repository in remote.origin.url

Installation

specify ext add maqa

Not in the catalog yet? Install directly:

specify ext add https://github.com/GenieRobot/spec-kit-maqa-ext/archive/refs/tags/maqa-v0.3.1.zip

Quick start

# 1. Install
specify ext add maqa

# 2. Idempotently initialize config, verify the selected AI, and create labels
/speckit.maqa.setup

# 3. Configure your test runner (optional but recommended)
#    Edit maqa-config.yml in your project root

# 4. Generate tasks with Spec Kit
/speckit.tasks

# 5. Accept MAQA's after_tasks prompt. It invokes Spec Kit taskstoissues only
#    for tasks whose GitHub issues do not already exist.
/speckit.maqa.sync

# 6. Run the coordinator
/speckit.maqa.coordinator

The coordinator reads state from the issues created through Spec Kit's taskstoissues command, correlates each issue with local Spec Kit context, reuses or creates stable worktrees, and returns a provider-neutral SPAWN plan. Spec Kit installs MAQA into the selected AI's native command or skills format. AIs with worker delegation can execute assignments in parallel; all others execute the same plan sequentially.

Idempotency

MAQA uses stable reconciliation and event keys rather than a private state database:

  • Task issues are keyed by the repository-relative tasks.md path plus task ID.
  • Feature and remediation assignments use stable assignment keys recorded as git commit trailers.
  • Worktree paths and branch names are deterministic and reused on retry.
  • GitHub comments contain stable hidden event markers; existing transitions and comments are not repeated.
  • Setup preserves user configuration and existing label definitions, adding only missing defaults.

This makes the workflow resumable across AI sessions and safe to run from different Spec Kit-supported tools.

Board mirrors (optional)

Companion extensions remain available for teams that want a board view:

ToolExtensionInstall
Trellomaqa-trellospecify ext add maqa-trello
Linearmaqa-linearspecify ext add maqa-linear
GitHub Projectsmaqa-github-projectsspecify ext add maqa-github-projects
Jiramaqa-jiraspecify ext add maqa-jira
Azure DevOpsmaqa-azure-devopsspecify ext add maqa-azure-devops

MAQA 0.3.x never reads these boards as workflow authority and does not auto-select one. Configure board_mirror explicitly if a companion supports issue-state mirroring; mirror failures never change GitHub issue state or scheduling.

CI gate (optional)

specify ext add maqa-ci
/speckit.maqa-ci.setup

With maqa-ci installed, the coordinator checks pipeline status on the feature branch before moving a card to In Review. Supports GitHub Actions, CircleCI, GitLab CI, and Bitbucket Pipelines.

Configuration

maqa-config.yml is created in your project root by /speckit.maqa.setup (or copied manually from .specify/extensions/maqa/config-template.yml).

FieldDefaultDescription
source_of_truth"github-issues"The authoritative work source in MAQA 0.3.x.
github_label_prefix"maqa"Prefix for issue workflow labels.
dispatch_mode"auto"Use native parallel delegation when available, otherwise run assignments sequentially.
test_command""Full test suite — e.g. npm test, pytest, bundle exec rspec
test_file_command""Single file — e.g. pytest {file}, npm test -- {file}
tddfalseWrite tests first, then implement. Red is assumed (no pre-run).
auto_pushfalsePush feature branch after commit. Recommended: true — without it, work only exists in the local worktree and is lost if the worktree is deleted before merging.
qa_cadence"per_feature"per_feature: QA runs after each feature agent (catches regressions early). batch_end: QA runs once when the full batch is done (saves credits).
max_parallel3Max concurrent feature agents
worktree_base".."Where worktrees are created (relative to repo root)
board_mirror"none"Optional one-way companion mirror. Never a source of truth.
qa.texttrueSpelling, grammar, placeholder copy
qa.linkstrueLink / route verification
qa.securitytrueUnfiltered output, exposed params, missing auth
qa.accessibilityfalseWCAG 2.1 AA — enable for web projects
qa.responsivefalseMobile / responsive layout — enable for web projects
qa.empty_statesfalseEmpty / error states — enable for UI projects

Commands

CommandDescription
/speckit.taskstoissuesCore Spec Kit command used by MAQA to create task issues
/speckit.maqa.syncIdempotently call taskstoissues for missing issues only
/speckit.maqa.coordinatorAssess issues, create worktrees, return SPAWN plan
/speckit.maqa.featureImplement one issue in one worktree
/speckit.maqa.qaValidate one committed issue implementation
/speckit.maqa.setupAgent-neutral, idempotent config and GitHub-label bootstrap

AI tool support

AI capabilityMode
Native worker/subagent delegationExecute provider-neutral SPAWN assignments in parallel
No worker delegationExecute the same assignments sequentially or in context

The extension contains no Claude-only setup files or runtime assumptions. Command filenames and invocation syntax are rendered by Spec Kit's extension registrar for the selected AI, including future integrations that support the same registrar contract.

How work is tracked

Issue state and MAQA labels define workflow state:

open → maqa:in-progress → maqa:in-review → closed
                 ↘ maqa:blocked

An open issue without a MAQA state label is ready/todo. The coordinator applies labels and comments; the issue is closed only after its commit is verified on the default branch.

Explicit issue dependencies are authoritative. When an issue has none, the matched tasks.md dependency graph and [P] markers guide scheduling without becoming a second state store. Ambiguous matches stop reconciliation; missing matches direct the user to /speckit.maqa.sync.

License

MIT — free for all.

Stats

9 stars

Version

maqa-v0.3.1release
Updated 22 days ago

Install

Using the Specify CLI

specify extension add maqa --from https://github.com/GenieRobot/spec-kit-maqa-ext/releases/download/maqa-v0.3.1/maqa.zip

License

MIT