@pennyfarthing/core 7.9.5 → 8.0.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/LICENSE +14 -0
- package/README.md +209 -0
- package/package.json +32 -37
- package/{dist → packages/core/dist}/cli/utils/files.d.ts +6 -2
- package/{dist → packages/core/dist}/cli/utils/files.d.ts.map +1 -1
- package/{dist → packages/core/dist}/cli/utils/files.js +12 -4
- package/{dist → packages/core/dist}/cli/utils/files.js.map +1 -1
- package/{dist → packages/core/dist}/cli/workspace.test.js +3 -1
- package/{dist → packages/core/dist}/cli/workspace.test.js.map +1 -1
- package/pennyfarthing-dist/agents/README.md +12 -12
- package/pennyfarthing-dist/agents/architect.md +1 -1
- package/pennyfarthing-dist/agents/dev.md +2 -2
- package/pennyfarthing-dist/agents/devops.md +1 -1
- package/pennyfarthing-dist/agents/handoff.md +2 -2
- package/pennyfarthing-dist/agents/pm.md +1 -1
- package/pennyfarthing-dist/agents/reviewer.md +2 -2
- package/pennyfarthing-dist/agents/sm-setup.md +5 -5
- package/pennyfarthing-dist/agents/sm.md +6 -6
- package/pennyfarthing-dist/agents/tea.md +2 -2
- package/pennyfarthing-dist/agents/tech-writer.md +1 -1
- package/pennyfarthing-dist/agents/testing-runner.md +4 -4
- package/pennyfarthing-dist/agents/ux-designer.md +1 -1
- package/pennyfarthing-dist/agents/workflow-status-check.md +2 -2
- package/pennyfarthing-dist/commands/architect.md +1 -1
- package/pennyfarthing-dist/commands/create-branches-from-story.md +5 -5
- package/pennyfarthing-dist/commands/dev.md +1 -1
- package/pennyfarthing-dist/commands/devops.md +1 -1
- package/pennyfarthing-dist/commands/health-check.md +3 -3
- package/pennyfarthing-dist/commands/orchestrator.md +1 -1
- package/pennyfarthing-dist/commands/parallel-work.md +4 -4
- package/pennyfarthing-dist/commands/pm.md +1 -1
- package/pennyfarthing-dist/commands/release.md +1 -1
- package/pennyfarthing-dist/commands/repo-status.md +2 -2
- package/pennyfarthing-dist/commands/retro.md +2 -2
- package/pennyfarthing-dist/commands/reviewer.md +1 -1
- package/pennyfarthing-dist/commands/set-theme.md +1 -1
- package/pennyfarthing-dist/commands/sm.md +1 -1
- package/pennyfarthing-dist/commands/sprint.md +7 -7
- package/pennyfarthing-dist/commands/start-epic.md +3 -3
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +4 -4
- package/pennyfarthing-dist/commands/tea.md +1 -1
- package/pennyfarthing-dist/commands/tech-writer.md +1 -1
- package/pennyfarthing-dist/commands/ux-designer.md +1 -1
- package/pennyfarthing-dist/commands/work.md +1 -1
- package/pennyfarthing-dist/guides/agent-behavior.md +11 -11
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +1 -1
- package/pennyfarthing-dist/guides/agent-template-strategic.md +1 -1
- package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -2
- package/pennyfarthing-dist/guides/worktree-mode.md +3 -3
- package/pennyfarthing-dist/guides/xml-tags.md +1 -1
- package/pennyfarthing-dist/personas/themes/mash.yaml +2 -2
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +1 -1
- package/pennyfarthing-dist/scripts/README.md +6 -6
- package/pennyfarthing-dist/scripts/core/README.md +3 -4
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +12 -17
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +1 -1
- package/pennyfarthing-dist/scripts/git/README.md +2 -2
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +3 -15
- package/pennyfarthing-dist/scripts/git/release.sh +1 -1
- package/pennyfarthing-dist/scripts/health/drift-detection.sh +1 -1
- package/pennyfarthing-dist/scripts/hooks/README.md +1 -1
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +3 -12
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +3 -15
- package/pennyfarthing-dist/scripts/jira/README.md +2 -2
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +1 -1
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +2 -2
- package/pennyfarthing-dist/scripts/lib/find-root.sh +45 -25
- package/pennyfarthing-dist/scripts/misc/README.md +2 -2
- package/pennyfarthing-dist/scripts/misc/backlog.sh +3 -17
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +4 -30
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +1 -1
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +3 -10
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +1 -1
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -1
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +19 -2
- package/pennyfarthing-dist/scripts/sprint/README.md +2 -2
- package/pennyfarthing-dist/scripts/sprint/archive-story.sh +5 -5
- package/pennyfarthing-dist/scripts/sprint/available-stories.sh +2 -2
- package/pennyfarthing-dist/scripts/sprint/check-story.sh +1 -1
- package/pennyfarthing-dist/scripts/sprint/get-epic-field.sh +5 -5
- package/pennyfarthing-dist/scripts/sprint/get-story-field.sh +5 -5
- package/pennyfarthing-dist/scripts/sprint/list-future.sh +2 -2
- package/pennyfarthing-dist/scripts/sprint/new-sprint.sh +3 -3
- package/pennyfarthing-dist/scripts/sprint/promote-epic.sh +4 -4
- package/pennyfarthing-dist/scripts/sprint/sprint-common.sh +11 -17
- package/pennyfarthing-dist/scripts/sprint/sprint-info.sh +2 -2
- package/pennyfarthing-dist/scripts/sprint/sprint-metrics.sh +3 -14
- package/pennyfarthing-dist/scripts/sprint/sprint-status.sh +4 -4
- package/pennyfarthing-dist/scripts/story/README.md +2 -2
- package/pennyfarthing-dist/scripts/test/README.md +1 -1
- package/pennyfarthing-dist/scripts/theme/README.md +1 -1
- package/pennyfarthing-dist/scripts/workflow/README.md +2 -2
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +1 -1
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +1 -1
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +1 -1
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +2 -2
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +2 -2
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +2 -2
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +2 -2
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +2 -2
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +2 -2
- package/pennyfarthing-dist/skills/jira/SKILL.md +15 -15
- package/pennyfarthing-dist/skills/judge/SKILL.md +1 -1
- package/pennyfarthing-dist/skills/sprint/scripts/archive-story.sh +3 -3
- package/pennyfarthing-dist/skills/sprint/scripts/available-stories.sh +2 -2
- package/pennyfarthing-dist/skills/sprint/scripts/check-story.sh +2 -2
- package/pennyfarthing-dist/skills/sprint/scripts/create-jira-epic.sh +1 -1
- package/pennyfarthing-dist/skills/sprint/scripts/new-sprint.sh +3 -3
- package/pennyfarthing-dist/skills/sprint/scripts/promote-epic.sh +4 -4
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-info.sh +2 -2
- package/pennyfarthing-dist/skills/sprint/scripts/sprint-status.sh +2 -2
- package/pennyfarthing-dist/skills/sprint/scripts/sync-epic-jira.sh +4 -4
- package/pennyfarthing-dist/skills/sprint/skill.md +30 -30
- package/pennyfarthing-dist/skills/story/skill.md +16 -16
- package/pennyfarthing-dist/skills/workflow/scripts/list-workflows.sh +2 -2
- package/pennyfarthing-dist/skills/workflow/scripts/resume-workflow.sh +2 -2
- package/pennyfarthing-dist/skills/workflow/scripts/show-workflow.sh +2 -2
- package/pennyfarthing-dist/skills/workflow/scripts/start-workflow.sh +2 -2
- package/pennyfarthing-dist/skills/workflow/scripts/workflow-status.sh +2 -2
- package/pennyfarthing-dist/skills/workflow/skill.md +14 -14
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +2 -2
- package/pennyfarthing-dist/workflows/git-cleanup/steps/step-01-analyze.md +2 -2
- 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_scripts/README.md +66 -0
- package/pennyfarthing_scripts/__init__.py +17 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.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__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bellmode_hook.py +154 -0
- package/pennyfarthing_scripts/brownfield/__init__.py +35 -0
- package/pennyfarthing_scripts/brownfield/__main__.py +7 -0
- 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/brownfield/cli.py +131 -0
- package/pennyfarthing_scripts/brownfield/discover.py +753 -0
- package/pennyfarthing_scripts/common/__init__.py +49 -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/config.py +91 -0
- package/pennyfarthing_scripts/common/output.py +180 -0
- package/pennyfarthing_scripts/config.py +21 -0
- package/pennyfarthing_scripts/git/__init__.py +29 -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__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/create_branches.py +439 -0
- package/pennyfarthing_scripts/git/status_all.py +310 -0
- package/pennyfarthing_scripts/hooks.py +455 -0
- package/pennyfarthing_scripts/jira/__init__.py +93 -0
- package/pennyfarthing_scripts/jira/__main__.py +10 -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__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.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/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/bidirectional.py +561 -0
- package/pennyfarthing_scripts/jira/claim.py +211 -0
- package/pennyfarthing_scripts/jira/cli.py +150 -0
- package/pennyfarthing_scripts/jira/client.py +613 -0
- package/pennyfarthing_scripts/jira/epic.py +176 -0
- package/pennyfarthing_scripts/jira/story.py +219 -0
- package/pennyfarthing_scripts/jira/sync.py +350 -0
- package/pennyfarthing_scripts/jira_bidirectional_sync.py +37 -0
- package/pennyfarthing_scripts/jira_epic_creation.py +30 -0
- package/pennyfarthing_scripts/jira_sync.py +36 -0
- package/pennyfarthing_scripts/jira_sync_story.py +30 -0
- package/pennyfarthing_scripts/output.py +37 -0
- package/pennyfarthing_scripts/preflight/__init__.py +17 -0
- package/pennyfarthing_scripts/preflight/__main__.py +10 -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/preflight/cli.py +141 -0
- package/pennyfarthing_scripts/preflight/finish.py +382 -0
- package/pennyfarthing_scripts/pretooluse_hook.py +142 -0
- package/pennyfarthing_scripts/prime/__init__.py +125 -0
- package/pennyfarthing_scripts/prime/__main__.py +8 -0
- package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.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__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/cli.py +375 -0
- package/pennyfarthing_scripts/prime/loader.py +239 -0
- package/pennyfarthing_scripts/prime/models.py +169 -0
- package/pennyfarthing_scripts/prime/persona.py +288 -0
- package/pennyfarthing_scripts/prime/session.py +183 -0
- package/pennyfarthing_scripts/prime/workflow.py +275 -0
- package/pennyfarthing_scripts/sprint/__init__.py +66 -0
- package/pennyfarthing_scripts/sprint/__main__.py +10 -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__/cli.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__/validator.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/archive.py +108 -0
- package/pennyfarthing_scripts/sprint/cli.py +124 -0
- package/pennyfarthing_scripts/sprint/loader.py +193 -0
- package/pennyfarthing_scripts/sprint/status.py +122 -0
- package/pennyfarthing_scripts/sprint/validator.py +405 -0
- package/pennyfarthing_scripts/sprint/work.py +192 -0
- package/pennyfarthing_scripts/story/__init__.py +67 -0
- package/pennyfarthing_scripts/story/__main__.py +10 -0
- package/pennyfarthing_scripts/story/cli.py +105 -0
- package/pennyfarthing_scripts/story/create.py +167 -0
- package/pennyfarthing_scripts/story/size.py +113 -0
- package/pennyfarthing_scripts/story/template.py +151 -0
- package/pennyfarthing_scripts/swebench.py +216 -0
- package/pennyfarthing_scripts/tests/__init__.py +1 -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_brownfield.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_prime.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/conftest.py +106 -0
- package/pennyfarthing_scripts/tests/test_brownfield.py +842 -0
- package/pennyfarthing_scripts/tests/test_cli_modules.py +245 -0
- package/pennyfarthing_scripts/tests/test_common.py +180 -0
- package/pennyfarthing_scripts/tests/test_git_utils.py +866 -0
- package/pennyfarthing_scripts/tests/test_jira_package.py +334 -0
- package/pennyfarthing_scripts/tests/test_package_structure.py +372 -0
- package/pennyfarthing_scripts/tests/test_prime.py +1050 -0
- package/pennyfarthing_scripts/tests/test_sprint_package.py +236 -0
- package/pennyfarthing_scripts/tests/test_sprint_validator.py +675 -0
- package/pennyfarthing_scripts/tests/test_story_package.py +156 -0
- package/pennyfarthing_scripts/welcome_hook.py +157 -0
- package/pennyfarthing_scripts/workflow.py +183 -0
- package/pennyfarthing-dist/personas/BENCHMARK-METHODOLOGY.md +0 -105
- package/pennyfarthing-dist/personas/OCEAN-BENCHMARKING.md +0 -210
- package/pennyfarthing-dist/personas/TRAIL-OCEAN-MAPPING.md +0 -168
- package/pennyfarthing-dist/personas/ZEITGEIST-ANALYSIS.md +0 -171
- package/pennyfarthing-dist/personas/attributes.yaml +0 -69
- package/pennyfarthing-dist/personas/scripts/add-zeitgeist-calibrated.py +0 -81
- package/pennyfarthing-dist/personas/scripts/add-zeitgeist-scores.sh +0 -56
- package/pennyfarthing-dist/personas/zeitgeist-scores.yaml +0 -1172
- package/pennyfarthing-dist/scripts/core/run.sh +0 -92
- /package/{bin → packages/core/bin}/pennyfarthing.js +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.js +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.test.js +0 -0
- /package/{dist → packages/core/dist}/bmad/context-reader.test.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.js +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.test.js +0 -0
- /package/{dist → packages/core/dist}/bmad/epics-parser.test.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/index.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/index.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/index.js +0 -0
- /package/{dist → packages/core/dist}/bmad/index.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.js +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.test.js +0 -0
- /package/{dist → packages/core/dist}/bmad/status-sync.test.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.js +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.test.js +0 -0
- /package/{dist → packages/core/dist}/bmad/story-exporter.test.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.js +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.js.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.test.js +0 -0
- /package/{dist → packages/core/dist}/bmad/story-parser.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/command.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/command.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/command.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/command.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/cyclist.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor-legacy.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/doctor.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/init.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/init.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/init.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/init.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/skill.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/skill.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/skill.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/skill.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/theme.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/theme.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/theme.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/theme.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/uninstall.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/uninstall.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/uninstall.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/uninstall.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/update.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/update.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/update.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/update.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/version.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/commands/version.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/commands/version.js +0 -0
- /package/{dist → packages/core/dist}/cli/commands/version.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/customization.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/customization.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/customization.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/customization.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/cyclist-migration.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/cyclist-migration.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/cyclist-migration.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/cyclist-migration.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/index.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/index.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/index.js +0 -0
- /package/{dist → packages/core/dist}/cli/index.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/ocean-profiles.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/ocean-profiles.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/ocean-profiles.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/ocean-profiles.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/theme-maker.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/theme-maker.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/theme-maker.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/theme-maker.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/constants.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/constants.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/constants.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/constants.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/logger.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/logger.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/logger.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/logger.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/manifest.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/manifest.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/manifest.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/manifest.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/node-modules.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/node-modules.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/node-modules.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/node-modules.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/prompts.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/prompts.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/prompts.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/prompts.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/symlinks.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/symlinks.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/symlinks.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/symlinks.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.test.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/themes.test.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/version.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/utils/version.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/cli/utils/version.js +0 -0
- /package/{dist → packages/core/dist}/cli/utils/version.js.map +0 -0
- /package/{dist → packages/core/dist}/cli/workspace.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/cli/workspace.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/index.d.ts +0 -0
- /package/{dist → packages/core/dist}/index.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/index.js +0 -0
- /package/{dist → packages/core/dist}/index.js.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.d.ts +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.js +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.js.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.js +0 -0
- /package/{dist → packages/core/dist}/jira/jira-epic-creation.test.js.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.d.ts +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.js +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.js.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.js +0 -0
- /package/{dist → packages/core/dist}/jira/jira-sprint-sync.test.js.map +0 -0
- /package/{dist → packages/core/dist}/permissions/index.d.ts +0 -0
- /package/{dist → packages/core/dist}/permissions/index.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/permissions/index.js +0 -0
- /package/{dist → packages/core/dist}/permissions/index.js.map +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.d.ts +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.js +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.js.map +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.test.js +0 -0
- /package/{dist → packages/core/dist}/permissions/permission-schema.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.js +0 -0
- /package/{dist → packages/core/dist}/scripts/add-ocean-profiles.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.js +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/benchmark-integration.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/debugging-scenarios.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-all-spiders.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-all-spiders.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-all-spiders.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-all-spiders.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-report.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider-report.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/generate-spider.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.js +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/job-fair-aggregator.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/run-ci.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/run-ci.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/run-ci.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/run-ci.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/theme-detail.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/theme-detail.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/theme-detail.test.js +0 -0
- /package/{dist → packages/core/dist}/scripts/theme-detail.test.js.map +0 -0
- /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.d.ts +0 -0
- /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.js +0 -0
- /package/{dist → packages/core/dist}/scripts/validate-ocean-profiles.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.js +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/gate-handler.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-finish.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-finish.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-finish.js +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-finish.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-setup.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-setup.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-setup.js +0 -0
- /package/{dist → packages/core/dist}/workflow/generic-sm-setup.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.js +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/handoff.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/index.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/index.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/index.js +0 -0
- /package/{dist → packages/core/dist}/workflow/index.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.js +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/session-state.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/sm-subagents.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/sm-subagents.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/sm-subagents.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/sm-subagents.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.js +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/step-parser.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/story-workflow-routing.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.js +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/test-cache.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.js +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/trimodal.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.js +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/variable-resolver.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-executor.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-loader.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-migration.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-migration.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-migration.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-migration.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-permissions.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-router.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-schema.test.js.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.d.ts +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.d.ts.map +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.js +0 -0
- /package/{dist → packages/core/dist}/workflow/workflow-stepped-schema.test.js.map +0 -0
|
@@ -6,7 +6,7 @@ Scripts are organized into categorical subdirectories. **Full paths are required
|
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
scripts/
|
|
9
|
-
├── core/ # Essential scripts (
|
|
9
|
+
├── core/ # Essential scripts (agent-session.sh)
|
|
10
10
|
├── workflow/ # Workflow mechanics (finish-story.sh, check.sh)
|
|
11
11
|
├── sprint/ # Sprint YAML operations (sprint-status.sh)
|
|
12
12
|
├── story/ # Story operations (create-story.sh)
|
|
@@ -22,14 +22,14 @@ scripts/
|
|
|
22
22
|
|
|
23
23
|
## Usage
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
Scripts are invoked directly with **full category paths**:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
28
|
# From project root
|
|
29
|
-
.pennyfarthing/scripts/core/
|
|
30
|
-
.pennyfarthing/scripts/
|
|
31
|
-
.pennyfarthing/scripts/
|
|
32
|
-
.pennyfarthing/scripts/
|
|
29
|
+
.pennyfarthing/scripts/core/agent-session.sh start sm
|
|
30
|
+
.pennyfarthing/scripts/sprint/sprint-status.sh
|
|
31
|
+
.pennyfarthing/scripts/jira/jira-claim-story.sh MSSCI-12345
|
|
32
|
+
.pennyfarthing/scripts/workflow/finish-story.sh MSSCI-12345
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
## Distributed Scripts
|
|
@@ -6,18 +6,17 @@ Essential scripts required for all Pennyfarthing operations.
|
|
|
6
6
|
|
|
7
7
|
| Script | Purpose |
|
|
8
8
|
|--------|---------|
|
|
9
|
-
| `run.sh` | Bootstrap script - finds PROJECT_ROOT and dispatches to other scripts |
|
|
10
9
|
| `agent-session.sh` | Agent persona loading and session management |
|
|
11
10
|
| `check-context.sh` | Context usage checker for monitoring token limits |
|
|
12
11
|
| `prime.sh` | Context loading for agent activation |
|
|
13
12
|
|
|
14
13
|
## Usage
|
|
15
14
|
|
|
16
|
-
These scripts are invoked
|
|
15
|
+
These scripts are invoked directly:
|
|
17
16
|
|
|
18
17
|
```bash
|
|
19
|
-
.pennyfarthing/scripts/core/
|
|
20
|
-
.pennyfarthing/scripts/core/
|
|
18
|
+
.pennyfarthing/scripts/core/agent-session.sh start sm
|
|
19
|
+
.pennyfarthing/scripts/core/check-context.sh --human
|
|
21
20
|
```
|
|
22
21
|
|
|
23
22
|
## Ownership
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# Start an agent with phase check
|
|
3
3
|
# If the current story's phase belongs to a different agent, emit handoff marker instead
|
|
4
4
|
#
|
|
5
|
-
# Usage: phase-check-start.sh <agent>
|
|
5
|
+
# Usage: .pennyfarthing/scripts/core/phase-check-start.sh <agent>
|
|
6
6
|
# Example: phase-check-start.sh dev
|
|
7
7
|
|
|
8
8
|
set -euo pipefail
|
|
@@ -14,16 +14,11 @@ if [[ -z "$AGENT" ]]; then
|
|
|
14
14
|
exit 1
|
|
15
15
|
fi
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do
|
|
21
|
-
d="$(dirname "$d")"
|
|
22
|
-
done
|
|
23
|
-
PROJECT_ROOT="$d"
|
|
24
|
-
fi
|
|
17
|
+
# Self-locate and set up PROJECT_ROOT
|
|
18
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
19
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
SCRIPTS_DIR="$SCRIPT_DIR/.."
|
|
27
22
|
SESSION_DIR="$PROJECT_ROOT/.session"
|
|
28
23
|
|
|
29
24
|
# Find active session file
|
|
@@ -31,7 +26,7 @@ SESSION_FILE=$(find "$SESSION_DIR" -maxdepth 1 -name "*-session.md" 2>/dev/null
|
|
|
31
26
|
|
|
32
27
|
if [[ -z "$SESSION_FILE" || ! -f "$SESSION_FILE" ]]; then
|
|
33
28
|
# No session - just start the agent normally
|
|
34
|
-
exec "$
|
|
29
|
+
exec "$SCRIPTS_DIR/core/agent-session.sh" start "$AGENT"
|
|
35
30
|
fi
|
|
36
31
|
|
|
37
32
|
# Extract workflow and phase from session (handles multiple formats)
|
|
@@ -42,7 +37,7 @@ PHASE=$(grep -E "\*\*Phase\*?\*?:" "$SESSION_FILE" 2>/dev/null | head -1 | sed '
|
|
|
42
37
|
|
|
43
38
|
if [[ -z "$WORKFLOW" ]]; then
|
|
44
39
|
# Can't determine workflow - start normally
|
|
45
|
-
exec "$
|
|
40
|
+
exec "$SCRIPTS_DIR/core/agent-session.sh" start "$AGENT"
|
|
46
41
|
fi
|
|
47
42
|
|
|
48
43
|
# If no Phase field, try to infer from status patterns
|
|
@@ -66,22 +61,22 @@ if [[ -z "$PHASE" ]]; then
|
|
|
66
61
|
PHASE="green" # TEA done, Dev's turn
|
|
67
62
|
else
|
|
68
63
|
# Can't determine phase - start normally
|
|
69
|
-
exec "$
|
|
64
|
+
exec "$SCRIPTS_DIR/core/agent-session.sh" start "$AGENT"
|
|
70
65
|
fi
|
|
71
66
|
fi
|
|
72
67
|
|
|
73
68
|
# Get the owner of this phase
|
|
74
|
-
OWNER=$("$
|
|
69
|
+
OWNER=$("$SCRIPTS_DIR/workflow/phase-owner.sh" "$WORKFLOW" "$PHASE" 2>/dev/null || echo "")
|
|
75
70
|
|
|
76
71
|
if [[ -z "$OWNER" ]]; then
|
|
77
72
|
# Phase owner lookup failed - start normally
|
|
78
|
-
exec "$
|
|
73
|
+
exec "$SCRIPTS_DIR/core/agent-session.sh" start "$AGENT"
|
|
79
74
|
fi
|
|
80
75
|
|
|
81
76
|
# Check if this agent owns the phase
|
|
82
77
|
if [[ "$OWNER" == "$AGENT" ]]; then
|
|
83
78
|
# Correct agent - start normally
|
|
84
|
-
exec "$
|
|
79
|
+
exec "$SCRIPTS_DIR/core/agent-session.sh" start "$AGENT"
|
|
85
80
|
fi
|
|
86
81
|
|
|
87
82
|
# Wrong agent! Output the handoff marker and info
|
|
@@ -92,4 +87,4 @@ echo "Phase owner: $OWNER (you requested: $AGENT)"
|
|
|
92
87
|
echo ""
|
|
93
88
|
|
|
94
89
|
# Generate and output the handoff marker
|
|
95
|
-
"$
|
|
90
|
+
"$SCRIPTS_DIR/core/handoff-marker.sh" "$OWNER"
|
|
@@ -15,8 +15,8 @@ Scripts for Git operations, branching, and release management.
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
.pennyfarthing/scripts/
|
|
19
|
-
.pennyfarthing/scripts/
|
|
18
|
+
.pennyfarthing/scripts/git/create-feature-branches.sh feat/my-feature
|
|
19
|
+
.pennyfarthing/scripts/git/release.sh
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## Ownership
|
|
@@ -8,21 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
set -euo pipefail
|
|
10
10
|
|
|
11
|
-
#
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
while [[ ! -d "$dir/.pennyfarthing" ]] && [[ "$dir" != "/" ]]; do
|
|
15
|
-
dir="$(dirname "$dir")"
|
|
16
|
-
done
|
|
17
|
-
if [[ -d "$dir/.pennyfarthing" ]]; then
|
|
18
|
-
echo "$dir"
|
|
19
|
-
else
|
|
20
|
-
echo "Error: Not in a Pennyfarthing project" >&2
|
|
21
|
-
exit 1
|
|
22
|
-
fi
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
PROJECT_ROOT="$(find_project_root)"
|
|
11
|
+
# Self-locate and set up PROJECT_ROOT
|
|
12
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
13
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
26
14
|
HOOKS_SOURCE="$PROJECT_ROOT/pennyfarthing-dist/scripts/hooks"
|
|
27
15
|
HOOKS_DEST="$PROJECT_ROOT/.git/hooks"
|
|
28
16
|
|
|
@@ -19,7 +19,7 @@ set -e
|
|
|
19
19
|
|
|
20
20
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
21
21
|
|
|
22
|
-
# Use exported PROJECT_ROOT from
|
|
22
|
+
# Use exported PROJECT_ROOT from find-root.sh, or detect it
|
|
23
23
|
if [[ -z "${PROJECT_ROOT:-}" ]]; then
|
|
24
24
|
_dir="$PWD"
|
|
25
25
|
while [[ ! -d "$_dir/.pennyfarthing" ]] && [[ "$_dir" != "/" ]]; do
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Drift Detection - Analyze archived sessions for agent behavior drift
|
|
3
|
-
# Usage: .pennyfarthing/scripts/
|
|
3
|
+
# Usage: .pennyfarthing/scripts/health/drift-detection.sh [--verbose] [--path /additional/path]
|
|
4
4
|
#
|
|
5
5
|
# Checks:
|
|
6
6
|
# 1. Reviewer: Substantive comments present (not just "LGTM")
|
|
@@ -21,7 +21,7 @@ Git hooks and Claude Code hooks.
|
|
|
21
21
|
Git hooks are installed via:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
.pennyfarthing/scripts/
|
|
24
|
+
.pennyfarthing/scripts/git/install-git-hooks.sh
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
Claude hooks are configured in `.claude/settings.json`.
|
|
Binary file
|
|
@@ -14,18 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
set -uo pipefail
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
while [[ ! -d "$dir/.pennyfarthing" ]] && [[ "$dir" != "/" ]]; do
|
|
21
|
-
dir="$(dirname "$dir")"
|
|
22
|
-
done
|
|
23
|
-
if [[ -d "$dir/.pennyfarthing" ]]; then
|
|
24
|
-
echo "$dir"
|
|
25
|
-
else
|
|
26
|
-
return 1
|
|
27
|
-
fi
|
|
28
|
-
}
|
|
17
|
+
# Self-locate and set up PROJECT_ROOT
|
|
18
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd -P)"
|
|
19
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
29
20
|
|
|
30
21
|
# Initialize paths
|
|
31
22
|
PROJECT_ROOT="$(find_project_root 2>/dev/null || echo "")"
|
|
@@ -9,21 +9,9 @@
|
|
|
9
9
|
|
|
10
10
|
set -uo pipefail
|
|
11
11
|
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
while [[ ! -d "$dir/.pennyfarthing" ]] && [[ "$dir" != "/" ]]; do
|
|
16
|
-
dir="$(dirname "$dir")"
|
|
17
|
-
done
|
|
18
|
-
if [[ -d "$dir/.pennyfarthing" ]]; then
|
|
19
|
-
echo "$dir"
|
|
20
|
-
else
|
|
21
|
-
return 1
|
|
22
|
-
fi
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
PROJECT_ROOT="$(find_project_root 2>/dev/null || echo "")"
|
|
26
|
-
if [[ -z "$PROJECT_ROOT" ]]; then
|
|
12
|
+
# Self-locate and set up PROJECT_ROOT
|
|
13
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd -P)"
|
|
14
|
+
if ! source "$SCRIPT_DIR/../lib/find-root.sh" 2>/dev/null; then
|
|
27
15
|
exit 0
|
|
28
16
|
fi
|
|
29
17
|
|
|
@@ -26,8 +26,8 @@ Core logic lives in `pennyfarthing_scripts/jira/`:
|
|
|
26
26
|
## Usage
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
.pennyfarthing/scripts/
|
|
30
|
-
.pennyfarthing/scripts/
|
|
29
|
+
.pennyfarthing/scripts/jira/jira-claim-story.sh MSSCI-12345
|
|
30
|
+
.pennyfarthing/scripts/jira/jira-reconcile.sh
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
## Ownership
|
|
@@ -14,7 +14,7 @@ if [[ -z "$EPIC_JIRA_KEY" || -z "$STORY_ID" ]]; then
|
|
|
14
14
|
exit 1
|
|
15
15
|
fi
|
|
16
16
|
|
|
17
|
-
# PROJECT_ROOT should be set by
|
|
17
|
+
# PROJECT_ROOT should be set by find-root.sh, but find it if not
|
|
18
18
|
if [[ -z "${PROJECT_ROOT:-}" ]]; then
|
|
19
19
|
d="$PWD"
|
|
20
20
|
while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Jira vs YAML Reconciliation Report
|
|
3
|
-
# Usage: .pennyfarthing/scripts/
|
|
3
|
+
# Usage: .pennyfarthing/scripts/jira/jira-reconcile.sh [--fix]
|
|
4
4
|
#
|
|
5
5
|
# Compares sprint YAML against Jira to find:
|
|
6
6
|
# - Status mismatches
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
set -euo pipefail
|
|
15
15
|
|
|
16
|
-
# PROJECT_ROOT should be set by
|
|
16
|
+
# PROJECT_ROOT should be set by find-root.sh, but find it if not
|
|
17
17
|
if [[ -z "${PROJECT_ROOT:-}" ]]; then
|
|
18
18
|
d="$PWD"
|
|
19
19
|
while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do
|
|
@@ -1,35 +1,55 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
2
|
-
# Shared utility: Find project root
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Shared utility: Find project root via BASH_SOURCE self-location
|
|
3
3
|
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
4
|
+
# Core principle: Scripts derive paths from their own location, not from $PWD.
|
|
5
|
+
# A script in pennyfarthing-dist/scripts/<category>/ is always 3 levels below
|
|
6
|
+
# the package root. This works regardless of where the user invoked it from.
|
|
7
7
|
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
8
|
+
# Usage:
|
|
9
|
+
# SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
10
|
+
# source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
11
|
+
# # PROJECT_ROOT is now set
|
|
12
12
|
|
|
13
|
-
#
|
|
14
|
-
if [ -z "${
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
# Require SCRIPT_DIR to be set by caller
|
|
14
|
+
if [[ -z "${SCRIPT_DIR:-}" ]]; then
|
|
15
|
+
echo "Error: SCRIPT_DIR must be set before sourcing find-root.sh" >&2
|
|
16
|
+
echo "Add this before sourcing:" >&2
|
|
17
|
+
echo ' SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"' >&2
|
|
18
|
+
exit 1
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
# Allow explicit override via PENNYFARTHING_ROOT (avoids conflict with orchestrator's PROJECT_ROOT)
|
|
22
|
+
if [[ -n "${PENNYFARTHING_ROOT:-}" ]]; then
|
|
23
|
+
PROJECT_ROOT="$PENNYFARTHING_ROOT"
|
|
24
|
+
export PROJECT_ROOT
|
|
25
|
+
return 0 2>/dev/null || exit 0
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# Resolve SCRIPT_DIR (follow symlinks to real location)
|
|
29
|
+
_real_script_dir="$(cd "$SCRIPT_DIR" && pwd -P)"
|
|
21
30
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
# Derive package root from script location
|
|
32
|
+
# Scripts in pennyfarthing-dist/scripts/lib/ are 3 levels deep
|
|
33
|
+
# Scripts in pennyfarthing-dist/scripts/<category>/ are also 3 levels deep
|
|
34
|
+
if [[ "$_real_script_dir" == */pennyfarthing-dist/scripts/* ]]; then
|
|
35
|
+
# Extract everything before /pennyfarthing-dist/scripts/
|
|
36
|
+
_pkg_root="${_real_script_dir%/pennyfarthing-dist/scripts/*}"
|
|
25
37
|
|
|
26
|
-
|
|
27
|
-
|
|
38
|
+
# Determine context: framework dev or consumer?
|
|
39
|
+
if [[ -d "$_pkg_root/pennyfarthing-dist" && ! -L "$_pkg_root/pennyfarthing-dist" ]]; then
|
|
40
|
+
# Framework context: package root IS project root
|
|
41
|
+
PROJECT_ROOT="$_pkg_root"
|
|
42
|
+
elif [[ "$_pkg_root" == */node_modules/* ]]; then
|
|
43
|
+
# Consumer context: walk up from node_modules to project
|
|
44
|
+
PROJECT_ROOT="${_pkg_root%/node_modules/*}"
|
|
28
45
|
else
|
|
29
|
-
|
|
30
|
-
exit 1
|
|
46
|
+
PROJECT_ROOT="$_pkg_root"
|
|
31
47
|
fi
|
|
32
|
-
|
|
48
|
+
else
|
|
49
|
+
echo "Error: Script not in expected location (pennyfarthing-dist/scripts/...)" >&2
|
|
50
|
+
echo "SCRIPT_DIR=$_real_script_dir" >&2
|
|
51
|
+
exit 1
|
|
33
52
|
fi
|
|
34
53
|
|
|
54
|
+
unset _real_script_dir _pkg_root
|
|
35
55
|
export PROJECT_ROOT
|
|
@@ -29,8 +29,8 @@ Uncategorized utilities and one-off scripts.
|
|
|
29
29
|
## Usage
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
.pennyfarthing/scripts/
|
|
33
|
-
.pennyfarthing/scripts/
|
|
32
|
+
.pennyfarthing/scripts/misc/doctor-dogfood.sh
|
|
33
|
+
.pennyfarthing/scripts/misc/run-ci.sh
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Ownership
|
|
@@ -5,23 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
set -euo pipefail
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# Find project root by looking for .pennyfarthing directory
|
|
12
|
-
find_project_root() {
|
|
13
|
-
local dir="$PWD"
|
|
14
|
-
while [[ "$dir" != "/" ]]; do
|
|
15
|
-
if [[ -d "$dir/.pennyfarthing" ]]; then
|
|
16
|
-
echo "$dir"
|
|
17
|
-
return 0
|
|
18
|
-
fi
|
|
19
|
-
dir="$(dirname "$dir")"
|
|
20
|
-
done
|
|
21
|
-
echo "$PWD"
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
PROJECT_ROOT="$(find_project_root)"
|
|
8
|
+
# Self-locate and set up PROJECT_ROOT
|
|
9
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd -P)"
|
|
10
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
25
11
|
SPRINT_FILE="$PROJECT_ROOT/sprint/current-sprint.yaml"
|
|
26
12
|
|
|
27
13
|
if [[ ! -f "$SPRINT_FILE" ]]; then
|
|
@@ -17,36 +17,10 @@
|
|
|
17
17
|
|
|
18
18
|
set -euo pipefail
|
|
19
19
|
|
|
20
|
-
#
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
local dir="$PWD"
|
|
25
|
-
# First try .pennyfarthing/
|
|
26
|
-
while [[ ! -d "$dir/.pennyfarthing" ]] && [[ "$dir" != "/" ]]; do
|
|
27
|
-
dir="$(dirname "$dir")"
|
|
28
|
-
done
|
|
29
|
-
if [[ -d "$dir/.pennyfarthing" ]]; then
|
|
30
|
-
echo "$dir"
|
|
31
|
-
return
|
|
32
|
-
fi
|
|
33
|
-
# Fall back to pennyfarthing-dist/ for framework repo
|
|
34
|
-
dir="$PWD"
|
|
35
|
-
while [[ ! -d "$dir/pennyfarthing-dist" ]] && [[ "$dir" != "/" ]]; do
|
|
36
|
-
dir="$(dirname "$dir")"
|
|
37
|
-
done
|
|
38
|
-
if [[ -d "$dir/pennyfarthing-dist" ]]; then
|
|
39
|
-
echo "$dir"
|
|
40
|
-
return
|
|
41
|
-
fi
|
|
42
|
-
echo ""
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
PROJECT_ROOT="$(find_project_root)"
|
|
46
|
-
if [[ -z "$PROJECT_ROOT" ]]; then
|
|
47
|
-
echo "Error: Cannot find project root (no .pennyfarthing or pennyfarthing-dist directory found)" >&2
|
|
48
|
-
exit 1
|
|
49
|
-
fi
|
|
20
|
+
# Self-locate: derive PROJECT_ROOT from this script's position
|
|
21
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
22
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
23
|
+
# PROJECT_ROOT is now set
|
|
50
24
|
|
|
51
25
|
# Default paths
|
|
52
26
|
REGISTRY_PATH="${PROJECT_ROOT}/pennyfarthing-dist/skills/skill-registry.yaml"
|
|
@@ -84,16 +84,9 @@ else
|
|
|
84
84
|
NC=''
|
|
85
85
|
fi
|
|
86
86
|
|
|
87
|
-
#
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
while [[ ! -d "$dir/.pennyfarthing" ]] && [[ "$dir" != "/" ]]; do
|
|
91
|
-
dir="$(dirname "$dir")"
|
|
92
|
-
done
|
|
93
|
-
echo "$dir"
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
PROJECT_ROOT="$(find_project_root)"
|
|
87
|
+
# Self-locate and set up PROJECT_ROOT
|
|
88
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
89
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
97
90
|
cd "$PROJECT_ROOT" || exit 1
|
|
98
91
|
|
|
99
92
|
# Detection functions
|
|
@@ -56,8 +56,25 @@ except Exception:
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
# Configuration
|
|
59
|
-
SCRIPT_DIR = Path(__file__).parent
|
|
60
|
-
|
|
59
|
+
SCRIPT_DIR = Path(__file__).parent.resolve()
|
|
60
|
+
|
|
61
|
+
# Find PROJECT_ROOT by walking up until we find pennyfarthing-dist at the expected level
|
|
62
|
+
# Script lives at: {PROJECT_ROOT}/pennyfarthing-dist/scripts/portraits/generate-portraits.py
|
|
63
|
+
def _find_project_root() -> Path:
|
|
64
|
+
"""Find project root by looking for pennyfarthing-dist or .git marker."""
|
|
65
|
+
current = SCRIPT_DIR
|
|
66
|
+
# Walk up from portraits/ -> scripts/ -> pennyfarthing-dist/ -> PROJECT_ROOT
|
|
67
|
+
for _ in range(5): # Safety limit
|
|
68
|
+
# Check if this looks like the project root
|
|
69
|
+
if (current / "pennyfarthing-dist" / "personas" / "themes").exists():
|
|
70
|
+
return current
|
|
71
|
+
if (current / ".git").exists() and (current / "pennyfarthing-dist").exists():
|
|
72
|
+
return current
|
|
73
|
+
current = current.parent
|
|
74
|
+
# Fallback: assume old structure (script in {root}/scripts/portraits/)
|
|
75
|
+
return SCRIPT_DIR.parent.parent
|
|
76
|
+
|
|
77
|
+
PROJECT_ROOT = _find_project_root()
|
|
61
78
|
BUILTIN_THEMES_DIR = PROJECT_ROOT / "pennyfarthing-dist" / "personas" / "themes"
|
|
62
79
|
CUSTOM_THEMES_DIR = PROJECT_ROOT / ".claude" / "pennyfarthing" / "themes"
|
|
63
80
|
OUTPUT_DIR = PROJECT_ROOT / "pennyfarthing-dist" / "personas" / "portraits"
|
|
@@ -19,8 +19,8 @@ Scripts for sprint YAML operations and sprint management.
|
|
|
19
19
|
## Usage
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
.pennyfarthing/scripts/
|
|
23
|
-
.pennyfarthing/scripts/
|
|
22
|
+
.pennyfarthing/scripts/sprint/sprint-status.sh
|
|
23
|
+
.pennyfarthing/scripts/sprint/available-stories.sh
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
## Ownership
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Archive a completed story from current-sprint.yaml to the sprint archive
|
|
3
|
-
# Usage: .pennyfarthing/scripts/
|
|
3
|
+
# Usage: .pennyfarthing/scripts/sprint/archive-story.sh <story-id> [pr-number] [--apply]
|
|
4
4
|
#
|
|
5
|
-
# Example: .pennyfarthing/scripts/
|
|
6
|
-
# .pennyfarthing/scripts/
|
|
5
|
+
# Example: .pennyfarthing/scripts/sprint/archive-story.sh MSSCI-11945 368
|
|
6
|
+
# .pennyfarthing/scripts/sprint/archive-story.sh MSSCI-11945 368 --apply
|
|
7
7
|
#
|
|
8
8
|
# Options:
|
|
9
9
|
# --apply Also remove story from current-sprint.yaml (atomic operation)
|
|
@@ -40,7 +40,7 @@ if [[ -z "$STORY_ID" ]]; then
|
|
|
40
40
|
exit 1
|
|
41
41
|
fi
|
|
42
42
|
|
|
43
|
-
# PROJECT_ROOT should be set by
|
|
43
|
+
# PROJECT_ROOT should be set by find-root.sh, but find it if not
|
|
44
44
|
if [[ -z "${PROJECT_ROOT:-}" ]]; then
|
|
45
45
|
d="$PWD"
|
|
46
46
|
while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do
|
|
@@ -133,7 +133,7 @@ if $APPLY_FLAG; then
|
|
|
133
133
|
else
|
|
134
134
|
echo ""
|
|
135
135
|
echo "To also remove from $SPRINT_FILE, re-run with --apply:"
|
|
136
|
-
echo " .pennyfarthing/scripts/
|
|
136
|
+
echo " .pennyfarthing/scripts/sprint/archive-story.sh $STORY_ID ${PR_NUMBER:-<pr>} --apply"
|
|
137
137
|
echo ""
|
|
138
138
|
echo "Or manually: yq eval -i 'del(.epics[].stories[] | select(.id == \"$STORY_ID\"))' $SPRINT_FILE"
|
|
139
139
|
fi
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
# Display available stories grouped by epic with Jira context
|
|
3
|
-
# Usage: .pennyfarthing/scripts/
|
|
3
|
+
# Usage: .pennyfarthing/scripts/sprint/available-stories.sh
|
|
4
4
|
#
|
|
5
5
|
# Shows backlog stories with epic context, points, and workflow
|
|
6
6
|
|
|
7
7
|
set -euo pipefail
|
|
8
8
|
|
|
9
|
-
# PROJECT_ROOT should be set by
|
|
9
|
+
# PROJECT_ROOT should be set by find-root.sh, but find it if not
|
|
10
10
|
if [[ -z "${PROJECT_ROOT:-}" ]]; then
|
|
11
11
|
d="$PWD"
|
|
12
12
|
while [[ ! -d "$d/.pennyfarthing" ]] && [[ "$d" != "/" ]]; do
|