@pennyfarthing/core 10.0.3 → 10.0.5
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 +1 -1
- package/package.json +13 -11
- 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/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +3 -0
- package/packages/core/dist/cli/commands/init.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/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/pm.md +1 -1
- 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 -5
- package/pennyfarthing-dist/agents/workflow-status-check.md +1 -1
- package/pennyfarthing-dist/commands/repo-status.md +2 -2
- package/pennyfarthing-dist/commands/sprint.md +8 -8
- 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 +0 -0
- package/pennyfarthing-dist/scripts/core/check-context.sh +0 -0
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -0
- package/pennyfarthing-dist/scripts/core/prime.sh +0 -0
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -0
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -0
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +1 -1
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -0
- package/pennyfarthing-dist/scripts/git/release.sh +0 -0
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +3 -3
- package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +2 -7
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -0
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +1 -1
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/common.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/logging.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/retry.sh +0 -0
- package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -0
- package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -0
- package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -0
- package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +3 -3
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -0
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +0 -0
- package/pennyfarthing-dist/scripts/sprint/README.md +32 -17
- package/pennyfarthing-dist/scripts/story/README.md +1 -1
- package/pennyfarthing-dist/scripts/story/create-story.sh +0 -0
- package/pennyfarthing-dist/scripts/story/size-story.sh +0 -0
- package/pennyfarthing-dist/scripts/story/story-template.sh +0 -0
- package/pennyfarthing-dist/scripts/test/ensure-swebench-data.sh +0 -0
- package/pennyfarthing-dist/scripts/test/swebench-judge.py +0 -0
- package/pennyfarthing-dist/scripts/test/test-cache.sh +0 -0
- package/pennyfarthing-dist/scripts/test/test-setup.sh +1 -1
- package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/theme/compute-theme-tiers.sh +0 -0
- package/pennyfarthing-dist/scripts/theme/compute_theme_tiers.py +0 -0
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -0
- package/pennyfarthing-dist/scripts/theme/update-theme-tiers.sh +0 -0
- package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/check.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/check.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/complete-step.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +21 -12
- package/pennyfarthing-dist/skills/sprint/skill.md +386 -68
- package/pennyfarthing-dist/skills/story/scripts/create-story.sh +0 -0
- package/pennyfarthing-dist/skills/story/scripts/size-story.sh +0 -0
- package/pennyfarthing-dist/skills/story/scripts/story-template.sh +0 -0
- package/pennyfarthing-dist/skills/story/skill.md +14 -206
- package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +0 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +1 -1
- 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/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/config.py +2 -1
- package/pennyfarthing_scripts/hooks/cyclist-pretooluse-hook.sh +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/analyze.py +1 -1
- package/pennyfarthing_scripts/hotspots/cli.py +1 -1
- package/pennyfarthing_scripts/jira/__pycache__/__init__.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/cli.py +74 -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__/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 +14 -5
- package/pennyfarthing_scripts/sprint/cli.py +1555 -65
- package/pennyfarthing_scripts/sprint/epic_add.py +173 -0
- package/pennyfarthing_scripts/sprint/loader.py +46 -2
- package/pennyfarthing_scripts/sprint/validate_cmd.py +44 -5
- package/pennyfarthing_scripts/sprint/validator.py +13 -3
- package/pennyfarthing_scripts/sprint/work.py +17 -1
- package/pennyfarthing_scripts/sprint/yaml_io.py +124 -15
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.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_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_sprint_package.py +166 -0
- package/pennyfarthing_scripts/tests/test_yaml_io.py +117 -0
- package/scripts/postinstall.cjs +34 -0
- 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
|
@@ -447,7 +447,7 @@ Tags used in skill files (`skills/{name}/SKILL.md`) for command documentation.
|
|
|
447
447
|
|
|
448
448
|
```markdown
|
|
449
449
|
<run>
|
|
450
|
-
|
|
450
|
+
pf sprint status [filter]
|
|
451
451
|
</run>
|
|
452
452
|
```
|
|
453
453
|
|
|
@@ -473,7 +473,7 @@ Tags used in skill files (`skills/{name}/SKILL.md`) for command documentation.
|
|
|
473
473
|
|
|
474
474
|
```markdown
|
|
475
475
|
<example>
|
|
476
|
-
|
|
476
|
+
pf sprint check MSSCI-12038
|
|
477
477
|
# Returns: {"type": "story", "available": true}
|
|
478
478
|
</example>
|
|
479
479
|
```
|
|
@@ -8,7 +8,7 @@ Scripts are organized into categorical subdirectories. **Full paths are required
|
|
|
8
8
|
scripts/
|
|
9
9
|
├── core/ # Essential scripts (agent-session.sh)
|
|
10
10
|
├── workflow/ # Workflow mechanics (finish-story.sh, check.sh)
|
|
11
|
-
├── sprint/ # Sprint YAML operations (sprint
|
|
11
|
+
├── sprint/ # Sprint YAML operations (migrated to pf sprint CLI)
|
|
12
12
|
├── story/ # Story operations (create-story.sh)
|
|
13
13
|
├── jira/ # Jira integration (jira-claim-story.sh)
|
|
14
14
|
├── git/ # Git operations (release.sh, worktree-manager.sh)
|
|
@@ -27,7 +27,7 @@ Scripts are invoked directly with **full category paths**:
|
|
|
27
27
|
```bash
|
|
28
28
|
# From project root
|
|
29
29
|
.pennyfarthing/scripts/core/agent-session.sh start sm
|
|
30
|
-
|
|
30
|
+
pf sprint status
|
|
31
31
|
.pennyfarthing/scripts/jira/jira-claim-story.sh MSSCI-12345
|
|
32
32
|
.pennyfarthing/scripts/workflow/finish-story.sh MSSCI-12345
|
|
33
33
|
```
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Usage: worktree-manager.sh {create|remove|list|status|ports|cd} [args]
|
|
4
4
|
#
|
|
5
5
|
# Configuration (choose one):
|
|
6
|
-
# 1. repos.yaml: Define repos in .
|
|
6
|
+
# 1. repos.yaml: Define repos in .pennyfarthing/repos.yaml (recommended)
|
|
7
7
|
# 2. Legacy env vars: Set API_REPO and UI_REPO in .claude/project/hooks/setup-env.sh
|
|
8
8
|
|
|
9
9
|
set -e
|
|
@@ -109,7 +109,7 @@ load_repos_config
|
|
|
109
109
|
if [ "$(get_repo_count)" -eq 0 ]; then
|
|
110
110
|
echo "❌ Error: No repositories configured"
|
|
111
111
|
echo ""
|
|
112
|
-
echo "Option 1: Create .
|
|
112
|
+
echo "Option 1: Create .pennyfarthing/repos.yaml (recommended for multi-repo projects)"
|
|
113
113
|
echo "Option 2: Set API_REPO and UI_REPO in .claude/project/hooks/setup-env.sh"
|
|
114
114
|
exit 1
|
|
115
115
|
fi
|
|
@@ -161,7 +161,7 @@ Repos Filter (third argument):
|
|
|
161
161
|
repo1,repo2 - Comma-separated list of specific repo names
|
|
162
162
|
|
|
163
163
|
Configuration:
|
|
164
|
-
Option 1 (recommended): Create .
|
|
164
|
+
Option 1 (recommended): Create .pennyfarthing/repos.yaml
|
|
165
165
|
Option 2 (legacy): Set API_REPO and UI_REPO environment variables
|
|
166
166
|
|
|
167
167
|
Session Files:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#
|
|
11
11
|
# Dependencies:
|
|
12
12
|
# - yq (for YAML manipulation)
|
|
13
|
-
#
|
|
13
|
+
# (sprint-common.sh removed — all functions defined locally)
|
|
14
14
|
|
|
15
15
|
set -uo pipefail
|
|
16
16
|
|
|
@@ -22,12 +22,7 @@ source "$(dirname "$REAL_SCRIPT")/../lib/find-root.sh"
|
|
|
22
22
|
SESSION_DIR="$PROJECT_ROOT/.session"
|
|
23
23
|
SPRINT_FILE="$PROJECT_ROOT/sprint/current-sprint.yaml"
|
|
24
24
|
|
|
25
|
-
#
|
|
26
|
-
SPRINT_COMMON="$PROJECT_ROOT/.pennyfarthing/scripts/sprint/sprint-common.sh"
|
|
27
|
-
if [[ -f "$SPRINT_COMMON" ]]; then
|
|
28
|
-
# shellcheck source=/dev/null
|
|
29
|
-
source "$SPRINT_COMMON"
|
|
30
|
-
fi
|
|
25
|
+
# Note: sprint-common.sh removed — all needed functions are defined locally below
|
|
31
26
|
|
|
32
27
|
# extract_story_id BRANCH_NAME
|
|
33
28
|
# Extract story ID from branch name pattern feat/X-Y-*
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
# Usage: source scripts/repo-utils.sh
|
|
6
6
|
#
|
|
7
|
-
# If .
|
|
7
|
+
# If .pennyfarthing/repos.yaml exists, uses that configuration.
|
|
8
8
|
# Otherwise, falls back to legacy $API_REPO/$UI_REPO environment variables.
|
|
9
9
|
#
|
|
10
10
|
# Core Functions:
|
|
@@ -28,7 +28,7 @@ set -euo pipefail
|
|
|
28
28
|
|
|
29
29
|
# Determine PROJECT_ROOT if not set
|
|
30
30
|
PROJECT_ROOT="${PROJECT_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}"
|
|
31
|
-
REPOS_CONFIG="${PROJECT_ROOT}/.
|
|
31
|
+
REPOS_CONFIG="${PROJECT_ROOT}/.pennyfarthing/repos.yaml"
|
|
32
32
|
|
|
33
33
|
# Cache for parsed config (associative arrays)
|
|
34
34
|
declare -A _REPO_PATHS 2>/dev/null || true
|
|
@@ -136,7 +136,7 @@ import json
|
|
|
136
136
|
import sys
|
|
137
137
|
import os
|
|
138
138
|
|
|
139
|
-
config_path = os.environ.get('REPOS_CONFIG', '.
|
|
139
|
+
config_path = os.environ.get('REPOS_CONFIG', '.pennyfarthing/repos.yaml')
|
|
140
140
|
try:
|
|
141
141
|
with open(config_path) as f:
|
|
142
142
|
config = yaml.safe_load(f)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,29 +1,44 @@
|
|
|
1
1
|
# Sprint Scripts
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
|
8
|
-
|
|
9
|
-
| `sprint
|
|
10
|
-
| `sprint
|
|
11
|
-
| `
|
|
12
|
-
| `
|
|
13
|
-
| `check
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `sprint
|
|
17
|
-
| `sprint
|
|
3
|
+
Sprint management is handled by the Python CLI: `pf sprint [COMMAND]`.
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Purpose |
|
|
8
|
+
|---------|---------|
|
|
9
|
+
| `pf sprint status` | Show current sprint status and metrics |
|
|
10
|
+
| `pf sprint backlog` | List available stories grouped by epic |
|
|
11
|
+
| `pf sprint info` | Sprint info as JSON (for Cyclist sidebar) |
|
|
12
|
+
| `pf sprint metrics` | Sprint velocity and progress metrics |
|
|
13
|
+
| `pf sprint check <id>` | Check story/epic availability (JSON) |
|
|
14
|
+
| `pf sprint future` | Show future initiatives and epics |
|
|
15
|
+
| `pf sprint new` | Initialize a new sprint |
|
|
16
|
+
| `pf sprint validate <file>` | Validate sprint YAML structure |
|
|
17
|
+
| `pf sprint archive <id>` | Archive a completed story |
|
|
18
|
+
| `pf sprint work <id>` | Start work on a story |
|
|
19
|
+
| `pf sprint story field <id> <field>` | Get a story field value |
|
|
20
|
+
| `pf sprint epic field <id> <field>` | Get an epic field value |
|
|
21
|
+
| `pf sprint epic promote <id>` | Move epic from future to current sprint |
|
|
22
|
+
| `pf sprint epic show <id>` | Show epic details |
|
|
23
|
+
| `pf sprint epic cancel <id>` | Cancel an epic |
|
|
24
|
+
| `pf sprint epic archive` | Archive completed epics |
|
|
18
25
|
|
|
19
26
|
## Usage
|
|
20
27
|
|
|
21
28
|
```bash
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
pf sprint status
|
|
30
|
+
pf sprint backlog
|
|
31
|
+
pf sprint future epic-55
|
|
32
|
+
pf sprint epic promote epic-41
|
|
24
33
|
```
|
|
25
34
|
|
|
26
35
|
## Ownership
|
|
27
36
|
|
|
28
37
|
- **Primary users:** SM agent, `/sprint` skill
|
|
29
38
|
- **Maintained by:** Core Pennyfarthing team
|
|
39
|
+
|
|
40
|
+
## Migration Note
|
|
41
|
+
|
|
42
|
+
All bash scripts previously in this directory have been migrated to Python CLI
|
|
43
|
+
commands in `pennyfarthing_scripts/sprint/cli.py`. See PR #716 and the follow-up
|
|
44
|
+
deprecation commit for details.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -141,7 +141,7 @@ skills:
|
|
|
141
141
|
invocation: /jira assign ISSUE-123
|
|
142
142
|
anti_patterns:
|
|
143
143
|
- Don't bypass Jira for sprint tracking
|
|
144
|
-
related_skills: [sprint
|
|
144
|
+
related_skills: [sprint]
|
|
145
145
|
keywords: [atlassian, issues, tickets, backlog]
|
|
146
146
|
|
|
147
147
|
judge:
|
|
@@ -251,20 +251,26 @@ skills:
|
|
|
251
251
|
|
|
252
252
|
sprint:
|
|
253
253
|
name: sprint
|
|
254
|
-
description: Sprint status, backlog, and
|
|
254
|
+
description: Sprint status, backlog, story, and epic management for Pennyfarthing
|
|
255
255
|
category: project-management
|
|
256
|
-
tags: [sprint, status, backlog]
|
|
257
|
-
version: "
|
|
256
|
+
tags: [sprint, status, backlog, stories, epics]
|
|
257
|
+
version: "2.0.0"
|
|
258
258
|
prerequisites: []
|
|
259
259
|
examples:
|
|
260
260
|
- context: Checking sprint status
|
|
261
261
|
invocation: /sprint
|
|
262
262
|
- context: Finding available stories
|
|
263
263
|
invocation: /sprint backlog
|
|
264
|
+
- context: Adding a story
|
|
265
|
+
invocation: /sprint story add epic-76 "My story" 3
|
|
266
|
+
- context: Sizing guidelines
|
|
267
|
+
invocation: /sprint story size
|
|
268
|
+
- context: Adding an epic
|
|
269
|
+
invocation: /sprint epic add epic-85 "New epic"
|
|
264
270
|
anti_patterns:
|
|
265
271
|
- Don't manually edit sprint YAML - use scripts
|
|
266
|
-
related_skills: [
|
|
267
|
-
keywords: [sprint, backlog, velocity, kanban]
|
|
272
|
+
related_skills: [jira]
|
|
273
|
+
keywords: [sprint, backlog, velocity, kanban, stories, epics, sizing, templates]
|
|
268
274
|
allowed_tools: [Read, Glob, Grep, Bash, Task]
|
|
269
275
|
|
|
270
276
|
systematic-debugging:
|
|
@@ -287,18 +293,21 @@ skills:
|
|
|
287
293
|
|
|
288
294
|
story:
|
|
289
295
|
name: story
|
|
290
|
-
description:
|
|
296
|
+
description: "DEPRECATED: Use /sprint story instead. Story commands consolidated under /sprint."
|
|
291
297
|
category: project-management
|
|
292
|
-
tags: [stories, sizing, workflow]
|
|
293
|
-
version: "
|
|
298
|
+
tags: [stories, sizing, workflow, deprecated]
|
|
299
|
+
version: "2.0.0"
|
|
300
|
+
deprecated: true
|
|
301
|
+
redirect: sprint
|
|
294
302
|
prerequisites: []
|
|
295
303
|
examples:
|
|
296
304
|
- context: Creating new stories
|
|
297
|
-
invocation: /story
|
|
305
|
+
invocation: /sprint story add
|
|
298
306
|
- context: Sizing stories
|
|
299
|
-
invocation: /story size
|
|
307
|
+
invocation: /sprint story size
|
|
300
308
|
anti_patterns:
|
|
301
309
|
- Don't create stories without acceptance criteria
|
|
310
|
+
- Don't use /story directly - use /sprint story instead
|
|
302
311
|
related_skills: [sprint, jira]
|
|
303
312
|
keywords: [user-stories, estimation, points, acceptance-criteria]
|
|
304
313
|
|
|
@@ -372,7 +381,7 @@ skills:
|
|
|
372
381
|
invocation: /workflow start architecture
|
|
373
382
|
anti_patterns:
|
|
374
383
|
- Don't switch workflows mid-story unless requirements fundamentally changed
|
|
375
|
-
related_skills: [sprint
|
|
384
|
+
related_skills: [sprint]
|
|
376
385
|
keywords: [tdd, trivial, agent-docs, bdd, architecture, bikelane, stepped, phased]
|
|
377
386
|
|
|
378
387
|
yq:
|