agileflow 3.4.3 → 4.0.0-alpha.2
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/CHANGELOG.md +238 -473
- package/README.md +22 -114
- package/bin/agileflow.js +15 -0
- package/bin/hooks/pre-bash.js +35 -0
- package/bin/hooks/pre-compact.js +34 -0
- package/bin/hooks/pre-edit.js +32 -0
- package/bin/hooks/pre-write.js +32 -0
- package/bin/hooks/session-start.js +42 -0
- package/bin/hooks/stop.js +34 -0
- package/content/plugins/ads/plugin.yaml +14 -0
- package/content/plugins/audit/plugin.yaml +14 -0
- package/content/plugins/core/hooks/babysit-mentor-injector.js +55 -0
- package/content/plugins/core/hooks/context-loader.js +169 -0
- package/content/plugins/core/hooks/damage-control-bash.js +78 -0
- package/content/plugins/core/hooks/damage-control-edit.js +76 -0
- package/content/plugins/core/hooks/damage-control-patterns.yaml +100 -0
- package/content/plugins/core/hooks/damage-control-write.js +72 -0
- package/content/plugins/core/hooks/pre-compact-state.js +90 -0
- package/content/plugins/core/hooks/session-welcome.js +19 -0
- package/content/plugins/core/plugin.yaml +82 -0
- package/content/plugins/core/skills/agileflow-adr/SKILL.md +179 -0
- package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +144 -0
- package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +179 -0
- package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +132 -0
- package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +200 -0
- package/content/plugins/council/plugin.yaml +14 -0
- package/content/plugins/seo/plugin.yaml +14 -0
- package/package.json +29 -49
- package/src/cli/commands/doctor.js +159 -0
- package/src/cli/commands/hook.js +80 -0
- package/src/cli/commands/setup.js +292 -0
- package/src/cli/commands/status.js +47 -0
- package/src/cli/commands/update.js +83 -0
- package/src/cli/index.js +73 -0
- package/src/cli/wizard/behaviors-picker.js +108 -0
- package/src/cli/wizard/ide-picker.js +57 -0
- package/src/cli/wizard/personalization.js +64 -0
- package/src/cli/wizard/plugin-picker.js +106 -0
- package/src/lib/hash.js +41 -0
- package/src/runtime/config/defaults.js +61 -0
- package/src/runtime/config/loader.js +117 -0
- package/src/runtime/config/schema.json +99 -0
- package/src/runtime/config/writer.js +55 -0
- package/src/runtime/hooks/aggregator.js +157 -0
- package/src/runtime/hooks/chain.js +93 -0
- package/src/runtime/hooks/logger.js +68 -0
- package/src/runtime/hooks/manifest-loader.js +228 -0
- package/src/runtime/hooks/orchestrator.js +322 -0
- package/src/runtime/ide/capabilities.js +111 -0
- package/src/runtime/ide/claude-code-settings.js +234 -0
- package/src/runtime/ide/claude-code-skills.js +202 -0
- package/src/runtime/installer/file-index.js +112 -0
- package/src/runtime/installer/install.js +329 -0
- package/src/runtime/installer/stash.js +61 -0
- package/src/runtime/installer/sync-engine.js +205 -0
- package/src/runtime/plugins/registry.js +132 -0
- package/src/runtime/plugins/resolver.js +138 -0
- package/src/runtime/plugins/validator.js +196 -0
- package/src/runtime/skills/validator.js +335 -0
- package/lib/README.md +0 -178
- package/lib/api-routes.js +0 -625
- package/lib/api-server.js +0 -278
- package/lib/cache-provider.js +0 -155
- package/lib/codebase-indexer.js +0 -819
- package/lib/colors.generated.js +0 -117
- package/lib/colors.js +0 -341
- package/lib/consent.js +0 -232
- package/lib/content-sanitizer.js +0 -464
- package/lib/correlation.js +0 -277
- package/lib/drivers/claude-driver.ts +0 -312
- package/lib/drivers/codex-driver.ts +0 -464
- package/lib/drivers/driver-manager.ts +0 -159
- package/lib/drivers/gemini-driver.ts +0 -498
- package/lib/drivers/index.ts +0 -17
- package/lib/error-codes.js +0 -590
- package/lib/errors.js +0 -670
- package/lib/feature-flags.js +0 -171
- package/lib/feedback.js +0 -595
- package/lib/file-cache.js +0 -541
- package/lib/flag-detection.js +0 -344
- package/lib/format-error.js +0 -156
- package/lib/gate-runner.js +0 -282
- package/lib/generator-factory.js +0 -333
- package/lib/git-operations.js +0 -266
- package/lib/lazy-require.js +0 -59
- package/lib/lock-file.js +0 -144
- package/lib/logger.js +0 -106
- package/lib/merge-operations.js +0 -1006
- package/lib/path-resolver.js +0 -544
- package/lib/path-utils.js +0 -49
- package/lib/paths.js +0 -291
- package/lib/placeholder-registry.js +0 -822
- package/lib/process-executor.js +0 -214
- package/lib/progress.js +0 -334
- package/lib/protocol/driver.ts +0 -354
- package/lib/protocol/index.ts +0 -12
- package/lib/protocol/ir.ts +0 -271
- package/lib/registry-cache.js +0 -80
- package/lib/registry-di.js +0 -358
- package/lib/result-schema.js +0 -363
- package/lib/result.js +0 -210
- package/lib/session-display.js +0 -331
- package/lib/session-operations.js +0 -611
- package/lib/session-registry.js +0 -484
- package/lib/session-state-machine.js +0 -465
- package/lib/session-switching.js +0 -191
- package/lib/skill-loader.js +0 -213
- package/lib/smart-json-file.js +0 -682
- package/lib/state-machine.js +0 -286
- package/lib/table-formatter.js +0 -519
- package/lib/template-loader.js +0 -143
- package/lib/transient-status.js +0 -374
- package/lib/ui-manager.js +0 -612
- package/lib/validate-args.js +0 -213
- package/lib/validate-commands.js +0 -308
- package/lib/validate-names.js +0 -143
- package/lib/validate-paths.js +0 -434
- package/lib/validate.js +0 -134
- package/lib/worktree-operations.js +0 -201
- package/lib/yaml-utils.js +0 -164
- package/scripts/README.md +0 -267
- package/scripts/af +0 -34
- package/scripts/agent-loop.js +0 -879
- package/scripts/agileflow-configure.js +0 -368
- package/scripts/agileflow-statusline.sh +0 -857
- package/scripts/agileflow-welcome.js +0 -2246
- package/scripts/api-server-runner.js +0 -177
- package/scripts/archive-completed-stories.sh +0 -308
- package/scripts/auto-self-improve.js +0 -326
- package/scripts/automation-run-due.js +0 -128
- package/scripts/babysit-clear-restore.js +0 -154
- package/scripts/babysit-context-restore.js +0 -89
- package/scripts/backfill-ideation-status.js +0 -128
- package/scripts/batch-pmap-loop.js +0 -551
- package/scripts/check-sessions.js +0 -116
- package/scripts/check-update.js +0 -282
- package/scripts/ci-summary.js +0 -294
- package/scripts/claude-smart.sh +0 -85
- package/scripts/claude-tmux.sh +0 -737
- package/scripts/claude-watchdog.sh +0 -225
- package/scripts/clear-active-command.js +0 -48
- package/scripts/compress-status.sh +0 -116
- package/scripts/context-loader.js +0 -310
- package/scripts/damage-control/bash-tool-damage-control.js +0 -22
- package/scripts/damage-control/edit-tool-damage-control.js +0 -19
- package/scripts/damage-control/patterns.yaml +0 -227
- package/scripts/damage-control/write-tool-damage-control.js +0 -19
- package/scripts/damage-control-bash.js +0 -51
- package/scripts/damage-control-edit.js +0 -48
- package/scripts/damage-control-multi-agent.js +0 -231
- package/scripts/damage-control-write.js +0 -48
- package/scripts/dependency-check.js +0 -311
- package/scripts/document-repl.js +0 -793
- package/scripts/expertise-metrics.sh +0 -264
- package/scripts/generate-all.sh +0 -77
- package/scripts/generate-colors.js +0 -314
- package/scripts/generators/agent-registry.js +0 -183
- package/scripts/generators/command-registry.js +0 -166
- package/scripts/generators/index.js +0 -85
- package/scripts/generators/inject-babysit.js +0 -191
- package/scripts/generators/inject-help.js +0 -125
- package/scripts/generators/inject-readme.js +0 -166
- package/scripts/generators/skill-registry.js +0 -188
- package/scripts/get-env.js +0 -225
- package/scripts/init.sh +0 -76
- package/scripts/lib/README-portable-tasks.md +0 -424
- package/scripts/lib/ac-test-matcher.js +0 -452
- package/scripts/lib/audit-cleanup.js +0 -250
- package/scripts/lib/audit-registry.js +0 -340
- package/scripts/lib/automation-registry.js +0 -544
- package/scripts/lib/automation-runner.js +0 -476
- package/scripts/lib/browser-qa-evidence.js +0 -409
- package/scripts/lib/browser-qa-status.js +0 -192
- package/scripts/lib/bus-utils.js +0 -473
- package/scripts/lib/colors.generated.sh +0 -82
- package/scripts/lib/colors.sh +0 -46
- package/scripts/lib/command-prereqs.js +0 -280
- package/scripts/lib/concurrency-limiter.js +0 -511
- package/scripts/lib/configure-detect.js +0 -596
- package/scripts/lib/configure-features.js +0 -1927
- package/scripts/lib/configure-repair.js +0 -327
- package/scripts/lib/configure-utils.js +0 -114
- package/scripts/lib/context-formatter.js +0 -1158
- package/scripts/lib/context-loader.js +0 -840
- package/scripts/lib/counter.js +0 -103
- package/scripts/lib/damage-control-utils.js +0 -619
- package/scripts/lib/feature-catalog.js +0 -332
- package/scripts/lib/file-lock.js +0 -392
- package/scripts/lib/file-tracking.js +0 -735
- package/scripts/lib/frontmatter-parser.js +0 -133
- package/scripts/lib/gate-enforcer.js +0 -295
- package/scripts/lib/hook-metrics.js +0 -324
- package/scripts/lib/ideation-index.js +0 -1205
- package/scripts/lib/json-utils.sh +0 -162
- package/scripts/lib/lifecycle-detector.js +0 -125
- package/scripts/lib/model-profiles.js +0 -118
- package/scripts/lib/portable-tasks-cli.js +0 -274
- package/scripts/lib/portable-tasks.js +0 -479
- package/scripts/lib/process-cleanup.js +0 -527
- package/scripts/lib/quality-gates.js +0 -788
- package/scripts/lib/scale-detector.js +0 -396
- package/scripts/lib/sessionRegistry.js +0 -678
- package/scripts/lib/signal-detectors.js +0 -867
- package/scripts/lib/skill-catalog.js +0 -557
- package/scripts/lib/skill-recommender.js +0 -311
- package/scripts/lib/state-migrator.js +0 -353
- package/scripts/lib/status-task-bridge.js +0 -522
- package/scripts/lib/status-writer.js +0 -255
- package/scripts/lib/story-claiming.js +0 -704
- package/scripts/lib/story-state-machine.js +0 -437
- package/scripts/lib/sync-ideation-status.js +0 -291
- package/scripts/lib/task-registry-cache.js +0 -490
- package/scripts/lib/task-registry.js +0 -1191
- package/scripts/lib/task-sync.js +0 -230
- package/scripts/lib/tdd-phase-manager.js +0 -455
- package/scripts/lib/team-events.js +0 -510
- package/scripts/lib/tmux-audit-monitor.js +0 -612
- package/scripts/lib/tmux-group-colors.js +0 -113
- package/scripts/lib/tool-registry.yaml +0 -241
- package/scripts/lib/tool-shed.js +0 -441
- package/scripts/lib/validation-registry.js +0 -177
- package/scripts/messaging-bridge.js +0 -561
- package/scripts/migrate-ideation-index.js +0 -553
- package/scripts/native-team-observer.js +0 -219
- package/scripts/obtain-context.js +0 -272
- package/scripts/pre-push-check.sh +0 -46
- package/scripts/precompact-context.sh +0 -306
- package/scripts/query-codebase.js +0 -543
- package/scripts/ralph-loop.js +0 -1278
- package/scripts/resume-session.sh +0 -121
- package/scripts/screenshot-verifier.js +0 -215
- package/scripts/session-boundary.js +0 -138
- package/scripts/session-coordinator.sh +0 -232
- package/scripts/session-manager.js +0 -546
- package/scripts/smart-detect.js +0 -449
- package/scripts/spawn-audit-sessions.js +0 -877
- package/scripts/spawn-parallel.js +0 -751
- package/scripts/strip-ai-attribution.js +0 -63
- package/scripts/task-completed-gate.js +0 -237
- package/scripts/team-manager.js +0 -596
- package/scripts/team-status-display.js +0 -200
- package/scripts/teammate-idle-gate.js +0 -237
- package/scripts/test-session-boundary.js +0 -80
- package/scripts/tmux-close-windows.sh +0 -180
- package/scripts/tmux-restore-window.sh +0 -67
- package/scripts/tmux-save-closed-window.sh +0 -35
- package/scripts/tui/App.js +0 -151
- package/scripts/tui/Dashboard.js +0 -277
- package/scripts/tui/blessed/data/watcher.js +0 -180
- package/scripts/tui/blessed/index.js +0 -244
- package/scripts/tui/blessed/panels/output.js +0 -101
- package/scripts/tui/blessed/panels/sessions.js +0 -150
- package/scripts/tui/blessed/panels/trace.js +0 -97
- package/scripts/tui/blessed/ui/help.js +0 -77
- package/scripts/tui/blessed/ui/screen.js +0 -52
- package/scripts/tui/blessed/ui/statusbar.js +0 -47
- package/scripts/tui/blessed/ui/tabbar.js +0 -99
- package/scripts/tui/index.js +0 -70
- package/scripts/tui/lib/crashRecovery.js +0 -304
- package/scripts/tui/lib/eventStream.js +0 -309
- package/scripts/tui/lib/keyboard.js +0 -261
- package/scripts/tui/lib/loopControl.js +0 -371
- package/scripts/tui/panels/OutputPanel.js +0 -240
- package/scripts/tui/panels/SessionPanel.js +0 -170
- package/scripts/tui/panels/TracePanel.js +0 -298
- package/scripts/tui/simple-tui.js +0 -510
- package/scripts/validate-expertise.sh +0 -263
- package/scripts/validate-tokens.sh +0 -73
- package/scripts/validators/README.md +0 -143
- package/scripts/validators/component-validator.js +0 -239
- package/scripts/validators/json-schema-validator.js +0 -186
- package/scripts/validators/markdown-validator.js +0 -152
- package/scripts/validators/migration-validator.js +0 -129
- package/scripts/validators/security-validator.js +0 -380
- package/scripts/validators/story-format-validator.js +0 -197
- package/scripts/validators/test-result-validator.js +0 -114
- package/scripts/validators/workflow-validator.js +0 -247
- package/scripts/welcome-deferred.js +0 -437
- package/scripts/worktree-create.sh +0 -111
- package/src/core/agents/a11y-analyzer-aria.md +0 -155
- package/src/core/agents/a11y-analyzer-forms.md +0 -162
- package/src/core/agents/a11y-analyzer-keyboard.md +0 -175
- package/src/core/agents/a11y-analyzer-semantic.md +0 -153
- package/src/core/agents/a11y-analyzer-visual.md +0 -158
- package/src/core/agents/a11y-consensus.md +0 -248
- package/src/core/agents/accessibility.md +0 -515
- package/src/core/agents/adr-writer.md +0 -463
- package/src/core/agents/ads-audit-budget.md +0 -181
- package/src/core/agents/ads-audit-compliance.md +0 -169
- package/src/core/agents/ads-audit-creative.md +0 -164
- package/src/core/agents/ads-audit-google.md +0 -226
- package/src/core/agents/ads-audit-meta.md +0 -183
- package/src/core/agents/ads-audit-tracking.md +0 -197
- package/src/core/agents/ads-consensus.md +0 -396
- package/src/core/agents/ads-generate.md +0 -145
- package/src/core/agents/ads-performance-tracker.md +0 -197
- package/src/core/agents/analytics.md +0 -617
- package/src/core/agents/api-quality-analyzer-conventions.md +0 -148
- package/src/core/agents/api-quality-analyzer-docs.md +0 -176
- package/src/core/agents/api-quality-analyzer-errors.md +0 -183
- package/src/core/agents/api-quality-analyzer-pagination.md +0 -171
- package/src/core/agents/api-quality-analyzer-versioning.md +0 -143
- package/src/core/agents/api-quality-consensus.md +0 -214
- package/src/core/agents/api-validator.md +0 -183
- package/src/core/agents/api.md +0 -665
- package/src/core/agents/arch-analyzer-circular.md +0 -148
- package/src/core/agents/arch-analyzer-complexity.md +0 -171
- package/src/core/agents/arch-analyzer-coupling.md +0 -146
- package/src/core/agents/arch-analyzer-layering.md +0 -151
- package/src/core/agents/arch-analyzer-patterns.md +0 -162
- package/src/core/agents/arch-consensus.md +0 -227
- package/src/core/agents/brainstorm-analyzer-features.md +0 -169
- package/src/core/agents/brainstorm-analyzer-growth.md +0 -161
- package/src/core/agents/brainstorm-analyzer-integration.md +0 -172
- package/src/core/agents/brainstorm-analyzer-market.md +0 -147
- package/src/core/agents/brainstorm-analyzer-ux.md +0 -167
- package/src/core/agents/brainstorm-consensus.md +0 -237
- package/src/core/agents/browser-qa.md +0 -328
- package/src/core/agents/ci.md +0 -511
- package/src/core/agents/code-reviewer.md +0 -288
- package/src/core/agents/codebase-query.md +0 -266
- package/src/core/agents/completeness-analyzer-api.md +0 -190
- package/src/core/agents/completeness-analyzer-conditional.md +0 -201
- package/src/core/agents/completeness-analyzer-handlers.md +0 -159
- package/src/core/agents/completeness-analyzer-imports.md +0 -159
- package/src/core/agents/completeness-analyzer-routes.md +0 -182
- package/src/core/agents/completeness-analyzer-state.md +0 -188
- package/src/core/agents/completeness-analyzer-stubs.md +0 -198
- package/src/core/agents/completeness-consensus.md +0 -286
- package/src/core/agents/compliance.md +0 -509
- package/src/core/agents/council-advocate.md +0 -206
- package/src/core/agents/council-analyst.md +0 -252
- package/src/core/agents/council-optimist.md +0 -170
- package/src/core/agents/database.md +0 -601
- package/src/core/agents/datamigration.md +0 -699
- package/src/core/agents/design.md +0 -525
- package/src/core/agents/devops.md +0 -720
- package/src/core/agents/documentation.md +0 -504
- package/src/core/agents/epic-planner.md +0 -480
- package/src/core/agents/error-analyzer.md +0 -201
- package/src/core/agents/integrations.md +0 -603
- package/src/core/agents/legal-analyzer-a11y.md +0 -110
- package/src/core/agents/legal-analyzer-ai.md +0 -117
- package/src/core/agents/legal-analyzer-consumer.md +0 -108
- package/src/core/agents/legal-analyzer-content.md +0 -113
- package/src/core/agents/legal-analyzer-international.md +0 -115
- package/src/core/agents/legal-analyzer-licensing.md +0 -115
- package/src/core/agents/legal-analyzer-privacy.md +0 -108
- package/src/core/agents/legal-analyzer-security.md +0 -112
- package/src/core/agents/legal-analyzer-terms.md +0 -111
- package/src/core/agents/legal-consensus.md +0 -242
- package/src/core/agents/logic-analyzer-edge.md +0 -170
- package/src/core/agents/logic-analyzer-flow.md +0 -253
- package/src/core/agents/logic-analyzer-invariant.md +0 -206
- package/src/core/agents/logic-analyzer-race.md +0 -266
- package/src/core/agents/logic-analyzer-type.md +0 -217
- package/src/core/agents/logic-consensus.md +0 -253
- package/src/core/agents/mentor.md +0 -654
- package/src/core/agents/mobile.md +0 -501
- package/src/core/agents/monitoring.md +0 -537
- package/src/core/agents/multi-expert.md +0 -311
- package/src/core/agents/orchestrator.md +0 -749
- package/src/core/agents/perf-analyzer-assets.md +0 -174
- package/src/core/agents/perf-analyzer-bundle.md +0 -165
- package/src/core/agents/perf-analyzer-caching.md +0 -160
- package/src/core/agents/perf-analyzer-compute.md +0 -165
- package/src/core/agents/perf-analyzer-memory.md +0 -182
- package/src/core/agents/perf-analyzer-network.md +0 -157
- package/src/core/agents/perf-analyzer-queries.md +0 -155
- package/src/core/agents/perf-analyzer-rendering.md +0 -156
- package/src/core/agents/perf-consensus.md +0 -280
- package/src/core/agents/performance.md +0 -492
- package/src/core/agents/product.md +0 -535
- package/src/core/agents/qa.md +0 -765
- package/src/core/agents/readme-updater.md +0 -579
- package/src/core/agents/refactor.md +0 -558
- package/src/core/agents/research.md +0 -453
- package/src/core/agents/rlm-subcore.md +0 -207
- package/src/core/agents/schema-validator.md +0 -454
- package/src/core/agents/security-analyzer-api.md +0 -199
- package/src/core/agents/security-analyzer-auth.md +0 -160
- package/src/core/agents/security-analyzer-authz.md +0 -168
- package/src/core/agents/security-analyzer-deps.md +0 -147
- package/src/core/agents/security-analyzer-infra.md +0 -176
- package/src/core/agents/security-analyzer-injection.md +0 -148
- package/src/core/agents/security-analyzer-input.md +0 -191
- package/src/core/agents/security-analyzer-secrets.md +0 -175
- package/src/core/agents/security-consensus.md +0 -276
- package/src/core/agents/security.md +0 -486
- package/src/core/agents/seo-analyzer-content.md +0 -167
- package/src/core/agents/seo-analyzer-images.md +0 -187
- package/src/core/agents/seo-analyzer-performance.md +0 -206
- package/src/core/agents/seo-analyzer-schema.md +0 -176
- package/src/core/agents/seo-analyzer-sitemap.md +0 -172
- package/src/core/agents/seo-analyzer-technical.md +0 -144
- package/src/core/agents/seo-consensus.md +0 -289
- package/src/core/agents/team-coordinator.md +0 -333
- package/src/core/agents/team-lead.md +0 -171
- package/src/core/agents/test-analyzer-assertions.md +0 -181
- package/src/core/agents/test-analyzer-coverage.md +0 -183
- package/src/core/agents/test-analyzer-fragility.md +0 -185
- package/src/core/agents/test-analyzer-integration.md +0 -155
- package/src/core/agents/test-analyzer-maintenance.md +0 -173
- package/src/core/agents/test-analyzer-mocking.md +0 -178
- package/src/core/agents/test-analyzer-patterns.md +0 -189
- package/src/core/agents/test-analyzer-structure.md +0 -177
- package/src/core/agents/test-consensus.md +0 -294
- package/src/core/agents/testing.md +0 -527
- package/src/core/agents/ui-validator.md +0 -331
- package/src/core/agents/ui.md +0 -1227
- package/src/core/commands/adr/list.md +0 -191
- package/src/core/commands/adr/update.md +0 -258
- package/src/core/commands/adr/view.md +0 -274
- package/src/core/commands/adr.md +0 -394
- package/src/core/commands/ads/audit.md +0 -453
- package/src/core/commands/ads/budget.md +0 -97
- package/src/core/commands/ads/competitor.md +0 -112
- package/src/core/commands/ads/creative.md +0 -85
- package/src/core/commands/ads/generate.md +0 -238
- package/src/core/commands/ads/google.md +0 -112
- package/src/core/commands/ads/health.md +0 -327
- package/src/core/commands/ads/landing.md +0 -119
- package/src/core/commands/ads/linkedin.md +0 -112
- package/src/core/commands/ads/meta.md +0 -91
- package/src/core/commands/ads/microsoft.md +0 -115
- package/src/core/commands/ads/plan.md +0 -321
- package/src/core/commands/ads/test-plan.md +0 -317
- package/src/core/commands/ads/tiktok.md +0 -129
- package/src/core/commands/ads/track.md +0 -288
- package/src/core/commands/ads/youtube.md +0 -124
- package/src/core/commands/ads.md +0 -140
- package/src/core/commands/agent.md +0 -256
- package/src/core/commands/api.md +0 -267
- package/src/core/commands/assign.md +0 -369
- package/src/core/commands/audit.md +0 -531
- package/src/core/commands/auto.md +0 -556
- package/src/core/commands/automate.md +0 -415
- package/src/core/commands/babysit.md +0 -643
- package/src/core/commands/baseline.md +0 -743
- package/src/core/commands/batch.md +0 -551
- package/src/core/commands/blockers.md +0 -602
- package/src/core/commands/board.md +0 -509
- package/src/core/commands/browser-qa.md +0 -240
- package/src/core/commands/changelog.md +0 -582
- package/src/core/commands/choose.md +0 -430
- package/src/core/commands/ci.md +0 -330
- package/src/core/commands/code/accessibility.md +0 -363
- package/src/core/commands/code/api.md +0 -313
- package/src/core/commands/code/architecture.md +0 -313
- package/src/core/commands/code/completeness.md +0 -519
- package/src/core/commands/code/legal.md +0 -509
- package/src/core/commands/code/logic.md +0 -432
- package/src/core/commands/code/performance.md +0 -506
- package/src/core/commands/code/security.md +0 -509
- package/src/core/commands/code/test.md +0 -505
- package/src/core/commands/compress.md +0 -408
- package/src/core/commands/configure.md +0 -1159
- package/src/core/commands/context/export.md +0 -296
- package/src/core/commands/context/full.md +0 -353
- package/src/core/commands/context/note.md +0 -380
- package/src/core/commands/council.md +0 -592
- package/src/core/commands/debt.md +0 -491
- package/src/core/commands/deploy.md +0 -864
- package/src/core/commands/deps.md +0 -728
- package/src/core/commands/diagnose.md +0 -404
- package/src/core/commands/docs.md +0 -469
- package/src/core/commands/epic/edit.md +0 -213
- package/src/core/commands/epic/list.md +0 -190
- package/src/core/commands/epic/view.md +0 -267
- package/src/core/commands/epic.md +0 -477
- package/src/core/commands/export.md +0 -238
- package/src/core/commands/feedback.md +0 -603
- package/src/core/commands/handoff.md +0 -386
- package/src/core/commands/help.md +0 -194
- package/src/core/commands/ideate/brief.md +0 -363
- package/src/core/commands/ideate/discover.md +0 -399
- package/src/core/commands/ideate/features.md +0 -497
- package/src/core/commands/ideate/history.md +0 -403
- package/src/core/commands/ideate/new.md +0 -900
- package/src/core/commands/impact.md +0 -407
- package/src/core/commands/install.md +0 -529
- package/src/core/commands/learn/explain.md +0 -118
- package/src/core/commands/learn/glossary.md +0 -135
- package/src/core/commands/learn/patterns.md +0 -138
- package/src/core/commands/learn/tour.md +0 -126
- package/src/core/commands/maintain.md +0 -558
- package/src/core/commands/metrics.md +0 -844
- package/src/core/commands/migrate/codemods.md +0 -151
- package/src/core/commands/migrate/plan.md +0 -131
- package/src/core/commands/migrate/scan.md +0 -114
- package/src/core/commands/migrate/validate.md +0 -119
- package/src/core/commands/multi-expert.md +0 -447
- package/src/core/commands/packages.md +0 -535
- package/src/core/commands/pr.md +0 -337
- package/src/core/commands/readme-sync.md +0 -329
- package/src/core/commands/research/analyze.md +0 -798
- package/src/core/commands/research/ask.md +0 -864
- package/src/core/commands/research/import.md +0 -1025
- package/src/core/commands/research/list.md +0 -273
- package/src/core/commands/research/synthesize.md +0 -928
- package/src/core/commands/research/view.md +0 -323
- package/src/core/commands/retro.md +0 -795
- package/src/core/commands/review.md +0 -694
- package/src/core/commands/rlm.md +0 -446
- package/src/core/commands/roadmap/analyze.md +0 -400
- package/src/core/commands/rpi.md +0 -633
- package/src/core/commands/seo/audit.md +0 -444
- package/src/core/commands/seo/competitor.md +0 -174
- package/src/core/commands/seo/content.md +0 -107
- package/src/core/commands/seo/geo.md +0 -229
- package/src/core/commands/seo/hreflang.md +0 -140
- package/src/core/commands/seo/images.md +0 -96
- package/src/core/commands/seo/page.md +0 -198
- package/src/core/commands/seo/plan.md +0 -163
- package/src/core/commands/seo/programmatic.md +0 -131
- package/src/core/commands/seo/references/cwv-thresholds.md +0 -64
- package/src/core/commands/seo/references/eeat-framework.md +0 -110
- package/src/core/commands/seo/references/quality-gates.md +0 -91
- package/src/core/commands/seo/references/schema-types.md +0 -102
- package/src/core/commands/seo/schema.md +0 -183
- package/src/core/commands/seo/sitemap.md +0 -97
- package/src/core/commands/seo/technical.md +0 -100
- package/src/core/commands/seo.md +0 -107
- package/src/core/commands/session/cleanup.md +0 -452
- package/src/core/commands/session/end.md +0 -865
- package/src/core/commands/session/history.md +0 -293
- package/src/core/commands/session/init.md +0 -210
- package/src/core/commands/session/new.md +0 -827
- package/src/core/commands/session/resume.md +0 -291
- package/src/core/commands/session/spawn.md +0 -205
- package/src/core/commands/session/status.md +0 -274
- package/src/core/commands/skill/list.md +0 -139
- package/src/core/commands/skill/recommend.md +0 -216
- package/src/core/commands/sprint.md +0 -714
- package/src/core/commands/status/undo.md +0 -191
- package/src/core/commands/status.md +0 -423
- package/src/core/commands/story/edit.md +0 -204
- package/src/core/commands/story/list.md +0 -199
- package/src/core/commands/story/view.md +0 -312
- package/src/core/commands/story-validate.md +0 -491
- package/src/core/commands/story.md +0 -465
- package/src/core/commands/tdd-next.md +0 -238
- package/src/core/commands/tdd.md +0 -211
- package/src/core/commands/team/guide.md +0 -688
- package/src/core/commands/team/list.md +0 -59
- package/src/core/commands/team/start.md +0 -130
- package/src/core/commands/team/status.md +0 -66
- package/src/core/commands/team/stop.md +0 -78
- package/src/core/commands/template.md +0 -644
- package/src/core/commands/tests.md +0 -731
- package/src/core/commands/update.md +0 -591
- package/src/core/commands/validate-expertise.md +0 -305
- package/src/core/commands/velocity.md +0 -630
- package/src/core/commands/verify.md +0 -534
- package/src/core/commands/whats-new.md +0 -201
- package/src/core/commands/workflow.md +0 -449
- package/src/core/council/sessions/.gitkeep +0 -0
- package/src/core/council/shared_reasoning.template.md +0 -106
- package/src/core/experts/README.md +0 -236
- package/src/core/experts/_core-expertise.yaml +0 -105
- package/src/core/experts/accessibility/expertise.yaml +0 -115
- package/src/core/experts/accessibility/question.md +0 -41
- package/src/core/experts/accessibility/self-improve.md +0 -45
- package/src/core/experts/accessibility/workflow.md +0 -59
- package/src/core/experts/adr-writer/expertise.yaml +0 -138
- package/src/core/experts/adr-writer/question.md +0 -56
- package/src/core/experts/adr-writer/self-improve.md +0 -106
- package/src/core/experts/adr-writer/workflow.md +0 -184
- package/src/core/experts/analytics/expertise.yaml +0 -119
- package/src/core/experts/analytics/question.md +0 -74
- package/src/core/experts/analytics/self-improve.md +0 -163
- package/src/core/experts/analytics/workflow.md +0 -272
- package/src/core/experts/api/expertise.yaml +0 -124
- package/src/core/experts/api/question.md +0 -74
- package/src/core/experts/api/self-improve.md +0 -122
- package/src/core/experts/api/workflow.md +0 -248
- package/src/core/experts/ci/expertise.yaml +0 -106
- package/src/core/experts/ci/question.md +0 -69
- package/src/core/experts/ci/self-improve.md +0 -100
- package/src/core/experts/ci/workflow.md +0 -145
- package/src/core/experts/codebase-query/expertise.yaml +0 -121
- package/src/core/experts/codebase-query/question.md +0 -73
- package/src/core/experts/codebase-query/self-improve.md +0 -105
- package/src/core/experts/compliance/expertise.yaml +0 -101
- package/src/core/experts/compliance/question.md +0 -56
- package/src/core/experts/compliance/self-improve.md +0 -106
- package/src/core/experts/compliance/workflow.md +0 -184
- package/src/core/experts/database/expertise.yaml +0 -109
- package/src/core/experts/database/question.md +0 -74
- package/src/core/experts/database/self-improve.md +0 -121
- package/src/core/experts/database/workflow.md +0 -234
- package/src/core/experts/datamigration/expertise.yaml +0 -141
- package/src/core/experts/datamigration/question.md +0 -56
- package/src/core/experts/datamigration/self-improve.md +0 -106
- package/src/core/experts/datamigration/workflow.md +0 -184
- package/src/core/experts/design/expertise.yaml +0 -116
- package/src/core/experts/design/question.md +0 -56
- package/src/core/experts/design/self-improve.md +0 -106
- package/src/core/experts/design/workflow.md +0 -184
- package/src/core/experts/devops/expertise.yaml +0 -116
- package/src/core/experts/devops/question.md +0 -68
- package/src/core/experts/devops/self-improve.md +0 -102
- package/src/core/experts/devops/workflow.md +0 -142
- package/src/core/experts/documentation/expertise.yaml +0 -126
- package/src/core/experts/documentation/question.md +0 -41
- package/src/core/experts/documentation/self-improve.md +0 -45
- package/src/core/experts/documentation/workflow.md +0 -55
- package/src/core/experts/epic-planner/expertise.yaml +0 -144
- package/src/core/experts/epic-planner/question.md +0 -56
- package/src/core/experts/epic-planner/self-improve.md +0 -106
- package/src/core/experts/epic-planner/workflow.md +0 -184
- package/src/core/experts/integrations/expertise.yaml +0 -113
- package/src/core/experts/integrations/question.md +0 -74
- package/src/core/experts/integrations/self-improve.md +0 -151
- package/src/core/experts/integrations/workflow.md +0 -246
- package/src/core/experts/mentor/expertise.yaml +0 -125
- package/src/core/experts/mentor/question.md +0 -56
- package/src/core/experts/mentor/self-improve.md +0 -106
- package/src/core/experts/mentor/workflow.md +0 -184
- package/src/core/experts/mobile/expertise.yaml +0 -136
- package/src/core/experts/mobile/question.md +0 -72
- package/src/core/experts/mobile/self-improve.md +0 -140
- package/src/core/experts/mobile/workflow.md +0 -240
- package/src/core/experts/monitoring/expertise.yaml +0 -132
- package/src/core/experts/monitoring/question.md +0 -76
- package/src/core/experts/monitoring/self-improve.md +0 -150
- package/src/core/experts/monitoring/workflow.md +0 -264
- package/src/core/experts/performance/expertise.yaml +0 -68
- package/src/core/experts/performance/question.md +0 -41
- package/src/core/experts/performance/self-improve.md +0 -45
- package/src/core/experts/performance/workflow.md +0 -61
- package/src/core/experts/product/expertise.yaml +0 -143
- package/src/core/experts/product/question.md +0 -56
- package/src/core/experts/product/self-improve.md +0 -106
- package/src/core/experts/product/workflow.md +0 -184
- package/src/core/experts/qa/expertise.yaml +0 -110
- package/src/core/experts/qa/question.md +0 -56
- package/src/core/experts/qa/self-improve.md +0 -106
- package/src/core/experts/qa/workflow.md +0 -184
- package/src/core/experts/readme-updater/expertise.yaml +0 -141
- package/src/core/experts/readme-updater/question.md +0 -56
- package/src/core/experts/readme-updater/self-improve.md +0 -106
- package/src/core/experts/readme-updater/workflow.md +0 -184
- package/src/core/experts/refactor/expertise.yaml +0 -135
- package/src/core/experts/refactor/question.md +0 -41
- package/src/core/experts/refactor/self-improve.md +0 -45
- package/src/core/experts/refactor/workflow.md +0 -57
- package/src/core/experts/research/expertise.yaml +0 -143
- package/src/core/experts/research/question.md +0 -56
- package/src/core/experts/research/self-improve.md +0 -106
- package/src/core/experts/research/workflow.md +0 -184
- package/src/core/experts/security/expertise.yaml +0 -117
- package/src/core/experts/security/question.md +0 -77
- package/src/core/experts/security/self-improve.md +0 -102
- package/src/core/experts/security/workflow.md +0 -152
- package/src/core/experts/templates/expertise-template.yaml +0 -67
- package/src/core/experts/templates/question-template.md +0 -56
- package/src/core/experts/templates/self-improve-template.md +0 -106
- package/src/core/experts/templates/workflow-template.md +0 -184
- package/src/core/experts/testing/expertise.yaml +0 -112
- package/src/core/experts/testing/question.md +0 -68
- package/src/core/experts/testing/self-improve.md +0 -102
- package/src/core/experts/testing/workflow.md +0 -143
- package/src/core/experts/ui/expertise.yaml +0 -133
- package/src/core/experts/ui/question.md +0 -74
- package/src/core/experts/ui/self-improve.md +0 -122
- package/src/core/experts/ui/workflow.md +0 -262
- package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +0 -424
- package/src/core/knowledge/ads/ad-optimization-logic.md +0 -590
- package/src/core/knowledge/ads/ad-technical-specifications.md +0 -385
- package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +0 -506
- package/src/core/knowledge/ads/paid-advertising-research-2026.md +0 -445
- package/src/core/profiles/COMPARISON.md +0 -170
- package/src/core/profiles/README.md +0 -178
- package/src/core/profiles/claude-code.yaml +0 -111
- package/src/core/profiles/codex.yaml +0 -103
- package/src/core/profiles/cursor.yaml +0 -134
- package/src/core/profiles/examples.js +0 -250
- package/src/core/profiles/loader.js +0 -235
- package/src/core/profiles/windsurf.yaml +0 -159
- package/src/core/skills/_learnings/README.md +0 -91
- package/src/core/skills/_learnings/_template.yaml +0 -106
- package/src/core/skills/_learnings/code-review.yaml +0 -118
- package/src/core/skills/_learnings/commit.yaml +0 -69
- package/src/core/skills/_learnings/story-writer.yaml +0 -71
- package/src/core/teams/backend.json +0 -41
- package/src/core/teams/builder-validator.json +0 -51
- package/src/core/teams/code-review.json +0 -41
- package/src/core/teams/frontend.json +0 -41
- package/src/core/teams/fullstack.json +0 -41
- package/src/core/teams/logic-audit.json +0 -53
- package/src/core/teams/perf-audit.json +0 -71
- package/src/core/teams/qa.json +0 -41
- package/src/core/teams/security-audit.json +0 -71
- package/src/core/teams/solo.json +0 -35
- package/src/core/teams/test-audit.json +0 -71
- package/src/core/templates/CONTEXT.md.example +0 -49
- package/src/core/templates/README-template.md +0 -16
- package/src/core/templates/adr-template.md +0 -28
- package/src/core/templates/agent-coordination-pattern.md +0 -38
- package/src/core/templates/agent-profile-template.md +0 -51
- package/src/core/templates/agileflow-metadata.json +0 -150
- package/src/core/templates/browser-qa-spec.yaml +0 -94
- package/src/core/templates/ci-workflow.yml +0 -74
- package/src/core/templates/claude-settings.advanced.example.json +0 -75
- package/src/core/templates/claude-settings.example.json +0 -26
- package/src/core/templates/command-documentation.md +0 -187
- package/src/core/templates/command-prerequisites.yaml +0 -169
- package/src/core/templates/comms-note-template.md +0 -24
- package/src/core/templates/damage-control-patterns.yaml +0 -243
- package/src/core/templates/environment.json +0 -18
- package/src/core/templates/epic-template.md +0 -27
- package/src/core/templates/plan-template.md +0 -125
- package/src/core/templates/preserve-rules-common.md +0 -107
- package/src/core/templates/preserve-rules.json +0 -42
- package/src/core/templates/proactive-action-spec.md +0 -29
- package/src/core/templates/product-brief.md +0 -136
- package/src/core/templates/quality-gate-priorities.md +0 -34
- package/src/core/templates/research-template.md +0 -44
- package/src/core/templates/session-harness-protocol.md +0 -128
- package/src/core/templates/session-state.json +0 -56
- package/src/core/templates/story-lifecycle.md +0 -213
- package/src/core/templates/story-template.md +0 -92
- package/src/core/templates/tdd-test-template.js +0 -241
- package/src/core/templates/worktrees-guide.md +0 -231
- package/tools/agileflow-npx.js +0 -52
- package/tools/cli/agileflow-cli.js +0 -72
- package/tools/cli/commands/config.js +0 -285
- package/tools/cli/commands/doctor.js +0 -496
- package/tools/cli/commands/list.js +0 -385
- package/tools/cli/commands/session.js +0 -1176
- package/tools/cli/commands/setup.js +0 -255
- package/tools/cli/commands/status.js +0 -101
- package/tools/cli/commands/tui.js +0 -56
- package/tools/cli/commands/uninstall.js +0 -155
- package/tools/cli/commands/update.js +0 -299
- package/tools/cli/installers/core/installer.js +0 -892
- package/tools/cli/installers/ide/_base-ide.js +0 -518
- package/tools/cli/installers/ide/_interface.js +0 -238
- package/tools/cli/installers/ide/claude-code.js +0 -432
- package/tools/cli/installers/ide/codex.js +0 -426
- package/tools/cli/installers/ide/cursor.js +0 -217
- package/tools/cli/installers/ide/manager.js +0 -222
- package/tools/cli/installers/ide/windsurf.js +0 -282
- package/tools/cli/lib/command-context.js +0 -382
- package/tools/cli/lib/config-manager.js +0 -446
- package/tools/cli/lib/content-injector.js +0 -969
- package/tools/cli/lib/content-transformer.js +0 -496
- package/tools/cli/lib/docs-setup.js +0 -464
- package/tools/cli/lib/error-handler.js +0 -165
- package/tools/cli/lib/ide-error-factory.js +0 -421
- package/tools/cli/lib/ide-errors.js +0 -367
- package/tools/cli/lib/ide-generator.js +0 -357
- package/tools/cli/lib/ide-health-monitor.js +0 -364
- package/tools/cli/lib/ide-registry.js +0 -297
- package/tools/cli/lib/npm-utils.js +0 -103
- package/tools/cli/lib/self-update.js +0 -148
- package/tools/cli/lib/ui.js +0 -211
- package/tools/cli/lib/utils.js +0 -87
- package/tools/cli/lib/validation-middleware.js +0 -491
- package/tools/cli/lib/version-checker.js +0 -95
- package/tools/postinstall.js +0 -190
|
@@ -1,865 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Cleanly end session with optional merge to main
|
|
3
|
-
argument-hint: "(no arguments)"
|
|
4
|
-
compact_context:
|
|
5
|
-
priority: high
|
|
6
|
-
preserve_rules:
|
|
7
|
-
- "ACTIVE COMMAND: /agileflow:session:end - Terminate current session"
|
|
8
|
-
- "For NON-MAIN sessions: 4 options (merge/end/delete/cancel)"
|
|
9
|
-
- "For MAIN sessions: 2 options (end/cancel)"
|
|
10
|
-
- "Uncommitted changes: INLINE options (commit/commit-custom/stash/discard/cancel) - NOT blocking!"
|
|
11
|
-
- "Merge flow: check uncommitted → handle inline → preview → conflicts → strategy → confirm → execute → unstash if stashed"
|
|
12
|
-
- "Main session can only be marked inactive, not deleted or merged"
|
|
13
|
-
- "Use AskUserQuestion for all user choices"
|
|
14
|
-
state_fields:
|
|
15
|
-
- current_session
|
|
16
|
-
- is_main_session
|
|
17
|
-
- user_choice
|
|
18
|
-
- merge_strategy
|
|
19
|
-
- stash_used
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
# /agileflow:session:end
|
|
23
|
-
|
|
24
|
-
End the current session and optionally merge your work back to main.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Purpose
|
|
29
|
-
|
|
30
|
-
When you're done with a session, this command:
|
|
31
|
-
- **Merges your changes** to main (recommended for non-main sessions)
|
|
32
|
-
- Removes the session's lock file (marks it inactive)
|
|
33
|
-
- Optionally removes the git worktree directory
|
|
34
|
-
- Updates the registry with last active timestamp
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## STEP 0: Gather Context
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
node .agileflow/scripts/obtain-context.js session:end
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## IMMEDIATE ACTIONS
|
|
47
|
-
|
|
48
|
-
### Step 1: Get Current Session
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
node .agileflow/scripts/session-manager.js status
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
If no current session is registered, display message and exit.
|
|
55
|
-
|
|
56
|
-
### Step 2: Present Options with AskUserQuestion
|
|
57
|
-
|
|
58
|
-
**For MAIN session** (2 options - cannot merge main into itself):
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
AskUserQuestion:
|
|
62
|
-
question: "End Session 1 (main)?"
|
|
63
|
-
header: "End session"
|
|
64
|
-
multiSelect: false
|
|
65
|
-
options:
|
|
66
|
-
- label: "Yes, end session"
|
|
67
|
-
description: "Mark session inactive (keep project for later)"
|
|
68
|
-
- label: "Cancel"
|
|
69
|
-
description: "Keep session active"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**For NON-MAIN session** (4 options):
|
|
73
|
-
|
|
74
|
-
```
|
|
75
|
-
AskUserQuestion:
|
|
76
|
-
question: "End Session {id}?"
|
|
77
|
-
header: "End session"
|
|
78
|
-
multiSelect: false
|
|
79
|
-
options:
|
|
80
|
-
- label: "Complete & merge to main (Recommended)"
|
|
81
|
-
description: "Merge your changes to main and clean up"
|
|
82
|
-
- label: "Yes, end session"
|
|
83
|
-
description: "Mark session inactive (keep worktree for later)"
|
|
84
|
-
- label: "End and delete worktree"
|
|
85
|
-
description: "Remove session and its directory completely"
|
|
86
|
-
- label: "Cancel"
|
|
87
|
-
description: "Keep session active"
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Step 3a: If "Complete & merge to main" Selected
|
|
91
|
-
|
|
92
|
-
Follow the **MERGE FLOW** below.
|
|
93
|
-
|
|
94
|
-
### Step 3b: If "End session" Selected
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
node .agileflow/scripts/session-manager.js unregister {session_id}
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Display:
|
|
101
|
-
```
|
|
102
|
-
✓ Session {id} ended
|
|
103
|
-
|
|
104
|
-
Branch: {branch}
|
|
105
|
-
Story: {story_id} (status unchanged)
|
|
106
|
-
Worktree kept at: {path}
|
|
107
|
-
|
|
108
|
-
To resume later: cd {path} && claude
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Then proceed to **Step 4: Offer to Close Tab**.
|
|
112
|
-
|
|
113
|
-
### Step 3c: If "End and delete worktree" Selected
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
node .agileflow/scripts/session-manager.js delete {session_id} --remove-worktree
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Display:
|
|
120
|
-
```
|
|
121
|
-
✓ Session {id} ended and removed
|
|
122
|
-
|
|
123
|
-
Branch: {branch}
|
|
124
|
-
Worktree removed: {path}
|
|
125
|
-
|
|
126
|
-
💡 The branch still exists. To delete it:
|
|
127
|
-
git branch -d {branch}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Then proceed to **Step 4: Offer to Close Tab**.
|
|
131
|
-
|
|
132
|
-
### Step 3d: If "Cancel" Selected
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
Session remains active.
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## Step 4: Offer to Close Tab (if in tmux)
|
|
141
|
-
|
|
142
|
-
After ending a session (via end, delete, or merge), check if we're in tmux and offer to close the tab.
|
|
143
|
-
|
|
144
|
-
**Check if in tmux:**
|
|
145
|
-
```bash
|
|
146
|
-
echo $TMUX
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
If `$TMUX` is set (non-empty), we're in tmux. Ask:
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
AskUserQuestion:
|
|
153
|
-
question: "Close this tmux tab?"
|
|
154
|
-
header: "Close tab"
|
|
155
|
-
multiSelect: false
|
|
156
|
-
options:
|
|
157
|
-
- label: "Yes, close tab"
|
|
158
|
-
description: "Close this terminal tab (Alt+x also works)"
|
|
159
|
-
- label: "No, keep open"
|
|
160
|
-
description: "Stay in this tab"
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**If "Yes, close tab" selected:**
|
|
164
|
-
```bash
|
|
165
|
-
tmux kill-window
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
**If "No, keep open" selected:**
|
|
169
|
-
Display any final messages and end.
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## MERGE FLOW (for "Complete & merge to main")
|
|
174
|
-
|
|
175
|
-
### Merge Step 1: Check for Uncommitted Changes
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
node .agileflow/scripts/session-manager.js check-merge {session_id}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
If response contains `reason: "uncommitted_changes"`:
|
|
182
|
-
|
|
183
|
-
**Display change summary:**
|
|
184
|
-
```
|
|
185
|
-
⚠️ You have uncommitted changes in this session.
|
|
186
|
-
|
|
187
|
-
{details_from_response}
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**Present inline options with AskUserQuestion:**
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
AskUserQuestion:
|
|
195
|
-
question: "How would you like to handle these uncommitted changes?"
|
|
196
|
-
header: "Uncommitted changes"
|
|
197
|
-
multiSelect: false
|
|
198
|
-
options:
|
|
199
|
-
- label: "Commit all changes (Recommended)"
|
|
200
|
-
description: "Create a commit with auto-generated message"
|
|
201
|
-
- label: "Commit with custom message"
|
|
202
|
-
description: "Enter your own commit message"
|
|
203
|
-
- label: "Stash changes temporarily"
|
|
204
|
-
description: "Stash, merge, then restore after merge"
|
|
205
|
-
- label: "Discard all changes"
|
|
206
|
-
description: "Discard local changes and continue with merge"
|
|
207
|
-
- label: "Cancel"
|
|
208
|
-
description: "Keep session active with uncommitted changes"
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
#### If "Commit all changes" selected:
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
node .agileflow/scripts/session-manager.js commit-changes {session_id}
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
Display:
|
|
218
|
-
```
|
|
219
|
-
✓ Changes committed: {commitHash}
|
|
220
|
-
Message: {message}
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
Continue to **Merge Step 2**.
|
|
224
|
-
|
|
225
|
-
#### If "Commit with custom message" selected:
|
|
226
|
-
|
|
227
|
-
First, analyze changes to suggest a meaningful commit message:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
# Get changed files summary for commit message suggestion
|
|
231
|
-
git diff --stat HEAD
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
Based on the files changed, generate 2-3 contextual commit message suggestions:
|
|
235
|
-
- Examine which directories/files changed to determine the type (feat/fix/chore/docs)
|
|
236
|
-
- Read the diff summary to understand what was modified
|
|
237
|
-
- Suggest messages that describe the "why" not just the "what"
|
|
238
|
-
|
|
239
|
-
```
|
|
240
|
-
AskUserQuestion:
|
|
241
|
-
question: "Choose or customize your commit message:"
|
|
242
|
-
header: "Commit message"
|
|
243
|
-
multiSelect: false
|
|
244
|
-
options:
|
|
245
|
-
# 2-3 suggestions based on git diff analysis. Examples:
|
|
246
|
-
# - label: "feat: add OAuth support for session auth"
|
|
247
|
-
# description: "Based on changes to auth/ files"
|
|
248
|
-
# - label: "fix: resolve merge conflict in config"
|
|
249
|
-
# description: "Based on config file changes"
|
|
250
|
-
# Always include at least one option. User can select "Other" for custom.
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
The user will select a suggestion or "Other" to enter a custom message. Then:
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
node .agileflow/scripts/session-manager.js commit-changes {session_id} --message="{user_message}"
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
Display:
|
|
260
|
-
```
|
|
261
|
-
✓ Changes committed: {commitHash}
|
|
262
|
-
Message: {message}
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
Continue to **Merge Step 2**.
|
|
266
|
-
|
|
267
|
-
#### If "Stash changes temporarily" selected:
|
|
268
|
-
|
|
269
|
-
```bash
|
|
270
|
-
node .agileflow/scripts/session-manager.js stash {session_id}
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
Display:
|
|
274
|
-
```
|
|
275
|
-
✓ Changes stashed: {message}
|
|
276
|
-
|
|
277
|
-
Note: After merge completes, stash will be restored on main branch.
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
Continue to **Merge Step 2**.
|
|
281
|
-
|
|
282
|
-
**IMPORTANT**: After the merge completes successfully (at the end of Merge Step 7), run:
|
|
283
|
-
```bash
|
|
284
|
-
node .agileflow/scripts/session-manager.js unstash {session_id}
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
Display:
|
|
288
|
-
```
|
|
289
|
-
✓ Stashed changes restored to main branch.
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
#### If "Discard all changes" selected:
|
|
293
|
-
|
|
294
|
-
```bash
|
|
295
|
-
node .agileflow/scripts/session-manager.js discard-changes {session_id}
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
Display:
|
|
299
|
-
```
|
|
300
|
-
✓ All uncommitted changes discarded.
|
|
301
|
-
|
|
302
|
-
⚠️ Note: Untracked files were NOT deleted.
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
Continue to **Merge Step 2**.
|
|
306
|
-
|
|
307
|
-
#### If "Cancel" selected:
|
|
308
|
-
|
|
309
|
-
```
|
|
310
|
-
Session remains active with uncommitted changes.
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
**Exit the flow here.** Do not continue to merge.
|
|
314
|
-
|
|
315
|
-
### Merge Step 2: Get Merge Preview
|
|
316
|
-
|
|
317
|
-
```bash
|
|
318
|
-
node .agileflow/scripts/session-manager.js merge-preview {session_id}
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
Display preview:
|
|
322
|
-
|
|
323
|
-
```
|
|
324
|
-
📊 Merge Preview
|
|
325
|
-
|
|
326
|
-
Session {id} "{nickname}" → {mainBranch}
|
|
327
|
-
|
|
328
|
-
Commits to merge: {commitCount}
|
|
329
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
330
|
-
│ {commit_1} │
|
|
331
|
-
│ {commit_2} │
|
|
332
|
-
│ ... │
|
|
333
|
-
└─────────────────────────────────────────────────────────────┘
|
|
334
|
-
|
|
335
|
-
Files changed: {fileCount}
|
|
336
|
-
{file_1}
|
|
337
|
-
{file_2}
|
|
338
|
-
...
|
|
339
|
-
```
|
|
340
|
-
|
|
341
|
-
If `commitCount: 0`:
|
|
342
|
-
```
|
|
343
|
-
ℹ️ No commits to merge. Your branch is already up to date with main.
|
|
344
|
-
|
|
345
|
-
Would you like to just end the session instead?
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
Then show simplified options (end/delete/cancel).
|
|
349
|
-
|
|
350
|
-
### Merge Step 3: Check Mergeability
|
|
351
|
-
|
|
352
|
-
From the `check-merge` response, check `hasConflicts`:
|
|
353
|
-
|
|
354
|
-
If `hasConflicts: true`:
|
|
355
|
-
|
|
356
|
-
First, get detailed conflict info:
|
|
357
|
-
```bash
|
|
358
|
-
# Get list of files that conflict (without actually merging)
|
|
359
|
-
git merge --no-commit --no-ff {branchName} 2>&1 || true
|
|
360
|
-
git diff --name-only --diff-filter=U
|
|
361
|
-
git merge --abort
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
Display specific files with context:
|
|
365
|
-
```
|
|
366
|
-
⚠️ Merge conflicts detected in {N} file(s):
|
|
367
|
-
|
|
368
|
-
{file1} - Both branches modified
|
|
369
|
-
{file2} - Conflicting changes
|
|
370
|
-
{file3} - Both added content (likely auto-resolvable)
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
Analyze the conflicting files to make a smart recommendation:
|
|
374
|
-
- If ALL conflicts are in docs/config files → recommend "Auto-resolve"
|
|
375
|
-
- If conflicts include source code → recommend "Review first, then auto-resolve"
|
|
376
|
-
- Count files by category (docs, tests, config, source) for the description
|
|
377
|
-
|
|
378
|
-
Then present AI-recommended options:
|
|
379
|
-
|
|
380
|
-
```
|
|
381
|
-
AskUserQuestion:
|
|
382
|
-
question: "How to handle {N} conflicting file(s)?"
|
|
383
|
-
header: "Conflicts"
|
|
384
|
-
multiSelect: false
|
|
385
|
-
options:
|
|
386
|
-
- label: "{AI recommended option} (Recommended)"
|
|
387
|
-
description: "{reason based on conflict analysis - e.g., 'All conflicts are in docs/config - safe to auto-resolve'}"
|
|
388
|
-
- label: "Auto-resolve all"
|
|
389
|
-
description: "Smart merge resolves by file type (docs=accept_both, source=theirs, config=ours)"
|
|
390
|
-
- label: "Keep session, resolve manually"
|
|
391
|
-
description: "Stay in session and fix conflicts yourself"
|
|
392
|
-
- label: "Cancel"
|
|
393
|
-
description: "Keep session as-is"
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
If "Auto-resolve conflicts" selected:
|
|
397
|
-
```bash
|
|
398
|
-
node .agileflow/scripts/session-manager.js smart-merge {session_id} --strategy={squash|merge}
|
|
399
|
-
```
|
|
400
|
-
|
|
401
|
-
The smart merge will:
|
|
402
|
-
1. Categorize conflicting files by type (docs, tests, schema, config, source)
|
|
403
|
-
2. Apply appropriate resolution strategy per file type
|
|
404
|
-
3. Log all auto-resolutions for audit
|
|
405
|
-
|
|
406
|
-
Display result:
|
|
407
|
-
```
|
|
408
|
-
✓ Conflicts auto-resolved!
|
|
409
|
-
|
|
410
|
-
Files resolved:
|
|
411
|
-
📄 docs/README.md → accept_both (Documentation kept from both)
|
|
412
|
-
🧪 tests/api.test.ts → accept_both (Tests kept from both)
|
|
413
|
-
⚙️ package.json → merge_keys (Config merged)
|
|
414
|
-
📝 src/api.ts → intelligent_merge (Source merged)
|
|
415
|
-
|
|
416
|
-
Merge log saved to: .agileflow/sessions/merge-log.json
|
|
417
|
-
```
|
|
418
|
-
|
|
419
|
-
If auto-resolution fails:
|
|
420
|
-
```
|
|
421
|
-
⚠️ Some conflicts could not be auto-resolved:
|
|
422
|
-
|
|
423
|
-
❌ src/complex.ts → Changes overlap in same code block
|
|
424
|
-
|
|
425
|
-
Options:
|
|
426
|
-
• Resolve manually (see instructions below)
|
|
427
|
-
• End session without merging
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
If "Resolve manually" selected, show instructions:
|
|
431
|
-
```
|
|
432
|
-
To resolve conflicts manually:
|
|
433
|
-
|
|
434
|
-
1. Make sure you're on main:
|
|
435
|
-
cd {mainPath}
|
|
436
|
-
git checkout {mainBranch}
|
|
437
|
-
|
|
438
|
-
2. Start the merge:
|
|
439
|
-
git merge {branchName}
|
|
440
|
-
|
|
441
|
-
3. Resolve conflicts in your editor
|
|
442
|
-
|
|
443
|
-
4. Complete the merge:
|
|
444
|
-
git add .
|
|
445
|
-
git commit
|
|
446
|
-
|
|
447
|
-
5. Then delete the session worktree:
|
|
448
|
-
git worktree remove {sessionPath}
|
|
449
|
-
|
|
450
|
-
Session remains active for now.
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
### Merge Step 4: Choose Merge Strategy (if clean)
|
|
454
|
-
|
|
455
|
-
If `mergeable: true`:
|
|
456
|
-
|
|
457
|
-
```
|
|
458
|
-
AskUserQuestion:
|
|
459
|
-
question: "How should the commits be merged?"
|
|
460
|
-
header: "Merge strategy"
|
|
461
|
-
multiSelect: false
|
|
462
|
-
options:
|
|
463
|
-
- label: "Squash into single commit (Recommended)"
|
|
464
|
-
description: "Combines all {commitCount} commits into one clean commit"
|
|
465
|
-
- label: "Merge with commit history"
|
|
466
|
-
description: "Preserves all {commitCount} individual commits"
|
|
467
|
-
```
|
|
468
|
-
|
|
469
|
-
### Merge Step 5: Confirm and Choose Cleanup
|
|
470
|
-
|
|
471
|
-
```
|
|
472
|
-
AskUserQuestion:
|
|
473
|
-
question: "Merge session to {mainBranch}?"
|
|
474
|
-
header: "Confirm merge"
|
|
475
|
-
multiSelect: false
|
|
476
|
-
options:
|
|
477
|
-
- label: "Yes, merge and clean up (Recommended)"
|
|
478
|
-
description: "Merge changes, delete branch and worktree"
|
|
479
|
-
- label: "Merge but keep branch"
|
|
480
|
-
description: "Merge changes but preserve the branch for reference"
|
|
481
|
-
- label: "Cancel"
|
|
482
|
-
description: "Don't merge"
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
### Merge Step 6: Execute Merge
|
|
486
|
-
|
|
487
|
-
Based on user choices:
|
|
488
|
-
|
|
489
|
-
```bash
|
|
490
|
-
# If "merge and clean up":
|
|
491
|
-
node .agileflow/scripts/session-manager.js integrate {session_id} --strategy={squash|merge} --deleteBranch=true --deleteWorktree=true
|
|
492
|
-
|
|
493
|
-
# If "merge but keep branch":
|
|
494
|
-
node .agileflow/scripts/session-manager.js integrate {session_id} --strategy={squash|merge} --deleteBranch=false --deleteWorktree=true
|
|
495
|
-
```
|
|
496
|
-
|
|
497
|
-
### Merge Step 7: Display Result
|
|
498
|
-
|
|
499
|
-
If successful:
|
|
500
|
-
|
|
501
|
-
```
|
|
502
|
-
✓ Session {id} "{nickname}" merged to {mainBranch}!
|
|
503
|
-
|
|
504
|
-
Summary:
|
|
505
|
-
Strategy: {Squash|Merge} ({commitCount} commits → 1)
|
|
506
|
-
Message: {commitMessage}
|
|
507
|
-
Branch: {branchName} (deleted|kept)
|
|
508
|
-
Worktree: {sessionPath} (removed)
|
|
509
|
-
|
|
510
|
-
┌─────────────────────────────────────────────────────────────┐
|
|
511
|
-
│ You're now back on {mainBranch}. Your changes are live! │
|
|
512
|
-
│ │
|
|
513
|
-
│ cd {mainPath} │
|
|
514
|
-
│ │
|
|
515
|
-
└─────────────────────────────────────────────────────────────┘
|
|
516
|
-
|
|
517
|
-
💡 To push your changes: git push
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
### Post-Merge: Notify Other Sessions
|
|
521
|
-
|
|
522
|
-
After successful merge, check if in tmux and send notification:
|
|
523
|
-
|
|
524
|
-
```bash
|
|
525
|
-
# Check if in tmux
|
|
526
|
-
echo $TMUX
|
|
527
|
-
```
|
|
528
|
-
|
|
529
|
-
If in tmux:
|
|
530
|
-
```bash
|
|
531
|
-
# Send visible notification to all windows
|
|
532
|
-
tmux display-message -d 5000 "Session {id} merged to {mainBranch} - changes are live"
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
Display to user:
|
|
536
|
-
```
|
|
537
|
-
The main branch working directory ({mainPath}) now has your merged changes.
|
|
538
|
-
If you have a Claude session on main, its files are already updated.
|
|
539
|
-
|
|
540
|
-
To push to remote: git push
|
|
541
|
-
```
|
|
542
|
-
|
|
543
|
-
Then proceed to **Step 4: Offer to Close Tab**.
|
|
544
|
-
|
|
545
|
-
If failed:
|
|
546
|
-
|
|
547
|
-
```
|
|
548
|
-
✗ Merge failed
|
|
549
|
-
|
|
550
|
-
Error: {error_message}
|
|
551
|
-
|
|
552
|
-
Your session is still active. Try:
|
|
553
|
-
• Resolve conflicts manually
|
|
554
|
-
• Run /agileflow:session:end again after fixing issues
|
|
555
|
-
```
|
|
556
|
-
|
|
557
|
-
---
|
|
558
|
-
|
|
559
|
-
## Main Session Warning
|
|
560
|
-
|
|
561
|
-
If current session is the main project (is_main: true):
|
|
562
|
-
|
|
563
|
-
```
|
|
564
|
-
ℹ️ This is the main project session.
|
|
565
|
-
|
|
566
|
-
You can only end this session (mark inactive), not merge or delete.
|
|
567
|
-
The main project is not a worktree.
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
Then show the 2-option prompt (end or cancel).
|
|
571
|
-
|
|
572
|
-
## Related Commands
|
|
573
|
-
|
|
574
|
-
- `/agileflow:session:new` - Create new session
|
|
575
|
-
- `/agileflow:session:resume` - Switch sessions
|
|
576
|
-
- `/agileflow:session:status` - View all sessions
|
|
577
|
-
|
|
578
|
-
---
|
|
579
|
-
|
|
580
|
-
<!-- COMPACT_SUMMARY_START -->
|
|
581
|
-
|
|
582
|
-
## ⚠️ COMPACT SUMMARY - /agileflow:session:end IS ACTIVE
|
|
583
|
-
|
|
584
|
-
**CRITICAL**: This command terminates the current session. For non-main sessions, offers merge to main as the recommended option.
|
|
585
|
-
|
|
586
|
-
---
|
|
587
|
-
|
|
588
|
-
### 🚨 RULE #1: CHECK IF MAIN SESSION FIRST
|
|
589
|
-
|
|
590
|
-
```bash
|
|
591
|
-
node .agileflow/scripts/session-manager.js status
|
|
592
|
-
# If is_main: true → 2 options (end / cancel)
|
|
593
|
-
# If is_main: false → 4 options (merge / end / delete / cancel)
|
|
594
|
-
```
|
|
595
|
-
|
|
596
|
-
---
|
|
597
|
-
|
|
598
|
-
### 🚨 RULE #2: OPTIONS BY SESSION TYPE
|
|
599
|
-
|
|
600
|
-
**MAIN session** (2 options):
|
|
601
|
-
```xml
|
|
602
|
-
<invoke name="AskUserQuestion">
|
|
603
|
-
<parameter name="questions">[{
|
|
604
|
-
"question": "End Session 1 (main)?",
|
|
605
|
-
"header": "End session",
|
|
606
|
-
"multiSelect": false,
|
|
607
|
-
"options": [
|
|
608
|
-
{"label": "Yes, end session",
|
|
609
|
-
"description": "Mark session inactive (keep project for later)"},
|
|
610
|
-
{"label": "Cancel",
|
|
611
|
-
"description": "Keep session active"}
|
|
612
|
-
]
|
|
613
|
-
}]</parameter>
|
|
614
|
-
</invoke>
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
**NON-MAIN session** (4 options):
|
|
618
|
-
```xml
|
|
619
|
-
<invoke name="AskUserQuestion">
|
|
620
|
-
<parameter name="questions">[{
|
|
621
|
-
"question": "End Session 2 \"auth\"?",
|
|
622
|
-
"header": "End session",
|
|
623
|
-
"multiSelect": false,
|
|
624
|
-
"options": [
|
|
625
|
-
{"label": "Complete & merge to main (Recommended)",
|
|
626
|
-
"description": "Merge your changes to main and clean up"},
|
|
627
|
-
{"label": "Yes, end session",
|
|
628
|
-
"description": "Mark session inactive (keep worktree for later)"},
|
|
629
|
-
{"label": "End and delete worktree",
|
|
630
|
-
"description": "Remove session and its directory completely"},
|
|
631
|
-
{"label": "Cancel",
|
|
632
|
-
"description": "Keep session active"}
|
|
633
|
-
]
|
|
634
|
-
}]</parameter>
|
|
635
|
-
</invoke>
|
|
636
|
-
```
|
|
637
|
-
|
|
638
|
-
---
|
|
639
|
-
|
|
640
|
-
### 🚨 RULE #3: MERGE FLOW (if "Complete & merge" selected)
|
|
641
|
-
|
|
642
|
-
**Step 1: Check uncommitted changes**
|
|
643
|
-
```bash
|
|
644
|
-
node .agileflow/scripts/session-manager.js check-merge {session_id}
|
|
645
|
-
```
|
|
646
|
-
If `reason: "uncommitted_changes"` → Show inline options (5 choices):
|
|
647
|
-
```xml
|
|
648
|
-
<invoke name="AskUserQuestion">
|
|
649
|
-
<parameter name="questions">[{
|
|
650
|
-
"question": "How would you like to handle these uncommitted changes?",
|
|
651
|
-
"header": "Uncommitted changes",
|
|
652
|
-
"multiSelect": false,
|
|
653
|
-
"options": [
|
|
654
|
-
{"label": "Commit all changes (Recommended)", "description": "Create a commit with auto-generated message"},
|
|
655
|
-
{"label": "Commit with custom message", "description": "Enter your own commit message"},
|
|
656
|
-
{"label": "Stash changes temporarily", "description": "Stash, merge, then restore after merge"},
|
|
657
|
-
{"label": "Discard all changes", "description": "Discard local changes and continue"},
|
|
658
|
-
{"label": "Cancel", "description": "Keep session active with uncommitted changes"}
|
|
659
|
-
]
|
|
660
|
-
}]</parameter>
|
|
661
|
-
</invoke>
|
|
662
|
-
```
|
|
663
|
-
|
|
664
|
-
**Step 1a: Handle uncommitted choice**
|
|
665
|
-
- "Commit all": `node .agileflow/scripts/session-manager.js commit-changes {id}` → continue
|
|
666
|
-
- "Commit custom": Analyze `git diff --stat`, suggest 2-3 contextual messages → `commit-changes {id} --message="..."` → continue
|
|
667
|
-
- "Stash": `node .agileflow/scripts/session-manager.js stash {id}` → continue (unstash after merge)
|
|
668
|
-
- "Discard": `node .agileflow/scripts/session-manager.js discard-changes {id}` → continue
|
|
669
|
-
- "Cancel": EXIT
|
|
670
|
-
|
|
671
|
-
**Step 2: Get preview**
|
|
672
|
-
```bash
|
|
673
|
-
node .agileflow/scripts/session-manager.js merge-preview {session_id}
|
|
674
|
-
```
|
|
675
|
-
Display commits and files to be merged.
|
|
676
|
-
|
|
677
|
-
**Step 3: Check conflicts**
|
|
678
|
-
If `hasConflicts: true`:
|
|
679
|
-
- Get detailed file list: `git merge --no-commit --no-ff {branch}`, `git diff --name-only --diff-filter=U`, `git merge --abort`
|
|
680
|
-
- Display per-file conflict details
|
|
681
|
-
- Analyze file types to recommend best option (docs/config → auto-resolve, source → review)
|
|
682
|
-
- Show conflict options with AI recommendation first (auto-resolve/manual/cancel)
|
|
683
|
-
|
|
684
|
-
**Step 3a: If auto-resolve selected**
|
|
685
|
-
```bash
|
|
686
|
-
node .agileflow/scripts/session-manager.js smart-merge {session_id} --strategy={squash|merge}
|
|
687
|
-
```
|
|
688
|
-
Smart merge auto-resolves by file type: docs→accept_both, tests→accept_both, config→merge_keys, source→theirs
|
|
689
|
-
|
|
690
|
-
**Step 4: Choose strategy**
|
|
691
|
-
```xml
|
|
692
|
-
<invoke name="AskUserQuestion">
|
|
693
|
-
<parameter name="questions">[{
|
|
694
|
-
"question": "How should the commits be merged?",
|
|
695
|
-
"header": "Merge strategy",
|
|
696
|
-
"multiSelect": false,
|
|
697
|
-
"options": [
|
|
698
|
-
{"label": "Squash into single commit (Recommended)",
|
|
699
|
-
"description": "Combines all commits into one clean commit"},
|
|
700
|
-
{"label": "Merge with commit history",
|
|
701
|
-
"description": "Preserves all individual commits"}
|
|
702
|
-
]
|
|
703
|
-
}]</parameter>
|
|
704
|
-
</invoke>
|
|
705
|
-
```
|
|
706
|
-
|
|
707
|
-
**Step 5: Confirm cleanup**
|
|
708
|
-
```xml
|
|
709
|
-
<invoke name="AskUserQuestion">
|
|
710
|
-
<parameter name="questions">[{
|
|
711
|
-
"question": "Merge session to main?",
|
|
712
|
-
"header": "Confirm merge",
|
|
713
|
-
"multiSelect": false,
|
|
714
|
-
"options": [
|
|
715
|
-
{"label": "Yes, merge and clean up (Recommended)",
|
|
716
|
-
"description": "Merge changes, delete branch and worktree"},
|
|
717
|
-
{"label": "Merge but keep branch",
|
|
718
|
-
"description": "Merge changes but preserve the branch"},
|
|
719
|
-
{"label": "Cancel",
|
|
720
|
-
"description": "Don't merge"}
|
|
721
|
-
]
|
|
722
|
-
}]</parameter>
|
|
723
|
-
</invoke>
|
|
724
|
-
```
|
|
725
|
-
|
|
726
|
-
**Step 6: Execute**
|
|
727
|
-
```bash
|
|
728
|
-
node .agileflow/scripts/session-manager.js integrate {id} --strategy={squash|merge} --deleteBranch={true|false} --deleteWorktree=true
|
|
729
|
-
```
|
|
730
|
-
|
|
731
|
-
**Step 7: Display success**
|
|
732
|
-
```
|
|
733
|
-
✓ Session {id} merged to main!
|
|
734
|
-
cd {mainPath}
|
|
735
|
-
💡 To push: git push
|
|
736
|
-
```
|
|
737
|
-
|
|
738
|
-
**Step 7a: Notify other sessions (if in tmux)**
|
|
739
|
-
```bash
|
|
740
|
-
tmux display-message -d 5000 "Session {id} merged to {mainBranch} - changes are live"
|
|
741
|
-
```
|
|
742
|
-
Display: "Main branch working directory now has your merged changes."
|
|
743
|
-
|
|
744
|
-
---
|
|
745
|
-
|
|
746
|
-
### 🚨 RULE #4: HANDLE OTHER OPTIONS
|
|
747
|
-
|
|
748
|
-
**"End session":**
|
|
749
|
-
```bash
|
|
750
|
-
node .agileflow/scripts/session-manager.js unregister {session_id}
|
|
751
|
-
```
|
|
752
|
-
|
|
753
|
-
**"End and delete worktree":**
|
|
754
|
-
```bash
|
|
755
|
-
node .agileflow/scripts/session-manager.js delete {session_id} --remove-worktree
|
|
756
|
-
```
|
|
757
|
-
|
|
758
|
-
**"Cancel":**
|
|
759
|
-
```
|
|
760
|
-
Session remains active.
|
|
761
|
-
```
|
|
762
|
-
|
|
763
|
-
---
|
|
764
|
-
|
|
765
|
-
### 🚨 RULE #5: OFFER TO CLOSE TMUX TAB
|
|
766
|
-
|
|
767
|
-
After session ends (via end, delete, or merge), check if in tmux and offer to close:
|
|
768
|
-
|
|
769
|
-
```bash
|
|
770
|
-
# Check if in tmux
|
|
771
|
-
echo $TMUX
|
|
772
|
-
```
|
|
773
|
-
|
|
774
|
-
If in tmux, ask:
|
|
775
|
-
```xml
|
|
776
|
-
<invoke name="AskUserQuestion">
|
|
777
|
-
<parameter name="questions">[{
|
|
778
|
-
"question": "Close this tmux tab?",
|
|
779
|
-
"header": "Close tab",
|
|
780
|
-
"multiSelect": false,
|
|
781
|
-
"options": [
|
|
782
|
-
{"label": "Yes, close tab",
|
|
783
|
-
"description": "Close this terminal tab (Alt+x also works)"},
|
|
784
|
-
{"label": "No, keep open",
|
|
785
|
-
"description": "Stay in this tab"}
|
|
786
|
-
]
|
|
787
|
-
}]</parameter>
|
|
788
|
-
</invoke>
|
|
789
|
-
```
|
|
790
|
-
|
|
791
|
-
If "Yes":
|
|
792
|
-
```bash
|
|
793
|
-
tmux kill-window
|
|
794
|
-
```
|
|
795
|
-
|
|
796
|
-
---
|
|
797
|
-
|
|
798
|
-
### KEY FILES
|
|
799
|
-
|
|
800
|
-
| File | Purpose |
|
|
801
|
-
|------|---------|
|
|
802
|
-
| `.agileflow/sessions/registry.json` | Session registry |
|
|
803
|
-
| `.agileflow/sessions/{id}.lock` | Removed when session ends |
|
|
804
|
-
| `.agileflow/scripts/session-manager.js` | All session operations |
|
|
805
|
-
|
|
806
|
-
---
|
|
807
|
-
|
|
808
|
-
### WORKFLOW SUMMARY
|
|
809
|
-
|
|
810
|
-
```
|
|
811
|
-
1. Get session status
|
|
812
|
-
2. Check is_main
|
|
813
|
-
3. Show options (4 for non-main, 2 for main)
|
|
814
|
-
4. If merge selected:
|
|
815
|
-
a. Check uncommitted → show inline options (commit/stash/discard/cancel)
|
|
816
|
-
b. Handle uncommitted (commit-changes, stash, or discard-changes)
|
|
817
|
-
c. Preview commits/files
|
|
818
|
-
d. Check conflicts → offer alternatives if conflicts
|
|
819
|
-
e. Choose strategy (squash/merge)
|
|
820
|
-
f. Confirm cleanup
|
|
821
|
-
g. Execute integrate
|
|
822
|
-
h. If stash was used → unstash on main
|
|
823
|
-
i. Show success with cd command
|
|
824
|
-
j. If in tmux → notify other sessions via tmux display-message
|
|
825
|
-
5. If end/delete → Execute and show result
|
|
826
|
-
6. If in tmux → Offer to close tab
|
|
827
|
-
```
|
|
828
|
-
|
|
829
|
-
---
|
|
830
|
-
|
|
831
|
-
### ANTI-PATTERNS
|
|
832
|
-
|
|
833
|
-
❌ Show merge option for main session
|
|
834
|
-
❌ Skip uncommitted check before merge
|
|
835
|
-
❌ Block and exit on uncommitted changes (use inline options instead!)
|
|
836
|
-
❌ Merge without showing preview
|
|
837
|
-
❌ Merge when conflicts exist without warning
|
|
838
|
-
❌ Delete worktree before merge completes
|
|
839
|
-
❌ Forget to unstash after merge if stash was used
|
|
840
|
-
|
|
841
|
-
### DO THESE
|
|
842
|
-
|
|
843
|
-
✅ Always check is_main first
|
|
844
|
-
✅ Check uncommitted changes and offer inline options
|
|
845
|
-
✅ Handle uncommitted with commit-changes, stash, or discard-changes
|
|
846
|
-
✅ Show preview before merge
|
|
847
|
-
✅ Handle conflicts gracefully
|
|
848
|
-
✅ Squash as default strategy
|
|
849
|
-
✅ Show cd command after successful merge
|
|
850
|
-
✅ If stash was used, unstash after merge completes
|
|
851
|
-
|
|
852
|
-
---
|
|
853
|
-
|
|
854
|
-
### REMEMBER AFTER COMPACTION
|
|
855
|
-
|
|
856
|
-
- `/agileflow:session:end` IS ACTIVE
|
|
857
|
-
- Non-main: 4 options (merge first!)
|
|
858
|
-
- Main: 2 options only
|
|
859
|
-
- Uncommitted changes: inline options (commit/stash/discard/cancel) - NOT blocking!
|
|
860
|
-
- Merge flow: uncommitted → handle → preview → conflicts → strategy → confirm → execute → unstash if needed
|
|
861
|
-
- Default strategy: squash
|
|
862
|
-
- Always show cd command to return to main
|
|
863
|
-
- **After session ends: Offer to close tmux tab (if in tmux)**
|
|
864
|
-
|
|
865
|
-
<!-- COMPACT_SUMMARY_END -->
|