Skip to content

feat: multi-agent templates with mandatory commit, configurable push and QA cadence#1

Merged
GenieRobot merged 9 commits intomainfrom
add-maqa-extensions
Mar 27, 2026
Merged

feat: multi-agent templates with mandatory commit, configurable push and QA cadence#1
GenieRobot merged 9 commits intomainfrom
add-maqa-extensions

Conversation

@GenieRobot
Copy link
Copy Markdown
Owner

@GenieRobot GenieRobot commented Mar 27, 2026

Summary

  • Add templates/agents/{coordinator,feature,qa}.md — language-agnostic three-agent workflow templates
  • feature agent: commit before returning is now non-negotiable; optional git push gated on auto_push setting (prevents work loss when worktrees are deleted)
  • coordinator: reads auto_push and qa_cadence from .specify/init-options.json; supports qa_cadence=per_feature (QA after every feature) or qa_cadence=batch_end (QA once when whole batch is done, saves credits)
  • qa agent: git commit verification as step 0 — immediately FAILs if branch has no commit, which catches staged-but-not-committed work before it can be lost
  • Add --auto-push/--no-auto-push and --qa-cadence flags to specify init; saved to .specify/init-options.json with safe defaults (auto_push=false, qa_cadence=per_feature)
  • Fix scaffold_from_core_pack to recursively copy templates/ subdirectories (previously only copied top-level files, breaking parity with release ZIP for any template subdirectory)
  • Bundle templates/agents/ into wheel via pyproject.toml force-include

Test plan

  • 11 new tests in tests/test_multi_agent_config.py covering defaults, flag values, and validation
  • Full suite: 884/884 passed
  • Parity tests (test_parity_bundled_vs_release_script) pass for all 28 agents

🤖 Generated with Claude Code


Note

Medium Risk
Updates core project initialization, skill naming/migration, and extension/preset skill registration logic; regressions could affect existing projects’ agent skills and hook invocations across multiple AI assistants.

Overview
Adds bundled multi-agent agent templates (coordinator, feature, qa) and persists new init options (--auto-push, --qa-cadence) into .specify/init-options.json for downstream tooling.

Unifies skill directory naming to hyphenated speckit-* for Kimi and Codex (including extension/preset-generated skills), adds a one-time migration for legacy Kimi dotted directories, and updates hook messaging to emit the correct invocation style ($speckit-* for Codex skills, /skill:speckit-* for Kimi).

Improves robustness of skill/override rendering: recursive bundling of templates/ (including subdirs), safer path rewriting for scripts/templates/memory references, TOML prompt rendering that handles embedded triple quotes, and sequential branch numbering that supports 4+ digit prefixes (with PowerShell long parsing).

Written by Cursor Bugbot for commit be151b6. This will update automatically on new commits. Configure here.

RbBtSn0w and others added 9 commits March 26, 2026 10:53
…thub#1971)

* fix: unify hyphenated skills and migrate legacy kimi dotted dirs

* fix: preserve legacy kimi dotted preset skill overrides

* fix: migrate kimi legacy dotted skills without ai-skills flag

* fix: harden kimi migration and cache hook init options

* fix: apply kimi preset skill overrides without ai-skills flag

* fix: keep sequential branch numbering beyond 999

* test: align kimi scaffold skill path with hyphen naming

* chore: align hook typing and preset skill comment

* fix: restore AGENT_SKILLS_DIR_OVERRIDES compatibility export

* refactor: remove AGENT_SKILLS_DIR_OVERRIDES and update callers

* fix(ps1): support sequential branch numbers above 999

* fix: resolve preset skill placeholders for skills agents

* Fix legacy kimi migration safety and preset skill dir checks

* Harden TOML rendering and consolidate preset skill restore parsing

* Fix PowerShell overflow and hook message fallback for empty invocations

* Restore preset skills from extensions

* Refine preset skill restore helpers

* Harden skill path and preset checks

* Guard non-dict init options

* Avoid deleting unmanaged preset skill dirs

* Unify extension skill naming with hooks

* Harden extension native skill registration

* Normalize preset skill titles
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…ithub#1989)

Bumps [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action) from 19 to 23.
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](DavidAnson/markdownlint-cli2-action@v19...v23)

---
updated-dependencies:
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: '23'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](actions/deploy-pages@v4...v5)

---
updated-dependencies:
- dependency-name: actions/deploy-pages
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- Extension ID: plan-review-gate
- Version: 1.0.0
- Author: luno
- Catalog entries sorted alphabetically by ID
- README table row inserted alphabetically by name

Co-authored-by: Ed Harrod <your-real-email@luno.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Adds the onboard extension (v2.1.0) — contextual onboarding and
progressive growth for developers new to spec-kit projects.

- 7 commands: start, explain, trail, quiz, badge, mentor, team
- 3 hooks: after-implement, before-implement, after-explain
- Repository: https://github.com/dmux/spec-kit-onboard
Adds 7 extensions forming the MAQA (Multi-Agent & Quality Assurance)
suite to catalog.community.json in correct alphabetical order (after
'learn', before 'onboard') and to the README community extensions table:

- maqa           — coordinator/feature/QA workflow, board auto-detection
- maqa-azure-devops — Azure DevOps Boards integration
- maqa-ci           — CI/CD gate (GitHub Actions/CircleCI/GitLab/Bitbucket)
- maqa-github-projects — GitHub Projects v2 integration
- maqa-jira         — Jira integration
- maqa-linear       — Linear integration
- maqa-trello       — Trello integration

All entries placed alphabetically. maqa v0.1.3 bumped to reflect
multi-board auto-detection added in this release.
Top-level updated_at was 00:00:00Z while plan-review-gate entries
had 08:22:30Z, making metadata inconsistent for freshness consumers.
Updated to 2026-03-27T08:22:30Z (>= all entry timestamps).
…ush and QA cadence

- Add templates/agents/{coordinator,feature,qa}.md — language-agnostic
  versions of the three-agent workflow (coordinator → feature → QA)
- feature agent: commit is non-negotiable before returning result;
  optional git push gated on auto_push setting
- coordinator: reads auto_push and qa_cadence from .specify/init-options.json;
  qa_cadence=per_feature (default) spawns QA after each feature agent,
  qa_cadence=batch_end waits until all batch features are done to save credits
- qa agent: git commit verification as step 0 prevents work loss on worktree deletion
- Add --auto-push/--no-auto-push and --qa-cadence CLI flags to specify init
- Save both settings to .specify/init-options.json with safe defaults
  (auto_push=false, qa_cadence=per_feature)
- Fix scaffold_from_core_pack to recursively copy templates/ subdirectories
  so offline scaffolding matches release ZIP output (parity test coverage)
- Bundle templates/agents/ into wheel via pyproject.toml force-include

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@GenieRobot GenieRobot merged commit 8f4f961 into main Mar 27, 2026
1 check passed
@GenieRobot GenieRobot deleted the add-maqa-extensions branch March 27, 2026 17:12
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

(
migrated_legacy_kimi_skills,
removed_legacy_kimi_skills,
) = _migrate_legacy_kimi_dotted_skills(skills_dir)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codex dotted skill names not migrated unlike Kimi

Medium Severity

The _compute_output_name change converts dots to hyphens in skill names for all skill-backed agents (e.g. speckit-test.planspeckit-test-plan), but _migrate_legacy_kimi_dotted_skills only runs for Kimi. Codex users with existing extension skills containing internal dots (like speckit-myext.cmd) will end up with orphaned old directories alongside newly created hyphenated ones. Preset unregistration may also fail to match old skill names stored in the registry against the new naming convention.

Additional Locations (1)
Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants