@pennyfarthing/core 11.2.1 → 11.2.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/README.md +100 -40
- package/package.json +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +121 -28
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/utils/settings.d.ts +0 -4
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/settings.js +31 -26
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.d.ts +1 -1
- package/packages/core/dist/consultation/dialogue-manager.d.ts.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.js +1 -1
- package/packages/core/dist/consultation/dialogue-manager.js.map +1 -1
- package/packages/core/dist/consultation/dialogue-manager.test.js.map +1 -1
- package/packages/core/dist/consultation/tandem-metrics.test.js.map +1 -1
- package/packages/core/dist/public/css/react.css +1 -1
- package/packages/core/dist/public/js/react/react.js +9 -9
- package/packages/core/dist/server/api/git.d.ts.map +1 -1
- package/packages/core/dist/server/api/git.js +0 -1
- package/packages/core/dist/server/api/git.js.map +1 -1
- package/packages/core/dist/server/api/index.d.ts +2 -0
- package/packages/core/dist/server/api/index.d.ts.map +1 -1
- package/packages/core/dist/server/api/index.js +2 -0
- package/packages/core/dist/server/api/index.js.map +1 -1
- package/packages/core/dist/server/api/project-info.d.ts +11 -0
- package/packages/core/dist/server/api/project-info.d.ts.map +1 -0
- package/packages/core/dist/server/api/project-info.js +18 -0
- package/packages/core/dist/server/api/project-info.js.map +1 -0
- package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
- package/packages/core/dist/server/otlp-receiver.js +18 -1
- package/packages/core/dist/server/otlp-receiver.js.map +1 -1
- package/packages/core/dist/server/otlp-receiver.test.js +1 -1
- package/packages/core/dist/server/otlp-receiver.test.js.map +1 -1
- package/packages/core/dist/server/server.d.ts.map +1 -1
- package/packages/core/dist/server/server.js +3 -2
- package/packages/core/dist/server/server.js.map +1 -1
- package/packages/core/dist/server/server.test.d.ts +1 -1
- package/packages/core/dist/server/server.test.js +8 -8
- package/packages/core/dist/server/settings.d.ts +1 -0
- package/packages/core/dist/server/settings.d.ts.map +1 -1
- package/packages/core/dist/server/settings.js +13 -0
- package/packages/core/dist/server/settings.js.map +1 -1
- package/packages/core/dist/workflow/team-lifecycle.d.ts +169 -0
- package/packages/core/dist/workflow/team-lifecycle.d.ts.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.js +217 -0
- package/packages/core/dist/workflow/team-lifecycle.js.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.test.d.ts +20 -0
- package/packages/core/dist/workflow/team-lifecycle.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/team-lifecycle.test.js +966 -0
- package/packages/core/dist/workflow/team-lifecycle.test.js.map +1 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.d.ts +17 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.d.ts.map +1 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.js +275 -0
- package/packages/core/dist/workflow/workflow-team-templates.test.js.map +1 -0
- package/pennyfarthing-dist/agents/dev.md +15 -2
- package/pennyfarthing-dist/agents/reviewer.md +17 -4
- package/pennyfarthing-dist/agents/sm-finish.md +1 -1
- package/pennyfarthing-dist/agents/sm-setup.md +7 -7
- package/pennyfarthing-dist/agents/sm.md +12 -12
- package/pennyfarthing-dist/agents/tea.md +2 -2
- package/pennyfarthing-dist/agents/testing-runner.md +1 -1
- package/pennyfarthing-dist/commands/pf-architect.md +1 -1
- package/pennyfarthing-dist/commands/pf-ba.md +1 -1
- package/pennyfarthing-dist/commands/pf-chore.md +2 -2
- package/pennyfarthing-dist/commands/pf-dev.md +1 -1
- package/pennyfarthing-dist/commands/pf-devops.md +1 -1
- package/pennyfarthing-dist/commands/pf-epic.md +6 -6
- package/pennyfarthing-dist/commands/pf-git.md +10 -10
- package/pennyfarthing-dist/commands/pf-health-check.md +1 -1
- package/pennyfarthing-dist/commands/pf-help.md +12 -12
- package/pennyfarthing-dist/commands/pf-orchestrator.md +1 -1
- package/pennyfarthing-dist/commands/pf-pm.md +1 -1
- package/pennyfarthing-dist/commands/pf-prime.md +8 -8
- package/pennyfarthing-dist/commands/pf-reviewer.md +1 -1
- package/pennyfarthing-dist/commands/pf-session.md +7 -7
- package/pennyfarthing-dist/commands/pf-sm.md +1 -1
- package/pennyfarthing-dist/commands/pf-sprint.md +7 -7
- package/pennyfarthing-dist/commands/pf-tea.md +1 -1
- package/pennyfarthing-dist/commands/pf-tech-writer.md +1 -1
- package/pennyfarthing-dist/commands/pf-theme.md +9 -9
- package/pennyfarthing-dist/commands/pf-ux-designer.md +1 -1
- package/pennyfarthing-dist/commands/pf-work.md +1 -1
- package/pennyfarthing-dist/guides/agent-behavior.md +70 -19
- package/pennyfarthing-dist/guides/agent-coordination.md +10 -10
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +6 -6
- package/pennyfarthing-dist/guides/agent-template-tactical.md +1 -1
- package/pennyfarthing-dist/guides/bell-mode.md +1 -1
- package/pennyfarthing-dist/guides/bikerack.md +10 -10
- package/pennyfarthing-dist/guides/brownfield-tools.md +24 -24
- package/pennyfarthing-dist/guides/command-tag-taxonomy.md +1 -1
- package/pennyfarthing-dist/guides/gate-schema.md +2 -2
- package/pennyfarthing-dist/guides/gates.md +3 -3
- package/pennyfarthing-dist/guides/handoff-cli.md +8 -8
- package/pennyfarthing-dist/guides/hooks.md +27 -27
- package/pennyfarthing-dist/guides/prime.md +2 -2
- package/pennyfarthing-dist/guides/reflector.md +1 -1
- package/pennyfarthing-dist/guides/skill-schema.md +6 -6
- package/pennyfarthing-dist/guides/tandem-protocol.md +3 -3
- package/pennyfarthing-dist/guides/workflow-schema.md +1 -1
- package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
- package/pennyfarthing-dist/guides/xml-tags.md +8 -8
- package/pennyfarthing-dist/scripts/README.md +4 -4
- package/pennyfarthing-dist/scripts/core/agent-session.sh +2 -5
- package/pennyfarthing-dist/scripts/core/check-context.sh +1 -1
- package/pennyfarthing-dist/scripts/core/pf.sh +5 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +2 -5
- package/pennyfarthing-dist/scripts/core/prime.sh +2 -25
- package/pennyfarthing-dist/scripts/git/README.md +14 -14
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +2 -3
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +2 -3
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +2 -3
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +2 -4
- package/pennyfarthing-dist/scripts/hooks/README.md +6 -6
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +5 -4
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +2 -1
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +3 -4
- package/pennyfarthing-dist/scripts/lib/env.sh +34 -0
- package/pennyfarthing-dist/scripts/lib/run-pf.sh +39 -0
- package/pennyfarthing-dist/scripts/misc/README.md +1 -1
- package/pennyfarthing-dist/scripts/misc/statusline.sh +3 -3
- package/pennyfarthing-dist/scripts/sprint/README.md +21 -21
- package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +2 -16
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +3 -3
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +3 -3
- package/pennyfarthing-dist/skills/pf-bc/examples.md +23 -23
- package/pennyfarthing-dist/skills/pf-bc/skill.md +17 -17
- package/pennyfarthing-dist/skills/pf-bc/usage.md +8 -8
- package/pennyfarthing-dist/skills/pf-jira/SKILL.md +15 -15
- package/pennyfarthing-dist/skills/pf-jira/examples.md +48 -48
- package/pennyfarthing-dist/skills/pf-jira/usage.md +15 -15
- package/pennyfarthing-dist/skills/pf-sprint/examples.md +80 -80
- package/pennyfarthing-dist/skills/pf-sprint/skill.md +35 -35
- package/pennyfarthing-dist/skills/pf-sprint/usage.md +30 -30
- package/pennyfarthing-dist/skills/pf-theme/examples.md +15 -15
- package/pennyfarthing-dist/skills/pf-theme/skill.md +6 -6
- package/pennyfarthing-dist/skills/pf-theme/usage.md +5 -5
- package/pennyfarthing-dist/skills/pf-workflow/examples.md +27 -27
- package/pennyfarthing-dist/skills/pf-workflow/skill.md +11 -11
- package/pennyfarthing-dist/skills/pf-workflow/usage.md +11 -11
- package/pennyfarthing-dist/skills/skill-registry.yaml +19 -19
- package/pennyfarthing-dist/templates/settings.local.json.template +11 -11
- package/pennyfarthing-dist/workflows/bdd-team.yaml +89 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-04-verify.md +1 -1
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-05-complete.md +1 -1
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +47 -0
- package/pennyfarthing-dist/workflows/tdd-team.yaml +80 -0
- package/pennyfarthing_scripts/__init__.py +1 -1
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/context.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/split.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/cli.py +2 -2
- package/pennyfarthing_scripts/bellmode_hook.py +2 -5
- package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/audit_log_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/events.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/portrait.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/portrait_resolver.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_data.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/story_detail_screen.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/audit_log_panel.py +48 -6
- package/pennyfarthing_scripts/bikerack/launcher.py +6 -6
- package/pennyfarthing_scripts/bikerack/progress_panel.py +0 -1
- package/pennyfarthing_scripts/bikerack/sprint_panel.py +1 -1
- package/pennyfarthing_scripts/bikerack/story_detail_data.py +4 -1
- package/pennyfarthing_scripts/bikerack/story_detail_screen.py +2 -1
- package/pennyfarthing_scripts/bikerack/tui.py +12 -2
- package/pennyfarthing_scripts/bikerack/ws_client.py +2 -2
- package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +29 -2
- package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/consultation/cli.py +3 -3
- package/pennyfarthing_scripts/context.py +3 -3
- package/pennyfarthing_scripts/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/epic/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/epic/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/gate/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/hooks_installer.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/repos.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/worktree.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/hooks_installer.py +2 -3
- package/pennyfarthing_scripts/git/status_all.py +1 -1
- package/pennyfarthing_scripts/git/worktree.py +2 -2
- package/pennyfarthing_scripts/git_group/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git_group/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/gate_file.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/gate_runner.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/marker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/phase_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__init__.py +8 -3
- package/pennyfarthing_scripts/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hooks/bell_mode.py +0 -1
- package/pennyfarthing_scripts/hooks/pre_edit_check.py +0 -1
- package/pennyfarthing_scripts/hooks/reflector_check.py +1 -2
- package/pennyfarthing_scripts/hooks/schema_validation.py +0 -1
- package/pennyfarthing_scripts/hooks/session_start.py +6 -8
- package/pennyfarthing_scripts/hooks/statusline.py +10 -1
- package/pennyfarthing_scripts/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/hotspots/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/operations.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/heatmap.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/heatmap.py +3 -15
- package/pennyfarthing_scripts/session/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/session/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/cli.py +121 -0
- package/pennyfarthing_scripts/sprint/loader.py +154 -3
- package/pennyfarthing_scripts/sprint/story_update.py +7 -0
- package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_108_2_remove_handoff_fallback.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_archive_epic.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bc.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_normalization.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_epic_shard_validation.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_gate_file_resolution.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_gate_runner.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_handoff_e2e.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_resolve_gate_file_field.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_panel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_topology_loader.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_list_team.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_bikerack.py +26 -26
- package/pennyfarthing_scripts/tests/test_dialogue_manager.py +0 -1
- package/pennyfarthing_scripts/tests/test_workflow_list_team.py +147 -0
- package/pennyfarthing_scripts/theme/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/agent.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/schema.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/tandem_awareness.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/team_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/validate/adapters/team_mode.py +323 -0
- package/pennyfarthing_scripts/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/scale.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/state.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/__pycache__/team_lifecycle.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/workflow/cli.py +15 -14
- package/pennyfarthing_scripts/workflow/state.py +0 -1
- package/pennyfarthing_scripts/workflow/team_lifecycle.py +3 -4
- package/packages/core/dist/cli/cyclist-migration.test.d.ts +0 -16
- package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +0 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +0 -229
- package/packages/core/dist/cli/cyclist-migration.test.js.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.d.ts +0 -182
- package/packages/core/dist/scripts/benchmark-integration.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.js +0 -691
- package/packages/core/dist/scripts/benchmark-integration.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts +0 -150
- package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.js +0 -547
- package/packages/core/dist/scripts/job-fair-aggregator.js.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.js.map +0 -1
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/consultation/__pycache__/dialogue_manager.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_108_1_gate_migration.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_confidence_sm_evaluation.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_confidence_sm_gate.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_dialogue_manager.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-lifecycle.test.js","sourceRoot":"","sources":["../../src/workflow/team-lifecycle.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for Story 86-15: Team-enabled workflow templates
|
|
3
|
+
*
|
|
4
|
+
* These tests validate the new tdd-team.yaml and bdd-team.yaml workflow
|
|
5
|
+
* templates that configure phase-scoped native teams.
|
|
6
|
+
*
|
|
7
|
+
* Acceptance Criteria:
|
|
8
|
+
* - [AC1] tdd-team.yaml — Dev + Architect on green, Reviewer + Architect on review
|
|
9
|
+
* - [AC2] bdd-team.yaml — UX + Architect on design, Dev + TEA on green
|
|
10
|
+
* - [AC3] Each template documented with when-to-use vs tandem variants
|
|
11
|
+
* - [AC4] /workflow list shows team-enabled workflows with indicator (see Python tests)
|
|
12
|
+
* - [AC5] Templates include graceful fallback comment for when teams unavailable
|
|
13
|
+
*
|
|
14
|
+
* Run with: node --test dist/workflow/workflow-team-templates.test.js
|
|
15
|
+
*/
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=workflow-team-templates.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-team-templates.test.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow-team-templates.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for Story 86-15: Team-enabled workflow templates
|
|
3
|
+
*
|
|
4
|
+
* These tests validate the new tdd-team.yaml and bdd-team.yaml workflow
|
|
5
|
+
* templates that configure phase-scoped native teams.
|
|
6
|
+
*
|
|
7
|
+
* Acceptance Criteria:
|
|
8
|
+
* - [AC1] tdd-team.yaml — Dev + Architect on green, Reviewer + Architect on review
|
|
9
|
+
* - [AC2] bdd-team.yaml — UX + Architect on design, Dev + TEA on green
|
|
10
|
+
* - [AC3] Each template documented with when-to-use vs tandem variants
|
|
11
|
+
* - [AC4] /workflow list shows team-enabled workflows with indicator (see Python tests)
|
|
12
|
+
* - [AC5] Templates include graceful fallback comment for when teams unavailable
|
|
13
|
+
*
|
|
14
|
+
* Run with: node --test dist/workflow/workflow-team-templates.test.js
|
|
15
|
+
*/
|
|
16
|
+
import { describe, it } from 'node:test';
|
|
17
|
+
import assert from 'node:assert';
|
|
18
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
19
|
+
import { join, dirname } from 'node:path';
|
|
20
|
+
import { fileURLToPath } from 'node:url';
|
|
21
|
+
import { loadWorkflowFile } from './workflow-loader.js';
|
|
22
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
function findMonorepoRoot(startDir) {
|
|
24
|
+
let dir = startDir;
|
|
25
|
+
for (let i = 0; i < 10; i++) {
|
|
26
|
+
if (existsSync(join(dir, 'pennyfarthing-dist'))) {
|
|
27
|
+
return dir;
|
|
28
|
+
}
|
|
29
|
+
const parent = dirname(dir);
|
|
30
|
+
if (parent === dir)
|
|
31
|
+
break;
|
|
32
|
+
dir = parent;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Could not find monorepo root from ${startDir}`);
|
|
35
|
+
}
|
|
36
|
+
const MONOREPO_ROOT = findMonorepoRoot(__dirname);
|
|
37
|
+
const WORKFLOWS_DIR = join(MONOREPO_ROOT, 'pennyfarthing-dist', 'workflows');
|
|
38
|
+
describe('Team-enabled workflow templates (86-15)', () => {
|
|
39
|
+
// ── AC1: tdd-team.yaml ───────────────────────────────────────────
|
|
40
|
+
describe('tdd-team.yaml', () => {
|
|
41
|
+
const filePath = join(WORKFLOWS_DIR, 'tdd-team.yaml');
|
|
42
|
+
it('should exist in pennyfarthing-dist/workflows/', () => {
|
|
43
|
+
assert.ok(existsSync(filePath), `tdd-team.yaml should exist at ${filePath}`);
|
|
44
|
+
});
|
|
45
|
+
it('should load and validate successfully', () => {
|
|
46
|
+
const result = loadWorkflowFile(filePath);
|
|
47
|
+
assert.strictEqual(result.success, true, `Validation errors: ${JSON.stringify(result.errors)}`);
|
|
48
|
+
assert.ok(result.workflow, 'Should return workflow object');
|
|
49
|
+
assert.strictEqual(result.workflow?.name, 'tdd-team');
|
|
50
|
+
});
|
|
51
|
+
it('should have phased workflow structure with setup, red, green, review, finish', () => {
|
|
52
|
+
const result = loadWorkflowFile(filePath);
|
|
53
|
+
assert.strictEqual(result.success, true);
|
|
54
|
+
const phases = result.workflow.phases;
|
|
55
|
+
const phaseNames = phases.map(p => p.name);
|
|
56
|
+
assert.ok(phaseNames.includes('setup'), 'Should have setup phase');
|
|
57
|
+
assert.ok(phaseNames.includes('red'), 'Should have red phase');
|
|
58
|
+
assert.ok(phaseNames.includes('green'), 'Should have green phase');
|
|
59
|
+
assert.ok(phaseNames.includes('review'), 'Should have review phase');
|
|
60
|
+
assert.ok(phaseNames.includes('finish'), 'Should have finish phase');
|
|
61
|
+
});
|
|
62
|
+
it('should have Dev as agent on green phase with Architect teammate', () => {
|
|
63
|
+
const result = loadWorkflowFile(filePath);
|
|
64
|
+
assert.strictEqual(result.success, true);
|
|
65
|
+
const green = result.workflow.phases.find(p => p.name === 'green');
|
|
66
|
+
assert.ok(green, 'green phase must exist');
|
|
67
|
+
assert.strictEqual(green.agent, 'dev', 'Dev should lead green phase');
|
|
68
|
+
assert.ok(green.team, 'green phase must have team block');
|
|
69
|
+
assert.ok(green.team.teammates.length >= 1, 'team must have at least one teammate');
|
|
70
|
+
const architectTeammate = green.team.teammates.find(t => t.agent === 'architect');
|
|
71
|
+
assert.ok(architectTeammate, 'Architect should be a teammate on green phase');
|
|
72
|
+
});
|
|
73
|
+
it('should have Reviewer as agent on review phase with Architect teammate', () => {
|
|
74
|
+
const result = loadWorkflowFile(filePath);
|
|
75
|
+
assert.strictEqual(result.success, true);
|
|
76
|
+
const review = result.workflow.phases.find(p => p.name === 'review');
|
|
77
|
+
assert.ok(review, 'review phase must exist');
|
|
78
|
+
assert.strictEqual(review.agent, 'reviewer', 'Reviewer should lead review phase');
|
|
79
|
+
assert.ok(review.team, 'review phase must have team block');
|
|
80
|
+
const architectTeammate = review.team.teammates.find(t => t.agent === 'architect');
|
|
81
|
+
assert.ok(architectTeammate, 'Architect should be a teammate on review phase');
|
|
82
|
+
});
|
|
83
|
+
it('should NOT have team blocks on setup, red, or finish phases', () => {
|
|
84
|
+
const result = loadWorkflowFile(filePath);
|
|
85
|
+
assert.strictEqual(result.success, true);
|
|
86
|
+
const phases = result.workflow.phases;
|
|
87
|
+
for (const phaseName of ['setup', 'red', 'finish']) {
|
|
88
|
+
const phase = phases.find(p => p.name === phaseName);
|
|
89
|
+
if (phase) {
|
|
90
|
+
assert.strictEqual(phase.team, undefined, `${phaseName} phase should not have a team block`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
it('should have gates on red and green phases', () => {
|
|
95
|
+
const result = loadWorkflowFile(filePath);
|
|
96
|
+
assert.strictEqual(result.success, true);
|
|
97
|
+
const phases = result.workflow.phases;
|
|
98
|
+
const red = phases.find(p => p.name === 'red');
|
|
99
|
+
assert.ok(red?.gate, 'red phase should have a gate');
|
|
100
|
+
const green = phases.find(p => p.name === 'green');
|
|
101
|
+
assert.ok(green?.gate, 'green phase should have a gate');
|
|
102
|
+
});
|
|
103
|
+
it('should have triggers with team tag', () => {
|
|
104
|
+
const result = loadWorkflowFile(filePath);
|
|
105
|
+
assert.strictEqual(result.success, true);
|
|
106
|
+
const triggers = result.workflow.triggers;
|
|
107
|
+
assert.ok(triggers, 'Should have triggers');
|
|
108
|
+
assert.ok(triggers.tags?.includes('team') || triggers.tags?.includes('tdd-team'), 'Triggers should include a team-related tag');
|
|
109
|
+
});
|
|
110
|
+
it('should not be the default workflow', () => {
|
|
111
|
+
const result = loadWorkflowFile(filePath);
|
|
112
|
+
assert.strictEqual(result.success, true);
|
|
113
|
+
assert.strictEqual(result.workflow.triggers?.default, false, 'Team workflow should not be default (tdd is default)');
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
// ── AC2: bdd-team.yaml ───────────────────────────────────────────
|
|
117
|
+
describe('bdd-team.yaml', () => {
|
|
118
|
+
const filePath = join(WORKFLOWS_DIR, 'bdd-team.yaml');
|
|
119
|
+
it('should exist in pennyfarthing-dist/workflows/', () => {
|
|
120
|
+
assert.ok(existsSync(filePath), `bdd-team.yaml should exist at ${filePath}`);
|
|
121
|
+
});
|
|
122
|
+
it('should load and validate successfully', () => {
|
|
123
|
+
const result = loadWorkflowFile(filePath);
|
|
124
|
+
assert.strictEqual(result.success, true, `Validation errors: ${JSON.stringify(result.errors)}`);
|
|
125
|
+
assert.ok(result.workflow, 'Should return workflow object');
|
|
126
|
+
assert.strictEqual(result.workflow?.name, 'bdd-team');
|
|
127
|
+
});
|
|
128
|
+
it('should have phased structure with setup, design, red, green, review, finish', () => {
|
|
129
|
+
const result = loadWorkflowFile(filePath);
|
|
130
|
+
assert.strictEqual(result.success, true);
|
|
131
|
+
const phases = result.workflow.phases;
|
|
132
|
+
const phaseNames = phases.map(p => p.name);
|
|
133
|
+
assert.ok(phaseNames.includes('setup'), 'Should have setup phase');
|
|
134
|
+
assert.ok(phaseNames.includes('design'), 'Should have design phase');
|
|
135
|
+
assert.ok(phaseNames.includes('red'), 'Should have red phase');
|
|
136
|
+
assert.ok(phaseNames.includes('green'), 'Should have green phase');
|
|
137
|
+
assert.ok(phaseNames.includes('review'), 'Should have review phase');
|
|
138
|
+
assert.ok(phaseNames.includes('finish'), 'Should have finish phase');
|
|
139
|
+
});
|
|
140
|
+
it('should have UX-Designer as agent on design phase with Architect teammate', () => {
|
|
141
|
+
const result = loadWorkflowFile(filePath);
|
|
142
|
+
assert.strictEqual(result.success, true);
|
|
143
|
+
const design = result.workflow.phases.find(p => p.name === 'design');
|
|
144
|
+
assert.ok(design, 'design phase must exist');
|
|
145
|
+
assert.strictEqual(design.agent, 'ux-designer', 'UX-Designer should lead design phase');
|
|
146
|
+
assert.ok(design.team, 'design phase must have team block');
|
|
147
|
+
const architectTeammate = design.team.teammates.find(t => t.agent === 'architect');
|
|
148
|
+
assert.ok(architectTeammate, 'Architect should be a teammate on design phase');
|
|
149
|
+
});
|
|
150
|
+
it('should have Dev as agent on green phase with TEA teammate', () => {
|
|
151
|
+
const result = loadWorkflowFile(filePath);
|
|
152
|
+
assert.strictEqual(result.success, true);
|
|
153
|
+
const green = result.workflow.phases.find(p => p.name === 'green');
|
|
154
|
+
assert.ok(green, 'green phase must exist');
|
|
155
|
+
assert.strictEqual(green.agent, 'dev', 'Dev should lead green phase');
|
|
156
|
+
assert.ok(green.team, 'green phase must have team block');
|
|
157
|
+
const teaTeammate = green.team.teammates.find(t => t.agent === 'tea');
|
|
158
|
+
assert.ok(teaTeammate, 'TEA should be a teammate on green phase');
|
|
159
|
+
});
|
|
160
|
+
it('should NOT have team blocks on setup, red, or finish phases', () => {
|
|
161
|
+
const result = loadWorkflowFile(filePath);
|
|
162
|
+
assert.strictEqual(result.success, true);
|
|
163
|
+
const phases = result.workflow.phases;
|
|
164
|
+
for (const phaseName of ['setup', 'red', 'finish']) {
|
|
165
|
+
const phase = phases.find(p => p.name === phaseName);
|
|
166
|
+
if (phase) {
|
|
167
|
+
assert.strictEqual(phase.team, undefined, `${phaseName} phase should not have a team block`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
it('should have gates on design, red, and green phases', () => {
|
|
172
|
+
const result = loadWorkflowFile(filePath);
|
|
173
|
+
assert.strictEqual(result.success, true);
|
|
174
|
+
const phases = result.workflow.phases;
|
|
175
|
+
const design = phases.find(p => p.name === 'design');
|
|
176
|
+
assert.ok(design?.gate, 'design phase should have a gate');
|
|
177
|
+
const red = phases.find(p => p.name === 'red');
|
|
178
|
+
assert.ok(red?.gate, 'red phase should have a gate');
|
|
179
|
+
const green = phases.find(p => p.name === 'green');
|
|
180
|
+
assert.ok(green?.gate, 'green phase should have a gate');
|
|
181
|
+
});
|
|
182
|
+
it('should have triggers with team tag', () => {
|
|
183
|
+
const result = loadWorkflowFile(filePath);
|
|
184
|
+
assert.strictEqual(result.success, true);
|
|
185
|
+
const triggers = result.workflow.triggers;
|
|
186
|
+
assert.ok(triggers, 'Should have triggers');
|
|
187
|
+
assert.ok(triggers.tags?.includes('team') || triggers.tags?.includes('bdd-team'), 'Triggers should include a team-related tag');
|
|
188
|
+
});
|
|
189
|
+
it('should not be the default workflow', () => {
|
|
190
|
+
const result = loadWorkflowFile(filePath);
|
|
191
|
+
assert.strictEqual(result.success, true);
|
|
192
|
+
assert.strictEqual(result.workflow.triggers?.default, false, 'Team workflow should not be default');
|
|
193
|
+
});
|
|
194
|
+
});
|
|
195
|
+
// ── AC3: Documentation — when-to-use vs tandem ───────────────────
|
|
196
|
+
describe('template documentation (AC3)', () => {
|
|
197
|
+
it('tdd-team.yaml should document when to use vs tdd-tandem', () => {
|
|
198
|
+
const filePath = join(WORKFLOWS_DIR, 'tdd-team.yaml');
|
|
199
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
200
|
+
// Should have header comments explaining when to use
|
|
201
|
+
assert.ok(content.toLowerCase().includes('when to use') ||
|
|
202
|
+
content.toLowerCase().includes('when-to-use'), 'Should document when to use this workflow');
|
|
203
|
+
assert.ok(content.toLowerCase().includes('tandem'), 'Should reference tandem variant for comparison');
|
|
204
|
+
});
|
|
205
|
+
it('bdd-team.yaml should document when to use vs bdd-tandem', () => {
|
|
206
|
+
const filePath = join(WORKFLOWS_DIR, 'bdd-team.yaml');
|
|
207
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
208
|
+
assert.ok(content.toLowerCase().includes('when to use') ||
|
|
209
|
+
content.toLowerCase().includes('when-to-use'), 'Should document when to use this workflow');
|
|
210
|
+
assert.ok(content.toLowerCase().includes('tandem'), 'Should reference tandem variant for comparison');
|
|
211
|
+
});
|
|
212
|
+
it('tdd-team.yaml description should distinguish from tdd-tandem', () => {
|
|
213
|
+
const result = loadWorkflowFile(join(WORKFLOWS_DIR, 'tdd-team.yaml'));
|
|
214
|
+
assert.strictEqual(result.success, true);
|
|
215
|
+
assert.ok(result.workflow?.description, 'Should have a description');
|
|
216
|
+
assert.ok(result.workflow.description.toLowerCase().includes('team'), 'Description should mention team collaboration');
|
|
217
|
+
});
|
|
218
|
+
it('bdd-team.yaml description should distinguish from bdd-tandem', () => {
|
|
219
|
+
const result = loadWorkflowFile(join(WORKFLOWS_DIR, 'bdd-team.yaml'));
|
|
220
|
+
assert.strictEqual(result.success, true);
|
|
221
|
+
assert.ok(result.workflow?.description, 'Should have a description');
|
|
222
|
+
assert.ok(result.workflow.description.toLowerCase().includes('team'), 'Description should mention team collaboration');
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
// ── AC5: Fallback comments ───────────────────────────────────────
|
|
226
|
+
describe('graceful fallback comments (AC5)', () => {
|
|
227
|
+
it('tdd-team.yaml should include fallback guidance for teams unavailable', () => {
|
|
228
|
+
const filePath = join(WORKFLOWS_DIR, 'tdd-team.yaml');
|
|
229
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
230
|
+
assert.ok(content.toLowerCase().includes('fallback') ||
|
|
231
|
+
content.toLowerCase().includes('unavailable') ||
|
|
232
|
+
content.toLowerCase().includes('solo'), 'Should document fallback behavior when teams are not available');
|
|
233
|
+
});
|
|
234
|
+
it('bdd-team.yaml should include fallback guidance for teams unavailable', () => {
|
|
235
|
+
const filePath = join(WORKFLOWS_DIR, 'bdd-team.yaml');
|
|
236
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
237
|
+
assert.ok(content.toLowerCase().includes('fallback') ||
|
|
238
|
+
content.toLowerCase().includes('unavailable') ||
|
|
239
|
+
content.toLowerCase().includes('solo'), 'Should document fallback behavior when teams are not available');
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
// ── Teammate task descriptions ─────────────────────────────────
|
|
243
|
+
describe('teammate task descriptions', () => {
|
|
244
|
+
it('tdd-team green phase architect should have a task description', () => {
|
|
245
|
+
const result = loadWorkflowFile(join(WORKFLOWS_DIR, 'tdd-team.yaml'));
|
|
246
|
+
assert.strictEqual(result.success, true);
|
|
247
|
+
const green = result.workflow.phases.find(p => p.name === 'green');
|
|
248
|
+
const architect = green.team.teammates.find(t => t.agent === 'architect');
|
|
249
|
+
assert.ok(architect.task, 'Architect teammate should have a task description');
|
|
250
|
+
assert.ok(architect.task.length > 0, 'Task should not be empty');
|
|
251
|
+
});
|
|
252
|
+
it('tdd-team review phase architect should have a task description', () => {
|
|
253
|
+
const result = loadWorkflowFile(join(WORKFLOWS_DIR, 'tdd-team.yaml'));
|
|
254
|
+
assert.strictEqual(result.success, true);
|
|
255
|
+
const review = result.workflow.phases.find(p => p.name === 'review');
|
|
256
|
+
const architect = review.team.teammates.find(t => t.agent === 'architect');
|
|
257
|
+
assert.ok(architect.task, 'Architect teammate should have a task description');
|
|
258
|
+
});
|
|
259
|
+
it('bdd-team design phase architect should have a task description', () => {
|
|
260
|
+
const result = loadWorkflowFile(join(WORKFLOWS_DIR, 'bdd-team.yaml'));
|
|
261
|
+
assert.strictEqual(result.success, true);
|
|
262
|
+
const design = result.workflow.phases.find(p => p.name === 'design');
|
|
263
|
+
const architect = design.team.teammates.find(t => t.agent === 'architect');
|
|
264
|
+
assert.ok(architect.task, 'Architect teammate should have a task description');
|
|
265
|
+
});
|
|
266
|
+
it('bdd-team green phase tea should have a task description', () => {
|
|
267
|
+
const result = loadWorkflowFile(join(WORKFLOWS_DIR, 'bdd-team.yaml'));
|
|
268
|
+
assert.strictEqual(result.success, true);
|
|
269
|
+
const green = result.workflow.phases.find(p => p.name === 'green');
|
|
270
|
+
const tea = green.team.teammates.find(t => t.agent === 'tea');
|
|
271
|
+
assert.ok(tea.task, 'TEA teammate should have a task description');
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
//# sourceMappingURL=workflow-team-templates.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-team-templates.test.js","sourceRoot":"","sources":["../../src/workflow/workflow-team-templates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,10 +89,10 @@ STORY_ID: "{STORY_ID}"
|
|
|
89
89
|
|
|
90
90
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
91
91
|
```bash
|
|
92
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
92
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
93
93
|
```
|
|
94
94
|
|
|
95
|
-
**If OWNER != "dev":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
95
|
+
**If OWNER != "dev":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
96
96
|
</phase-check>
|
|
97
97
|
|
|
98
98
|
<on-activation>
|
|
@@ -193,6 +193,19 @@ When your workflow phase has `tandem.mode: consultation`, you can spawn the part
|
|
|
193
193
|
**If consultation fails:** Continue solo — consultation is advisory, not blocking.
|
|
194
194
|
</tandem-consultation>
|
|
195
195
|
|
|
196
|
+
<team-mode>
|
|
197
|
+
## Team Mode (Lead)
|
|
198
|
+
|
|
199
|
+
When the green phase has a `team:` block in workflow YAML, Dev acts as **lead**:
|
|
200
|
+
|
|
201
|
+
1. **On phase entry:** Detect team config, create team with `TeamCreate`
|
|
202
|
+
2. **Spawn teammates** per workflow YAML `teammates:` list (e.g., Architect for pattern review, TEA for regression watching)
|
|
203
|
+
3. **During phase:** Coordinate via `SendMessage`, implement features while teammates review in parallel
|
|
204
|
+
4. **Before exit:** Shut down all teammates before starting exit protocol — send `shutdown_request`, await responses, then `TeamDelete`
|
|
205
|
+
|
|
206
|
+
Teammates are phase-scoped — created at phase start, destroyed at phase end.
|
|
207
|
+
</team-mode>
|
|
208
|
+
|
|
196
209
|
<skills>
|
|
197
210
|
- `/pf-testing` - Test commands and patterns
|
|
198
211
|
- `/pf-code-review` - Self-review checklist
|
|
@@ -46,10 +46,10 @@ PR_NUMBER: "{PR_NUMBER}"
|
|
|
46
46
|
|
|
47
47
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
48
48
|
```bash
|
|
49
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
49
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
**If OWNER != "reviewer":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
52
|
+
**If OWNER != "reviewer":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
53
53
|
</phase-check>
|
|
54
54
|
|
|
55
55
|
<on-activation>
|
|
@@ -125,13 +125,13 @@ OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
|
125
125
|
<exit>
|
|
126
126
|
### If APPROVED:
|
|
127
127
|
1. Write Reviewer Assessment (verdict: APPROVED)
|
|
128
|
-
2. Update story: `pf sprint story update {STORY_ID} --review-verdict approved`
|
|
128
|
+
2. Update story: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story update {STORY_ID} --review-verdict approved`
|
|
129
129
|
3. Follow <agent-exit-protocol> (resolve-gate → complete-phase review→finish → marker sm)
|
|
130
130
|
4. **DO NOT merge PRs** — SM handles PR creation and merge in the finish phase.
|
|
131
131
|
|
|
132
132
|
### If REJECTED:
|
|
133
133
|
1. Write Reviewer Assessment (verdict: REJECTED, with severity table)
|
|
134
|
-
2. Update story: `pf sprint story update {STORY_ID} --review-verdict rejected --review-findings "summary of findings"`
|
|
134
|
+
2. Update story: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story update {STORY_ID} --review-verdict rejected --review-findings "summary of findings"`
|
|
135
135
|
3. If findings are testable (logic bugs, missing edge cases):
|
|
136
136
|
- Follow <agent-exit-protocol> (resolve-gate → complete-phase → marker tea)
|
|
137
137
|
4. If findings are lint/format/dead-code only:
|
|
@@ -151,6 +151,19 @@ When your workflow phase has `tandem.mode: consultation`, you can spawn the part
|
|
|
151
151
|
**If consultation fails:** Continue solo — consultation is advisory, not blocking.
|
|
152
152
|
</tandem-consultation>
|
|
153
153
|
|
|
154
|
+
<team-mode>
|
|
155
|
+
## Team Mode (Lead)
|
|
156
|
+
|
|
157
|
+
When the review phase has a `team:` block in workflow YAML, Reviewer acts as **lead**:
|
|
158
|
+
|
|
159
|
+
1. **On phase entry:** Detect team config, create team with `TeamCreate`
|
|
160
|
+
2. **Spawn teammates** per workflow YAML `teammates:` list (e.g., Architect for architectural pattern validation)
|
|
161
|
+
3. **During phase:** Coordinate via `SendMessage`, perform adversarial review while teammates check specific concerns in parallel
|
|
162
|
+
4. **Before exit:** Shut down all teammates before starting exit protocol — send `shutdown_request`, await responses, then `TeamDelete`
|
|
163
|
+
|
|
164
|
+
Teammates are phase-scoped — created at phase start, destroyed at phase end.
|
|
165
|
+
</team-mode>
|
|
166
|
+
|
|
154
167
|
<skills>
|
|
155
168
|
- `/pf-code-review` - Review checklists, security/performance patterns
|
|
156
169
|
- `/pf-testing` - Test commands for verification
|
|
@@ -53,7 +53,7 @@ The script returns JSON with:
|
|
|
53
53
|
<critical>
|
|
54
54
|
## Jira Transition
|
|
55
55
|
|
|
56
|
-
The Jira transition to Done is handled by `pf sprint story finish`.
|
|
56
|
+
The Jira transition to Done is handled by `pf.sh sprint story finish`.
|
|
57
57
|
Do NOT transition Jira here - that would duplicate the finish script's work.
|
|
58
58
|
This subagent only performs preflight checks and assessment.
|
|
59
59
|
</critical>
|
|
@@ -26,7 +26,7 @@ model: haiku
|
|
|
26
26
|
|
|
27
27
|
- [ ] Use `/pf-sprint backlog` for initial backlog scan:
|
|
28
28
|
```bash
|
|
29
|
-
pf sprint backlog
|
|
29
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint backlog
|
|
30
30
|
```
|
|
31
31
|
- [ ] Use `/pf-jira` skill to enrich with Jira status/assignee:
|
|
32
32
|
- `/pf-jira search "project=MSSCI AND sprint in openSprints()"` - Get all sprint stories
|
|
@@ -92,10 +92,10 @@ Other formats break Cyclist detection.
|
|
|
92
92
|
EPIC_NUM=$(echo "{STORY_ID}" | cut -d'-' -f1)
|
|
93
93
|
|
|
94
94
|
# Get epic's Jira key (use script, not direct yq)
|
|
95
|
-
EPIC_JIRA=$(pf sprint epic field "$EPIC_NUM" jira)
|
|
95
|
+
EPIC_JIRA=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint epic field "$EPIC_NUM" jira)
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
If missing or "null": auto-create via `pf jira create epic {EPIC_NUM}`
|
|
98
|
+
If missing or "null": auto-create via `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira create epic {EPIC_NUM}`
|
|
99
99
|
|
|
100
100
|
## Step 2: Check Workflow Permissions
|
|
101
101
|
|
|
@@ -135,14 +135,14 @@ GRANTS=$(cat .claude/settings.local.json 2>/dev/null | jq '.permissions.grants /
|
|
|
135
135
|
|
|
136
136
|
## Step 3: Claim in Jira
|
|
137
137
|
|
|
138
|
-
Use
|
|
138
|
+
Use the pf wrapper for Jira commands:
|
|
139
139
|
|
|
140
140
|
```bash
|
|
141
141
|
# Check availability first
|
|
142
|
-
pf jira check {JIRA_KEY}
|
|
142
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira check {JIRA_KEY}
|
|
143
143
|
|
|
144
144
|
# Then claim (assign to self + move to In Progress)
|
|
145
|
-
pf jira claim {JIRA_KEY}
|
|
145
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira claim {JIRA_KEY}
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
**Exit codes:**
|
|
@@ -184,7 +184,7 @@ git checkout -b feat/{STORY_ID}-{SLUG}
|
|
|
184
184
|
After session file is created, determine how to route:
|
|
185
185
|
|
|
186
186
|
```bash
|
|
187
|
-
WORKFLOW_TYPE=$(pf workflow type "{WORKFLOW}")
|
|
187
|
+
WORKFLOW_TYPE=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow type "{WORKFLOW}")
|
|
188
188
|
```
|
|
189
189
|
|
|
190
190
|
| Workflow Type | Routing |
|
|
@@ -25,12 +25,12 @@ The moment you start reading implementation files or planning how code should wo
|
|
|
25
25
|
</critical>
|
|
26
26
|
|
|
27
27
|
<critical>
|
|
28
|
-
Use
|
|
28
|
+
Use the pf wrapper for all Jira interactions. Key commands:
|
|
29
29
|
```
|
|
30
|
-
pf jira check MSSCI-XXXXX # Check story availability
|
|
31
|
-
pf jira claim MSSCI-XXXXX # Claim story (assign + In Progress)
|
|
32
|
-
pf jira move MSSCI-XXXXX "Done" # Transition status
|
|
33
|
-
pf jira reconcile # Audit YAML vs Jira
|
|
30
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira check MSSCI-XXXXX # Check story availability
|
|
31
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira claim MSSCI-XXXXX # Claim story (assign + In Progress)
|
|
32
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira move MSSCI-XXXXX "Done" # Transition status
|
|
33
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh jira reconcile # Audit YAML vs Jira
|
|
34
34
|
```
|
|
35
35
|
If they are broken, COMPLAIN LOUDLY
|
|
36
36
|
</critical>
|
|
@@ -107,7 +107,7 @@ Prime script provides workflow state. Route based on state from activation outpu
|
|
|
107
107
|
|
|
108
108
|
2. **Run finish command:**
|
|
109
109
|
```bash
|
|
110
|
-
pf sprint story finish {STORY_ID}
|
|
110
|
+
"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story finish {STORY_ID}
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
3. **Commit results:**
|
|
@@ -153,8 +153,8 @@ Present to user:
|
|
|
153
153
|
|
|
154
154
|
1. **Get workflow type:**
|
|
155
155
|
```bash
|
|
156
|
-
WORKFLOW=$(pf sprint story field X-Y workflow)
|
|
157
|
-
WORKFLOW_TYPE=$(pf workflow type "$WORKFLOW")
|
|
156
|
+
WORKFLOW=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint story field X-Y workflow)
|
|
157
|
+
WORKFLOW_TYPE=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow type "$WORKFLOW")
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
2. **Spawn `sm-setup MODE=setup`** with:
|
|
@@ -167,7 +167,7 @@ Present to user:
|
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
4. **Route based on workflow type:**
|
|
170
|
-
- **Phased workflow** → Run exit protocol: `pf handoff complete-phase` then `pf handoff marker`
|
|
170
|
+
- **Phased workflow** → Run exit protocol: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff complete-phase` then `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker`
|
|
171
171
|
- **Stepped workflow** → Tell user to run `/pf-workflow start {workflow}` (no handoff)
|
|
172
172
|
</session-new-flow>
|
|
173
173
|
|
|
@@ -212,7 +212,7 @@ Before handoff, verify ALL of these:
|
|
|
212
212
|
> **Triggered when:** `EMPTY_BACKLOG_STATE`
|
|
213
213
|
|
|
214
214
|
1. Report: "Sprint backlog empty. All stories done or cancelled."
|
|
215
|
-
2. Show future work: `pf sprint future`
|
|
215
|
+
2. Show future work: `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh sprint future`
|
|
216
216
|
3. Offer: "Promote stories from `future.yaml`?" → `/pf-sprint promote {epic-id}`
|
|
217
217
|
|
|
218
218
|
**Never suggest:** Closing sprint early, starting sprint planning. Sprints are fixed two-week periods.
|
|
@@ -262,10 +262,10 @@ SM does NOT hand off to agents. Instead, use `/pf-workflow start {name}` to begi
|
|
|
262
262
|
|
|
263
263
|
Read `**Workflow:**` and `**Phase:**` from session. Query:
|
|
264
264
|
```bash
|
|
265
|
-
OWNER=$(pf workflow phase-check {workflow} {phase})
|
|
265
|
+
OWNER=$("$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh workflow phase-check {workflow} {phase})
|
|
266
266
|
```
|
|
267
267
|
|
|
268
|
-
**If OWNER != "sm":** Run `pf handoff marker $OWNER`, output result, tell user.
|
|
268
|
+
**If OWNER != "sm":** Run `"$CLAUDE_PROJECT_DIR"/.pennyfarthing/scripts/core/pf.sh handoff marker $OWNER`, output result, tell user.
|
|
269
269
|
|
|
270
270
|
**Note:** SM also handles `approved` status (finish phase).
|
|
271
271
|
</phase-check>
|