@pennyfarthing/core 10.0.3 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/package.json +7 -1
- package/packages/core/dist/cli/commands/cyclist.d.ts +5 -1
- package/packages/core/dist/cli/commands/cyclist.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/cyclist.js +4 -4
- package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
- package/packages/core/dist/cli/commands/cyclist.test.js +2 -2
- package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
- package/packages/core/dist/cli/commands/doctor-legacy.test.js +17 -16
- package/packages/core/dist/cli/commands/doctor-legacy.test.js.map +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +251 -4
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/commands/init.d.ts +7 -0
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +43 -7
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/update.js +26 -0
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/index.js +1 -1
- package/packages/core/dist/cli/index.js.map +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
- package/packages/core/dist/cli/utils/files.d.ts +10 -0
- package/packages/core/dist/cli/utils/files.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/files.js +35 -0
- package/packages/core/dist/cli/utils/files.js.map +1 -1
- package/packages/core/dist/cli/utils/python.d.ts +22 -0
- package/packages/core/dist/cli/utils/python.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/python.js +102 -0
- package/packages/core/dist/cli/utils/python.js.map +1 -0
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/settings.js +10 -0
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/scripts/generate-report.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-report.js +11 -7
- package/packages/core/dist/scripts/generate-report.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider-report.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-spider-report.js +12 -8
- package/packages/core/dist/scripts/generate-spider-report.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider.d.ts.map +1 -1
- package/packages/core/dist/scripts/generate-spider.js +6 -4
- package/packages/core/dist/scripts/generate-spider.js.map +1 -1
- package/packages/core/dist/scripts/generate-spider.test.js +2 -2
- package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
- package/pennyfarthing-dist/agents/README.md +1 -3
- package/pennyfarthing-dist/agents/architect.md +0 -6
- package/pennyfarthing-dist/agents/devops.md +0 -6
- package/pennyfarthing-dist/agents/orchestrator.md +0 -6
- package/pennyfarthing-dist/agents/pm.md +1 -7
- package/pennyfarthing-dist/agents/sm-finish.md +1 -1
- package/pennyfarthing-dist/agents/sm-setup.md +2 -2
- package/pennyfarthing-dist/agents/sm.md +4 -11
- package/pennyfarthing-dist/commands/architect.md +11 -3
- package/pennyfarthing-dist/commands/close-epic.md +24 -131
- package/pennyfarthing-dist/commands/create-theme.md +14 -24
- package/pennyfarthing-dist/commands/dev.md +11 -3
- package/pennyfarthing-dist/commands/devops.md +11 -3
- package/pennyfarthing-dist/commands/health-check.md +1 -3
- package/pennyfarthing-dist/commands/help.md +8 -12
- package/pennyfarthing-dist/commands/list-themes.md +14 -16
- package/pennyfarthing-dist/commands/orchestrator.md +11 -3
- package/pennyfarthing-dist/commands/parallel-work.md +1 -3
- package/pennyfarthing-dist/commands/pm.md +11 -3
- package/pennyfarthing-dist/commands/prime.md +6 -6
- package/pennyfarthing-dist/commands/repo-status.md +2 -2
- package/pennyfarthing-dist/commands/reviewer.md +11 -3
- package/pennyfarthing-dist/commands/run-ci.md +1 -1
- package/pennyfarthing-dist/commands/set-theme.md +14 -51
- package/pennyfarthing-dist/commands/setup.md +1 -1
- package/pennyfarthing-dist/commands/show-theme.md +14 -16
- package/pennyfarthing-dist/commands/sm.md +11 -3
- package/pennyfarthing-dist/commands/sprint.md +8 -8
- package/pennyfarthing-dist/commands/tea.md +11 -3
- package/pennyfarthing-dist/commands/tech-writer.md +11 -3
- package/pennyfarthing-dist/commands/theme-maker.md +14 -671
- package/pennyfarthing-dist/commands/theme.md +95 -0
- package/pennyfarthing-dist/commands/ux-designer.md +11 -3
- package/pennyfarthing-dist/commands/work.md +3 -5
- package/pennyfarthing-dist/guides/agent-coordination.md +11 -13
- package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -3
- package/pennyfarthing-dist/guides/command-tag-taxonomy.md +212 -0
- package/pennyfarthing-dist/guides/hooks.md +5 -5
- package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +3 -3
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +9 -59
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +4 -5
- package/pennyfarthing-dist/guides/prime.md +2 -2
- package/pennyfarthing-dist/guides/skill-schema.md +25 -26
- package/pennyfarthing-dist/guides/xml-tags.md +2 -2
- package/pennyfarthing-dist/scripts/README.md +2 -2
- package/pennyfarthing-dist/scripts/core/agent-session.sh +6 -2
- package/pennyfarthing-dist/scripts/core/prime.sh +8 -10
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +1 -1
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +8 -6
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +3 -3
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +14 -12
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +4 -3
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +11 -5
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +1 -1
- package/pennyfarthing-dist/scripts/misc/README.md +1 -1
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +3 -3
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +1 -2
- package/pennyfarthing-dist/scripts/sprint/README.md +32 -17
- package/pennyfarthing-dist/scripts/story/README.md +1 -1
- package/pennyfarthing-dist/scripts/test/test-setup.sh +1 -1
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +5 -5
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +3 -79
- package/pennyfarthing-dist/scripts/theme/README.md +1 -1
- package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -1
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +62 -17
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +2 -2
- package/pennyfarthing-dist/skills/skill-registry.yaml +41 -28
- package/pennyfarthing-dist/skills/sprint/skill.md +386 -68
- package/pennyfarthing-dist/skills/story/skill.md +14 -206
- package/pennyfarthing-dist/skills/theme/skill.md +290 -75
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +23 -166
- package/pennyfarthing-dist/skills/workflow/skill.md +4 -4
- package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -11
- package/pennyfarthing-dist/templates/auto-load-sm.sh.template +14 -0
- package/pennyfarthing-dist/templates/settings.local.json.template +9 -0
- package/pennyfarthing-dist/workflows/2party-tdd.yaml +399 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +42 -25
- package/pennyfarthing-dist/workflows/git-cleanup.yaml +1 -1
- package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +1 -1
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/cli.py +15 -0
- package/pennyfarthing_scripts/codemarkers/__init__.py +19 -0
- package/pennyfarthing_scripts/codemarkers/__main__.py +6 -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/codemarkers/analyze.py +326 -0
- package/pennyfarthing_scripts/codemarkers/cli.py +129 -0
- package/pennyfarthing_scripts/codemarkers/formatters.py +89 -0
- package/pennyfarthing_scripts/codemarkers/models.py +45 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +2 -1
- package/pennyfarthing_scripts/complexity/__init__.py +15 -0
- package/pennyfarthing_scripts/complexity/__main__.py +6 -0
- 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/complexity/analyze.py +207 -0
- package/pennyfarthing_scripts/complexity/cli.py +78 -0
- package/pennyfarthing_scripts/complexity/formatters.py +64 -0
- package/pennyfarthing_scripts/complexity/models.py +32 -0
- package/pennyfarthing_scripts/deadcode/__init__.py +6 -0
- package/pennyfarthing_scripts/deadcode/__main__.py +6 -0
- 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/deadcode/analyze.py +323 -0
- package/pennyfarthing_scripts/deadcode/cli.py +163 -0
- package/pennyfarthing_scripts/deadcode/formatters.py +106 -0
- package/pennyfarthing_scripts/deadcode/models.py +54 -0
- package/pennyfarthing_scripts/dependencies/__init__.py +20 -0
- package/pennyfarthing_scripts/dependencies/__main__.py +5 -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/dependencies/analyze.py +155 -0
- package/pennyfarthing_scripts/dependencies/cli.py +72 -0
- package/pennyfarthing_scripts/dependencies/formatters.py +63 -0
- package/pennyfarthing_scripts/dependencies/models.py +39 -0
- package/pennyfarthing_scripts/healthscore/__init__.py +21 -0
- package/pennyfarthing_scripts/healthscore/__main__.py +6 -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/healthscore/analyze.py +161 -0
- package/pennyfarthing_scripts/healthscore/cli.py +76 -0
- package/pennyfarthing_scripts/healthscore/formatters.py +46 -0
- package/pennyfarthing_scripts/healthscore/models.py +44 -0
- 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/hotspots/analyze.py +28 -1
- package/pennyfarthing_scripts/hotspots/cli.py +11 -9
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.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__/operations.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/bidirectional.py +42 -15
- package/pennyfarthing_scripts/jira/cli.py +78 -1
- package/pennyfarthing_scripts/jira/client.py +28 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.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__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/workflow.py +5 -3
- 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__/loader.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/archive.py +63 -6
- package/pennyfarthing_scripts/sprint/archive_epic.py +198 -85
- package/pennyfarthing_scripts/sprint/cli.py +1565 -65
- package/pennyfarthing_scripts/sprint/epic_add.py +173 -0
- package/pennyfarthing_scripts/sprint/loader.py +46 -2
- package/pennyfarthing_scripts/sprint/story_add.py +202 -27
- package/pennyfarthing_scripts/sprint/story_finish.py +211 -0
- package/pennyfarthing_scripts/sprint/validate_cmd.py +44 -5
- package/pennyfarthing_scripts/sprint/validator.py +13 -3
- package/pennyfarthing_scripts/sprint/work.py +43 -3
- package/pennyfarthing_scripts/sprint/yaml_io.py +124 -15
- package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.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_sprint_package.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_update.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_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_codemarkers.py +682 -0
- package/pennyfarthing_scripts/tests/test_healthscore.py +524 -0
- package/pennyfarthing_scripts/tests/test_sprint_package.py +166 -0
- package/pennyfarthing_scripts/tests/test_yaml_io.py +117 -0
- package/pennyfarthing_scripts/theme/__init__.py +5 -0
- package/pennyfarthing_scripts/theme/__main__.py +6 -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/theme/cli.py +286 -0
- package/scripts/README.md +53 -0
- package/scripts/postinstall.cjs +34 -0
- package/pennyfarthing-dist/agents/workflow-status-check.md +0 -96
- package/pennyfarthing-dist/scripts/sprint/archive-story.sh +0 -133
- package/pennyfarthing-dist/scripts/sprint/available-stories.sh +0 -91
- package/pennyfarthing-dist/scripts/sprint/check-story.sh +0 -158
- package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +0 -52
- package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +0 -63
- package/pennyfarthing-dist/scripts/sprint/list-future.sh +0 -145
- package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +0 -110
- package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +0 -148
- package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +0 -415
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +0 -33
- package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +0 -230
- package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +0 -134
- package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +0 -139
- package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +0 -101
- package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +0 -97
- package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +0 -164
- package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +0 -23
- package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +0 -116
- package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +0 -164
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +0 -39
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +0 -147
- package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +0 -23
|
@@ -4,14 +4,14 @@ description: |
|
|
|
4
4
|
Sprint status, backlog, and story management for Pennyfarthing. Use when checking current
|
|
5
5
|
sprint status, finding available stories, reviewing backlog, or understanding story context
|
|
6
6
|
and history.
|
|
7
|
-
IMPORTANT: Always use
|
|
8
|
-
args: "[status|backlog|work|archive|new|
|
|
7
|
+
IMPORTANT: Always use `pf sprint` CLI commands - never manually edit sprint YAML.
|
|
8
|
+
args: "[status|backlog|work|archive|new|story|epic|standalone]"
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# /sprint - Sprint Management
|
|
12
12
|
|
|
13
13
|
<critical>
|
|
14
|
-
Never manually edit `sprint/current-sprint.yaml`. Use
|
|
14
|
+
Never manually edit `sprint/current-sprint.yaml`. Use `pf sprint` CLI commands for deterministic, correct YAML formatting.
|
|
15
15
|
</critical>
|
|
16
16
|
|
|
17
17
|
## Commands
|
|
@@ -21,7 +21,7 @@ Never manually edit `sprint/current-sprint.yaml`. Use the scripts below for dete
|
|
|
21
21
|
Show current sprint status with story counts and points.
|
|
22
22
|
|
|
23
23
|
<run>
|
|
24
|
-
|
|
24
|
+
pf sprint status [filter]
|
|
25
25
|
</run>
|
|
26
26
|
|
|
27
27
|
<args>
|
|
@@ -31,10 +31,10 @@ Show current sprint status with story counts and points.
|
|
|
31
31
|
</args>
|
|
32
32
|
|
|
33
33
|
<example>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
pf sprint status # All stories
|
|
35
|
+
pf sprint status todo # Backlog only
|
|
36
|
+
pf sprint status in-progress # WIP only
|
|
37
|
+
pf sprint status done # Completed only
|
|
38
38
|
</example>
|
|
39
39
|
|
|
40
40
|
<output>
|
|
@@ -49,7 +49,7 @@ When filtered, only shows epics with matching stories.
|
|
|
49
49
|
Show available stories grouped by epic with Jira context.
|
|
50
50
|
|
|
51
51
|
<run>
|
|
52
|
-
|
|
52
|
+
pf sprint backlog
|
|
53
53
|
</run>
|
|
54
54
|
|
|
55
55
|
<output>
|
|
@@ -82,7 +82,7 @@ Shows backlog, user selects story, then proceeds to setup.
|
|
|
82
82
|
#### With story ID: Direct start
|
|
83
83
|
|
|
84
84
|
<run>
|
|
85
|
-
|
|
85
|
+
pf sprint check <story-id>
|
|
86
86
|
</run>
|
|
87
87
|
|
|
88
88
|
<args>
|
|
@@ -97,14 +97,14 @@ Shows backlog, user selects story, then proceeds to setup.
|
|
|
97
97
|
</output>
|
|
98
98
|
|
|
99
99
|
<example>
|
|
100
|
-
|
|
100
|
+
pf sprint check MSSCI-12038
|
|
101
101
|
# Returns: {"type": "story", "available": true, "title": "...", ...}
|
|
102
102
|
</example>
|
|
103
103
|
|
|
104
104
|
#### With epic ID: Start first available story in epic
|
|
105
105
|
|
|
106
106
|
<run>
|
|
107
|
-
|
|
107
|
+
pf sprint check <epic-id>
|
|
108
108
|
</run>
|
|
109
109
|
|
|
110
110
|
<output>
|
|
@@ -113,14 +113,14 @@ Action: Automatically start work on `first_story` if available.
|
|
|
113
113
|
</output>
|
|
114
114
|
|
|
115
115
|
<example>
|
|
116
|
-
|
|
116
|
+
pf sprint check MSSCI-11952
|
|
117
117
|
# Returns: {"type": "epic", "first_story": {"id": "MSSCI-11954", ...}, ...}
|
|
118
118
|
</example>
|
|
119
119
|
|
|
120
120
|
#### With `next`: Auto-select highest priority story
|
|
121
121
|
|
|
122
122
|
<run>
|
|
123
|
-
|
|
123
|
+
pf sprint check next
|
|
124
124
|
</run>
|
|
125
125
|
|
|
126
126
|
<output>
|
|
@@ -129,7 +129,7 @@ Action: Automatically start work on returned story.
|
|
|
129
129
|
</output>
|
|
130
130
|
|
|
131
131
|
<example>
|
|
132
|
-
|
|
132
|
+
pf sprint check next
|
|
133
133
|
# Returns: {"type": "next", "story": {"id": "MSSCI-11950", "priority": "P1", ...}}
|
|
134
134
|
</example>
|
|
135
135
|
|
|
@@ -140,7 +140,7 @@ Action: Automatically start work on returned story.
|
|
|
140
140
|
Archive a completed story to the sprint archive file.
|
|
141
141
|
|
|
142
142
|
<run>
|
|
143
|
-
|
|
143
|
+
pf sprint archive <story-id> [pr-number] [--apply]
|
|
144
144
|
</run>
|
|
145
145
|
|
|
146
146
|
<args>
|
|
@@ -153,10 +153,10 @@ Archive a completed story to the sprint archive file.
|
|
|
153
153
|
|
|
154
154
|
<example>
|
|
155
155
|
# Archive only (manual removal needed)
|
|
156
|
-
|
|
156
|
+
pf sprint archive 35-2 368
|
|
157
157
|
|
|
158
158
|
# Archive and remove atomically (recommended)
|
|
159
|
-
|
|
159
|
+
pf sprint archive 35-2 368 --apply
|
|
160
160
|
</example>
|
|
161
161
|
|
|
162
162
|
<output>
|
|
@@ -173,7 +173,7 @@ Archive a completed story to the sprint archive file.
|
|
|
173
173
|
Initialize a new sprint from template.
|
|
174
174
|
|
|
175
175
|
<run>
|
|
176
|
-
|
|
176
|
+
pf sprint new <yyww> <jira-id> <start> <end> "<goal>"
|
|
177
177
|
</run>
|
|
178
178
|
|
|
179
179
|
<args>
|
|
@@ -187,7 +187,7 @@ Initialize a new sprint from template.
|
|
|
187
187
|
</args>
|
|
188
188
|
|
|
189
189
|
<example>
|
|
190
|
-
|
|
190
|
+
pf sprint new 2605 277 2026-02-03 2026-02-16 "Polish and stabilization"
|
|
191
191
|
</example>
|
|
192
192
|
|
|
193
193
|
<output>
|
|
@@ -205,23 +205,23 @@ Warning: Prompts for confirmation if current sprint is still active.
|
|
|
205
205
|
Show future work initiatives and epics available for promotion.
|
|
206
206
|
|
|
207
207
|
<run>
|
|
208
|
-
|
|
208
|
+
pf sprint future [EPIC_ID]
|
|
209
209
|
</run>
|
|
210
210
|
|
|
211
211
|
<args>
|
|
212
212
|
| Arg | Required | Description |
|
|
213
213
|
|-----|----------|-------------|
|
|
214
|
-
|
|
|
214
|
+
| `EPIC_ID` | No | Show detailed stories for a specific epic |
|
|
215
215
|
</args>
|
|
216
216
|
|
|
217
217
|
<output>
|
|
218
|
-
Without
|
|
218
|
+
Without epic ID:
|
|
219
219
|
- Initiatives grouped by status (READY, BLOCKED, planning)
|
|
220
220
|
- Epics with points, priority, and status
|
|
221
221
|
- Summary of total epics and points
|
|
222
222
|
- Promotion instructions
|
|
223
223
|
|
|
224
|
-
With
|
|
224
|
+
With epic ID:
|
|
225
225
|
- Full epic details including description
|
|
226
226
|
- All stories with points and status
|
|
227
227
|
- Promotion command for that epic
|
|
@@ -229,20 +229,20 @@ With `--epic`:
|
|
|
229
229
|
|
|
230
230
|
<example>
|
|
231
231
|
# Show all future work
|
|
232
|
-
|
|
232
|
+
pf sprint future
|
|
233
233
|
|
|
234
234
|
# Show details for specific epic
|
|
235
|
-
|
|
235
|
+
pf sprint future epic-55
|
|
236
236
|
</example>
|
|
237
237
|
|
|
238
238
|
---
|
|
239
239
|
|
|
240
|
-
### `/sprint promote <epic-id>`
|
|
240
|
+
### `/sprint promote <epic-id>` (deprecated — use `/sprint epic promote`)
|
|
241
241
|
|
|
242
242
|
Move an epic from `future.yaml` to `current-sprint.yaml`.
|
|
243
243
|
|
|
244
244
|
<run>
|
|
245
|
-
|
|
245
|
+
pf sprint epic promote <epic-id>
|
|
246
246
|
</run>
|
|
247
247
|
|
|
248
248
|
<args>
|
|
@@ -251,17 +251,6 @@ Move an epic from `future.yaml` to `current-sprint.yaml`.
|
|
|
251
251
|
| `epic-id` | Yes | Local epic ID (e.g., `epic-41`) |
|
|
252
252
|
</args>
|
|
253
253
|
|
|
254
|
-
<example>
|
|
255
|
-
.pennyfarthing/scripts/sprint/promote-epic.sh epic-41
|
|
256
|
-
</example>
|
|
257
|
-
|
|
258
|
-
<output>
|
|
259
|
-
1. Finds epic in `sprint/planning.yaml`
|
|
260
|
-
2. Extracts epic metadata and all stories
|
|
261
|
-
3. Appends to `sprint/current-sprint.yaml` epics section
|
|
262
|
-
4. Outputs yq command to remove from planning.yaml
|
|
263
|
-
</output>
|
|
264
|
-
|
|
265
254
|
<when>
|
|
266
255
|
Next steps after promote:
|
|
267
256
|
- Review appended YAML in current-sprint.yaml
|
|
@@ -271,14 +260,328 @@ Next steps after promote:
|
|
|
271
260
|
|
|
272
261
|
---
|
|
273
262
|
|
|
263
|
+
### `/sprint story show <story-id> [--json]`
|
|
264
|
+
|
|
265
|
+
Show details for a specific story.
|
|
266
|
+
|
|
267
|
+
<run>
|
|
268
|
+
pf sprint story show <story-id> [--json]
|
|
269
|
+
</run>
|
|
270
|
+
|
|
271
|
+
<args>
|
|
272
|
+
| Arg | Required | Description |
|
|
273
|
+
|-----|----------|-------------|
|
|
274
|
+
| `story-id` | Yes | Story ID (e.g., `MSSCI-12664` or `67-1`) |
|
|
275
|
+
| `--json` | No | Output as JSON |
|
|
276
|
+
</args>
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
### `/sprint story add <epic-id> "<title>" <points> [options]`
|
|
281
|
+
|
|
282
|
+
Add a new story to an epic in sprint YAML.
|
|
283
|
+
|
|
284
|
+
<run>
|
|
285
|
+
pf sprint story add <epic-id> "<title>" <points> [options]
|
|
286
|
+
</run>
|
|
287
|
+
|
|
288
|
+
<args>
|
|
289
|
+
| Arg | Required | Description |
|
|
290
|
+
|-----|----------|-------------|
|
|
291
|
+
| `epic-id` | Yes | Parent epic (e.g., `epic-76`) |
|
|
292
|
+
| `title` | Yes | Story title (quoted) |
|
|
293
|
+
| `points` | Yes | Story points (1, 2, 3, 5, 8) |
|
|
294
|
+
| `--type` | No | Story type: feature, bug, chore, refactor (default: feature) |
|
|
295
|
+
| `--priority` | No | Priority: P0, P1, P2, P3 (default: P1) |
|
|
296
|
+
| `--workflow` | No | Workflow: tdd, trivial, bdd (default: tdd) |
|
|
297
|
+
| `--jira` | No | Jira issue key |
|
|
298
|
+
</args>
|
|
299
|
+
|
|
300
|
+
<example>
|
|
301
|
+
pf sprint story add epic-76 "Add error handling" 3
|
|
302
|
+
pf sprint story add epic-76 "Fix null pointer" 2 --type bug
|
|
303
|
+
</example>
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
### `/sprint story update <story-id> [options]`
|
|
308
|
+
|
|
309
|
+
Update fields on a story.
|
|
310
|
+
|
|
311
|
+
<run>
|
|
312
|
+
pf sprint story update <story-id> [options]
|
|
313
|
+
</run>
|
|
314
|
+
|
|
315
|
+
<args>
|
|
316
|
+
| Arg | Required | Description |
|
|
317
|
+
|-----|----------|-------------|
|
|
318
|
+
| `story-id` | Yes | Story ID (e.g., `76-4`) |
|
|
319
|
+
| `--status` | No | New status (backlog, ready, in_progress, done, canceled) |
|
|
320
|
+
| `--points` | No | New points value |
|
|
321
|
+
| `--priority` | No | New priority |
|
|
322
|
+
| `--assigned-to` | No | Assignee |
|
|
323
|
+
| `--dry-run` | No | Preview changes without writing |
|
|
324
|
+
</args>
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
### `/sprint story size [points]`
|
|
329
|
+
|
|
330
|
+
Display story sizing guidelines.
|
|
331
|
+
|
|
332
|
+
<run>
|
|
333
|
+
pf sprint story size [points]
|
|
334
|
+
</run>
|
|
335
|
+
|
|
336
|
+
<args>
|
|
337
|
+
| Arg | Required | Description |
|
|
338
|
+
|-----|----------|-------------|
|
|
339
|
+
| `points` | No | Specific point value to show guidance for |
|
|
340
|
+
</args>
|
|
341
|
+
|
|
342
|
+
<output>
|
|
343
|
+
Sizing characteristics, workflow suggestions, examples.
|
|
344
|
+
</output>
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
### `/sprint story template [type]`
|
|
349
|
+
|
|
350
|
+
Display story templates by type.
|
|
351
|
+
|
|
352
|
+
<run>
|
|
353
|
+
pf sprint story template [type]
|
|
354
|
+
</run>
|
|
355
|
+
|
|
356
|
+
<args>
|
|
357
|
+
| Arg | Required | Description |
|
|
358
|
+
|-----|----------|-------------|
|
|
359
|
+
| `type` | No | Template type: feature, bug, refactor, chore |
|
|
360
|
+
</args>
|
|
361
|
+
|
|
362
|
+
<output>
|
|
363
|
+
YAML template with acceptance criteria patterns.
|
|
364
|
+
</output>
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
### `/sprint story finish <story-id> [--dry-run]`
|
|
369
|
+
|
|
370
|
+
Complete a story: archive session, merge PR, transition Jira, update sprint YAML.
|
|
371
|
+
|
|
372
|
+
<critical>
|
|
373
|
+
Prerequisites before running:
|
|
374
|
+
- Session file exists at `.session/{story-id}-session.md`
|
|
375
|
+
- PR is approved and mergeable
|
|
376
|
+
- Reviewer has approved (phase: finish in session)
|
|
377
|
+
</critical>
|
|
378
|
+
|
|
379
|
+
<run>
|
|
380
|
+
pf sprint story finish <story-id> [--dry-run]
|
|
381
|
+
</run>
|
|
382
|
+
|
|
383
|
+
<args>
|
|
384
|
+
| Arg | Required | Description |
|
|
385
|
+
|-----|----------|-------------|
|
|
386
|
+
| `story-id` | Yes | Story ID (e.g., `MSSCI-12052`) |
|
|
387
|
+
| `--dry-run` | No | Show what would be done without executing |
|
|
388
|
+
</args>
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
### `/sprint story claim <story-id> [--claim|--unclaim]`
|
|
393
|
+
|
|
394
|
+
Claim or unclaim a story in Jira.
|
|
395
|
+
|
|
396
|
+
<run>
|
|
397
|
+
pf sprint story claim <story-id>
|
|
398
|
+
</run>
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
### `/sprint epic add <epic-id> <title> [options]`
|
|
403
|
+
|
|
404
|
+
Add a new epic to the current sprint.
|
|
405
|
+
|
|
406
|
+
<run>
|
|
407
|
+
pf sprint epic add <epic-id> <title> [options]
|
|
408
|
+
</run>
|
|
409
|
+
|
|
410
|
+
<args>
|
|
411
|
+
| Arg | Required | Description |
|
|
412
|
+
|-----|----------|-------------|
|
|
413
|
+
| `epic-id` | Yes | Epic ID (e.g., `epic-85`) |
|
|
414
|
+
| `title` | Yes | Epic title |
|
|
415
|
+
| `--priority` | No | Priority: P0, P1, P2, P3 (default: P1) |
|
|
416
|
+
| `--jira` | No | Jira epic key |
|
|
417
|
+
| `--description` | No | Epic description |
|
|
418
|
+
</args>
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
### `/sprint epic promote <epic-id>`
|
|
423
|
+
|
|
424
|
+
Move an epic from `future.yaml` to `current-sprint.yaml`.
|
|
425
|
+
|
|
426
|
+
<run>
|
|
427
|
+
pf sprint epic promote <epic-id>
|
|
428
|
+
</run>
|
|
429
|
+
|
|
430
|
+
<args>
|
|
431
|
+
| Arg | Required | Description |
|
|
432
|
+
|-----|----------|-------------|
|
|
433
|
+
| `epic-id` | Yes | Local epic ID (e.g., `epic-41`) |
|
|
434
|
+
</args>
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
### `/sprint epic archive [epic-id] [--dry-run] [--jira]`
|
|
439
|
+
|
|
440
|
+
Archive completed epics.
|
|
441
|
+
|
|
442
|
+
<run>
|
|
443
|
+
pf sprint epic archive [epic-id] [--dry-run] [--jira]
|
|
444
|
+
</run>
|
|
445
|
+
|
|
446
|
+
---
|
|
447
|
+
|
|
448
|
+
### `/sprint epic import <file> [initiative] [--marker] [--dry-run]`
|
|
449
|
+
|
|
450
|
+
Import BMAD epics-and-stories output to future.yaml.
|
|
451
|
+
|
|
452
|
+
<run>
|
|
453
|
+
pf sprint epic import <file> [initiative] [--marker TAG] [--dry-run]
|
|
454
|
+
</run>
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
### `/sprint epic show <epic-id> [--json]`
|
|
459
|
+
|
|
460
|
+
Show details for a specific epic. Searches both current sprint and future initiative shards.
|
|
461
|
+
|
|
462
|
+
<run>
|
|
463
|
+
pf sprint epic show <epic-id> [--json]
|
|
464
|
+
</run>
|
|
465
|
+
|
|
466
|
+
<args>
|
|
467
|
+
| Arg | Required | Description |
|
|
468
|
+
|-----|----------|-------------|
|
|
469
|
+
| `epic-id` | Yes | Epic ID (e.g., `epic-42` or `MSSCI-14298`) |
|
|
470
|
+
| `--json` | No | Output as JSON |
|
|
471
|
+
</args>
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
### `/sprint epic cancel <epic-id> [--jira] [--dry-run]`
|
|
476
|
+
|
|
477
|
+
Cancel an epic and all its stories. Searches both current sprint and future initiative shards.
|
|
478
|
+
|
|
479
|
+
<run>
|
|
480
|
+
pf sprint epic cancel <epic-id> [--jira] [--dry-run]
|
|
481
|
+
</run>
|
|
482
|
+
|
|
483
|
+
<args>
|
|
484
|
+
| Arg | Required | Description |
|
|
485
|
+
|-----|----------|-------------|
|
|
486
|
+
| `epic-id` | Yes | Epic ID (e.g., `epic-42` or `MSSCI-14298`) |
|
|
487
|
+
| `--jira` | No | Also cancel the epic in Jira |
|
|
488
|
+
| `--dry-run` | No | Show what would be done without making changes |
|
|
489
|
+
</args>
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
### `/sprint epic remove <epic-id> [--dry-run]`
|
|
494
|
+
|
|
495
|
+
Remove an epic from future.yaml.
|
|
496
|
+
|
|
497
|
+
<run>
|
|
498
|
+
pf sprint epic remove <epic-id> [--dry-run]
|
|
499
|
+
</run>
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
### `/sprint initiative show <name> [--json]`
|
|
504
|
+
|
|
505
|
+
Show details for a specific initiative including its epics and stories.
|
|
506
|
+
|
|
507
|
+
<run>
|
|
508
|
+
pf sprint initiative show <name> [--json]
|
|
509
|
+
</run>
|
|
510
|
+
|
|
511
|
+
<args>
|
|
512
|
+
| Arg | Required | Description |
|
|
513
|
+
|-----|----------|-------------|
|
|
514
|
+
| `name` | Yes | Initiative slug (e.g., `benchmark-reliability`, `technical-debt`) |
|
|
515
|
+
| `--json` | No | Output as JSON |
|
|
516
|
+
</args>
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
### `/sprint initiative cancel <name> [--jira] [--dry-run]`
|
|
521
|
+
|
|
522
|
+
Cancel an initiative and all its epics/stories.
|
|
523
|
+
|
|
524
|
+
<run>
|
|
525
|
+
pf sprint initiative cancel <name> [--jira] [--dry-run]
|
|
526
|
+
</run>
|
|
527
|
+
|
|
528
|
+
<args>
|
|
529
|
+
| Arg | Required | Description |
|
|
530
|
+
|-----|----------|-------------|
|
|
531
|
+
| `name` | Yes | Initiative slug (e.g., `benchmark-reliability`, `technical-debt`) |
|
|
532
|
+
| `--jira` | No | Also cancel epics in Jira |
|
|
533
|
+
| `--dry-run` | No | Show what would be done without making changes |
|
|
534
|
+
</args>
|
|
535
|
+
|
|
536
|
+
---
|
|
537
|
+
|
|
538
|
+
### `/sprint standalone ["title"] [points]`
|
|
539
|
+
|
|
540
|
+
Wrap current changes into a standalone Jira story, branch, PR, and merge.
|
|
541
|
+
|
|
542
|
+
This is an agent-executed workflow. Use `/standalone` to run it interactively.
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## Sizing Quick Reference
|
|
547
|
+
|
|
548
|
+
| Points | Scale | Complexity | Examples |
|
|
549
|
+
|--------|-------|------------|----------|
|
|
550
|
+
| 1-2 | Trivial | Single file, minimal testing | Config, typo, simple fix |
|
|
551
|
+
| 3 | Small | Few files, some testing | Validation, single component |
|
|
552
|
+
| 5 | Medium | Multiple files, comprehensive testing | New page, API endpoint |
|
|
553
|
+
| 8 | Large | Significant scope, extensive testing | Integration, major refactor |
|
|
554
|
+
| 13+ | **SPLIT** | Too complex for single story | Break into smaller stories |
|
|
555
|
+
|
|
556
|
+
## Acceptance Criteria Patterns
|
|
557
|
+
|
|
558
|
+
### Good AC (SMART)
|
|
559
|
+
|
|
560
|
+
<example>
|
|
561
|
+
- "Admin users can access /admin/settings without 403"
|
|
562
|
+
- "API returns 204 No Content on successful DELETE"
|
|
563
|
+
- "Tests cover admin, manager, analyst roles"
|
|
564
|
+
</example>
|
|
565
|
+
|
|
566
|
+
### Bad AC (Vague)
|
|
567
|
+
|
|
568
|
+
<critical>
|
|
569
|
+
Avoid these patterns:
|
|
570
|
+
- "Feature works correctly"
|
|
571
|
+
- "No bugs"
|
|
572
|
+
- "Good performance"
|
|
573
|
+
</critical>
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
|
|
274
577
|
## Read Operations
|
|
275
578
|
|
|
276
|
-
These
|
|
579
|
+
These commands read sprint YAML without modifying it. Use these instead of direct `yq` queries.
|
|
277
580
|
|
|
278
581
|
### Get Story Field
|
|
279
582
|
|
|
280
583
|
<run>
|
|
281
|
-
|
|
584
|
+
pf sprint story field <story-id> <field>
|
|
282
585
|
</run>
|
|
283
586
|
|
|
284
587
|
<args>
|
|
@@ -289,9 +592,9 @@ These scripts read sprint YAML without modifying it. Use these instead of direct
|
|
|
289
592
|
</args>
|
|
290
593
|
|
|
291
594
|
<example>
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
595
|
+
pf sprint story field 35-2 workflow # Returns: tdd
|
|
596
|
+
pf sprint story field 35-2 jira # Returns: MSSCI-12345
|
|
597
|
+
pf sprint story field 35-2 status # Returns: in_progress
|
|
295
598
|
</example>
|
|
296
599
|
|
|
297
600
|
<output>
|
|
@@ -303,7 +606,7 @@ Field value or "null" if not found. Common fields: `workflow`, `status`, `jira`,
|
|
|
303
606
|
### Get Epic Field
|
|
304
607
|
|
|
305
608
|
<run>
|
|
306
|
-
|
|
609
|
+
pf sprint epic field <epic-id> <field>
|
|
307
610
|
</run>
|
|
308
611
|
|
|
309
612
|
<args>
|
|
@@ -314,8 +617,8 @@ Field value or "null" if not found. Common fields: `workflow`, `status`, `jira`,
|
|
|
314
617
|
</args>
|
|
315
618
|
|
|
316
619
|
<example>
|
|
317
|
-
|
|
318
|
-
|
|
620
|
+
pf sprint epic field epic-35 jira # Returns: MSSCI-11234
|
|
621
|
+
pf sprint epic field 35 title # Returns: Epic title
|
|
319
622
|
</example>
|
|
320
623
|
|
|
321
624
|
<output>
|
|
@@ -354,7 +657,7 @@ d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$
|
|
|
354
657
|
### Story Setup Steps
|
|
355
658
|
|
|
356
659
|
<output>
|
|
357
|
-
1. **Check story** via `check
|
|
660
|
+
1. **Check story** via `pf sprint check` (if ID provided)
|
|
358
661
|
2. **Write context** to `.session/context-story-{id}.md`
|
|
359
662
|
3. **Setup story** via `sm-setup` subagent (claims Jira, creates branch)
|
|
360
663
|
4. **Handoff** to next agent based on workflow:
|
|
@@ -426,9 +729,7 @@ The `in_sprint` field tracks Jira sprint membership:
|
|
|
426
729
|
|
|
427
730
|
## Dependencies
|
|
428
731
|
|
|
429
|
-
|
|
430
|
-
brew install yq
|
|
431
|
-
</run>
|
|
732
|
+
All sprint commands use the `pf` Python CLI. No external dependencies like `yq` are required.
|
|
432
733
|
|
|
433
734
|
<when>
|
|
434
735
|
For Jira integration, see `/jira` skill prerequisites.
|
|
@@ -436,23 +737,41 @@ For Jira integration, see `/jira` skill prerequisites.
|
|
|
436
737
|
|
|
437
738
|
## Quick Reference
|
|
438
739
|
|
|
439
|
-
| Command |
|
|
440
|
-
|
|
441
|
-
| `/sprint` | `sprint
|
|
442
|
-
| `/sprint status` | `sprint
|
|
443
|
-
| `/sprint status todo` | `sprint
|
|
444
|
-
| `/sprint status in-progress` | `sprint
|
|
445
|
-
| `/sprint status done` | `sprint
|
|
446
|
-
| `/sprint backlog` | `
|
|
740
|
+
| Command | CLI |
|
|
741
|
+
|---------|-----|
|
|
742
|
+
| `/sprint` | `pf sprint status` |
|
|
743
|
+
| `/sprint status` | `pf sprint status` |
|
|
744
|
+
| `/sprint status todo` | `pf sprint status todo` |
|
|
745
|
+
| `/sprint status in-progress` | `pf sprint status in-progress` |
|
|
746
|
+
| `/sprint status done` | `pf sprint status done` |
|
|
747
|
+
| `/sprint backlog` | `pf sprint backlog` |
|
|
447
748
|
| `/sprint work` | Interactive story selection → SM flow |
|
|
448
|
-
| `/sprint work MSSCI-XXX` | `check-
|
|
449
|
-
| `/sprint work EPIC-ID` | `check-
|
|
450
|
-
| `/sprint work next` | `check
|
|
451
|
-
| `/sprint archive MSSCI-XXX` | `archive
|
|
452
|
-
| `/sprint new 2605 277 ...` | `
|
|
453
|
-
| `/sprint future` | `
|
|
454
|
-
| `/sprint future
|
|
455
|
-
| `/sprint
|
|
749
|
+
| `/sprint work MSSCI-XXX` | `pf sprint check MSSCI-XXX` → direct start |
|
|
750
|
+
| `/sprint work EPIC-ID` | `pf sprint check EPIC-ID` → start first story |
|
|
751
|
+
| `/sprint work next` | `pf sprint check next` → start highest priority |
|
|
752
|
+
| `/sprint archive MSSCI-XXX` | `pf sprint archive MSSCI-XXX` |
|
|
753
|
+
| `/sprint new 2605 277 ...` | `pf sprint new 2605 277 ...` |
|
|
754
|
+
| `/sprint future` | `pf sprint future` |
|
|
755
|
+
| `/sprint future epic-55` | `pf sprint future epic-55` |
|
|
756
|
+
| `/sprint story show ID` | `pf sprint story show ID` |
|
|
757
|
+
| `/sprint story add ...` | `pf sprint story add ...` |
|
|
758
|
+
| `/sprint story update ID` | `pf sprint story update ID` |
|
|
759
|
+
| `/sprint story field ID FIELD` | `pf sprint story field ID FIELD` |
|
|
760
|
+
| `/sprint story size` | `pf sprint story size` |
|
|
761
|
+
| `/sprint story template` | `pf sprint story template` |
|
|
762
|
+
| `/sprint story finish ID` | `pf sprint story finish ID` |
|
|
763
|
+
| `/sprint story claim ID` | `pf sprint story claim ID` |
|
|
764
|
+
| `/sprint epic show ID` | `pf sprint epic show ID` |
|
|
765
|
+
| `/sprint epic field ID FIELD` | `pf sprint epic field ID FIELD` |
|
|
766
|
+
| `/sprint epic add ...` | `pf sprint epic add ...` |
|
|
767
|
+
| `/sprint epic promote ID` | `pf sprint epic promote ID` |
|
|
768
|
+
| `/sprint epic archive` | `pf sprint epic archive` |
|
|
769
|
+
| `/sprint epic cancel ID` | `pf sprint epic cancel ID` |
|
|
770
|
+
| `/sprint epic import FILE` | `pf sprint epic import FILE` |
|
|
771
|
+
| `/sprint epic remove ID` | `pf sprint epic remove ID` |
|
|
772
|
+
| `/sprint initiative show NAME` | `pf sprint initiative show NAME` |
|
|
773
|
+
| `/sprint initiative cancel NAME` | `pf sprint initiative cancel NAME` |
|
|
774
|
+
| `/sprint standalone` | Standalone story workflow |
|
|
456
775
|
| `/new-work` | Alias for `/sprint work` |
|
|
457
776
|
| `/new-work MSSCI-XXX` | Alias for `/sprint work MSSCI-XXX` |
|
|
458
777
|
| `/new-work next` | Alias for `/sprint work next` |
|
|
@@ -462,4 +781,3 @@ For Jira integration, see `/jira` skill prerequisites.
|
|
|
462
781
|
| Skill | Purpose |
|
|
463
782
|
|-------|---------|
|
|
464
783
|
| `/jira` | Jira operations (create, sync, reconcile, claim) |
|
|
465
|
-
| `/story` | Story creation, sizing, finish workflow |
|