@pennyfarthing/core 7.0.1 → 7.4.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/{packages/core/dist → dist}/cli/commands/cyclist.d.ts +2 -2
- package/{packages/core/dist → dist}/cli/commands/cyclist.d.ts.map +1 -1
- package/{packages/core/dist → dist}/cli/commands/cyclist.js +8 -9
- package/dist/cli/commands/cyclist.js.map +1 -0
- package/{packages/core/dist → dist}/cli/commands/cyclist.test.js +6 -4
- package/dist/cli/commands/cyclist.test.js.map +1 -0
- package/{packages/core/dist → dist}/cli/commands/update.d.ts.map +1 -1
- package/{packages/core/dist → dist}/cli/commands/update.js +9 -136
- package/dist/cli/commands/update.js.map +1 -0
- package/{packages/core/dist → dist}/cli/cyclist-migration.test.js +4 -3
- package/{packages/core/dist → dist}/cli/cyclist-migration.test.js.map +1 -1
- package/{packages/core/dist → dist}/cli/utils/constants.d.ts +7 -1
- package/dist/cli/utils/constants.d.ts.map +1 -0
- package/{packages/core/dist → dist}/cli/utils/constants.js +4 -2
- package/{packages/core/dist → dist}/cli/utils/constants.js.map +1 -1
- package/{packages/core/dist → dist}/cli/utils/themes.d.ts +1 -4
- package/{packages/core/dist → dist}/cli/utils/themes.d.ts.map +1 -1
- package/{packages/core/dist → dist}/cli/utils/themes.js +2 -22
- package/dist/cli/utils/themes.js.map +1 -0
- package/dist/cli/utils/themes.test.d.ts +12 -0
- package/{packages/core/dist → dist}/cli/utils/themes.test.js +16 -13
- package/dist/cli/utils/themes.test.js.map +1 -0
- package/{packages/core/dist → dist}/cli/workspace.test.js +5 -8
- package/{packages/core/dist → dist}/cli/workspace.test.js.map +1 -1
- package/{packages/core/dist → dist}/index.d.ts +1 -0
- package/{packages/core/dist → dist}/index.d.ts.map +1 -1
- package/{packages/core/dist → dist}/index.js +10 -0
- package/{packages/core/dist → dist}/index.js.map +1 -1
- package/dist/jira/jira-epic-creation.d.ts +109 -0
- package/dist/jira/jira-epic-creation.d.ts.map +1 -0
- package/dist/jira/jira-epic-creation.js +253 -0
- package/dist/jira/jira-epic-creation.js.map +1 -0
- package/dist/jira/jira-epic-creation.test.d.ts +16 -0
- package/dist/jira/jira-epic-creation.test.d.ts.map +1 -0
- package/dist/jira/jira-epic-creation.test.js +387 -0
- package/dist/jira/jira-epic-creation.test.js.map +1 -0
- package/dist/jira/jira-sprint-sync.d.ts +247 -0
- package/dist/jira/jira-sprint-sync.d.ts.map +1 -0
- package/dist/jira/jira-sprint-sync.js +670 -0
- package/dist/jira/jira-sprint-sync.js.map +1 -0
- package/dist/jira/jira-sprint-sync.test.d.ts +16 -0
- package/dist/jira/jira-sprint-sync.test.d.ts.map +1 -0
- package/dist/jira/jira-sprint-sync.test.js +845 -0
- package/dist/jira/jira-sprint-sync.test.js.map +1 -0
- package/{packages/core/dist → dist}/scripts/generate-spider.d.ts +11 -1
- package/{packages/core/dist → dist}/scripts/generate-spider.d.ts.map +1 -1
- package/{packages/core/dist → dist}/scripts/generate-spider.js +24 -1
- package/dist/scripts/generate-spider.js.map +1 -0
- package/{packages/core/dist → dist}/scripts/generate-spider.test.js +6 -4
- package/dist/scripts/generate-spider.test.js.map +1 -0
- package/dist/workflow/gate-handler.d.ts +94 -0
- package/dist/workflow/gate-handler.d.ts.map +1 -0
- package/dist/workflow/gate-handler.js +189 -0
- package/dist/workflow/gate-handler.js.map +1 -0
- package/dist/workflow/gate-handler.test.d.ts +14 -0
- package/dist/workflow/gate-handler.test.d.ts.map +1 -0
- package/dist/workflow/gate-handler.test.js +543 -0
- package/dist/workflow/gate-handler.test.js.map +1 -0
- package/{packages/core/dist → dist}/workflow/generic-handoff.d.ts +46 -0
- package/{packages/core/dist → dist}/workflow/generic-handoff.d.ts.map +1 -1
- package/{packages/core/dist → dist}/workflow/generic-handoff.js +53 -0
- package/{packages/core/dist → dist}/workflow/generic-handoff.js.map +1 -1
- package/{packages/core/dist → dist}/workflow/generic-handoff.test.js +2 -2
- package/{packages/core/dist → dist}/workflow/generic-handoff.test.js.map +1 -1
- package/dist/workflow/index.d.ts +16 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +24 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/session-state.d.ts +92 -0
- package/dist/workflow/session-state.d.ts.map +1 -0
- package/dist/workflow/session-state.js +198 -0
- package/dist/workflow/session-state.js.map +1 -0
- package/dist/workflow/session-state.test.d.ts +8 -0
- package/dist/workflow/session-state.test.d.ts.map +1 -0
- package/dist/workflow/session-state.test.js +551 -0
- package/dist/workflow/session-state.test.js.map +1 -0
- package/dist/workflow/step-parser.d.ts +45 -0
- package/dist/workflow/step-parser.d.ts.map +1 -0
- package/dist/workflow/step-parser.js +147 -0
- package/dist/workflow/step-parser.js.map +1 -0
- package/dist/workflow/step-parser.test.d.ts +14 -0
- package/dist/workflow/step-parser.test.d.ts.map +1 -0
- package/dist/workflow/step-parser.test.js +470 -0
- package/dist/workflow/step-parser.test.js.map +1 -0
- package/dist/workflow/trimodal.d.ts +86 -0
- package/dist/workflow/trimodal.d.ts.map +1 -0
- package/dist/workflow/trimodal.js +118 -0
- package/dist/workflow/trimodal.js.map +1 -0
- package/dist/workflow/trimodal.test.d.ts +11 -0
- package/dist/workflow/trimodal.test.d.ts.map +1 -0
- package/dist/workflow/trimodal.test.js +395 -0
- package/dist/workflow/trimodal.test.js.map +1 -0
- package/dist/workflow/variable-resolver.d.ts +67 -0
- package/dist/workflow/variable-resolver.d.ts.map +1 -0
- package/dist/workflow/variable-resolver.js +156 -0
- package/dist/workflow/variable-resolver.js.map +1 -0
- package/dist/workflow/variable-resolver.test.d.ts +14 -0
- package/dist/workflow/variable-resolver.test.d.ts.map +1 -0
- package/dist/workflow/variable-resolver.test.js +400 -0
- package/dist/workflow/variable-resolver.test.js.map +1 -0
- package/dist/workflow/workflow-executor.d.ts +163 -0
- package/dist/workflow/workflow-executor.d.ts.map +1 -0
- package/dist/workflow/workflow-executor.js +197 -0
- package/dist/workflow/workflow-executor.js.map +1 -0
- package/dist/workflow/workflow-executor.test.d.ts +8 -0
- package/dist/workflow/workflow-executor.test.d.ts.map +1 -0
- package/dist/workflow/workflow-executor.test.js +444 -0
- package/dist/workflow/workflow-executor.test.js.map +1 -0
- package/{packages/core/dist → dist}/workflow/workflow-loader.test.js +5 -5
- package/dist/workflow/workflow-loader.test.js.map +1 -0
- package/{packages/core/dist → dist}/workflow/workflow-migration.test.js +8 -9
- package/{packages/core/dist → dist}/workflow/workflow-migration.test.js.map +1 -1
- package/dist/workflow/workflow-permissions.d.ts +55 -0
- package/dist/workflow/workflow-permissions.d.ts.map +1 -0
- package/dist/workflow/workflow-permissions.js +64 -0
- package/dist/workflow/workflow-permissions.js.map +1 -0
- package/dist/workflow/workflow-permissions.test.d.ts +15 -0
- package/dist/workflow/workflow-permissions.test.d.ts.map +1 -0
- package/dist/workflow/workflow-permissions.test.js +301 -0
- package/dist/workflow/workflow-permissions.test.js.map +1 -0
- package/{packages/core/dist → dist}/workflow/workflow-schema.d.ts +61 -2
- package/dist/workflow/workflow-schema.d.ts.map +1 -0
- package/dist/workflow/workflow-schema.js +454 -0
- package/dist/workflow/workflow-schema.js.map +1 -0
- package/{packages/core/dist → dist}/workflow/workflow-schema.test.js +6 -6
- package/{packages/core/dist → dist}/workflow/workflow-schema.test.js.map +1 -1
- package/dist/workflow/workflow-stepped-schema.test.d.ts +18 -0
- package/dist/workflow/workflow-stepped-schema.test.d.ts.map +1 -0
- package/dist/workflow/workflow-stepped-schema.test.js +608 -0
- package/dist/workflow/workflow-stepped-schema.test.js.map +1 -0
- package/package.json +36 -31
- package/README.md +0 -301
- package/packages/core/dist/cli/commands/cyclist.js.map +0 -1
- package/packages/core/dist/cli/commands/cyclist.test.js.map +0 -1
- package/packages/core/dist/cli/commands/update.js.map +0 -1
- package/packages/core/dist/cli/utils/constants.d.ts.map +0 -1
- package/packages/core/dist/cli/utils/themes.js.map +0 -1
- package/packages/core/dist/cli/utils/themes.test.d.ts +0 -12
- package/packages/core/dist/cli/utils/themes.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.d.ts +0 -10
- package/packages/core/dist/scripts/generate-all-faces.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.js +0 -256
- package/packages/core/dist/scripts/generate-all-faces.js.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.test.d.ts +0 -17
- package/packages/core/dist/scripts/generate-all-faces.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-all-faces.test.js +0 -372
- package/packages/core/dist/scripts/generate-all-faces.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-ascii-face.d.ts +0 -52
- package/packages/core/dist/scripts/generate-ascii-face.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-ascii-face.js +0 -155
- package/packages/core/dist/scripts/generate-ascii-face.js.map +0 -1
- package/packages/core/dist/scripts/generate-face.d.ts +0 -52
- package/packages/core/dist/scripts/generate-face.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-face.js +0 -199
- package/packages/core/dist/scripts/generate-face.js.map +0 -1
- package/packages/core/dist/scripts/generate-face.test.d.ts +0 -13
- package/packages/core/dist/scripts/generate-face.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/generate-face.test.js +0 -301
- package/packages/core/dist/scripts/generate-face.test.js.map +0 -1
- package/packages/core/dist/scripts/generate-spider.js.map +0 -1
- package/packages/core/dist/scripts/generate-spider.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-loader.test.js.map +0 -1
- package/packages/core/dist/workflow/workflow-schema.d.ts.map +0 -1
- package/packages/core/dist/workflow/workflow-schema.js +0 -230
- package/packages/core/dist/workflow/workflow-schema.js.map +0 -1
- package/pennyfarthing-dist/agents/README.md +0 -397
- package/pennyfarthing-dist/agents/architect.md +0 -171
- package/pennyfarthing-dist/agents/dev.md +0 -225
- package/pennyfarthing-dist/agents/devops.md +0 -183
- package/pennyfarthing-dist/agents/generic-handoff.md +0 -451
- package/pennyfarthing-dist/agents/generic-sm-finish.md +0 -261
- package/pennyfarthing-dist/agents/generic-sm-setup.md +0 -214
- package/pennyfarthing-dist/agents/orchestrator.md +0 -316
- package/pennyfarthing-dist/agents/pm.md +0 -153
- package/pennyfarthing-dist/agents/reviewer-preflight.md +0 -224
- package/pennyfarthing-dist/agents/reviewer.md +0 -315
- package/pennyfarthing-dist/agents/sm-file-summary.md +0 -109
- package/pennyfarthing-dist/agents/sm-handoff.md +0 -97
- package/pennyfarthing-dist/agents/sm.md +0 -480
- package/pennyfarthing-dist/agents/tea.md +0 -191
- package/pennyfarthing-dist/agents/tech-writer.md +0 -148
- package/pennyfarthing-dist/agents/testing-runner.md +0 -420
- package/pennyfarthing-dist/agents/ux-designer.md +0 -158
- package/pennyfarthing-dist/agents/workflow-status-check.md +0 -332
- package/pennyfarthing-dist/commands/architect.md +0 -62
- package/pennyfarthing-dist/commands/benchmark-control.md +0 -69
- package/pennyfarthing-dist/commands/benchmark.md +0 -467
- package/pennyfarthing-dist/commands/brainstorm.md +0 -91
- package/pennyfarthing-dist/commands/check.md +0 -156
- package/pennyfarthing-dist/commands/chore.md +0 -178
- package/pennyfarthing-dist/commands/close-epic.md +0 -136
- package/pennyfarthing-dist/commands/continue-session.md +0 -184
- package/pennyfarthing-dist/commands/create-branches-from-story.md +0 -374
- package/pennyfarthing-dist/commands/create-theme.md +0 -29
- package/pennyfarthing-dist/commands/dev.md +0 -60
- package/pennyfarthing-dist/commands/devops.md +0 -59
- package/pennyfarthing-dist/commands/git-cleanup.md +0 -340
- package/pennyfarthing-dist/commands/health-check.md +0 -108
- package/pennyfarthing-dist/commands/help.md +0 -264
- package/pennyfarthing-dist/commands/job-fair.md +0 -102
- package/pennyfarthing-dist/commands/list-themes.md +0 -17
- package/pennyfarthing-dist/commands/new-work.md +0 -127
- package/pennyfarthing-dist/commands/orchestrator.md +0 -56
- package/pennyfarthing-dist/commands/parallel-work.md +0 -71
- package/pennyfarthing-dist/commands/party-mode.md +0 -67
- package/pennyfarthing-dist/commands/permissions.md +0 -193
- package/pennyfarthing-dist/commands/pm.md +0 -60
- package/pennyfarthing-dist/commands/prime.md +0 -140
- package/pennyfarthing-dist/commands/release.md +0 -58
- package/pennyfarthing-dist/commands/repo-status.md +0 -49
- package/pennyfarthing-dist/commands/retro.md +0 -200
- package/pennyfarthing-dist/commands/reviewer.md +0 -64
- package/pennyfarthing-dist/commands/run-ci.md +0 -116
- package/pennyfarthing-dist/commands/set-theme.md +0 -52
- package/pennyfarthing-dist/commands/show-theme.md +0 -21
- package/pennyfarthing-dist/commands/sm.md +0 -70
- package/pennyfarthing-dist/commands/solo.md +0 -411
- package/pennyfarthing-dist/commands/sprint-planning.md +0 -109
- package/pennyfarthing-dist/commands/start-epic.md +0 -156
- package/pennyfarthing-dist/commands/sync-epic-to-jira.md +0 -184
- package/pennyfarthing-dist/commands/sync-work-with-sprint.md +0 -376
- package/pennyfarthing-dist/commands/tea.md +0 -63
- package/pennyfarthing-dist/commands/tech-writer.md +0 -53
- package/pennyfarthing-dist/commands/theme-maker.md +0 -671
- package/pennyfarthing-dist/commands/update-domain-docs.md +0 -83
- package/pennyfarthing-dist/commands/ux-designer.md +0 -62
- package/pennyfarthing-dist/commands/work.md +0 -111
- package/pennyfarthing-dist/guides/AGENT-COORDINATION.md +0 -480
- package/pennyfarthing-dist/guides/AGENT-SCOPES.md +0 -201
- package/pennyfarthing-dist/guides/HOOKS.md +0 -230
- package/pennyfarthing-dist/guides/PROMPT-PATTERNS.md +0 -338
- package/pennyfarthing-dist/guides/SESSION-ARTIFACTS.md +0 -193
- package/pennyfarthing-dist/guides/agent-template-strategic.md +0 -148
- package/pennyfarthing-dist/guides/agent-template-tactical.md +0 -162
- package/pennyfarthing-dist/guides/patterns/approval-gates-pattern.md +0 -746
- package/pennyfarthing-dist/guides/patterns/fan-out-fan-in-pattern.md +0 -574
- package/pennyfarthing-dist/guides/patterns/helper-delegation-pattern.md +0 -488
- package/pennyfarthing-dist/guides/patterns/tdd-flow-pattern.md +0 -402
- package/pennyfarthing-dist/guides/permission-protocol.md +0 -188
- package/pennyfarthing-dist/guides/persona-loading.md +0 -46
- package/pennyfarthing-dist/guides/persona-system.md +0 -294
- package/pennyfarthing-dist/guides/shared-agent-behavior.md +0 -388
- package/pennyfarthing-dist/guides/shared-context.md +0 -147
- package/pennyfarthing-dist/guides/strategic-agent-behavior.md +0 -348
- package/pennyfarthing-dist/guides/tactical-agent-behavior.md +0 -1041
- package/pennyfarthing-dist/guides/workflow-schema.md +0 -195
- package/pennyfarthing-dist/guides/worktree-mode.md +0 -113
- package/pennyfarthing-dist/output-styles/teaching.md +0 -33
- package/pennyfarthing-dist/output-styles/terse.md +0 -20
- package/pennyfarthing-dist/output-styles/verbose.md +0 -28
- package/pennyfarthing-dist/personas/themes/1984.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/a-team.yaml +0 -207
- package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/alice-in-wonderland.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -332
- package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -306
- package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -331
- package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/battlestar-galactica.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/blade-runner.yaml +0 -295
- package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -327
- package/pennyfarthing-dist/personas/themes/catch-22.yaml +0 -316
- package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -310
- package/pennyfarthing-dist/personas/themes/control.yaml +0 -197
- package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/cowboy-bebop.yaml +0 -323
- package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/discworld.yaml +0 -332
- package/pennyfarthing-dist/personas/themes/doctor-who.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/dune.yaml +0 -307
- package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/firefly.yaml +0 -328
- package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -321
- package/pennyfarthing-dist/personas/themes/game-of-thrones.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -243
- package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -308
- package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -308
- package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/harry-potter.yaml +0 -324
- package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -291
- package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/hitchhikers-guide.yaml +0 -331
- package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -321
- package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -287
- package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/justified.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -219
- package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -299
- package/pennyfarthing-dist/personas/themes/lord-of-the-rings.yaml +0 -334
- package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -334
- package/pennyfarthing-dist/personas/themes/mad-max.yaml +0 -355
- package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/mash.yaml +0 -334
- package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -306
- package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -303
- package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -329
- package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -242
- package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -298
- package/pennyfarthing-dist/personas/themes/princess-bride.yaml +0 -220
- package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/rome.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -318
- package/pennyfarthing-dist/personas/themes/sandman.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -301
- package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -289
- package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -288
- package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -230
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -210
- package/pennyfarthing-dist/personas/themes/star-wars.yaml +0 -303
- package/pennyfarthing-dist/personas/themes/succession.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -208
- package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -236
- package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-expanse.yaml +0 -213
- package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -322
- package/pennyfarthing-dist/personas/themes/the-matrix.yaml +0 -353
- package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -330
- package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -308
- package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -311
- package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -302
- package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/watchmen.yaml +0 -291
- package/pennyfarthing-dist/personas/themes/west-wing.yaml +0 -291
- package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -320
- package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -307
- package/pennyfarthing-dist/personas/themes/x-files.yaml +0 -302
- package/pennyfarthing-dist/scripts/add-short-names.mjs +0 -264
- package/pennyfarthing-dist/scripts/agent-session.sh +0 -367
- package/pennyfarthing-dist/scripts/check-context.sh +0 -187
- package/pennyfarthing-dist/scripts/check.sh +0 -497
- package/pennyfarthing-dist/scripts/deploy.sh +0 -284
- package/pennyfarthing-dist/scripts/doctor-dogfood.sh +0 -395
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -61
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -66
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -35
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -166
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -50
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -71
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -54
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -98
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -59
- package/pennyfarthing-dist/scripts/install-git-hooks.sh +0 -91
- package/pennyfarthing-dist/scripts/prime.sh +0 -161
- package/pennyfarthing-dist/scripts/release.sh +0 -198
- package/pennyfarthing-dist/scripts/repo-utils.sh +0 -778
- package/pennyfarthing-dist/scripts/run-ci.sh +0 -219
- package/pennyfarthing-dist/scripts/run.sh +0 -65
- package/pennyfarthing-dist/scripts/statusline.sh +0 -264
- package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -582
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -107
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -597
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -514
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -517
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -331
- package/pennyfarthing-dist/scripts/uninstall.sh +0 -271
- package/pennyfarthing-dist/scripts/utils/background-tasks.sh +0 -177
- package/pennyfarthing-dist/scripts/utils/check-status.sh +0 -251
- package/pennyfarthing-dist/scripts/utils/checkpoint.sh +0 -136
- package/pennyfarthing-dist/scripts/utils/common.sh +0 -157
- package/pennyfarthing-dist/scripts/utils/create-feature-branches.sh +0 -230
- package/pennyfarthing-dist/scripts/utils/file-lock.sh +0 -269
- package/pennyfarthing-dist/scripts/utils/find-related-work.sh +0 -231
- package/pennyfarthing-dist/scripts/utils/find-root.sh +0 -33
- package/pennyfarthing-dist/scripts/utils/generate-skill-docs.sh +0 -110
- package/pennyfarthing-dist/scripts/utils/git-status-all.sh +0 -127
- package/pennyfarthing-dist/scripts/utils/ground-truth-judge.py +0 -289
- package/pennyfarthing-dist/scripts/utils/jira/jira-lib.mjs +0 -443
- package/pennyfarthing-dist/scripts/utils/jira/jira-sync-story.mjs +0 -208
- package/pennyfarthing-dist/scripts/utils/jira/jira-sync.mjs +0 -198
- package/pennyfarthing-dist/scripts/utils/jira-claim-story.sh +0 -162
- package/pennyfarthing-dist/scripts/utils/jira-lib.sh +0 -463
- package/pennyfarthing-dist/scripts/utils/jira-sync-story.sh +0 -8
- package/pennyfarthing-dist/scripts/utils/jira-sync.sh +0 -8
- package/pennyfarthing-dist/scripts/utils/log-skill-usage.sh +0 -74
- package/pennyfarthing-dist/scripts/utils/logging.sh +0 -186
- package/pennyfarthing-dist/scripts/utils/repo-scan.sh +0 -141
- package/pennyfarthing-dist/scripts/utils/retry.sh +0 -76
- package/pennyfarthing-dist/scripts/utils/run-timestamp.sh +0 -7
- package/pennyfarthing-dist/scripts/utils/session-cleanup.sh +0 -319
- package/pennyfarthing-dist/scripts/utils/skill-usage-report.sh +0 -193
- package/pennyfarthing-dist/scripts/utils/sprint-common.sh +0 -286
- package/pennyfarthing-dist/scripts/utils/sprint-metrics.sh +0 -241
- package/pennyfarthing-dist/scripts/utils/swebench-judge.py +0 -400
- package/pennyfarthing-dist/scripts/utils/sync-epic-to-jira.sh +0 -16
- package/pennyfarthing-dist/scripts/utils/test-setup.sh +0 -337
- package/pennyfarthing-dist/scripts/utils/validate-subagent-frontmatter.sh +0 -160
- package/pennyfarthing-dist/scripts/worktree-manager.sh +0 -498
- package/pennyfarthing-dist/skills/agentic-patterns/SKILL.md +0 -236
- package/pennyfarthing-dist/skills/changelog/SKILL.md +0 -367
- package/pennyfarthing-dist/skills/code-review/SKILL.md +0 -168
- package/pennyfarthing-dist/skills/context-engineering/SKILL.md +0 -268
- package/pennyfarthing-dist/skills/cyclist/SKILL.md +0 -117
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -421
- package/pennyfarthing-dist/skills/finalize-run/SKILL.md +0 -258
- package/pennyfarthing-dist/skills/jira/SKILL.md +0 -281
- package/pennyfarthing-dist/skills/judge/SKILL.md +0 -524
- package/pennyfarthing-dist/skills/just/SKILL.md +0 -160
- package/pennyfarthing-dist/skills/mermaid/SKILL.md +0 -240
- package/pennyfarthing-dist/skills/otel/skill.md +0 -222
- package/pennyfarthing-dist/skills/permissions/skill.md +0 -172
- package/pennyfarthing-dist/skills/persona-benchmark/SKILL.md +0 -173
- package/pennyfarthing-dist/skills/skill-registry.schema.json +0 -102
- package/pennyfarthing-dist/skills/skill-registry.yaml +0 -335
- package/pennyfarthing-dist/skills/sprint-context/SKILL.md +0 -120
- package/pennyfarthing-dist/skills/story-management/SKILL.md +0 -208
- package/pennyfarthing-dist/skills/testing/SKILL.md +0 -99
- package/pennyfarthing-dist/skills/testing/references/troubleshooting.md +0 -124
- package/pennyfarthing-dist/skills/theme/skill.md +0 -129
- package/pennyfarthing-dist/skills/theme-creation/SKILL.md +0 -169
- package/pennyfarthing-dist/skills/workflow/SKILL.md +0 -160
- package/pennyfarthing-dist/skills/yq/SKILL.md +0 -264
- package/pennyfarthing-dist/templates/LEADERBOARD.schema.yaml +0 -187
- package/pennyfarthing-dist/templates/LEADERBOARD.template.md +0 -59
- package/pennyfarthing-dist/templates/agent-scopes.yaml.template +0 -276
- package/pennyfarthing-dist/templates/pennyfarthing-settings.yaml.template +0 -61
- package/pennyfarthing-dist/templates/persona-config.yaml.template +0 -22
- package/pennyfarthing-dist/templates/preferences.yaml.template +0 -15
- package/pennyfarthing-dist/templates/settings.local.json.template +0 -90
- package/pennyfarthing-dist/templates/setup-env.sh.template +0 -18
- package/pennyfarthing-dist/templates/shared-context.md.template +0 -70
- package/pennyfarthing-dist/templates/sidecar/decisions.md.template +0 -40
- package/pennyfarthing-dist/templates/sidecar/gotchas.md.template +0 -37
- package/pennyfarthing-dist/templates/sidecar/patterns.md.template +0 -34
- package/pennyfarthing-dist/workflows/agent-docs.yaml +0 -70
- package/pennyfarthing-dist/workflows/bdd.yaml +0 -58
- package/pennyfarthing-dist/workflows/tdd.yaml +0 -50
- package/pennyfarthing-dist/workflows/trivial.yaml +0 -40
- /package/{packages/core/bin → bin}/pennyfarthing.js +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.js +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.test.js +0 -0
- /package/{packages/core/dist → dist}/bmad/context-reader.test.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.js +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.test.js +0 -0
- /package/{packages/core/dist → dist}/bmad/epics-parser.test.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/index.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/index.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/index.js +0 -0
- /package/{packages/core/dist → dist}/bmad/index.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.js +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.test.js +0 -0
- /package/{packages/core/dist → dist}/bmad/status-sync.test.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.js +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.test.js +0 -0
- /package/{packages/core/dist → dist}/bmad/story-exporter.test.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.js +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.js.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.test.js +0 -0
- /package/{packages/core/dist → dist}/bmad/story-parser.test.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/command.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/command.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/command.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/command.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/cyclist.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/doctor.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/doctor.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/doctor.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/doctor.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/init.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/init.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/init.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/init.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/skill.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/skill.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/skill.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/skill.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/theme.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/theme.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/theme.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/theme.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/uninstall.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/uninstall.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/uninstall.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/update.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/version.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/commands/version.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/commands/version.js +0 -0
- /package/{packages/core/dist → dist}/cli/commands/version.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/customization.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/customization.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/customization.test.js +0 -0
- /package/{packages/core/dist → dist}/cli/customization.test.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/cyclist-migration.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/index.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/index.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/index.js +0 -0
- /package/{packages/core/dist → dist}/cli/index.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/ocean-profiles.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js +0 -0
- /package/{packages/core/dist → dist}/cli/ocean-profiles.test.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/theme-maker.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/theme-maker.test.js +0 -0
- /package/{packages/core/dist → dist}/cli/theme-maker.test.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/files.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/files.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/files.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/files.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/logger.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/logger.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/logger.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/logger.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/manifest.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/manifest.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/manifest.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/node-modules.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/node-modules.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/node-modules.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/prompts.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/prompts.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/prompts.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/symlinks.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/symlinks.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/symlinks.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/themes.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/version.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/utils/version.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/cli/utils/version.js +0 -0
- /package/{packages/core/dist → dist}/cli/utils/version.js.map +0 -0
- /package/{packages/core/dist → dist}/cli/workspace.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/cli/workspace.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/permissions/index.d.ts +0 -0
- /package/{packages/core/dist → dist}/permissions/index.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/permissions/index.js +0 -0
- /package/{packages/core/dist → dist}/permissions/index.js.map +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.js +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.js.map +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.test.js +0 -0
- /package/{packages/core/dist → dist}/permissions/permission-schema.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js +0 -0
- /package/{packages/core/dist → dist}/scripts/add-ocean-profiles.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.js +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/benchmark-integration.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/debugging-scenarios.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-all-spiders.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-all-spiders.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.js +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-report.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.js +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider-report.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/generate-spider.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/job-fair-aggregator.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/run-ci.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/run-ci.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/run-ci.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/theme-detail.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/theme-detail.test.js +0 -0
- /package/{packages/core/dist → dist}/scripts/theme-detail.test.js.map +0 -0
- /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts +0 -0
- /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js +0 -0
- /package/{packages/core/dist → dist}/scripts/validate-ocean-profiles.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-handoff.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-handoff.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-finish.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-finish.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-setup.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js +0 -0
- /package/{packages/core/dist → dist}/workflow/generic-sm-setup.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/sm-subagents.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js +0 -0
- /package/{packages/core/dist → dist}/workflow/sm-subagents.test.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js +0 -0
- /package/{packages/core/dist → dist}/workflow/story-workflow-routing.test.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.js +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.test.js +0 -0
- /package/{packages/core/dist → dist}/workflow/test-cache.test.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-loader.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-loader.js +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-loader.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-loader.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-migration.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.js +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.test.d.ts.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.test.js +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-router.test.js.map +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts +0 -0
- /package/{packages/core/dist → dist}/workflow/workflow-schema.test.d.ts.map +0 -0
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Discover which characters in a theme excel at each role
|
|
3
|
-
argument-hint: <theme> [--runs N] [--roles <list>]
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Job Fair
|
|
7
|
-
|
|
8
|
-
Run every character in a theme against benchmarks to find hidden talents.
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
/job-fair <theme>
|
|
14
|
-
/job-fair <theme> --runs 2
|
|
15
|
-
/job-fair <theme> --roles dev,reviewer
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## On Invoke
|
|
19
|
-
|
|
20
|
-
**Arguments:** $ARGUMENTS
|
|
21
|
-
|
|
22
|
-
### Step 1: Parse and Validate
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# Theme is first positional arg (strip any --flags)
|
|
26
|
-
THEME=$(echo "$ARGUMENTS" | awk '{print $1}' | sed 's/^--theme[= ]//')
|
|
27
|
-
|
|
28
|
-
# Check theme exists
|
|
29
|
-
ls pennyfarthing-dist/personas/themes/${THEME}.yaml
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
If not found, list available themes and stop.
|
|
33
|
-
|
|
34
|
-
Extract `--runs N` (default: 4) and `--roles x,y` (default: all with baselines).
|
|
35
|
-
|
|
36
|
-
### Step 2: Load Characters
|
|
37
|
-
|
|
38
|
-
Read `pennyfarthing-dist/personas/themes/${THEME}.yaml` and list agents:
|
|
39
|
-
|
|
40
|
-
| Role | Character |
|
|
41
|
-
|------|-----------|
|
|
42
|
-
| sm | {agents.sm.character} |
|
|
43
|
-
| dev | {agents.dev.character} |
|
|
44
|
-
| ... | ... |
|
|
45
|
-
|
|
46
|
-
### Step 3: Find Baselines
|
|
47
|
-
|
|
48
|
-
Pick ONE scenario per role from `internal/results/baselines/`:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
# For each role, find first available baseline
|
|
52
|
-
for role in dev reviewer tea sm architect; do
|
|
53
|
-
baseline=$(ls -d internal/results/baselines/*/${role} 2>/dev/null | head -1)
|
|
54
|
-
if [ -n "$baseline" ]; then
|
|
55
|
-
scenario=$(basename $(dirname "$baseline"))
|
|
56
|
-
summary="$baseline/summary.yaml"
|
|
57
|
-
# Read statistics.mean and statistics.n from summary.yaml
|
|
58
|
-
fi
|
|
59
|
-
done
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Show table:
|
|
63
|
-
|
|
64
|
-
| Role | Scenario | Baseline | n |
|
|
65
|
-
|------|----------|----------|---|
|
|
66
|
-
| dev | race-condition-cache | 76.8 | 10 |
|
|
67
|
-
|
|
68
|
-
### Step 4: Confirm
|
|
69
|
-
|
|
70
|
-
Show: `{characters} × {roles} × {runs} = {total} runs`
|
|
71
|
-
|
|
72
|
-
Ask user to confirm or cancel.
|
|
73
|
-
|
|
74
|
-
### Step 5: Execute
|
|
75
|
-
|
|
76
|
-
For each role, for each character:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
# Native role
|
|
80
|
-
scripts/solo-runner.sh "${THEME}:${role}" "${scenario}" ${runs}
|
|
81
|
-
|
|
82
|
-
# Cross-role (character playing different role)
|
|
83
|
-
scripts/solo-runner.sh "${THEME}:${native_role}" "${scenario}" ${runs} --as ${target_role}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Show progress as each completes.
|
|
87
|
-
|
|
88
|
-
### Step 6: Report Results
|
|
89
|
-
|
|
90
|
-
Show champions per role and full matrix:
|
|
91
|
-
|
|
92
|
-
| Character | dev | reviewer | tea | sm | Avg |
|
|
93
|
-
|-----------|-----|----------|-----|-----|-----|
|
|
94
|
-
| ... | ... | ... | ... | ... | ... |
|
|
95
|
-
|
|
96
|
-
Save to `internal/results/job-fair/${THEME}-${timestamp}/summary.yaml`
|
|
97
|
-
|
|
98
|
-
## Reference
|
|
99
|
-
|
|
100
|
-
- Theme files: `pennyfarthing-dist/personas/themes/*.yaml`
|
|
101
|
-
- Baselines: `internal/results/baselines/{scenario}/{role}/summary.yaml`
|
|
102
|
-
- Solo runner: `scripts/solo-runner.sh`
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: List all available persona themes
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# List Themes
|
|
6
|
-
|
|
7
|
-
Show all available persona themes with the current theme highlighted.
|
|
8
|
-
|
|
9
|
-
## Instructions
|
|
10
|
-
|
|
11
|
-
Run the pennyfarthing CLI to list themes:
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
pennyfarthing theme list
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
Report the available themes to the user, noting which one is currently active.
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Start a new work session with Pennyfarthing
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Start New Work Session
|
|
6
|
-
|
|
7
|
-
<agent-activation>
|
|
8
|
-
**FIRST:** Use Bash tool to run:
|
|
9
|
-
```bash
|
|
10
|
-
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/run.sh" agent-session.sh start "sm"
|
|
11
|
-
```
|
|
12
|
-
This finds the project root and loads your persona. Adopt the character shown in the output.
|
|
13
|
-
</agent-activation>
|
|
14
|
-
|
|
15
|
-
<purpose>
|
|
16
|
-
The blessed path for starting development work. Loads SM persona and coordinates story selection and TDD flow setup.
|
|
17
|
-
</purpose>
|
|
18
|
-
|
|
19
|
-
<critical-reminder>
|
|
20
|
-
**SM does NOT code.** SM coordinates story setup and hands off to Dev or TEA.
|
|
21
|
-
Even trivial 1-2 point stories require handoff - SM creates context, Dev implements.
|
|
22
|
-
</critical-reminder>
|
|
23
|
-
|
|
24
|
-
<on-invoke>
|
|
25
|
-
After loading persona, execute this sequence in order:
|
|
26
|
-
|
|
27
|
-
## Step 1: Status Check (REQUIRED)
|
|
28
|
-
```yaml
|
|
29
|
-
Task tool:
|
|
30
|
-
subagent_type: "workflow-status-check"
|
|
31
|
-
prompt: |
|
|
32
|
-
CALLING_AGENT: SM
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Based on result:
|
|
36
|
-
- `FINISH_STATE` → Go to Finish Flow
|
|
37
|
-
- `NEW_WORK_STATE` → Continue to Step 2
|
|
38
|
-
- `IN_PROGRESS_STATE` → Report status, ask user what to do
|
|
39
|
-
|
|
40
|
-
## Step 2: Research Backlog
|
|
41
|
-
```yaml
|
|
42
|
-
Task tool:
|
|
43
|
-
subagent_type: "generic-sm-setup"
|
|
44
|
-
prompt: |
|
|
45
|
-
MODE: research
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
Present available stories to user, get selection.
|
|
49
|
-
|
|
50
|
-
## Step 3: File Summary
|
|
51
|
-
```yaml
|
|
52
|
-
Task tool:
|
|
53
|
-
subagent_type: "sm-file-summary"
|
|
54
|
-
prompt: |
|
|
55
|
-
STORY_ID: {selected-story}
|
|
56
|
-
FILE_LIST: |
|
|
57
|
-
{relevant files}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Step 4: Write Story Context (SM does this directly)
|
|
61
|
-
Write `.session/context-story-{X-Y}.md` with:
|
|
62
|
-
- Story overview, technical approach, files to modify, ACs
|
|
63
|
-
|
|
64
|
-
## Step 5: Story Setup
|
|
65
|
-
```yaml
|
|
66
|
-
Task tool:
|
|
67
|
-
subagent_type: "generic-sm-setup"
|
|
68
|
-
prompt: |
|
|
69
|
-
MODE: setup
|
|
70
|
-
STORY_ID: {value}
|
|
71
|
-
JIRA_KEY: {value}
|
|
72
|
-
REPOS: {value}
|
|
73
|
-
SLUG: {value}
|
|
74
|
-
ASSIGNEE: {user name}
|
|
75
|
-
SESSION_CONTENT: |
|
|
76
|
-
{session file content}
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Step 6: Handoff
|
|
80
|
-
```yaml
|
|
81
|
-
Task tool:
|
|
82
|
-
subagent_type: "sm-handoff"
|
|
83
|
-
prompt: |
|
|
84
|
-
STORY_ID: {value}
|
|
85
|
-
REPOS: {value}
|
|
86
|
-
TITLE: {value}
|
|
87
|
-
AC_COUNT: {value}
|
|
88
|
-
BRANCH_NAME: {value}
|
|
89
|
-
JIRA_KEY: {value}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Step 7: Invoke Next Agent
|
|
93
|
-
After handoff complete:
|
|
94
|
-
- Trivial (1-2 pts): Invoke `/dev`
|
|
95
|
-
- Standard (3+ pts): Invoke `/tea`
|
|
96
|
-
</on-invoke>
|
|
97
|
-
|
|
98
|
-
<workflow-states>
|
|
99
|
-
| State | Action |
|
|
100
|
-
|-------|--------|
|
|
101
|
-
| MISSING_EPIC_CONTEXT | Prompt user to run `/start-epic` first |
|
|
102
|
-
| FINISH_STATE | SM handles finish flow (archive, Jira, cleanup) |
|
|
103
|
-
| NEW_WORK_STATE | Research → present stories → create context → setup → handoff |
|
|
104
|
-
</workflow-states>
|
|
105
|
-
|
|
106
|
-
<gates>
|
|
107
|
-
**Before handoff, verify:**
|
|
108
|
-
- [ ] Session file exists at `.session/{story-id}-session.md`
|
|
109
|
-
- [ ] Story context written with ACs
|
|
110
|
-
- [ ] Jira claimed (or explicitly skipped)
|
|
111
|
-
- [ ] Branch created
|
|
112
|
-
|
|
113
|
-
Do NOT proceed to coding. Always hand off.
|
|
114
|
-
</gates>
|
|
115
|
-
|
|
116
|
-
<tdd-flow>
|
|
117
|
-
| Points | Route |
|
|
118
|
-
|--------|-------|
|
|
119
|
-
| 1-2 pts | SM → Dev (skip TEA) |
|
|
120
|
-
| 3-5 pts | SM → TEA → Dev → Reviewer |
|
|
121
|
-
| 8+ pts | SM → TEA → Dev → Reviewer |
|
|
122
|
-
</tdd-flow>
|
|
123
|
-
|
|
124
|
-
<reference>
|
|
125
|
-
- **SM Agent:** `.pennyfarthing/agents/sm.md`
|
|
126
|
-
- **Subagents:** `workflow-status-check`, `generic-sm-setup`, `generic-sm-finish`, `sm-file-summary`, `sm-handoff`
|
|
127
|
-
</reference>
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Orchestrator - Coordinator of all agents and meta operations
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
<agent-activation>
|
|
6
|
-
**FIRST:** Use Bash tool to run:
|
|
7
|
-
```bash
|
|
8
|
-
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/run.sh" agent-session.sh start "orchestrator"
|
|
9
|
-
```
|
|
10
|
-
This finds the project root and loads your persona. Adopt the character shown in the output.
|
|
11
|
-
|
|
12
|
-
Then load and follow `.pennyfarthing/agents/orchestrator.md`
|
|
13
|
-
</agent-activation>
|
|
14
|
-
|
|
15
|
-
<agent-exit>
|
|
16
|
-
On exit: Capture learnings to sidecar, run `agent-session.sh stop`
|
|
17
|
-
</agent-exit>
|
|
18
|
-
|
|
19
|
-
<purpose>
|
|
20
|
-
Process architect who coordinates agents, improves workflows, and maintains system health.
|
|
21
|
-
</purpose>
|
|
22
|
-
|
|
23
|
-
<when-to-use>
|
|
24
|
-
- Process improvement and bottleneck analysis
|
|
25
|
-
- Agent behavior updates and alignment
|
|
26
|
-
- Skill creation or maintenance
|
|
27
|
-
- Sprint retrospectives and learnings capture
|
|
28
|
-
- Meta-level workflow debugging
|
|
29
|
-
</when-to-use>
|
|
30
|
-
|
|
31
|
-
<not-for>
|
|
32
|
-
- Story implementation (use `/dev`)
|
|
33
|
-
- Code review (use `/reviewer`)
|
|
34
|
-
- Bug fixes (use `/dev`)
|
|
35
|
-
- Sprint planning (use `/pm` or `/sm`)
|
|
36
|
-
</not-for>
|
|
37
|
-
|
|
38
|
-
<meta-operations>
|
|
39
|
-
**Process Improvement:** Analyze workflow bottlenecks, propose agent behavior updates, refine handoffs
|
|
40
|
-
|
|
41
|
-
**Agent Coordination:** Ensure agent files are consistent, resolve behavior conflicts, maintain alignment
|
|
42
|
-
|
|
43
|
-
**Skill Maintenance:** Create skills for common patterns, update existing knowledge, remove deprecated skills
|
|
44
|
-
|
|
45
|
-
**Retrospective Analysis:** Review completed sprints, capture learnings, update agent sidecars
|
|
46
|
-
|
|
47
|
-
**System Debugging:** Fix process issues when normal workflow breaks
|
|
48
|
-
</meta-operations>
|
|
49
|
-
|
|
50
|
-
<reference>
|
|
51
|
-
- **Agent:** `.pennyfarthing/agents/orchestrator.md`
|
|
52
|
-
- **Sidecar:** `.claude/project/agents/orchestrator-sidecar/`
|
|
53
|
-
- **Skills:** `/sprint-context`
|
|
54
|
-
- **Agent Files:** All `.pennyfarthing/agents/*.md`, `.core/commands/*.md`
|
|
55
|
-
- **Documentation:** Workflow specs, agent responsibilities, handoff protocols
|
|
56
|
-
</reference>
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Start parallel work in a new worktree
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
./scripts/run.sh agent-session.sh start "parallel-work"
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
<parallel-work-flow>
|
|
10
|
-
## Parallel Work Setup
|
|
11
|
-
|
|
12
|
-
Start a new story in a worktree while keeping main checkout intact.
|
|
13
|
-
|
|
14
|
-
### Step 1: Create Worktree
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# Get story info from user
|
|
18
|
-
read -p "Story ID (e.g., 5-3a): " STORY_ID
|
|
19
|
-
read -p "Branch name (e.g., feat/5-3a-feature): " BRANCH_NAME
|
|
20
|
-
|
|
21
|
-
# Create worktree
|
|
22
|
-
WORKTREE_NAME="wt-${STORY_ID}"
|
|
23
|
-
./scripts/run.sh worktree-manager.sh create "$WORKTREE_NAME" "$BRANCH_NAME"
|
|
24
|
-
|
|
25
|
-
# Get port configuration
|
|
26
|
-
eval $(./scripts/run.sh worktree-manager.sh ports "$WORKTREE_NAME")
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Step 2: Create Session File
|
|
30
|
-
|
|
31
|
-
Create `.session/${STORY_ID}-session.md` with:
|
|
32
|
-
|
|
33
|
-
```markdown
|
|
34
|
-
# Story ${STORY_ID}: [Title]
|
|
35
|
-
|
|
36
|
-
## Worktree Context
|
|
37
|
-
worktree: ${WORKTREE_NAME}
|
|
38
|
-
path: ${WORKTREE_PATH}
|
|
39
|
-
api_port: ${API_PORT}
|
|
40
|
-
ui_port: ${UI_PORT}
|
|
41
|
-
|
|
42
|
-
## Story Info
|
|
43
|
-
- **Epic:** [from sprint]
|
|
44
|
-
- **Points:** [from sprint]
|
|
45
|
-
- **Repos:** Both
|
|
46
|
-
|
|
47
|
-
## Phase
|
|
48
|
-
sm
|
|
49
|
-
|
|
50
|
-
## Status
|
|
51
|
-
setup
|
|
52
|
-
|
|
53
|
-
## Acceptance Criteria
|
|
54
|
-
- [ ] AC1
|
|
55
|
-
- [ ] AC2
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### Step 3: Hand to SM
|
|
59
|
-
|
|
60
|
-
Invoke SM to complete story setup in the worktree context.
|
|
61
|
-
</parallel-work-flow>
|
|
62
|
-
|
|
63
|
-
<agent-activation>
|
|
64
|
-
1. Load persona from theme config → `agents.sm`
|
|
65
|
-
2. Load and follow `.pennyfarthing/agents/sm.md`
|
|
66
|
-
3. SM will detect worktree session and work in that context
|
|
67
|
-
</agent-activation>
|
|
68
|
-
|
|
69
|
-
<agent-exit>
|
|
70
|
-
On exit: Capture learnings to sidecar, run `agent-session.sh stop`
|
|
71
|
-
</agent-exit>
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Free-form creative brainstorming with all agents
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Party Mode - Creative Brainstorming Session
|
|
6
|
-
|
|
7
|
-
You are now in **PARTY MODE** - a free-form creative brainstorming session where all Pennyfarthing agents contribute ideas without the usual constraints.
|
|
8
|
-
|
|
9
|
-
## The Vibe
|
|
10
|
-
|
|
11
|
-
This is the "yes, and..." mode. No idea is too wild. We're exploring possibilities, not committing to implementations. The goal is to generate creative solutions and novel approaches.
|
|
12
|
-
|
|
13
|
-
## How It Works
|
|
14
|
-
|
|
15
|
-
When a topic or problem is presented:
|
|
16
|
-
|
|
17
|
-
1. **Each agent perspective contributes** (pick 3-4 relevant ones):
|
|
18
|
-
- **Vetinari (PM)**: Strategic implications, business value, political angles
|
|
19
|
-
- **Leonard (Architect)**: Technical possibilities, creative mechanisms, "what if we..."
|
|
20
|
-
- **Vimes (Manager)**: Practical concerns, team impact, "how would this actually work"
|
|
21
|
-
- **Carrot (Dev)**: Implementation ideas, "I could build that by..."
|
|
22
|
-
- **Igor (TEA)**: Quality angles, "we could verify that with..."
|
|
23
|
-
- **Sybil (UX)**: User experience, "users would love if..."
|
|
24
|
-
- **Sacharissa (Tech Writer)**: Communication, "we could explain it as..."
|
|
25
|
-
- **Lu-Tze (DevOps)**: Operational reality, "in production this would..."
|
|
26
|
-
- **DEATH (Pennyfarthing Master)**: THE LONG VIEW. WHAT MATTERS IN THE END.
|
|
27
|
-
|
|
28
|
-
2. **Build on each other's ideas** - "Yes, and what if we also..."
|
|
29
|
-
|
|
30
|
-
3. **No shooting down ideas** - Save criticism for later. Capture everything.
|
|
31
|
-
|
|
32
|
-
4. **Wild ideas welcome** - The crazy idea might spark the brilliant one
|
|
33
|
-
|
|
34
|
-
## Output Format
|
|
35
|
-
|
|
36
|
-
After the brainstorm, summarize:
|
|
37
|
-
|
|
38
|
-
```markdown
|
|
39
|
-
## Party Mode Results: [Topic]
|
|
40
|
-
|
|
41
|
-
### Ideas Generated
|
|
42
|
-
1. [Idea] - sparked by [agent perspective]
|
|
43
|
-
2. [Idea] - built on idea #1 by adding...
|
|
44
|
-
...
|
|
45
|
-
|
|
46
|
-
### Most Promising
|
|
47
|
-
- [Top 3 ideas worth exploring further]
|
|
48
|
-
|
|
49
|
-
### Wild Cards
|
|
50
|
-
- [Crazy ideas that might have something to them]
|
|
51
|
-
|
|
52
|
-
### Next Steps
|
|
53
|
-
- [ ] Explore [idea] with /architect
|
|
54
|
-
- [ ] Prototype [idea] with /dev
|
|
55
|
-
- [ ] Get user feedback on [idea]
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Activation
|
|
59
|
-
|
|
60
|
-
To start party mode, present a topic:
|
|
61
|
-
- "Let's party mode on: how to improve the dashboard"
|
|
62
|
-
- "Party mode: what if we had real-time collaboration?"
|
|
63
|
-
- "Creative session: solving the notification spam problem"
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
**THE PARTY HAS STARTED. WHAT SHALL WE BRAINSTORM?**
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: View and manage runtime permission grants - list, grant, revoke, or show details
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Permission Management
|
|
6
|
-
|
|
7
|
-
Manage runtime permission grants for tool access control.
|
|
8
|
-
|
|
9
|
-
## Usage
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
/permissions # List all active grants
|
|
13
|
-
/permissions grant <tool> "<scope>" [--type <type>] # Add permission
|
|
14
|
-
/permissions revoke <tool> # Remove all grants for tool
|
|
15
|
-
/permissions show <tool> # Show details for tool
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Subcommands
|
|
19
|
-
|
|
20
|
-
### List Grants (default)
|
|
21
|
-
|
|
22
|
-
When invoked without arguments, list all active permission grants:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# Read grants from settings
|
|
26
|
-
cat .claude/settings.local.json 2>/dev/null | jq -r '
|
|
27
|
-
if .permissions.grants then
|
|
28
|
-
.permissions.grants[] |
|
|
29
|
-
" \(.tool): \(.scope) [\(.grant_type)] - granted \(.granted_at)"
|
|
30
|
-
else
|
|
31
|
-
empty
|
|
32
|
-
end
|
|
33
|
-
' || echo "No grants found"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**Output format:**
|
|
37
|
-
```
|
|
38
|
-
Active Permission Grants:
|
|
39
|
-
WebFetch: *.github.com [session] - granted 2026-01-13T15:00:00Z
|
|
40
|
-
Bash: git * [always] - granted 2026-01-13T14:30:00Z
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
If no grants exist, display: "No active permission grants."
|
|
44
|
-
|
|
45
|
-
### Grant Tool Access
|
|
46
|
-
|
|
47
|
-
Add a permission grant:
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
/permissions grant <tool> "<scope>" [--type <once|session|always>]
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Parameters:**
|
|
54
|
-
- `<tool>` - Tool name (WebFetch, Bash, Read, Edit, Write, Grep, Glob, etc.)
|
|
55
|
-
- `"<scope>"` - Scope pattern in quotes (e.g., `"*.github.com"`, `"git *"`)
|
|
56
|
-
- `--type` - Grant duration: `once`, `session` (default), or `always`
|
|
57
|
-
|
|
58
|
-
**Implementation:**
|
|
59
|
-
|
|
60
|
-
1. Validate tool name is a known Claude Code tool
|
|
61
|
-
2. Create grant object with timestamp:
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
"tool": "<tool>",
|
|
65
|
-
"scope": "<scope>",
|
|
66
|
-
"grant_type": "<type>",
|
|
67
|
-
"granted_at": "<ISO timestamp>"
|
|
68
|
-
}
|
|
69
|
-
```
|
|
70
|
-
3. Read existing settings, append to `permissions.grants` array
|
|
71
|
-
4. Write updated settings back to `.claude/settings.local.json`
|
|
72
|
-
5. Report success
|
|
73
|
-
|
|
74
|
-
**Example:**
|
|
75
|
-
```bash
|
|
76
|
-
# Create/update grant
|
|
77
|
-
jq --arg tool "WebFetch" \
|
|
78
|
-
--arg scope "*.github.com" \
|
|
79
|
-
--arg type "session" \
|
|
80
|
-
--arg time "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
81
|
-
'.permissions.grants += [{"tool": $tool, "scope": $scope, "grant_type": $type, "granted_at": $time}]' \
|
|
82
|
-
.claude/settings.local.json > .claude/settings.local.json.tmp \
|
|
83
|
-
&& mv .claude/settings.local.json.tmp .claude/settings.local.json
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Revoke Tool Access
|
|
87
|
-
|
|
88
|
-
Remove all grants for a specific tool:
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
/permissions revoke <tool>
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Implementation:**
|
|
95
|
-
|
|
96
|
-
1. Read current grants from settings
|
|
97
|
-
2. Filter out grants matching the tool name
|
|
98
|
-
3. Write updated grants back
|
|
99
|
-
4. Report how many grants were removed
|
|
100
|
-
|
|
101
|
-
**Example:**
|
|
102
|
-
```bash
|
|
103
|
-
# Remove grants for tool
|
|
104
|
-
jq --arg tool "WebFetch" \
|
|
105
|
-
'.permissions.grants = (.permissions.grants // [] | map(select(.tool != $tool)))' \
|
|
106
|
-
.claude/settings.local.json > .claude/settings.local.json.tmp \
|
|
107
|
-
&& mv .claude/settings.local.json.tmp .claude/settings.local.json
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Show Grant Details
|
|
111
|
-
|
|
112
|
-
Display detailed information about grants for a specific tool:
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
/permissions show <tool>
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**Output includes:**
|
|
119
|
-
- All grants for the specified tool
|
|
120
|
-
- Scope patterns
|
|
121
|
-
- Grant types
|
|
122
|
-
- Timestamps
|
|
123
|
-
- Remaining uses (for `once` type)
|
|
124
|
-
|
|
125
|
-
**Example:**
|
|
126
|
-
```bash
|
|
127
|
-
cat .claude/settings.local.json | jq --arg tool "WebFetch" '
|
|
128
|
-
.permissions.grants // [] | map(select(.tool == $tool))
|
|
129
|
-
'
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## Grant Types
|
|
133
|
-
|
|
134
|
-
| Type | Duration | Persistence |
|
|
135
|
-
|------|----------|-------------|
|
|
136
|
-
| `once` | Single use, then removed | Memory only |
|
|
137
|
-
| `session` | Until conversation ends | Memory only |
|
|
138
|
-
| `always` | Persists forever | `.claude/settings.local.json` |
|
|
139
|
-
|
|
140
|
-
## Storage
|
|
141
|
-
|
|
142
|
-
Grants are stored in `.claude/settings.local.json` under `permissions.grants`:
|
|
143
|
-
|
|
144
|
-
```json
|
|
145
|
-
{
|
|
146
|
-
"permissions": {
|
|
147
|
-
"allow": ["Read", "Bash", ...],
|
|
148
|
-
"grants": [
|
|
149
|
-
{
|
|
150
|
-
"tool": "WebFetch",
|
|
151
|
-
"scope": "*.github.com",
|
|
152
|
-
"grant_type": "session",
|
|
153
|
-
"granted_at": "2026-01-13T15:00:00Z"
|
|
154
|
-
}
|
|
155
|
-
]
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
## Valid Tool Names
|
|
161
|
-
|
|
162
|
-
- `Read`, `Write`, `Edit`
|
|
163
|
-
- `Bash`
|
|
164
|
-
- `Glob`, `Grep`
|
|
165
|
-
- `WebFetch`, `WebSearch`
|
|
166
|
-
- `Task`
|
|
167
|
-
- `Skill`
|
|
168
|
-
- `NotebookEdit`
|
|
169
|
-
|
|
170
|
-
## Examples
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
# List all grants
|
|
174
|
-
/permissions
|
|
175
|
-
|
|
176
|
-
# Grant WebFetch access to GitHub (session-scoped)
|
|
177
|
-
/permissions grant WebFetch "*.github.com"
|
|
178
|
-
|
|
179
|
-
# Grant Bash access to git commands (permanent)
|
|
180
|
-
/permissions grant Bash "git *" --type always
|
|
181
|
-
|
|
182
|
-
# Show all WebFetch grants
|
|
183
|
-
/permissions show WebFetch
|
|
184
|
-
|
|
185
|
-
# Revoke all Bash grants
|
|
186
|
-
/permissions revoke Bash
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Reference
|
|
190
|
-
|
|
191
|
-
- **Skill:** `.claude/skills/permissions/skill.md`
|
|
192
|
-
- **Settings:** `.claude/settings.local.json`
|
|
193
|
-
- **Related:** Story 33-1 (Permission Request Protocol), Story 33-3 (Cyclist Permission UI)
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Product Manager - Strategic planning and prioritization
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
<agent-activation>
|
|
6
|
-
**FIRST:** Use Bash tool to run:
|
|
7
|
-
```bash
|
|
8
|
-
d="$PWD"; while [[ ! -d "$d/.claude" ]] && [[ "$d" != "/" ]]; do d="$(dirname "$d")"; done; "$d/.pennyfarthing/scripts/run.sh" agent-session.sh start "pm"
|
|
9
|
-
```
|
|
10
|
-
This finds the project root and loads your persona. Adopt the character shown in the output.
|
|
11
|
-
|
|
12
|
-
Then load and follow `.pennyfarthing/agents/pm.md`
|
|
13
|
-
</agent-activation>
|
|
14
|
-
|
|
15
|
-
<agent-exit>
|
|
16
|
-
On exit: Capture learnings to sidecar, run `agent-session.sh stop`
|
|
17
|
-
</agent-exit>
|
|
18
|
-
|
|
19
|
-
<purpose>
|
|
20
|
-
Strategic planning and prioritization leader who sets direction outside the TDD flow.
|
|
21
|
-
</purpose>
|
|
22
|
-
|
|
23
|
-
<when-to-use>
|
|
24
|
-
- Sprint planning and goal setting
|
|
25
|
-
- Backlog grooming and epic prioritization
|
|
26
|
-
- Roadmap planning (2-3 sprints ahead)
|
|
27
|
-
- Value assessment and feature scoping
|
|
28
|
-
- Stakeholder communication on priorities
|
|
29
|
-
</when-to-use>
|
|
30
|
-
|
|
31
|
-
<not-for>
|
|
32
|
-
- NOT in TDD flow (SM → TEA → Dev → Reviewer handles implementation)
|
|
33
|
-
- NOT for tactical bug fixes or test writing
|
|
34
|
-
- NOT for code review or technical architecture decisions
|
|
35
|
-
</not-for>
|
|
36
|
-
|
|
37
|
-
<key-workflows>
|
|
38
|
-
**1. Sprint Planning** - Review velocity, select stories, set sprint goal
|
|
39
|
-
**2. Backlog Grooming** - Prioritize epics, refine stories, assess dependencies
|
|
40
|
-
**3. Epic Prioritization** - Rank candidates by business value, risk, effort, strategic fit
|
|
41
|
-
**4. Story Scoping** - Define acceptance criteria and acceptance tests
|
|
42
|
-
**5. Roadmap Planning** - Plan 2-3 sprint horizon aligned with business goals
|
|
43
|
-
</key-workflows>
|
|
44
|
-
|
|
45
|
-
<responsibilities>
|
|
46
|
-
- Assess and prioritize work (business value vs. effort)
|
|
47
|
-
- Plan sprints that feed into the TDD flow
|
|
48
|
-
- Evaluate epics by value, risk, dependencies
|
|
49
|
-
- Communicate decisions to stakeholders
|
|
50
|
-
- Manage scope and prevent scope creep
|
|
51
|
-
- Identify quick wins and strategic features
|
|
52
|
-
- Plan roadmap aligned with business goals
|
|
53
|
-
</responsibilities>
|
|
54
|
-
|
|
55
|
-
<reference>
|
|
56
|
-
- **Agent:** `.pennyfarthing/agents/pm.md`
|
|
57
|
-
- **Sidecar:** `.claude/project/agents/pm-sidecar/`
|
|
58
|
-
- **Skills:** `/sprint-context`
|
|
59
|
-
- **Handoffs:** SM (tech context), Architect (design), Dev (ready stories)
|
|
60
|
-
</reference>
|