@ikunin/sprintpilot 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +330 -0
- package/_Sprintpilot/.secrets-allowlist +26 -0
- package/_Sprintpilot/Sprintpilot.md +216 -0
- package/_Sprintpilot/lib/runtime/args.js +77 -0
- package/_Sprintpilot/lib/runtime/git.js +24 -0
- package/_Sprintpilot/lib/runtime/http.js +96 -0
- package/_Sprintpilot/lib/runtime/log.js +30 -0
- package/_Sprintpilot/lib/runtime/secrets.js +151 -0
- package/_Sprintpilot/lib/runtime/spawn.js +68 -0
- package/_Sprintpilot/lib/runtime/text.js +26 -0
- package/_Sprintpilot/lib/runtime/yaml-lite.js +160 -0
- package/_Sprintpilot/manifest.yaml +26 -0
- package/_Sprintpilot/modules/autopilot/config.yaml +20 -0
- package/_Sprintpilot/modules/git/branching-and-pr-strategy.md +101 -0
- package/_Sprintpilot/modules/git/config.yaml +83 -0
- package/_Sprintpilot/modules/git/templates/commit-patch.txt +1 -0
- package/_Sprintpilot/modules/git/templates/commit-story.txt +1 -0
- package/_Sprintpilot/modules/git/templates/pr-body.md +20 -0
- package/_Sprintpilot/modules/ma/config.yaml +9 -0
- package/_Sprintpilot/scripts/create-pr.js +284 -0
- package/_Sprintpilot/scripts/detect-platform.js +64 -0
- package/_Sprintpilot/scripts/health-check.js +98 -0
- package/_Sprintpilot/scripts/lint-changed.js +249 -0
- package/_Sprintpilot/scripts/lock.js +195 -0
- package/_Sprintpilot/scripts/sanitize-branch.js +107 -0
- package/_Sprintpilot/scripts/stage-and-commit.js +190 -0
- package/_Sprintpilot/scripts/sync-status.js +141 -0
- package/_Sprintpilot/skills/sprint-autopilot-off/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprint-autopilot-off/workflow.md +154 -0
- package/_Sprintpilot/skills/sprint-autopilot-on/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprint-autopilot-on/workflow.md +1119 -0
- package/_Sprintpilot/skills/sprintpilot-assess/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-assess/agents/debt-classifier.md +64 -0
- package/_Sprintpilot/skills/sprintpilot-assess/agents/dependency-auditor.md +57 -0
- package/_Sprintpilot/skills/sprintpilot-assess/agents/migration-analyzer.md +62 -0
- package/_Sprintpilot/skills/sprintpilot-assess/workflow.md +114 -0
- package/_Sprintpilot/skills/sprintpilot-code-review/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-code-review/agents/acceptance-auditor.md +51 -0
- package/_Sprintpilot/skills/sprintpilot-code-review/agents/blind-hunter.md +39 -0
- package/_Sprintpilot/skills/sprintpilot-code-review/agents/edge-case-hunter.md +46 -0
- package/_Sprintpilot/skills/sprintpilot-code-review/workflow.md +111 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/agents/architecture-mapper.md +129 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/agents/concerns-hunter.md +135 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/agents/integration-mapper.md +138 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/agents/quality-assessor.md +143 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/agents/stack-analyzer.md +133 -0
- package/_Sprintpilot/skills/sprintpilot-codebase-map/workflow.md +120 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/agents/dependency-analyzer.md +51 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/agents/risk-assessor.md +55 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/agents/stack-mapper.md +49 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/agents/test-parity-analyzer.md +49 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/resources/coexistence-patterns.md +59 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/resources/strategies.md +43 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/templates/component-card.md +11 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/templates/migration-epics.md +35 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/templates/migration-plan.md +66 -0
- package/_Sprintpilot/skills/sprintpilot-migrate/workflow.md +235 -0
- package/_Sprintpilot/skills/sprintpilot-party-mode/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-party-mode/workflow.md +138 -0
- package/_Sprintpilot/skills/sprintpilot-research/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-research/workflow.md +128 -0
- package/_Sprintpilot/skills/sprintpilot-reverse-architect/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-reverse-architect/agents/component-mapper.md +53 -0
- package/_Sprintpilot/skills/sprintpilot-reverse-architect/agents/data-flow-tracer.md +54 -0
- package/_Sprintpilot/skills/sprintpilot-reverse-architect/agents/pattern-extractor.md +67 -0
- package/_Sprintpilot/skills/sprintpilot-reverse-architect/workflow.md +119 -0
- package/_Sprintpilot/skills/sprintpilot-update/SKILL.md +6 -0
- package/_Sprintpilot/skills/sprintpilot-update/workflow.md +46 -0
- package/_Sprintpilot/templates/agent-rules.md +43 -0
- package/bin/sprintpilot.js +95 -0
- package/lib/commands/check-update.js +54 -0
- package/lib/commands/install.js +876 -0
- package/lib/commands/uninstall.js +218 -0
- package/lib/core/bmad-config.js +113 -0
- package/lib/core/file-ops.js +90 -0
- package/lib/core/gitignore.js +54 -0
- package/lib/core/markers.js +126 -0
- package/lib/core/tool-registry.js +73 -0
- package/lib/core/update-check.js +39 -0
- package/lib/core/v1-detect.js +86 -0
- package/lib/prompts.js +82 -0
- package/lib/substitute.js +39 -0
- package/package.json +49 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
36
|
+
Object form, made available under the License, as indicated by a
|
|
37
|
+
copyright notice that is included in or attached to the work
|
|
38
|
+
(an example is provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
46
|
+
the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as a
|
|
159
|
+
result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright [yyyy] [name of copyright owner]
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# Sprintpilot — Autopilot & Multi-Agent Addon for BMad Method
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@ikunin/sprintpilot)
|
|
4
|
+
[](https://www.npmjs.com/package/@ikunin/sprintpilot)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://github.com/bmad-code-org/BMAD-METHOD)
|
|
7
|
+
[](https://nodejs.org)
|
|
8
|
+
[](#supported-tools)
|
|
9
|
+
[](https://github.com/ikunin/sprintpilot/stargazers)
|
|
10
|
+
|
|
11
|
+
Sprintpilot is an autonomous delivery addon **compatible with [BMad Method](https://github.com/bmad-code-org/BMAD-METHOD) v6**. One command takes your project from sprint plan to reviewed, tested, PR-ready code — with full git workflow and multi-agent intelligence.
|
|
12
|
+
|
|
13
|
+
> **Independent project.** Sprintpilot is not affiliated with or endorsed by BMad Code, LLC. "BMad™", "BMad Method™", and "BMAD-METHOD™" are trademarks of BMad Code, LLC. See [TRADEMARK.md](TRADEMARK.md).
|
|
14
|
+
|
|
15
|
+
> **Migrating from `bmad-autopilot-addon` v1?** See [MIGRATION.md](MIGRATION.md). `sprintpilot install` auto-detects v1 and cleanly replaces it.
|
|
16
|
+
|
|
17
|
+
## Included Skills
|
|
18
|
+
|
|
19
|
+
| Skill | Description |
|
|
20
|
+
|-------|-------------|
|
|
21
|
+
| `/sprint-autopilot-on` | Engage autonomous sprint execution |
|
|
22
|
+
| `/sprint-autopilot-off` | Disengage and show status |
|
|
23
|
+
| `/sprintpilot-update` | Check for updates and install the latest version |
|
|
24
|
+
| `/sprintpilot-code-review` | Parallel 3-layer adversarial code review |
|
|
25
|
+
| `/sprintpilot-codebase-map` | 5-stream brownfield codebase analysis |
|
|
26
|
+
| `/sprintpilot-assess` | Tech debt and dependency audit |
|
|
27
|
+
| `/sprintpilot-reverse-architect` | Extract architecture from existing code |
|
|
28
|
+
| `/sprintpilot-migrate` | Legacy migration planning |
|
|
29
|
+
| `/sprintpilot-research` | Parallel web research fan-out |
|
|
30
|
+
| `/sprintpilot-party-mode` | Multi-persona agent discussions |
|
|
31
|
+
|
|
32
|
+
## The Problem
|
|
33
|
+
|
|
34
|
+
BMad Method provides a structured development workflow with 50+ skills and agent personas. But using it manually means invoking each skill one at a time, navigating menus, making routine decisions, and handling git operations yourself. For a sprint with 10 stories across 3 epics, that's dozens of manual steps, context switches, and session restarts.
|
|
35
|
+
|
|
36
|
+
## The Solution: Sprintpilot
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
/sprint-autopilot-on
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
That's it. The autopilot takes over and drives your entire sprint to completion:
|
|
43
|
+
|
|
44
|
+
### What it does, story by story
|
|
45
|
+
|
|
46
|
+
1. **Reads your sprint plan** — picks the next story from `sprint-status.yaml`
|
|
47
|
+
2. **Creates an isolated worktree** — each story gets its own branch via `git worktree add`, keeping `main` clean
|
|
48
|
+
3. **Implements the story** — invokes `bmad-dev-story` which writes code and tests following TDD (RED then GREEN)
|
|
49
|
+
4. **Lints the code** — auto-detects your language (Python, JS/TS, Rust, Go, Ruby) and runs the appropriate linter on changed files only
|
|
50
|
+
5. **Stages explicitly** — never runs `git add -A`. Stages only changed files with pre-commit checks: secrets scanning, file size limits, binary detection
|
|
51
|
+
6. **Commits with conventional messages** — `feat(epic): story title (story-key)` with all placeholders resolved from your sprint artifacts
|
|
52
|
+
7. **Runs code review** — invokes `bmad-code-review` on the worktree diff
|
|
53
|
+
8. **Applies every patch** — auto-accepts all review findings, commits each fix separately for clean git history
|
|
54
|
+
9. **Pushes and creates a PR** (configurable) — auto-detects your platform (GitHub/GitLab) and creates a PR/MR with a detailed body. With `create_pr: false`, merges directly to main instead.
|
|
55
|
+
10. **Moves to the next story** — syncs status, exits the worktree, commits artifacts to main, picks up the next story
|
|
56
|
+
11. **Runs retrospective** — when all stories in an epic are done, runs `bmad-retrospective` and lists all PR URLs for merge
|
|
57
|
+
|
|
58
|
+
### What makes it autonomous
|
|
59
|
+
|
|
60
|
+
The autopilot handles everything that normally requires you to be present:
|
|
61
|
+
|
|
62
|
+
- **Menu navigation** — BMad Method skills present menus, confirmations, and choices. The autopilot auto-selects "Continue", "Create Mode", and makes context-appropriate decisions from your PRD and architecture docs.
|
|
63
|
+
- **Decision making** — when a skill asks a design question, the autopilot derives the answer from existing project artifacts (PRD, architecture, story specs). Only truly unanswerable questions pause execution.
|
|
64
|
+
- **Session management** — after 3 stories, the autopilot checkpoints state to disk and tells you to start a fresh session. `/sprint-autopilot-on` in the new session resumes exactly where it left off. No work is ever repeated.
|
|
65
|
+
- **Crash recovery** — if a session crashes mid-story, the next boot detects orphaned worktrees, recovers committed work (pushes it), and cleans up stale state.
|
|
66
|
+
|
|
67
|
+
### When it stops (and only when)
|
|
68
|
+
|
|
69
|
+
The autopilot runs until the sprint is done or hits one of exactly 5 true blockers:
|
|
70
|
+
|
|
71
|
+
1. A skill needs **original creative input** not in any project document (e.g., product vision for a PRD)
|
|
72
|
+
2. A **new external dependency** is needed that isn't in the project
|
|
73
|
+
3. **3 consecutive test failures** with no forward progress
|
|
74
|
+
4. A **security vulnerability** requiring architectural decisions beyond the story scope
|
|
75
|
+
5. **Conflicting acceptance criteria** that can't be resolved from project docs
|
|
76
|
+
|
|
77
|
+
Everything else — it decides, documents the decision in one sentence, and moves on.
|
|
78
|
+
|
|
79
|
+
### The git workflow in detail
|
|
80
|
+
|
|
81
|
+
Controlled by `git.push.create_pr` in `_Sprintpilot/modules/git/config.yaml`:
|
|
82
|
+
|
|
83
|
+
**PR flow** (`create_pr: true`, default) — stories are pushed and PRs are created. No auto-merge. Code reaches `main` only after PR approval.
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
main ─────────────────────────────────────────────────────────
|
|
87
|
+
│ (artifacts only)
|
|
88
|
+
├── story/1-1 ──→ push + PR #42 (→ main)
|
|
89
|
+
│ │
|
|
90
|
+
│ └── story/1-2 ──→ push + PR #43 (→ story/1-1)
|
|
91
|
+
│ │
|
|
92
|
+
│ └── story/1-3 ──→ push + PR #44 (→ story/1-2)
|
|
93
|
+
│
|
|
94
|
+
Epic 1 complete → retrospective
|
|
95
|
+
→ "Ready to merge: PR #42, #43, #44"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
When previous stories have pending PRs, the autopilot creates **stacked PRs** — each story branches from the previous story's branch and targets it. When a PR is merged on the platform, subsequent PRs automatically retarget.
|
|
99
|
+
|
|
100
|
+
**Direct merge flow** (`create_pr: false`) — stories are merged to `main` immediately after push:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
main ── story/1-1 ──→ merge ── story/1-2 ──→ merge ── story/1-3 ──→ merge
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Each story is fully isolated in its own worktree. No half-finished code on `main`. The autopilot tracks git metadata in its own `git-status.yaml` (commit SHA, push status, PR URL, lint results) — it never modifies BMad Method's `sprint-status.yaml`. Implementation artifacts (sprint status, story files, planning docs) are always committed to `main` after each story, regardless of merge strategy.
|
|
107
|
+
|
|
108
|
+
See [`modules/git/branching-and-pr-strategy.md`](_Sprintpilot/modules/git/branching-and-pr-strategy.md) for the full branching and PR decision matrix.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Multi-Agent Intelligence
|
|
113
|
+
|
|
114
|
+
Beyond the autopilot, Sprintpilot includes 7 multi-agent skills that launch parallel subagents for tasks that benefit from diverse perspectives:
|
|
115
|
+
|
|
116
|
+
### Parallel Code Review (`/sprintpilot-code-review`)
|
|
117
|
+
|
|
118
|
+
Three independent reviewers run simultaneously on the same diff:
|
|
119
|
+
|
|
120
|
+
| Agent | Perspective | Access |
|
|
121
|
+
|-------|------------|--------|
|
|
122
|
+
| **Blind Hunter** | Pure adversarial — finds bugs from code alone | Diff only, no project context |
|
|
123
|
+
| **Edge Case Hunter** | Boundary conditions, race conditions, missing validation | Full codebase access |
|
|
124
|
+
| **Acceptance Auditor** | Verifies every acceptance criterion is met | Diff + story spec |
|
|
125
|
+
|
|
126
|
+
Results are triaged: duplicates merged, contradictions flagged, findings classified as PATCH / WARN / DISMISS.
|
|
127
|
+
|
|
128
|
+
### Brownfield Analysis Pipeline
|
|
129
|
+
|
|
130
|
+
> Codebase mapping inspired by [GSD's map-codebase](https://github.com/gsd-build/get-shit-done). Adapted with distinct output format, enriched agent prompts, and BMad Method-specific downstream integration.
|
|
131
|
+
|
|
132
|
+
For existing codebases, three skills chain together:
|
|
133
|
+
|
|
134
|
+
**`/sprintpilot-codebase-map`** — 5 parallel agents scan the codebase simultaneously:
|
|
135
|
+
- Stack Analyzer (languages, frameworks, versions)
|
|
136
|
+
- Architecture Mapper (modules, patterns, data flow)
|
|
137
|
+
- Quality Assessor (tests, CI/CD, conventions)
|
|
138
|
+
- Concerns Hunter (TODOs, deprecated APIs, security issues, dead code)
|
|
139
|
+
- Integration Mapper (external APIs, databases, env vars)
|
|
140
|
+
|
|
141
|
+
Output files (`_bmad-output/codebase-analysis/`):
|
|
142
|
+
|
|
143
|
+
| File | Content |
|
|
144
|
+
|------|---------|
|
|
145
|
+
| `stack-analysis.md` | Languages, frameworks, versions, runtime requirements, package health |
|
|
146
|
+
| `architecture-analysis.md` | Project structure, architectural pattern, module boundaries, data flow |
|
|
147
|
+
| `quality-analysis.md` | Test coverage, CI/CD pipeline, code conventions, complexity metrics |
|
|
148
|
+
| `concerns-analysis.md` | TODOs/FIXMEs, security issues, dead code, deprecated patterns, error handling gaps |
|
|
149
|
+
| `integrations-analysis.md` | External APIs, databases, message queues, cloud services, env vars |
|
|
150
|
+
|
|
151
|
+
Scanned file types: TypeScript, JavaScript, Python, Java, Go, Rust, Ruby, C#, SQL, PL/SQL (`.sps`, `.spb`), XML, Shell.
|
|
152
|
+
|
|
153
|
+
**`/sprintpilot-assess`** — 3 parallel agents produce actionable findings:
|
|
154
|
+
- Dependency Auditor (CVEs, outdated packages, upgrade paths)
|
|
155
|
+
- Debt Classifier (prioritized tech debt with effort estimates)
|
|
156
|
+
- Migration Analyzer (framework upgrade paths and phased roadmap)
|
|
157
|
+
|
|
158
|
+
Output file: `_bmad-output/codebase-analysis/brownfield-assessment.md` — prioritized findings with severity, confidence, effort, and migration paths.
|
|
159
|
+
|
|
160
|
+
**`/sprintpilot-reverse-architect`** — 3 parallel agents extract architecture from code:
|
|
161
|
+
- Component Mapper (module boundaries, dependency graph)
|
|
162
|
+
- Data Flow Tracer (request lifecycle, state management)
|
|
163
|
+
- Pattern Extractor (design patterns, conventions, error handling)
|
|
164
|
+
|
|
165
|
+
Output file: `{planning_artifacts}/architecture.md` — architecture document compatible with BMad Method that feeds directly into `bmad-create-epics-and-stories`.
|
|
166
|
+
|
|
167
|
+
### Migration Planning (`/sprintpilot-migrate`)
|
|
168
|
+
|
|
169
|
+
A 12-step workflow for taking a codebase from one stack to another. 4 subagent fan-outs across the process:
|
|
170
|
+
|
|
171
|
+
1. Validate prerequisites and get target stack from user
|
|
172
|
+
2. Auto-recommend migration strategy (strangler fig / big bang / branch-by-abstraction / parallel run)
|
|
173
|
+
3. **Parallel**: Stack Mapper + Dependency Analyzer produce compatibility matrix
|
|
174
|
+
4. Design coexistence layer (old + new code running together)
|
|
175
|
+
5. Build phased roadmap ordered by dependency graph
|
|
176
|
+
6. Generate per-component migration cards with effort/risk
|
|
177
|
+
7. Plan data migration (schema changes, dual-write, backfill)
|
|
178
|
+
8. Design API compatibility (versioning, deprecation timeline)
|
|
179
|
+
9. **Parallel**: Test Parity Analyzer maps old tests to new equivalents
|
|
180
|
+
10. **Parallel**: Risk Assessor produces per-phase risk matrix with rollback triggers
|
|
181
|
+
11. Generate BMad Method-compatible epics for sprint planning
|
|
182
|
+
12. Finalize migration plan, epics, and tracking artifacts
|
|
183
|
+
|
|
184
|
+
Output files:
|
|
185
|
+
|
|
186
|
+
| File | Location | Content |
|
|
187
|
+
|------|----------|---------|
|
|
188
|
+
| `migration-plan.md` | `{planning_artifacts}/` | Full plan: strategy, compatibility matrix, coexistence design, phased roadmap, component cards, data/API migration, risk matrix |
|
|
189
|
+
| `migration-epics.md` | `{planning_artifacts}/` | Epics with stories, acceptance criteria, and effort estimates (BMad Method-compatible) |
|
|
190
|
+
| `migration-tracking.yaml` | `{implementation_artifacts}/` | Phase-by-phase progress tracking for sprint execution |
|
|
191
|
+
|
|
192
|
+
### Research and Discussion
|
|
193
|
+
|
|
194
|
+
**`/sprintpilot-research`** — Fan out research across multiple topics in parallel, each with web search access. Results synthesized into a unified report.
|
|
195
|
+
|
|
196
|
+
**`/sprintpilot-party-mode`** — Launch 2-3 BMad Method personas (architect, PM, QA, dev, etc.) as parallel agents debating a topic. Multiple rounds where personas respond to each other. Produces consensus points, disagreements, and action items.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Quick Start
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# 1. Install BMad Method with the core method and Test Architect module
|
|
204
|
+
# (interactive — you'll be prompted to pick your tool)
|
|
205
|
+
npx bmad-method install --modules bmm,tea
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
This installs:
|
|
209
|
+
- **BMM** (BMad Method core) — the core development workflow with 34+ skills
|
|
210
|
+
- **TEA** (Test Architect Enterprise) — risk-based test strategy, ATDD, CI quality gates, test framework scaffolding
|
|
211
|
+
|
|
212
|
+
For full interactive setup (module *and* tool selection):
|
|
213
|
+
```bash
|
|
214
|
+
npx bmad-method install
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# 2. Install Sprintpilot (interactive — select your tool when prompted)
|
|
219
|
+
npx @ikunin/sprintpilot@latest
|
|
220
|
+
|
|
221
|
+
# 3. Start the autopilot in your IDE
|
|
222
|
+
/sprint-autopilot-on
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
See [Supported Tools](#supported-tools) below for the full list of `--tools` values if you prefer non-interactive installs.
|
|
226
|
+
|
|
227
|
+
## Supported Tools
|
|
228
|
+
|
|
229
|
+
Sprintpilot uses the universal SKILL.md format — same skills work across all 9 tools:
|
|
230
|
+
|
|
231
|
+
| Tool | Directory |
|
|
232
|
+
|------|-----------|
|
|
233
|
+
| Claude Code | `.claude/skills/` |
|
|
234
|
+
| Cursor | `.cursor/skills/` |
|
|
235
|
+
| Windsurf | `.windsurf/skills/` |
|
|
236
|
+
| Gemini CLI | `.gemini/skills/` |
|
|
237
|
+
| Cline | `.cline/skills/` |
|
|
238
|
+
| Roo Code | `.roo/skills/` |
|
|
239
|
+
| Trae | `.trae/skills/` |
|
|
240
|
+
| Kiro | `.kiro/skills/` |
|
|
241
|
+
| GitHub Copilot | `.github/copilot/skills/` |
|
|
242
|
+
|
|
243
|
+
For non-interactive installs, pass one or more tool keys via `--tools`:
|
|
244
|
+
```bash
|
|
245
|
+
npx @ikunin/sprintpilot@latest install --tools <tool1>,<tool2> --yes
|
|
246
|
+
```
|
|
247
|
+
Valid values: `claude-code`, `cursor`, `windsurf`, `gemini-cli`, `cline`, `roo`, `trae`, `kiro`, `github-copilot`, or `all`.
|
|
248
|
+
|
|
249
|
+
## Git Platforms
|
|
250
|
+
|
|
251
|
+
| Platform | CLI | Auto-Detect | API Fallback |
|
|
252
|
+
|----------|-----|-------------|-------------|
|
|
253
|
+
| GitHub | `gh` | `github.com` | No |
|
|
254
|
+
| GitLab | `glab` | `gitlab.*` | No |
|
|
255
|
+
| Bitbucket | `bb` | `bitbucket.org` | Yes (`BITBUCKET_TOKEN`) |
|
|
256
|
+
| Gitea | `tea` | Explicit config | Yes (`GITEA_TOKEN` + `base_url`) |
|
|
257
|
+
|
|
258
|
+
No CLI installed? The addon falls back to **git_only mode** (direct merge, no PRs).
|
|
259
|
+
|
|
260
|
+
To explicitly choose between PR and direct merge regardless of platform:
|
|
261
|
+
```yaml
|
|
262
|
+
# _Sprintpilot/modules/git/config.yaml
|
|
263
|
+
git:
|
|
264
|
+
push:
|
|
265
|
+
create_pr: true # PR flow (default) — push + PR, no auto-merge
|
|
266
|
+
create_pr: false # Direct merge — merge to main after each story
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Supported Languages (Linting)
|
|
270
|
+
|
|
271
|
+
| Language | Linters | Language | Linters |
|
|
272
|
+
|----------|---------|----------|---------|
|
|
273
|
+
| Python | ruff, flake8, pylint | Java | checkstyle, pmd |
|
|
274
|
+
| JavaScript/TS | eslint, biome | C/C++ | cppcheck, clang-tidy |
|
|
275
|
+
| Rust | cargo clippy | C# | dotnet format |
|
|
276
|
+
| Go | golangci-lint | Swift | swiftlint |
|
|
277
|
+
| Ruby | rubocop | PL/SQL | sqlfluff |
|
|
278
|
+
| Kotlin | ktlint, detekt | PHP | phpstan, phpcs |
|
|
279
|
+
|
|
280
|
+
First found wins per language. Multi-language projects (monorepos) lint all languages in one pass. See [Extending](docs/EXTENDING.md) to add more.
|
|
281
|
+
|
|
282
|
+
## Configuration
|
|
283
|
+
|
|
284
|
+
All settings live in two YAML files — edit after install to customize behavior.
|
|
285
|
+
|
|
286
|
+
### Git Workflow (`_Sprintpilot/modules/git/config.yaml`)
|
|
287
|
+
|
|
288
|
+
| Setting | Default | Description |
|
|
289
|
+
|---------|---------|-------------|
|
|
290
|
+
| `git.enabled` | `true` | Enable/disable all git operations |
|
|
291
|
+
| `git.base_branch` | `main` | Branch PRs target |
|
|
292
|
+
| `git.branch_prefix` | `story/` | Story branch naming (e.g., `story/1-2-user-auth`) |
|
|
293
|
+
| `git.lint.enabled` | `true` | Lint changed files after implementation |
|
|
294
|
+
| `git.lint.blocking` | `false` | `true` = lint errors halt autopilot |
|
|
295
|
+
| `git.push.auto` | `true` | Auto-push branches after commit |
|
|
296
|
+
| `git.push.create_pr` | `true` | Create PR (`false` = direct merge to base branch) |
|
|
297
|
+
| `git.platform.provider` | `auto` | `auto` \| `github` \| `gitlab` \| `bitbucket` \| `gitea` \| `git_only` |
|
|
298
|
+
| `git.lock.stale_timeout_minutes` | `30` | Auto-remove orphaned lock files |
|
|
299
|
+
| `git.worktree.cleanup_on_merge` | `true` | Delete worktrees after merge |
|
|
300
|
+
|
|
301
|
+
### Multi-Agent (`_Sprintpilot/modules/ma/config.yaml`)
|
|
302
|
+
|
|
303
|
+
| Setting | Default | Description |
|
|
304
|
+
|---------|---------|-------------|
|
|
305
|
+
| `multi_agent.enabled` | `true` | Enable parallel agent skills |
|
|
306
|
+
| `multi_agent.max_parallel_research` | `3` | Concurrent research agents per batch |
|
|
307
|
+
| `multi_agent.max_parallel_analysis` | `5` | Concurrent codebase analysis agents |
|
|
308
|
+
|
|
309
|
+
See the [Configuration Reference](docs/CONFIGURATION.md) for the full list.
|
|
310
|
+
|
|
311
|
+
## Requirements
|
|
312
|
+
|
|
313
|
+
- [BMad Method](https://github.com/bmad-code-org/BMAD-METHOD) v6.2.0+
|
|
314
|
+
- A supported AI code agent (see table above)
|
|
315
|
+
- Git repository with at least one commit
|
|
316
|
+
- Platform CLI for PR creation (optional — see table above)
|
|
317
|
+
|
|
318
|
+
## Documentation
|
|
319
|
+
|
|
320
|
+
- [Installation Guide](docs/INSTALLATION.md)
|
|
321
|
+
- [Usage Guide](docs/USAGE.md)
|
|
322
|
+
- [Architecture](docs/ARCHITECTURE.md)
|
|
323
|
+
- [Configuration Reference](docs/CONFIGURATION.md)
|
|
324
|
+
- [Extending (Platforms & Languages)](docs/EXTENDING.md)
|
|
325
|
+
- [Contributing](docs/CONTRIBUTING.md)
|
|
326
|
+
- [Changelog](CHANGELOG.md)
|
|
327
|
+
|
|
328
|
+
## License
|
|
329
|
+
|
|
330
|
+
Apache 2.0
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Patterns and paths exempt from secrets scanning
|
|
2
|
+
# One pattern per line. Supports glob syntax.
|
|
3
|
+
|
|
4
|
+
# Test files commonly contain mock secrets
|
|
5
|
+
test/**
|
|
6
|
+
tests/**
|
|
7
|
+
**/test_*
|
|
8
|
+
**/*_test.*
|
|
9
|
+
**/*_spec.*
|
|
10
|
+
spec/**
|
|
11
|
+
|
|
12
|
+
# Example/template files
|
|
13
|
+
*.example
|
|
14
|
+
*.sample
|
|
15
|
+
*.template
|
|
16
|
+
.env.example
|
|
17
|
+
.env.sample
|
|
18
|
+
|
|
19
|
+
# Documentation
|
|
20
|
+
docs/**
|
|
21
|
+
*.md
|
|
22
|
+
|
|
23
|
+
# Fixture/mock data
|
|
24
|
+
**/fixtures/**
|
|
25
|
+
**/mocks/**
|
|
26
|
+
**/testdata/**
|