@slope-dev/slope 1.5.1
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 +21 -0
- package/README.md +243 -0
- package/dist/cli/commands/auto-card.d.ts +2 -0
- package/dist/cli/commands/auto-card.d.ts.map +1 -0
- package/dist/cli/commands/auto-card.js +267 -0
- package/dist/cli/commands/auto-card.js.map +1 -0
- package/dist/cli/commands/briefing.d.ts +2 -0
- package/dist/cli/commands/briefing.d.ts.map +1 -0
- package/dist/cli/commands/briefing.js +133 -0
- package/dist/cli/commands/briefing.js.map +1 -0
- package/dist/cli/commands/card.d.ts +2 -0
- package/dist/cli/commands/card.d.ts.map +1 -0
- package/dist/cli/commands/card.js +144 -0
- package/dist/cli/commands/card.js.map +1 -0
- package/dist/cli/commands/claim.d.ts +2 -0
- package/dist/cli/commands/claim.d.ts.map +1 -0
- package/dist/cli/commands/claim.js +99 -0
- package/dist/cli/commands/claim.js.map +1 -0
- package/dist/cli/commands/classify.d.ts +2 -0
- package/dist/cli/commands/classify.d.ts.map +1 -0
- package/dist/cli/commands/classify.js +70 -0
- package/dist/cli/commands/classify.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +4 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +156 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/distill.d.ts +2 -0
- package/dist/cli/commands/distill.d.ts.map +1 -0
- package/dist/cli/commands/distill.js +91 -0
- package/dist/cli/commands/distill.js.map +1 -0
- package/dist/cli/commands/escalate.d.ts +2 -0
- package/dist/cli/commands/escalate.d.ts.map +1 -0
- package/dist/cli/commands/escalate.js +136 -0
- package/dist/cli/commands/escalate.js.map +1 -0
- package/dist/cli/commands/extract.d.ts +2 -0
- package/dist/cli/commands/extract.d.ts.map +1 -0
- package/dist/cli/commands/extract.js +147 -0
- package/dist/cli/commands/extract.js.map +1 -0
- package/dist/cli/commands/flows.d.ts +2 -0
- package/dist/cli/commands/flows.d.ts.map +1 -0
- package/dist/cli/commands/flows.js +156 -0
- package/dist/cli/commands/flows.js.map +1 -0
- package/dist/cli/commands/guard.d.ts +15 -0
- package/dist/cli/commands/guard.d.ts.map +1 -0
- package/dist/cli/commands/guard.js +207 -0
- package/dist/cli/commands/guard.js.map +1 -0
- package/dist/cli/commands/hook.d.ts +2 -0
- package/dist/cli/commands/hook.d.ts.map +1 -0
- package/dist/cli/commands/hook.js +299 -0
- package/dist/cli/commands/hook.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +421 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/map.d.ts +10 -0
- package/dist/cli/commands/map.d.ts.map +1 -0
- package/dist/cli/commands/map.js +591 -0
- package/dist/cli/commands/map.js.map +1 -0
- package/dist/cli/commands/next.d.ts +2 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +28 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +2 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +54 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/plugin.d.ts +2 -0
- package/dist/cli/commands/plugin.d.ts.map +1 -0
- package/dist/cli/commands/plugin.js +118 -0
- package/dist/cli/commands/plugin.js.map +1 -0
- package/dist/cli/commands/release.d.ts +2 -0
- package/dist/cli/commands/release.d.ts.map +1 -0
- package/dist/cli/commands/release.js +64 -0
- package/dist/cli/commands/release.js.map +1 -0
- package/dist/cli/commands/report.d.ts +2 -0
- package/dist/cli/commands/report.d.ts.map +1 -0
- package/dist/cli/commands/report.js +68 -0
- package/dist/cli/commands/report.js.map +1 -0
- package/dist/cli/commands/review-state.d.ts +11 -0
- package/dist/cli/commands/review-state.d.ts.map +1 -0
- package/dist/cli/commands/review-state.js +193 -0
- package/dist/cli/commands/review-state.js.map +1 -0
- package/dist/cli/commands/review.d.ts +2 -0
- package/dist/cli/commands/review.d.ts.map +1 -0
- package/dist/cli/commands/review.js +53 -0
- package/dist/cli/commands/review.js.map +1 -0
- package/dist/cli/commands/roadmap.d.ts +2 -0
- package/dist/cli/commands/roadmap.d.ts.map +1 -0
- package/dist/cli/commands/roadmap.js +283 -0
- package/dist/cli/commands/roadmap.js.map +1 -0
- package/dist/cli/commands/session.d.ts +2 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +232 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/standup.d.ts +2 -0
- package/dist/cli/commands/standup.d.ts.map +1 -0
- package/dist/cli/commands/standup.js +117 -0
- package/dist/cli/commands/standup.js.map +1 -0
- package/dist/cli/commands/status.d.ts +2 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +148 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/tournament.d.ts +2 -0
- package/dist/cli/commands/tournament.d.ts.map +1 -0
- package/dist/cli/commands/tournament.js +60 -0
- package/dist/cli/commands/tournament.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +2 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +74 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/config.d.ts +2 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +2 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/guards/commit-nudge.d.ts +7 -0
- package/dist/cli/guards/commit-nudge.d.ts.map +1 -0
- package/dist/cli/guards/commit-nudge.js +50 -0
- package/dist/cli/guards/commit-nudge.js.map +1 -0
- package/dist/cli/guards/compaction.d.ts +8 -0
- package/dist/cli/guards/compaction.d.ts.map +1 -0
- package/dist/cli/guards/compaction.js +79 -0
- package/dist/cli/guards/compaction.js.map +1 -0
- package/dist/cli/guards/explore.d.ts +8 -0
- package/dist/cli/guards/explore.d.ts.map +1 -0
- package/dist/cli/guards/explore.js +78 -0
- package/dist/cli/guards/explore.js.map +1 -0
- package/dist/cli/guards/hazard.d.ts +7 -0
- package/dist/cli/guards/hazard.d.ts.map +1 -0
- package/dist/cli/guards/hazard.js +43 -0
- package/dist/cli/guards/hazard.js.map +1 -0
- package/dist/cli/guards/next-action.d.ts +28 -0
- package/dist/cli/guards/next-action.d.ts.map +1 -0
- package/dist/cli/guards/next-action.js +196 -0
- package/dist/cli/guards/next-action.js.map +1 -0
- package/dist/cli/guards/push-nudge.d.ts +7 -0
- package/dist/cli/guards/push-nudge.d.ts.map +1 -0
- package/dist/cli/guards/push-nudge.js +53 -0
- package/dist/cli/guards/push-nudge.js.map +1 -0
- package/dist/cli/guards/review-tier.d.ts +7 -0
- package/dist/cli/guards/review-tier.d.ts.map +1 -0
- package/dist/cli/guards/review-tier.js +108 -0
- package/dist/cli/guards/review-tier.js.map +1 -0
- package/dist/cli/guards/scope-drift.d.ts +7 -0
- package/dist/cli/guards/scope-drift.d.ts.map +1 -0
- package/dist/cli/guards/scope-drift.js +47 -0
- package/dist/cli/guards/scope-drift.js.map +1 -0
- package/dist/cli/guards/stop-check.d.ts +7 -0
- package/dist/cli/guards/stop-check.d.ts.map +1 -0
- package/dist/cli/guards/stop-check.js +34 -0
- package/dist/cli/guards/stop-check.js.map +1 -0
- package/dist/cli/guards/subagent-gate.d.ts +7 -0
- package/dist/cli/guards/subagent-gate.d.ts.map +1 -0
- package/dist/cli/guards/subagent-gate.js +39 -0
- package/dist/cli/guards/subagent-gate.js.map +1 -0
- package/dist/cli/guards/version-check.d.ts +8 -0
- package/dist/cli/guards/version-check.d.ts.map +1 -0
- package/dist/cli/guards/version-check.js +49 -0
- package/dist/cli/guards/version-check.js.map +1 -0
- package/dist/cli/guards/workflow-gate.d.ts +7 -0
- package/dist/cli/guards/workflow-gate.d.ts.map +1 -0
- package/dist/cli/guards/workflow-gate.js +31 -0
- package/dist/cli/guards/workflow-gate.js.map +1 -0
- package/dist/cli/hooks-config.d.ts +9 -0
- package/dist/cli/hooks-config.d.ts.map +1 -0
- package/dist/cli/hooks-config.js +21 -0
- package/dist/cli/hooks-config.js.map +1 -0
- package/dist/cli/index.d.ts +19 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +282 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/loader.d.ts +2 -0
- package/dist/cli/loader.d.ts.map +1 -0
- package/dist/cli/loader.js +2 -0
- package/dist/cli/loader.js.map +1 -0
- package/dist/cli/metaphor.d.ts +6 -0
- package/dist/cli/metaphor.d.ts.map +1 -0
- package/dist/cli/metaphor.js +26 -0
- package/dist/cli/metaphor.js.map +1 -0
- package/dist/cli/registries/api-registry.d.ts +11 -0
- package/dist/cli/registries/api-registry.d.ts.map +1 -0
- package/dist/cli/registries/api-registry.js +42 -0
- package/dist/cli/registries/api-registry.js.map +1 -0
- package/dist/cli/registries/file-registry.d.ts +13 -0
- package/dist/cli/registries/file-registry.d.ts.map +1 -0
- package/dist/cli/registries/file-registry.js +55 -0
- package/dist/cli/registries/file-registry.js.map +1 -0
- package/dist/cli/registries/index.d.ts +7 -0
- package/dist/cli/registries/index.d.ts.map +1 -0
- package/dist/cli/registries/index.js +20 -0
- package/dist/cli/registries/index.js.map +1 -0
- package/dist/cli/store.d.ts +3 -0
- package/dist/cli/store.d.ts.map +1 -0
- package/dist/cli/store.js +13 -0
- package/dist/cli/store.js.map +1 -0
- package/dist/cli/template-generator.d.ts +15 -0
- package/dist/cli/template-generator.d.ts.map +1 -0
- package/dist/cli/template-generator.js +562 -0
- package/dist/cli/template-generator.js.map +1 -0
- package/dist/core/advisor.d.ts +63 -0
- package/dist/core/advisor.d.ts.map +1 -0
- package/dist/core/advisor.js +395 -0
- package/dist/core/advisor.js.map +1 -0
- package/dist/core/briefing.d.ts +103 -0
- package/dist/core/briefing.d.ts.map +1 -0
- package/dist/core/briefing.js +380 -0
- package/dist/core/briefing.js.map +1 -0
- package/dist/core/builder.d.ts +70 -0
- package/dist/core/builder.d.ts.map +1 -0
- package/dist/core/builder.js +175 -0
- package/dist/core/builder.js.map +1 -0
- package/dist/core/ci-signals.d.ts +10 -0
- package/dist/core/ci-signals.d.ts.map +1 -0
- package/dist/core/ci-signals.js +145 -0
- package/dist/core/ci-signals.js.map +1 -0
- package/dist/core/config.d.ts +48 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +42 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/constants.d.ts +14 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +44 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/dashboard.d.ts +40 -0
- package/dist/core/dashboard.d.ts.map +1 -0
- package/dist/core/dashboard.js +413 -0
- package/dist/core/dashboard.js.map +1 -0
- package/dist/core/dispersion.d.ts +12 -0
- package/dist/core/dispersion.d.ts.map +1 -0
- package/dist/core/dispersion.js +164 -0
- package/dist/core/dispersion.js.map +1 -0
- package/dist/core/escalation.d.ts +52 -0
- package/dist/core/escalation.d.ts.map +1 -0
- package/dist/core/escalation.js +105 -0
- package/dist/core/escalation.js.map +1 -0
- package/dist/core/flows.d.ts +44 -0
- package/dist/core/flows.d.ts.map +1 -0
- package/dist/core/flows.js +123 -0
- package/dist/core/flows.js.map +1 -0
- package/dist/core/formatter.d.ts +23 -0
- package/dist/core/formatter.d.ts.map +1 -0
- package/dist/core/formatter.js +301 -0
- package/dist/core/formatter.js.map +1 -0
- package/dist/core/guard.d.ts +124 -0
- package/dist/core/guard.d.ts.map +1 -0
- package/dist/core/guard.js +185 -0
- package/dist/core/guard.js.map +1 -0
- package/dist/core/handicap.d.ts +22 -0
- package/dist/core/handicap.d.ts.map +1 -0
- package/dist/core/handicap.js +111 -0
- package/dist/core/handicap.js.map +1 -0
- package/dist/core/index.d.ts +55 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +62 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/leaderboard.d.ts +32 -0
- package/dist/core/leaderboard.d.ts.map +1 -0
- package/dist/core/leaderboard.js +98 -0
- package/dist/core/leaderboard.js.map +1 -0
- package/dist/core/loader.d.ts +17 -0
- package/dist/core/loader.d.ts.map +1 -0
- package/dist/core/loader.js +68 -0
- package/dist/core/loader.js.map +1 -0
- package/dist/core/metaphor.d.ts +73 -0
- package/dist/core/metaphor.d.ts.map +1 -0
- package/dist/core/metaphor.js +73 -0
- package/dist/core/metaphor.js.map +1 -0
- package/dist/core/metaphors/baseball.d.ts +3 -0
- package/dist/core/metaphors/baseball.d.ts.map +1 -0
- package/dist/core/metaphors/baseball.js +89 -0
- package/dist/core/metaphors/baseball.js.map +1 -0
- package/dist/core/metaphors/dnd.d.ts +3 -0
- package/dist/core/metaphors/dnd.d.ts.map +1 -0
- package/dist/core/metaphors/dnd.js +89 -0
- package/dist/core/metaphors/dnd.js.map +1 -0
- package/dist/core/metaphors/gaming.d.ts +3 -0
- package/dist/core/metaphors/gaming.d.ts.map +1 -0
- package/dist/core/metaphors/gaming.js +89 -0
- package/dist/core/metaphors/gaming.js.map +1 -0
- package/dist/core/metaphors/golf.d.ts +3 -0
- package/dist/core/metaphors/golf.d.ts.map +1 -0
- package/dist/core/metaphors/golf.js +89 -0
- package/dist/core/metaphors/golf.js.map +1 -0
- package/dist/core/metaphors/index.d.ts +8 -0
- package/dist/core/metaphors/index.d.ts.map +1 -0
- package/dist/core/metaphors/index.js +17 -0
- package/dist/core/metaphors/index.js.map +1 -0
- package/dist/core/metaphors/matrix.d.ts +3 -0
- package/dist/core/metaphors/matrix.d.ts.map +1 -0
- package/dist/core/metaphors/matrix.js +89 -0
- package/dist/core/metaphors/matrix.js.map +1 -0
- package/dist/core/metaphors/tennis.d.ts +3 -0
- package/dist/core/metaphors/tennis.d.ts.map +1 -0
- package/dist/core/metaphors/tennis.js +89 -0
- package/dist/core/metaphors/tennis.js.map +1 -0
- package/dist/core/pipeline.d.ts +39 -0
- package/dist/core/pipeline.d.ts.map +1 -0
- package/dist/core/pipeline.js +158 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/player.d.ts +51 -0
- package/dist/core/player.d.ts.map +1 -0
- package/dist/core/player.js +101 -0
- package/dist/core/player.js.map +1 -0
- package/dist/core/plugins.d.ts +33 -0
- package/dist/core/plugins.d.ts.map +1 -0
- package/dist/core/plugins.js +176 -0
- package/dist/core/plugins.js.map +1 -0
- package/dist/core/pr-signals.d.ts +23 -0
- package/dist/core/pr-signals.d.ts.map +1 -0
- package/dist/core/pr-signals.js +178 -0
- package/dist/core/pr-signals.js.map +1 -0
- package/dist/core/registry.d.ts +20 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +62 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/report.d.ts +50 -0
- package/dist/core/report.d.ts.map +1 -0
- package/dist/core/report.js +392 -0
- package/dist/core/report.js.map +1 -0
- package/dist/core/roadmap.d.ts +74 -0
- package/dist/core/roadmap.d.ts.map +1 -0
- package/dist/core/roadmap.js +389 -0
- package/dist/core/roadmap.js.map +1 -0
- package/dist/core/roles.d.ts +23 -0
- package/dist/core/roles.d.ts.map +1 -0
- package/dist/core/roles.js +107 -0
- package/dist/core/roles.js.map +1 -0
- package/dist/core/standup.d.ts +44 -0
- package/dist/core/standup.d.ts.map +1 -0
- package/dist/core/standup.js +164 -0
- package/dist/core/standup.js.map +1 -0
- package/dist/core/store.d.ts +43 -0
- package/dist/core/store.d.ts.map +1 -0
- package/dist/core/store.js +11 -0
- package/dist/core/store.js.map +1 -0
- package/dist/core/team-handicap.d.ts +59 -0
- package/dist/core/team-handicap.d.ts.map +1 -0
- package/dist/core/team-handicap.js +227 -0
- package/dist/core/team-handicap.js.map +1 -0
- package/dist/core/tournament.d.ts +12 -0
- package/dist/core/tournament.d.ts.map +1 -0
- package/dist/core/tournament.js +249 -0
- package/dist/core/tournament.js.map +1 -0
- package/dist/core/types.d.ts +339 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/validation.d.ts +23 -0
- package/dist/core/validation.d.ts.map +1 -0
- package/dist/core/validation.js +140 -0
- package/dist/core/validation.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/index.d.ts +17 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +363 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/index.test.d.ts +2 -0
- package/dist/mcp/index.test.d.ts.map +1 -0
- package/dist/mcp/index.test.js +497 -0
- package/dist/mcp/index.test.js.map +1 -0
- package/dist/mcp/registry.d.ts +17 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +708 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/sandbox.d.ts +15 -0
- package/dist/mcp/sandbox.d.ts.map +1 -0
- package/dist/mcp/sandbox.js +153 -0
- package/dist/mcp/sandbox.js.map +1 -0
- package/dist/store/index.d.ts +40 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +324 -0
- package/dist/store/index.js.map +1 -0
- package/dist/tokens/colors.d.ts +47 -0
- package/dist/tokens/colors.d.ts.map +1 -0
- package/dist/tokens/colors.js +56 -0
- package/dist/tokens/colors.js.map +1 -0
- package/dist/tokens/css.d.ts +3 -0
- package/dist/tokens/css.d.ts.map +1 -0
- package/dist/tokens/css.js +58 -0
- package/dist/tokens/css.js.map +1 -0
- package/dist/tokens/index.d.ts +5 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +6 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/spacing.d.ts +23 -0
- package/dist/tokens/spacing.d.ts.map +1 -0
- package/dist/tokens/spacing.js +28 -0
- package/dist/tokens/spacing.js.map +1 -0
- package/dist/tokens/typography.d.ts +28 -0
- package/dist/tokens/typography.d.ts.map +1 -0
- package/dist/tokens/typography.js +34 -0
- package/dist/tokens/typography.js.map +1 -0
- package/package.json +69 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Sam Bryers
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# SLOPE
|
|
2
|
+
|
|
3
|
+
**Sprint Lifecycle & Operational Performance Engine**
|
|
4
|
+
|
|
5
|
+
A framework for measuring and improving sprint execution quality. Replace subjective retrospectives with objective, quantifiable metrics. Works with Claude Code, Cursor, and OpenCode.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Install
|
|
11
|
+
npm install -g @srbryers/cli
|
|
12
|
+
|
|
13
|
+
# Initialize in your project (auto-detects your AI tool)
|
|
14
|
+
slope init
|
|
15
|
+
|
|
16
|
+
# Or specify your platform
|
|
17
|
+
slope init --claude-code
|
|
18
|
+
slope init --cursor
|
|
19
|
+
slope init --opencode
|
|
20
|
+
|
|
21
|
+
# View your handicap card
|
|
22
|
+
slope card
|
|
23
|
+
|
|
24
|
+
# Get a pre-sprint briefing
|
|
25
|
+
slope briefing
|
|
26
|
+
|
|
27
|
+
# Generate an HTML performance report
|
|
28
|
+
slope report --html
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## What is SLOPE?
|
|
32
|
+
|
|
33
|
+
SLOPE maps sprint execution to a scoring metaphor. Every sprint has a **par** (expected ticket count), every ticket is a **shot** with an approach complexity and outcome. Over time, your **handicap** reveals patterns: Do you over-engineer? Under-scope? Pick the wrong approach?
|
|
34
|
+
|
|
35
|
+
SLOPE provides:
|
|
36
|
+
- **Scorecards** — structured sprint retros with quantified outcomes
|
|
37
|
+
- **Handicap tracking** — rolling performance windows (last 5, 10, all-time)
|
|
38
|
+
- **Dispersion analysis** — miss pattern detection and systemic issue identification
|
|
39
|
+
- **Training recommendations** — data-driven improvement suggestions
|
|
40
|
+
- **Agent guidance hooks** — real-time hints for AI coding agents
|
|
41
|
+
- **HTML reports** — self-contained visual performance dashboards
|
|
42
|
+
- **Multi-platform support** — Claude Code, Cursor, OpenCode
|
|
43
|
+
|
|
44
|
+
## Metaphors
|
|
45
|
+
|
|
46
|
+
SLOPE ships with 6 built-in metaphors. The scoring math is identical — only the terminology changes.
|
|
47
|
+
|
|
48
|
+
| Metaphor | Sprint | Ticket | Perfect | Par | Miss |
|
|
49
|
+
|----------|--------|--------|---------|-----|------|
|
|
50
|
+
| **Golf** (default) | Sprint | Shot | Hole-in-One | Par | Missed Long/Short/Left/Right |
|
|
51
|
+
| **Tennis** | Set | Point | Ace | Deuce | Wide/Net/Long/Out |
|
|
52
|
+
| **Baseball** | Inning | At-Bat | Home Run | Single | Foul/Strike/Pop/Ground |
|
|
53
|
+
| **Gaming** | Level | Quest | S-Rank | B-Rank | Over-leveled/Under-leveled/Wrong Path/Side-tracked |
|
|
54
|
+
| **D&D** | Quest | Encounter | Natural 20 | DC Met | Fumble/Misfire/Detour/Distraction |
|
|
55
|
+
| **Matrix** | Simulation | Anomaly | The One | Stable | Overclocked/Underclocked/Drift/Noise |
|
|
56
|
+
|
|
57
|
+
Configure in `.slope/config.json`:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{ "metaphor": "gaming" }
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or per-command: `slope review --metaphor=tennis`
|
|
64
|
+
|
|
65
|
+
## Packages
|
|
66
|
+
|
|
67
|
+
| Package | Description |
|
|
68
|
+
|---------|-------------|
|
|
69
|
+
| [`@srbryers/core`](packages/core) | Core engine — scoring, handicap, metaphors, reports, guards, roadmap, events |
|
|
70
|
+
| [`@srbryers/store-sqlite`](packages/store-sqlite) | SQLite storage adapter — sessions, claims, events, scorecards |
|
|
71
|
+
| [`@srbryers/cli`](packages/cli) | CLI tool — 22 commands for the full sprint lifecycle |
|
|
72
|
+
| [`@srbryers/mcp-tools`](packages/mcp-tools) | Code-mode MCP server — `search` + `execute` + session/claim tools |
|
|
73
|
+
|
|
74
|
+
## CLI Commands
|
|
75
|
+
|
|
76
|
+
### Scoring & Analysis
|
|
77
|
+
|
|
78
|
+
| Command | Description |
|
|
79
|
+
|---------|-------------|
|
|
80
|
+
| `slope card` | Display handicap card with rolling windows |
|
|
81
|
+
| `slope validate [path]` | Validate scorecard(s) |
|
|
82
|
+
| `slope review [path] [--plain] [--metaphor=id]` | Format sprint review as markdown |
|
|
83
|
+
| `slope report --html [--output=path] [--metaphor=id]` | Generate HTML performance report |
|
|
84
|
+
| `slope tournament --id=<id> --sprints=N..M` | Build tournament review from sprint range |
|
|
85
|
+
| `slope auto-card --sprint=N [--ci=path]` | Generate scorecard from git + CI signals |
|
|
86
|
+
|
|
87
|
+
### Planning & Guidance
|
|
88
|
+
|
|
89
|
+
| Command | Description |
|
|
90
|
+
|---------|-------------|
|
|
91
|
+
| `slope briefing [--sprint=N] [--categories=...] [--keywords=...]` | Pre-sprint briefing |
|
|
92
|
+
| `slope plan --complexity=<level>` | Club recommendation + training plan |
|
|
93
|
+
| `slope classify --scope=... --modified=... --tests=pass` | Classify a shot from execution trace |
|
|
94
|
+
| `slope next` | Show next sprint number |
|
|
95
|
+
| `slope roadmap validate\|review\|status\|show` | Strategic planning tools |
|
|
96
|
+
|
|
97
|
+
### Sessions & Claims
|
|
98
|
+
|
|
99
|
+
| Command | Description |
|
|
100
|
+
|---------|-------------|
|
|
101
|
+
| `slope session start\|end\|heartbeat\|list` | Manage live sessions |
|
|
102
|
+
| `slope claim --target=<t> [--scope=area] [--force]` | Claim a ticket or area |
|
|
103
|
+
| `slope release --id=<id>` | Release a claim |
|
|
104
|
+
| `slope status [--sprint=N]` | Show sprint course status + conflicts |
|
|
105
|
+
|
|
106
|
+
### Agent Hooks
|
|
107
|
+
|
|
108
|
+
| Command | Description |
|
|
109
|
+
|---------|-------------|
|
|
110
|
+
| `slope hook add\|remove\|list\|show` | Manage lifecycle hooks |
|
|
111
|
+
| `slope hook add --level=full` | Install all guidance hooks |
|
|
112
|
+
| `slope guard list\|enable\|disable` | Manage guard activation |
|
|
113
|
+
| `slope guard <name>` | Run a guard handler (stdin/stdout) |
|
|
114
|
+
|
|
115
|
+
### Setup
|
|
116
|
+
|
|
117
|
+
| Command | Description |
|
|
118
|
+
|---------|-------------|
|
|
119
|
+
| `slope init` | Create `.slope/` directory with config |
|
|
120
|
+
| `slope init --claude-code` | Install Claude Code rules, hooks, MCP config |
|
|
121
|
+
| `slope init --cursor` | Install Cursor rules + MCP config |
|
|
122
|
+
| `slope init --opencode` | Install OpenCode AGENTS.md + plugin |
|
|
123
|
+
| `slope init --all` | Install for all detected platforms |
|
|
124
|
+
| `slope extract --file=<path>` | Extract events into SLOPE store |
|
|
125
|
+
| `slope distill [--auto]` | Promote event patterns to common issues |
|
|
126
|
+
|
|
127
|
+
## Platform Setup
|
|
128
|
+
|
|
129
|
+
### Claude Code
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
slope init --claude-code
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Installs:
|
|
136
|
+
- `.claude/rules/` — Sprint checklist, commit discipline, review loop
|
|
137
|
+
- `.claude/hooks/` — Guard dispatcher for real-time guidance
|
|
138
|
+
- `.mcp.json` — SLOPE MCP server config
|
|
139
|
+
- `CLAUDE.md` — Project context
|
|
140
|
+
|
|
141
|
+
### Cursor
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
slope init --cursor
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Installs:
|
|
148
|
+
- `.cursor/rules/` — SLOPE methodology rules
|
|
149
|
+
- `.cursor/mcp.json` — MCP server config
|
|
150
|
+
|
|
151
|
+
### OpenCode
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
slope init --opencode
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Installs:
|
|
158
|
+
- `AGENTS.md` — SLOPE methodology (OpenCode reads this format)
|
|
159
|
+
- `.opencode/plugins/slope-plugin.ts` — Event capture plugin
|
|
160
|
+
|
|
161
|
+
## Agent Guidance Hooks
|
|
162
|
+
|
|
163
|
+
SLOPE can guide AI agents in real-time via hook integration. Six guards provide contextual hints:
|
|
164
|
+
|
|
165
|
+
| Guard | Trigger | What it does |
|
|
166
|
+
|-------|---------|-------------|
|
|
167
|
+
| `explore` | Before search/read | Suggests checking codebase index first |
|
|
168
|
+
| `hazard` | Before file edit | Warns about known issues in the area |
|
|
169
|
+
| `commit-nudge` | After file edit | Nudges commit/push after prolonged editing |
|
|
170
|
+
| `scope-drift` | Before file edit | Warns when editing outside claimed scope |
|
|
171
|
+
| `compaction` | Before context compact | Saves checkpoint to store |
|
|
172
|
+
| `stop-check` | Before session end | Blocks if uncommitted/unpushed work exists |
|
|
173
|
+
|
|
174
|
+
Install all guards:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
slope hook add --level=full
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Guards are non-blocking hints (except `stop-check`) — they inject context, never deny actions.
|
|
181
|
+
|
|
182
|
+
## Configuration
|
|
183
|
+
|
|
184
|
+
After `slope init`, configure `.slope/config.json`:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"scorecardDir": "docs/retros",
|
|
189
|
+
"scorecardPattern": "sprint-*.json",
|
|
190
|
+
"minSprint": 1,
|
|
191
|
+
"metaphor": "golf",
|
|
192
|
+
"commonIssuesPath": ".slope/common-issues.json",
|
|
193
|
+
"sessionsPath": ".slope/sessions.json",
|
|
194
|
+
"roadmapPath": "docs/backlog/roadmap.json",
|
|
195
|
+
"guidance": {
|
|
196
|
+
"disabled": [],
|
|
197
|
+
"commitInterval": 15,
|
|
198
|
+
"pushInterval": 30
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## Core API
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import {
|
|
207
|
+
buildScorecard,
|
|
208
|
+
validateScorecard,
|
|
209
|
+
computeHandicapCard,
|
|
210
|
+
computeDispersion,
|
|
211
|
+
formatSprintReview,
|
|
212
|
+
recommendClub,
|
|
213
|
+
classifyShot,
|
|
214
|
+
generateTrainingPlan,
|
|
215
|
+
buildReportData,
|
|
216
|
+
generateHtmlReport,
|
|
217
|
+
getMetaphor,
|
|
218
|
+
loadScorecards,
|
|
219
|
+
} from '@srbryers/core';
|
|
220
|
+
|
|
221
|
+
// Build a scorecard
|
|
222
|
+
const card = buildScorecard({
|
|
223
|
+
sprint_number: 1,
|
|
224
|
+
theme: 'My First Sprint',
|
|
225
|
+
par: 3,
|
|
226
|
+
slope: 0,
|
|
227
|
+
date: '2026-02-22',
|
|
228
|
+
shots: [
|
|
229
|
+
{ ticket_key: 'S1-1', title: 'Setup', club: 'short_iron', result: 'green', hazards: [] },
|
|
230
|
+
{ ticket_key: 'S1-2', title: 'Feature', club: 'short_iron', result: 'in_the_hole', hazards: [] },
|
|
231
|
+
{ ticket_key: 'S1-3', title: 'Tests', club: 'wedge', result: 'green', hazards: [] },
|
|
232
|
+
],
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
// Generate HTML report with gaming metaphor
|
|
236
|
+
const data = buildReportData([card]);
|
|
237
|
+
const gaming = getMetaphor('gaming');
|
|
238
|
+
const html = generateHtmlReport(data, gaming);
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## License
|
|
242
|
+
|
|
243
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-card.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/auto-card.ts"],"names":[],"mappings":"AA0EA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoJnE"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { buildScorecard, buildAgentBreakdowns, computeSlope, parseTestOutput, classifyShotFromSignals, buildGhCommand, parsePRJson, mergePRChecksWithCI } from '../../core/index.js';
|
|
5
|
+
import { loadConfig } from '../config.js';
|
|
6
|
+
import { resolveStore } from '../store.js';
|
|
7
|
+
function parseArgs(args) {
|
|
8
|
+
const result = {};
|
|
9
|
+
for (const arg of args) {
|
|
10
|
+
const match = arg.match(/^--(\w[\w-]*)=(.+)$/);
|
|
11
|
+
if (match)
|
|
12
|
+
result[match[1]] = match[2];
|
|
13
|
+
}
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
function git(cmd) {
|
|
17
|
+
try {
|
|
18
|
+
return execSync(`git ${cmd}`, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function getCommits(since, branch) {
|
|
25
|
+
const ref = branch ?? 'HEAD';
|
|
26
|
+
const sinceArg = since ? `--since="${since}"` : '';
|
|
27
|
+
const log = git(`log ${ref} ${sinceArg} --format="%H|||%s" --no-merges`);
|
|
28
|
+
if (!log)
|
|
29
|
+
return [];
|
|
30
|
+
return log.split('\n').filter(Boolean).map((line) => {
|
|
31
|
+
const [hash, subject] = line.split('|||');
|
|
32
|
+
const stat = git(`diff-tree --no-commit-id --name-only -r ${hash}`);
|
|
33
|
+
return {
|
|
34
|
+
hash,
|
|
35
|
+
subject: subject ?? '',
|
|
36
|
+
filesChanged: stat ? stat.split('\n').filter(Boolean).length : 0,
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function inferTicketKey(subject, index, sprintNumber) {
|
|
41
|
+
const ticketMatch = subject.match(/\b[A-Z]+-\d+\b/) ?? subject.match(/\bS\d+-\d+\b/i);
|
|
42
|
+
if (ticketMatch)
|
|
43
|
+
return ticketMatch[0];
|
|
44
|
+
return `S${sprintNumber}-${index + 1}`;
|
|
45
|
+
}
|
|
46
|
+
function inferClub(filesChanged) {
|
|
47
|
+
if (filesChanged >= 10)
|
|
48
|
+
return 'driver';
|
|
49
|
+
if (filesChanged >= 5)
|
|
50
|
+
return 'long_iron';
|
|
51
|
+
if (filesChanged >= 2)
|
|
52
|
+
return 'short_iron';
|
|
53
|
+
return 'wedge';
|
|
54
|
+
}
|
|
55
|
+
function inferSlopeFactors(commits) {
|
|
56
|
+
const factors = [];
|
|
57
|
+
const allSubjects = commits.map((c) => c.subject.toLowerCase()).join(' ');
|
|
58
|
+
if (allSubjects.includes('migration') || allSubjects.includes('schema'))
|
|
59
|
+
factors.push('schema_migration');
|
|
60
|
+
if (allSubjects.includes('deploy') || allSubjects.includes('ci') || allSubjects.includes('docker'))
|
|
61
|
+
factors.push('deployment');
|
|
62
|
+
if (commits.some((c) => c.filesChanged > 15))
|
|
63
|
+
factors.push('large_scope');
|
|
64
|
+
if (allSubjects.includes('refactor'))
|
|
65
|
+
factors.push('refactor');
|
|
66
|
+
if (new Set(commits.flatMap((c) => c.subject.match(/packages\/\w+/g) ?? [])).size > 1)
|
|
67
|
+
factors.push('cross_package');
|
|
68
|
+
return factors;
|
|
69
|
+
}
|
|
70
|
+
export async function autoCardCommand(args) {
|
|
71
|
+
const opts = parseArgs(args);
|
|
72
|
+
const config = loadConfig();
|
|
73
|
+
const sprintNumber = parseInt(opts.sprint ?? '', 10);
|
|
74
|
+
if (!sprintNumber) {
|
|
75
|
+
console.error('\nUsage: slope auto-card --sprint=<N> [--since=<date>] [--branch=<ref>] [--theme=<text>] [--player=<name>] [--test-output=<file>] [--pr=<number>] [--swarm=<id>] [--dry-run]\n');
|
|
76
|
+
console.error(' --sprint Sprint number (required)');
|
|
77
|
+
console.error(' --since Git log start date, e.g. "2026-02-20" (optional)');
|
|
78
|
+
console.error(' --branch Git ref to scan (default: HEAD)');
|
|
79
|
+
console.error(' --theme Sprint theme (default: auto-generated)');
|
|
80
|
+
console.error(' --player Player name for multi-developer repos');
|
|
81
|
+
console.error(' --test-output Path to test runner output file (Vitest/Jest) for CI-aware scoring');
|
|
82
|
+
console.error(' --pr PR number to fetch review/check metadata via `gh` CLI');
|
|
83
|
+
console.error(' --swarm Swarm ID — map commits to agents for per-agent breakdowns');
|
|
84
|
+
console.error(' --dry-run Print scorecard JSON without writing to disk\n');
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
const commits = getCommits(opts.since, opts.branch);
|
|
88
|
+
if (commits.length === 0) {
|
|
89
|
+
console.error('\nNo commits found. Try specifying --since or --branch.\n');
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
// Parse CI output if provided
|
|
93
|
+
let ciSignal;
|
|
94
|
+
if (opts['test-output']) {
|
|
95
|
+
try {
|
|
96
|
+
const raw = readFileSync(opts['test-output'], 'utf8');
|
|
97
|
+
ciSignal = parseTestOutput(raw);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
console.error(` Warning: Could not read test output from ${opts['test-output']}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Fetch PR metadata if --pr provided
|
|
104
|
+
let prSignal;
|
|
105
|
+
if (opts.pr) {
|
|
106
|
+
const prNumber = parseInt(opts.pr, 10);
|
|
107
|
+
if (prNumber > 0) {
|
|
108
|
+
try {
|
|
109
|
+
const cmd = buildGhCommand(prNumber);
|
|
110
|
+
const raw = execSync(cmd, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] });
|
|
111
|
+
const json = JSON.parse(raw);
|
|
112
|
+
prSignal = parsePRJson(json);
|
|
113
|
+
// Merge PR check data with CI signal
|
|
114
|
+
ciSignal = mergePRChecksWithCI(prSignal, ciSignal);
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
console.error(` Warning: Could not fetch PR #${prNumber} via gh CLI. Is gh installed and authenticated?`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const shots = commits.map((commit, i) => {
|
|
122
|
+
const files = git(`diff-tree --no-commit-id --name-only -r ${commit.hash}`)
|
|
123
|
+
.split('\n').filter(Boolean);
|
|
124
|
+
// Classify using combined signals
|
|
125
|
+
const classification = classifyShotFromSignals({
|
|
126
|
+
trace: {
|
|
127
|
+
planned_scope_paths: files,
|
|
128
|
+
modified_files: files,
|
|
129
|
+
test_results: [],
|
|
130
|
+
reverts: 0,
|
|
131
|
+
elapsed_minutes: 0,
|
|
132
|
+
hazards_encountered: [],
|
|
133
|
+
},
|
|
134
|
+
ci: ciSignal,
|
|
135
|
+
pr: prSignal,
|
|
136
|
+
});
|
|
137
|
+
return {
|
|
138
|
+
ticket_key: inferTicketKey(commit.subject, i, sprintNumber),
|
|
139
|
+
title: commit.subject,
|
|
140
|
+
club: inferClub(commit.filesChanged),
|
|
141
|
+
result: classification.result,
|
|
142
|
+
hazards: [],
|
|
143
|
+
notes: `${commit.filesChanged} files changed (${classification.reasoning})`,
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
const slopeFactors = inferSlopeFactors(commits);
|
|
147
|
+
const theme = opts.theme ?? `Sprint ${sprintNumber}`;
|
|
148
|
+
// Build per-agent breakdowns when --swarm is provided
|
|
149
|
+
let agents;
|
|
150
|
+
if (opts.swarm) {
|
|
151
|
+
agents = await buildSwarmAgents(opts.swarm, commits, shots);
|
|
152
|
+
}
|
|
153
|
+
const card = buildScorecard({
|
|
154
|
+
sprint_number: sprintNumber,
|
|
155
|
+
theme,
|
|
156
|
+
par: shots.length <= 2 ? 3 : shots.length <= 4 ? 4 : 5,
|
|
157
|
+
slope: computeSlope(slopeFactors),
|
|
158
|
+
date: new Date().toISOString().split('T')[0],
|
|
159
|
+
shots,
|
|
160
|
+
...(opts.player ? { player: opts.player } : {}),
|
|
161
|
+
...(agents ? { agents } : {}),
|
|
162
|
+
});
|
|
163
|
+
const output = {
|
|
164
|
+
...card,
|
|
165
|
+
slope_factors: slopeFactors,
|
|
166
|
+
_auto_generated: true,
|
|
167
|
+
_commits: commits.length,
|
|
168
|
+
_ci_signal: ciSignal ? { runner: ciSignal.runner, passed: ciSignal.test_passed, failed: ciSignal.test_failed } : null,
|
|
169
|
+
_pr_signal: prSignal ? { pr_number: prSignal.pr_number, review_cycles: prSignal.review_cycles, change_requests: prSignal.change_request_count, review_decision: prSignal.review_decision } : null,
|
|
170
|
+
_note: prSignal
|
|
171
|
+
? 'Auto-generated with CI + PR signals. Review shot results before filing.'
|
|
172
|
+
: ciSignal
|
|
173
|
+
? 'Auto-generated with CI signals. Review shot results before filing.'
|
|
174
|
+
: 'Auto-generated from git only (no CI). Shots default to green. Provide --test-output for better scoring.',
|
|
175
|
+
};
|
|
176
|
+
const json = JSON.stringify(output, null, 2);
|
|
177
|
+
if (args.includes('--dry-run')) {
|
|
178
|
+
console.log('\n' + json + '\n');
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const cwd = process.cwd();
|
|
182
|
+
const outPath = join(cwd, config.scorecardDir, `sprint-${sprintNumber}.json`);
|
|
183
|
+
if (existsSync(outPath)) {
|
|
184
|
+
console.error(`\n ${outPath} already exists. Use --dry-run to preview, then write manually.\n`);
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
writeFileSync(outPath, json + '\n');
|
|
188
|
+
console.log(`\n Written to ${outPath}`);
|
|
189
|
+
console.log(` ${commits.length} commits → ${shots.length} shots`);
|
|
190
|
+
console.log(` Par: ${card.par} | Slope: ${card.slope} (${slopeFactors.join(', ') || 'none'})`);
|
|
191
|
+
if (ciSignal) {
|
|
192
|
+
console.log(` CI: ${ciSignal.runner} — ${ciSignal.test_passed}/${ciSignal.test_total} tests pass`);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
console.log(` No CI output — shots default to green. Use --test-output for better scoring.`);
|
|
196
|
+
}
|
|
197
|
+
if (prSignal) {
|
|
198
|
+
console.log(` PR: #${prSignal.pr_number} — ${prSignal.review_decision}, ${prSignal.review_cycles} review cycle(s), ${prSignal.change_request_count} change request(s)`);
|
|
199
|
+
}
|
|
200
|
+
if (card.agents && card.agents.length > 0) {
|
|
201
|
+
console.log(` Agents: ${card.agents.length} (${card.agents.map(a => `${a.agent_role}: ${a.shots.length} shots`).join(', ')})`);
|
|
202
|
+
}
|
|
203
|
+
console.log(`\n Review shot results before filing.\n`);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Build per-agent breakdowns by mapping commits to swarm sessions via branch.
|
|
207
|
+
* Commits whose branch matches a session's branch are attributed to that agent.
|
|
208
|
+
* Unmatched commits are grouped under an "unknown" agent.
|
|
209
|
+
*/
|
|
210
|
+
async function buildSwarmAgents(swarmId, commits, shots) {
|
|
211
|
+
const cwd = process.cwd();
|
|
212
|
+
const store = await resolveStore(cwd);
|
|
213
|
+
try {
|
|
214
|
+
const sessions = await store.getSessionsBySwarm(swarmId);
|
|
215
|
+
if (sessions.length === 0) {
|
|
216
|
+
console.error(` Warning: No sessions found for swarm "${swarmId}". Skipping agent breakdowns.`);
|
|
217
|
+
return [];
|
|
218
|
+
}
|
|
219
|
+
// Map branches to sessions
|
|
220
|
+
const branchToSession = new Map();
|
|
221
|
+
for (const s of sessions) {
|
|
222
|
+
if (s.branch) {
|
|
223
|
+
branchToSession.set(s.branch, {
|
|
224
|
+
session_id: s.session_id,
|
|
225
|
+
agent_role: s.agent_role ?? 'generalist',
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// Map each commit to an agent by checking which branches contain it
|
|
230
|
+
const agentShots = new Map();
|
|
231
|
+
for (let i = 0; i < commits.length; i++) {
|
|
232
|
+
const commit = commits[i];
|
|
233
|
+
const shot = shots[i];
|
|
234
|
+
let matched = false;
|
|
235
|
+
for (const [branch, agent] of branchToSession) {
|
|
236
|
+
// Check if this commit is reachable from this branch
|
|
237
|
+
const isAncestor = git(`merge-base --is-ancestor ${commit.hash} ${branch} 2>/dev/null && echo yes || echo no`);
|
|
238
|
+
if (isAncestor === 'yes') {
|
|
239
|
+
const key = agent.session_id;
|
|
240
|
+
if (!agentShots.has(key)) {
|
|
241
|
+
agentShots.set(key, { ...agent, shots: [] });
|
|
242
|
+
}
|
|
243
|
+
agentShots.get(key).shots.push(shot);
|
|
244
|
+
matched = true;
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (!matched) {
|
|
249
|
+
// Fall back: attribute to first session or "unknown"
|
|
250
|
+
const fallbackKey = '_unmatched';
|
|
251
|
+
if (!agentShots.has(fallbackKey)) {
|
|
252
|
+
agentShots.set(fallbackKey, { session_id: 'unmatched', agent_role: 'unknown', shots: [] });
|
|
253
|
+
}
|
|
254
|
+
agentShots.get(fallbackKey).shots.push(shot);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return buildAgentBreakdowns(Array.from(agentShots.values()).map(a => ({
|
|
258
|
+
session_id: a.session_id,
|
|
259
|
+
agent_role: a.agent_role,
|
|
260
|
+
shots: a.shots,
|
|
261
|
+
})));
|
|
262
|
+
}
|
|
263
|
+
finally {
|
|
264
|
+
store.close();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=auto-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-card.js","sourceRoot":"","sources":["../../../src/cli/commands/auto-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"briefing.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/briefing.ts"],"names":[],"mappings":"AASA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwHnE"}
|