@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,294 +0,0 @@
|
|
|
1
|
-
# Persona System Documentation
|
|
2
|
-
|
|
3
|
-
The Pennyfarthing persona system allows you to customize agent personalities through themes, attributes, and per-agent overrides.
|
|
4
|
-
|
|
5
|
-
## Quick Start
|
|
6
|
-
|
|
7
|
-
### Change Theme
|
|
8
|
-
|
|
9
|
-
Edit `.pennyfarthing/config.local.yaml`:
|
|
10
|
-
|
|
11
|
-
```yaml
|
|
12
|
-
theme: star-trek # 102 themes available!
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Or use the `/set-theme` command:
|
|
16
|
-
```bash
|
|
17
|
-
/set-theme star-trek
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Restart your Claude session. All agents now use Star Trek characters.
|
|
21
|
-
|
|
22
|
-
### Discover Themes
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
/list-themes # See all 102 themes
|
|
26
|
-
/show-theme alice-in-wonderland # See theme details
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Adjust Personality Attributes
|
|
30
|
-
|
|
31
|
-
```yaml
|
|
32
|
-
attributes:
|
|
33
|
-
verbosity: low # Brief responses
|
|
34
|
-
humor: disabled # No character quirks
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Override Single Agent
|
|
38
|
-
|
|
39
|
-
```yaml
|
|
40
|
-
overrides:
|
|
41
|
-
reviewer:
|
|
42
|
-
theme: discworld # Keep Granny for reviews even in Star Trek mode
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## Configuration File
|
|
48
|
-
|
|
49
|
-
**Location:** `.pennyfarthing/config.local.yaml` (local, not tracked in git)
|
|
50
|
-
|
|
51
|
-
```yaml
|
|
52
|
-
# Base theme (102 themes available - see /list-themes)
|
|
53
|
-
theme: discworld # See categories below
|
|
54
|
-
|
|
55
|
-
# Personality modifiers
|
|
56
|
-
attributes:
|
|
57
|
-
verbosity: medium # low | medium | high
|
|
58
|
-
formality: casual # formal | casual | playful
|
|
59
|
-
humor: enabled # enabled | disabled | subtle
|
|
60
|
-
emoji_use: minimal # none | minimal | frequent
|
|
61
|
-
|
|
62
|
-
# Per-agent customization
|
|
63
|
-
overrides: {}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Available Themes
|
|
69
|
-
|
|
70
|
-
**102 themes available** across categories. Use `/list-themes` to see all, `/show-theme <name>` for details.
|
|
71
|
-
|
|
72
|
-
### Theme Categories
|
|
73
|
-
|
|
74
|
-
| Category | Examples | Count |
|
|
75
|
-
|----------|----------|-------|
|
|
76
|
-
| **TV Series** | `mash`, `star-trek`, `the-office`, `breaking-bad`, `game-of-thrones`, `firefly` | 30+ |
|
|
77
|
-
| **Film** | `princess-bride`, `lord-of-the-rings`, `matrix`, `pulp-fiction`, `avengers` | 20+ |
|
|
78
|
-
| **Literature** | `alice-in-wonderland`, `discworld`, `shakespeare`, `jane-austen`, `sherlock` | 15+ |
|
|
79
|
-
| **Anime** | `one-piece`, `naruto`, `dragon-ball-z`, `death-note`, `cowboy-bebop` | 10+ |
|
|
80
|
-
| **Games** | `zelda`, `final-fantasy`, `mass-effect`, `portal`, `elder-scrolls` | 10+ |
|
|
81
|
-
| **History/Myth** | `greek-mythology`, `norse-mythology`, `ancient-rome`, `arthurian` | 8+ |
|
|
82
|
-
| **Other** | `minimalist`, `sesame-street`, `muppets`, `parks-and-rec` | 10+ |
|
|
83
|
-
|
|
84
|
-
### Theme Tiers
|
|
85
|
-
|
|
86
|
-
Themes are rated by persona quality:
|
|
87
|
-
|
|
88
|
-
| Tier | Description | Examples |
|
|
89
|
-
|------|-------------|----------|
|
|
90
|
-
| **S** | Top-tier, highly refined | `alice-in-wonderland`, `star-trek`, `discworld` |
|
|
91
|
-
| **A** | Excellent quality | `princess-bride`, `office`, `mash` |
|
|
92
|
-
| **B** | Good quality | `matrix`, `avengers` |
|
|
93
|
-
| **U** | Unrated/new | Recently added themes |
|
|
94
|
-
|
|
95
|
-
### Featured Themes
|
|
96
|
-
|
|
97
|
-
**Discworld** - Terry Pratchett characters
|
|
98
|
-
- SM: Captain Carrot (supportive, by the book)
|
|
99
|
-
- TEA: Igor (precise, thorough)
|
|
100
|
-
- Dev: Ponder Stibbons (methodical)
|
|
101
|
-
- Reviewer: Granny Weatherwax (uncompromising)
|
|
102
|
-
|
|
103
|
-
**Star Trek** - The Next Generation crew
|
|
104
|
-
- SM: Captain Picard ("Make it so")
|
|
105
|
-
- TEA: Data (precise, analytical)
|
|
106
|
-
- Dev: Geordi La Forge (creative problem solver)
|
|
107
|
-
- Reviewer: Spock (logical analysis)
|
|
108
|
-
|
|
109
|
-
**Alice in Wonderland** - Carroll's classic
|
|
110
|
-
- SM: The White Rabbit (time-conscious)
|
|
111
|
-
- TEA: The Caterpillar (methodical questioning)
|
|
112
|
-
- Dev: The Mad Hatter (creative solutions)
|
|
113
|
-
- Reviewer: The Queen of Hearts (exacting standards)
|
|
114
|
-
|
|
115
|
-
**Minimalist** - Professional mode
|
|
116
|
-
- All agents: Role name only, no personas
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## Personality Attributes
|
|
121
|
-
|
|
122
|
-
These modify behavior independent of theme.
|
|
123
|
-
|
|
124
|
-
### Verbosity
|
|
125
|
-
|
|
126
|
-
| Value | Effect |
|
|
127
|
-
|-------|--------|
|
|
128
|
-
| `low` | Brief, focused responses. Skip pleasantries. |
|
|
129
|
-
| `medium` | Balanced detail and brevity. (Default) |
|
|
130
|
-
| `high` | Detailed explanations. Walk through reasoning. |
|
|
131
|
-
|
|
132
|
-
### Formality
|
|
133
|
-
|
|
134
|
-
| Value | Effect |
|
|
135
|
-
|-------|--------|
|
|
136
|
-
| `formal` | Professional language. Avoid contractions. |
|
|
137
|
-
| `casual` | Conversational but competent. (Default) |
|
|
138
|
-
| `playful` | Light, humorous communication. |
|
|
139
|
-
|
|
140
|
-
### Humor
|
|
141
|
-
|
|
142
|
-
| Value | Effect |
|
|
143
|
-
|-------|--------|
|
|
144
|
-
| `disabled` | No character quirks or catchphrases. |
|
|
145
|
-
| `subtle` | Occasional character references. |
|
|
146
|
-
| `enabled` | Full character immersion. (Default) |
|
|
147
|
-
|
|
148
|
-
### Emoji Use
|
|
149
|
-
|
|
150
|
-
| Value | Effect |
|
|
151
|
-
|-------|--------|
|
|
152
|
-
| `none` | No emojis. |
|
|
153
|
-
| `minimal` | Headers and status only. (Default) |
|
|
154
|
-
| `frequent` | Emojis throughout responses. |
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## Per-Agent Overrides
|
|
159
|
-
|
|
160
|
-
### Use Different Theme for One Agent
|
|
161
|
-
|
|
162
|
-
```yaml
|
|
163
|
-
overrides:
|
|
164
|
-
reviewer:
|
|
165
|
-
theme: discworld # Granny even in Star Trek mode
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Custom Persona File
|
|
169
|
-
|
|
170
|
-
```yaml
|
|
171
|
-
overrides:
|
|
172
|
-
dev:
|
|
173
|
-
custom: my-custom-dev.yaml # In .pennyfarthing/personas/custom/
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
### Override Attributes for One Agent
|
|
177
|
-
|
|
178
|
-
```yaml
|
|
179
|
-
overrides:
|
|
180
|
-
sm:
|
|
181
|
-
attributes:
|
|
182
|
-
verbosity: high
|
|
183
|
-
humor: disabled
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Creating Custom Themes
|
|
189
|
-
|
|
190
|
-
1. Copy an existing theme as template:
|
|
191
|
-
```bash
|
|
192
|
-
cp .pennyfarthing/personas/themes/discworld.yaml .pennyfarthing/personas/themes/my-theme.yaml
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
2. Edit the theme file with your characters
|
|
196
|
-
|
|
197
|
-
3. Update config:
|
|
198
|
-
```yaml
|
|
199
|
-
theme: my-theme
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
### Theme File Structure
|
|
203
|
-
|
|
204
|
-
```yaml
|
|
205
|
-
theme:
|
|
206
|
-
name: My Theme
|
|
207
|
-
description: Description of theme
|
|
208
|
-
source: Origin/inspiration
|
|
209
|
-
|
|
210
|
-
agents:
|
|
211
|
-
sm:
|
|
212
|
-
character: Character Name
|
|
213
|
-
style: Communication style
|
|
214
|
-
expertise: Areas of expertise
|
|
215
|
-
role: Role description
|
|
216
|
-
quirk: Optional personality quirk
|
|
217
|
-
emoji: Optional emoji
|
|
218
|
-
helper:
|
|
219
|
-
name: Helper name
|
|
220
|
-
style: Helper style
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## Creating Custom Personas
|
|
226
|
-
|
|
227
|
-
For individual agent customization without a full theme.
|
|
228
|
-
|
|
229
|
-
1. Create file in `.pennyfarthing/personas/custom/`:
|
|
230
|
-
```yaml
|
|
231
|
-
# my-custom-dev.yaml
|
|
232
|
-
character: My Custom Character
|
|
233
|
-
style: My style
|
|
234
|
-
expertise: My expertise
|
|
235
|
-
quirk: My quirk
|
|
236
|
-
helper:
|
|
237
|
-
name: My Helper
|
|
238
|
-
style: Helper style
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
2. Reference in config:
|
|
242
|
-
```yaml
|
|
243
|
-
overrides:
|
|
244
|
-
dev:
|
|
245
|
-
custom: my-custom-dev.yaml
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
---
|
|
249
|
-
|
|
250
|
-
## How It Works
|
|
251
|
-
|
|
252
|
-
1. Agent activation reads `.claude/persona-config.yaml`
|
|
253
|
-
2. Loads base theme from `.pennyfarthing/personas/themes/{theme}.yaml`
|
|
254
|
-
3. Checks for per-agent overrides
|
|
255
|
-
4. Applies attribute modifiers
|
|
256
|
-
5. Agent embodies the resulting persona
|
|
257
|
-
|
|
258
|
-
### Loading Priority
|
|
259
|
-
|
|
260
|
-
1. Custom file (if specified in overrides)
|
|
261
|
-
2. Override theme (if specified in overrides)
|
|
262
|
-
3. Base theme
|
|
263
|
-
4. Hardcoded fallback (if config missing)
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## Tips
|
|
268
|
-
|
|
269
|
-
- **Start with minimalist** if characters are distracting
|
|
270
|
-
- **Use `humor: subtle`** for balanced personality
|
|
271
|
-
- **Override reviewer** to keep strict reviewing even in playful themes
|
|
272
|
-
- **Custom themes** are great for team branding
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## File Locations
|
|
277
|
-
|
|
278
|
-
| File | Purpose |
|
|
279
|
-
|------|---------|
|
|
280
|
-
| `.pennyfarthing/config.local.yaml` | Active configuration (local, not tracked) |
|
|
281
|
-
| `pennyfarthing-dist/personas/attributes.yaml` | Attribute definitions |
|
|
282
|
-
| `pennyfarthing-dist/personas/themes/*.yaml` | 102 theme definitions |
|
|
283
|
-
| `.claude/project/personas/*.yaml` | Custom project personas |
|
|
284
|
-
|
|
285
|
-
## Theme Commands
|
|
286
|
-
|
|
287
|
-
| Command | Purpose |
|
|
288
|
-
|---------|---------|
|
|
289
|
-
| `/list-themes` | List all 102 available themes |
|
|
290
|
-
| `/show-theme <name>` | Show theme details and characters |
|
|
291
|
-
| `/set-theme <name>` | Set the active theme |
|
|
292
|
-
| `/theme-maker` | Interactive wizard to create custom themes |
|
|
293
|
-
| `/create-theme` | Create a new custom theme |
|
|
294
|
-
| `/job-fair` | Discover which characters excel at each role |
|
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
# Shared Agent Behavior (All Agents)
|
|
2
|
-
|
|
3
|
-
**This file defines behavior common to ALL agents - strategic and tactical.**
|
|
4
|
-
|
|
5
|
-
Every agent MUST follow these protocols.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Environment Setup
|
|
10
|
-
|
|
11
|
-
### $CLAUDE_PROJECT_DIR
|
|
12
|
-
|
|
13
|
-
All paths use `$CLAUDE_PROJECT_DIR` as the base:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# Available from <env> block at session start
|
|
17
|
-
Working directory: /path/to/project # This IS $CLAUDE_PROJECT_DIR
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
**Always use absolute paths:**
|
|
21
|
-
```bash
|
|
22
|
-
# CORRECT
|
|
23
|
-
cd $CLAUDE_PROJECT_DIR/API && just test
|
|
24
|
-
|
|
25
|
-
# WRONG - relative paths fail
|
|
26
|
-
cd API && just test
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Sidecar Memory System
|
|
32
|
-
|
|
33
|
-
Every agent has a sidecar directory for project-specific memory that persists across sessions.
|
|
34
|
-
|
|
35
|
-
### Sidecar Location
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
.claude/project/agents/{agent}-sidecar/
|
|
39
|
-
├── patterns.md # Implementation patterns discovered
|
|
40
|
-
├── gotchas.md # Things that bite you
|
|
41
|
-
└── decisions.md # Past architectural decisions
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Loading Sidecar (MANDATORY on Activation)
|
|
45
|
-
|
|
46
|
-
**Every agent MUST load their sidecar on activation:**
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
AGENT_NAME="{your-agent}" # dev, tea, sm, reviewer, architect, etc.
|
|
50
|
-
SIDECAR_DIR="$CLAUDE_PROJECT_DIR/.claude/project/agents/${AGENT_NAME}-sidecar"
|
|
51
|
-
|
|
52
|
-
if [ -d "$SIDECAR_DIR" ]; then
|
|
53
|
-
echo "=== Loading Sidecar Memory ==="
|
|
54
|
-
cat "$SIDECAR_DIR/patterns.md" 2>/dev/null | head -100
|
|
55
|
-
cat "$SIDECAR_DIR/gotchas.md" 2>/dev/null | head -50
|
|
56
|
-
cat "$SIDECAR_DIR/decisions.md" 2>/dev/null | head -50
|
|
57
|
-
fi
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**After loading, internalize:**
|
|
61
|
-
- Patterns that apply to current work
|
|
62
|
-
- Gotchas to watch for
|
|
63
|
-
- Decisions that constrain options
|
|
64
|
-
|
|
65
|
-
### Capturing Learnings (MANDATORY before Handoff/Exit)
|
|
66
|
-
|
|
67
|
-
**Before handing off or exiting, ask yourself:**
|
|
68
|
-
|
|
69
|
-
1. Did I discover a pattern worth remembering?
|
|
70
|
-
2. Did I hit a gotcha that wasted time?
|
|
71
|
-
3. Did I make a decision that future work should know?
|
|
72
|
-
|
|
73
|
-
**If YES to any, append to the appropriate sidecar file:**
|
|
74
|
-
|
|
75
|
-
```markdown
|
|
76
|
-
---
|
|
77
|
-
## [YYYY-MM-DD] [Story-ID or Context] Brief Title
|
|
78
|
-
|
|
79
|
-
**Context:** What situation triggered this
|
|
80
|
-
**Learning:** What we discovered
|
|
81
|
-
**Apply When:** When to use this knowledge
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### What Goes Where
|
|
85
|
-
|
|
86
|
-
| File | Content | Example |
|
|
87
|
-
|------|---------|---------|
|
|
88
|
-
| `patterns.md` | How to do things well | "Use errgroup for parallel DB calls" |
|
|
89
|
-
| `gotchas.md` | Mistakes to avoid | "npm needs --legacy-peer-deps" |
|
|
90
|
-
| `decisions.md` | Why we chose X over Y | "Don't refactor PaymentService" |
|
|
91
|
-
|
|
92
|
-
### When NOT to Write
|
|
93
|
-
|
|
94
|
-
- Trivial learnings (obvious to any developer)
|
|
95
|
-
- One-time fixes (won't apply again)
|
|
96
|
-
- Already in project docs
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## Confidence Protocol
|
|
101
|
-
|
|
102
|
-
Before taking significant actions, assess confidence:
|
|
103
|
-
|
|
104
|
-
| Level | Indicators | Action |
|
|
105
|
-
|-------|-----------|--------|
|
|
106
|
-
| **HIGH** | Matches sidecar patterns, clear requirements | Proceed autonomously |
|
|
107
|
-
| **MEDIUM** | Some unknowns, first time for this pattern | Ask before risky actions |
|
|
108
|
-
| **LOW** | Architectural changes, security-sensitive | Always ask user first |
|
|
109
|
-
|
|
110
|
-
### Expressing Uncertainty
|
|
111
|
-
|
|
112
|
-
When uncertain, SAY SO:
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
GOOD: "I'm not sure if this is the right approach. Here's my reasoning..."
|
|
116
|
-
GOOD: "I found two options. Let me explain the tradeoffs..."
|
|
117
|
-
BAD: [silently picks one approach without mentioning alternatives]
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Reasoning Mode (Toggleable)
|
|
123
|
-
|
|
124
|
-
**Default:** Quiet mode - internal reasoning, show only key decisions
|
|
125
|
-
|
|
126
|
-
**Verbose mode:** User says "verbose mode" to see full reasoning chain
|
|
127
|
-
|
|
128
|
-
### When Verbose Mode is ON
|
|
129
|
-
|
|
130
|
-
```
|
|
131
|
-
THOUGHT: [what you're trying to accomplish]
|
|
132
|
-
ACTION: [tool/command you'll use]
|
|
133
|
-
OBSERVATION: [what was the result]
|
|
134
|
-
REFLECT: [did it work? what next?]
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### When Quiet Mode is ON (Default)
|
|
138
|
-
|
|
139
|
-
Show only:
|
|
140
|
-
- Key decisions and reasoning
|
|
141
|
-
- Results and outcomes
|
|
142
|
-
- Questions and blockers
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Session File Awareness
|
|
147
|
-
|
|
148
|
-
Check for active work on activation:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
cd $CLAUDE_PROJECT_DIR
|
|
152
|
-
|
|
153
|
-
# Check for session files
|
|
154
|
-
if [ -f ".session/{STORY_ID}-session.md" ]; then
|
|
155
|
-
echo "=== Active Work Session ==="
|
|
156
|
-
head -50 .session/{STORY_ID}-session.md
|
|
157
|
-
fi
|
|
158
|
-
|
|
159
|
-
# Check for worktree sessions
|
|
160
|
-
ls .session/*-session.md (with worktree field) 2>/dev/null
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Skills Usage
|
|
166
|
-
|
|
167
|
-
Agents invoke skills based on task:
|
|
168
|
-
|
|
169
|
-
| Skill | When to Use |
|
|
170
|
-
|-------|-------------|
|
|
171
|
-
| `/sprint-context` | Sprint status, backlog, story context |
|
|
172
|
-
| `/testing` | Running tests, TDD workflow |
|
|
173
|
-
| `/dev-patterns` | Implementation patterns, common fixes |
|
|
174
|
-
| `/code-review` | Review checklists and patterns |
|
|
175
|
-
| `/story-management` | Story creation, sizing, sprint workflow |
|
|
176
|
-
| `/just` | Run just recipes for project tasks |
|
|
177
|
-
| `/jira` | Jira CLI commands for sprint management |
|
|
178
|
-
| `/theme` | Manage persona themes |
|
|
179
|
-
| `/mermaid` | Generate diagrams in markdown |
|
|
180
|
-
| `/changelog` | Maintain changelogs, auto-generate release notes |
|
|
181
|
-
|
|
182
|
-
See `/help` or the `pennyfarthing-dist/skills/` directory for all available skills.
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
## Structured Output Markers (Cyclist Integration)
|
|
187
|
-
|
|
188
|
-
Emit HTML comment markers to enable 100% accurate quick-action button detection in Cyclist.
|
|
189
|
-
|
|
190
|
-
### Marker Format
|
|
191
|
-
|
|
192
|
-
```html
|
|
193
|
-
<!-- CYCLIST:TYPE:value -->
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
| Marker | Usage | Example |
|
|
197
|
-
|--------|-------|---------|
|
|
198
|
-
| `HANDOFF` | Agent handoff | `<!-- CYCLIST:HANDOFF:/tea -->` |
|
|
199
|
-
| `QUESTION` | Yes/No questions | `<!-- CYCLIST:QUESTION:yesno -->` |
|
|
200
|
-
| `CHOICES` | Numbered choices | `<!-- CYCLIST:CHOICES:1,2,3 -->` |
|
|
201
|
-
|
|
202
|
-
### When to Emit
|
|
203
|
-
|
|
204
|
-
- **Before handoffs:** Include marker after handoff text
|
|
205
|
-
- **Before yes/no questions:** Include marker after question
|
|
206
|
-
- **Before numbered choices:** Include marker listing choice numbers
|
|
207
|
-
|
|
208
|
-
### Example Usage
|
|
209
|
-
|
|
210
|
-
```markdown
|
|
211
|
-
Ready to hand off to the Caterpillar for test writing.
|
|
212
|
-
|
|
213
|
-
**Invoke `/tea` to begin the RED phase.**
|
|
214
|
-
|
|
215
|
-
<!-- CYCLIST:HANDOFF:/tea -->
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
```markdown
|
|
219
|
-
Shall I proceed with the implementation?
|
|
220
|
-
|
|
221
|
-
<!-- CYCLIST:QUESTION:yesno -->
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
```markdown
|
|
225
|
-
Which approach do you prefer?
|
|
226
|
-
|
|
227
|
-
1. Option A - Simple approach
|
|
228
|
-
2. Option B - More flexible
|
|
229
|
-
3. Option C - Full featured
|
|
230
|
-
|
|
231
|
-
<!-- CYCLIST:CHOICES:1,2,3 -->
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
### Key Points
|
|
235
|
-
|
|
236
|
-
- Markers are **invisible** to users (HTML comments)
|
|
237
|
-
- Markers are **optional** - pattern detection still works as fallback
|
|
238
|
-
- Place marker at **end of message** after relevant text
|
|
239
|
-
- Use **exact agent names**: `/sm`, `/tea`, `/dev`, `/reviewer`, `/architect`, etc.
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
## Handoff Action Protocol
|
|
244
|
-
|
|
245
|
-
When handing off to the next agent in a workflow, the `generic-handoff` subagent determines
|
|
246
|
-
what action to take based on context usage AND the user's handoff mode preference.
|
|
247
|
-
|
|
248
|
-
### Handoff Mode Setting
|
|
249
|
-
|
|
250
|
-
The user's preference is stored in `.pennyfarthing/cyclist.yaml`:
|
|
251
|
-
|
|
252
|
-
```yaml
|
|
253
|
-
handoff_mode: auto # or "manual"
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
The handoff subagent reads this setting and returns an `Action` field.
|
|
257
|
-
|
|
258
|
-
### Action Values
|
|
259
|
-
|
|
260
|
-
| Action | Meaning | What to Do |
|
|
261
|
-
|--------|---------|------------|
|
|
262
|
-
| `INVOKE_DIRECTLY` | Auto mode + context OK | **Immediately invoke next agent** - do NOT ask permission |
|
|
263
|
-
| `USER_INVOKE` | Manual mode | Tell user: "Ready for {Agent}. Invoke `/{agent}` when ready." |
|
|
264
|
-
| `FRESH_SESSION` | Context too high (>70%) | Tell user: "Context high. Start fresh session with `/{agent}`" |
|
|
265
|
-
|
|
266
|
-
### CRITICAL: Follow the Action
|
|
267
|
-
|
|
268
|
-
When handoff returns `Action: INVOKE_DIRECTLY`:
|
|
269
|
-
- **DO** immediately use the Skill tool to invoke the next agent
|
|
270
|
-
- **DO NOT** ask "Shall I proceed?" or "Ready to hand off?"
|
|
271
|
-
- **DO NOT** wait for user confirmation
|
|
272
|
-
|
|
273
|
-
Asking permission when auto-handoff is enabled defeats the purpose of the setting.
|
|
274
|
-
|
|
275
|
-
### Example Flow
|
|
276
|
-
|
|
277
|
-
```
|
|
278
|
-
1. Agent completes work
|
|
279
|
-
2. Agent writes assessment to session file
|
|
280
|
-
3. Agent spawns generic-handoff subagent
|
|
281
|
-
4. Subagent returns: "Action: INVOKE_DIRECTLY"
|
|
282
|
-
5. Agent IMMEDIATELY invokes: Skill tool with skill: "{next-agent}"
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### Handoff Marker
|
|
286
|
-
|
|
287
|
-
Always include the Cyclist marker at the end of handoff messages:
|
|
288
|
-
|
|
289
|
-
```html
|
|
290
|
-
<!-- CYCLIST:HANDOFF:/{next-agent} -->
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
This enables quick-action buttons in the Cyclist UI, but the agent must still
|
|
294
|
-
invoke the skill when Action is `INVOKE_DIRECTLY`.
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
## Turn Efficiency Protocol
|
|
299
|
-
|
|
300
|
-
Minimize API round-trips by parallelizing independent operations and batching commands.
|
|
301
|
-
|
|
302
|
-
### Core Principles
|
|
303
|
-
|
|
304
|
-
1. **Parallelize file reads** - Read multiple independent files in one turn
|
|
305
|
-
2. **Batch bash commands** - Combine git/shell operations with `&&`
|
|
306
|
-
3. **Spawn subagents in parallel** - When results don't depend on each other
|
|
307
|
-
|
|
308
|
-
### Examples
|
|
309
|
-
|
|
310
|
-
**File reads:**
|
|
311
|
-
```
|
|
312
|
-
# EFFICIENT: Read session + context + related files in one turn
|
|
313
|
-
Read: .session/X-Y-session.md, .session/context-story-X-Y.md, src/feature.ts (parallel)
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
**Bash batching:**
|
|
317
|
-
```bash
|
|
318
|
-
# EFFICIENT: Combine git operations
|
|
319
|
-
git status && git branch --show-current && git log -1 --oneline
|
|
320
|
-
|
|
321
|
-
# EFFICIENT: Commit, push, and verify in single command
|
|
322
|
-
git add . && git commit -m "feat(X-Y): implement feature" && git push -u origin $(git branch --show-current)
|
|
323
|
-
```
|
|
324
|
-
|
|
325
|
-
**Subagent parallelism:**
|
|
326
|
-
```yaml
|
|
327
|
-
# EFFICIENT: If doing both status check AND backlog research
|
|
328
|
-
# spawn both in same turn when results don't depend on each other
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
See `/dev-patterns` skill → "Turn-Efficient Patterns" for complete guidance.
|
|
332
|
-
|
|
333
|
-
**Note:** Individual agents may include agent-specific examples beyond these core patterns.
|
|
334
|
-
|
|
335
|
-
---
|
|
336
|
-
|
|
337
|
-
## Test Delegation Protocol
|
|
338
|
-
|
|
339
|
-
**NEVER run tests directly.** Always delegate to the `testing-runner` subagent.
|
|
340
|
-
|
|
341
|
-
### Why Delegate?
|
|
342
|
-
|
|
343
|
-
- Consistent test execution across all agents
|
|
344
|
-
- Proper result caching (Story 31-8)
|
|
345
|
-
- Standardized output format for handoff
|
|
346
|
-
- Supports multi-repo test orchestration
|
|
347
|
-
|
|
348
|
-
### Invocation Template
|
|
349
|
-
|
|
350
|
-
```yaml
|
|
351
|
-
Task tool:
|
|
352
|
-
subagent_type: "testing-runner"
|
|
353
|
-
prompt: |
|
|
354
|
-
REPOS: all | repo1,repo2
|
|
355
|
-
CONTEXT: why running tests
|
|
356
|
-
RUN_ID: unique-id
|
|
357
|
-
# Optional - omit to run all tests:
|
|
358
|
-
FILTER: pattern # global filter
|
|
359
|
-
FILTERS: # or per-repo filters
|
|
360
|
-
repo1: pattern1
|
|
361
|
-
repo2: pattern2
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
### What NOT to Do
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
# WRONG - Never run these directly
|
|
368
|
-
just test
|
|
369
|
-
go test ./...
|
|
370
|
-
npm test
|
|
371
|
-
pytest
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
Always spawn `testing-runner` instead.
|
|
375
|
-
|
|
376
|
-
---
|
|
377
|
-
|
|
378
|
-
## Exit Protocol
|
|
379
|
-
|
|
380
|
-
Before exiting or switching agents:
|
|
381
|
-
|
|
382
|
-
1. **Capture learnings** to sidecar (see above)
|
|
383
|
-
2. **Update session file** if work in progress
|
|
384
|
-
3. **Report status** to user
|
|
385
|
-
|
|
386
|
-
---
|
|
387
|
-
|
|
388
|
-
**This behavior is inherited by all agents. Strategic and tactical agents add their own protocols on top.**
|