@pennyfarthing/core 9.0.3 → 9.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/doctor.js +103 -1
- package/packages/core/dist/cli/commands/doctor.js.map +1 -1
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +9 -3
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js +9 -12
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
- package/packages/core/dist/cli/utils/themes.d.ts +6 -3
- package/packages/core/dist/cli/utils/themes.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/themes.js +21 -56
- package/packages/core/dist/cli/utils/themes.js.map +1 -1
- package/pennyfarthing-dist/commands/chore.md +61 -22
- package/pennyfarthing-dist/commands/setup.md +65 -0
- package/pennyfarthing-dist/scripts/git/release.sh +31 -0
- package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +78 -0
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +13 -2
- package/pennyfarthing-dist/scripts/sprint/validate-sprint-yaml.sh +139 -0
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +17 -60
- package/pennyfarthing-dist/workflows/patch.yaml +2 -3
- package/pennyfarthing-dist/workflows/project-setup/steps/step-01-discover.md +157 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-02-clone-repos.md +217 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-03-repos-yaml.md +159 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +186 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-05-shared-context.md +185 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-06-task-runner.md +279 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-07-theme.md +200 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-08-theme-packs.md +142 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-09-cyclist.md +245 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-10-complete.md +204 -0
- package/pennyfarthing-dist/workflows/project-setup/workflow.yaml +41 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/hooks.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/sprint.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-311.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/cli.py +6 -0
- package/pennyfarthing_scripts/common/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/config.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/output.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/__pycache__/themes.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/common/themes.py +253 -0
- package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/claim.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/compat.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/mappings.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/story.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/sync.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/skill.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/step.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/migration/__pycache__/validate.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/models.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/persona.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/session.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/tiers.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/workflow.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/cli.py +88 -26
- package/pennyfarthing_scripts/prime/models.py +28 -0
- package/pennyfarthing_scripts/prime/persona.py +9 -30
- package/pennyfarthing_scripts/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/status.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validator.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/work.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/archive_epic.py +2 -2
- package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/create.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing-dist/personas/themes/1984.yaml +0 -304
- package/pennyfarthing-dist/personas/themes/agatha-christie.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/all-stars.yaml +0 -326
- package/pennyfarthing-dist/personas/themes/ancient-philosophers.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/ancient-strategists.yaml +0 -298
- package/pennyfarthing-dist/personas/themes/arcane.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/arthurian-mythos.yaml +0 -327
- package/pennyfarthing-dist/personas/themes/avatar-the-last-airbender.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/babylon-5.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/better-call-saul.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/big-lebowski.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/black-sails.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/bobiverse.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/breaking-bad.yaml +0 -319
- package/pennyfarthing-dist/personas/themes/classical-composers.yaml +0 -302
- package/pennyfarthing-dist/personas/themes/count-of-monte-cristo.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/deadwood.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/dickens.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/don-quixote.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/enlightenment-thinkers.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/expeditionary-force.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/fargo.yaml +0 -322
- package/pennyfarthing-dist/personas/themes/film-auteurs.yaml +0 -304
- package/pennyfarthing-dist/personas/themes/foundation.yaml +0 -284
- package/pennyfarthing-dist/personas/themes/futurama.yaml +0 -313
- package/pennyfarthing-dist/personas/themes/gilligans-island.yaml +0 -365
- package/pennyfarthing-dist/personas/themes/gothic-literature.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/great-gatsby.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/greek-mythology.yaml +0 -326
- package/pennyfarthing-dist/personas/themes/hannibal.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/his-dark-materials.yaml +0 -285
- package/pennyfarthing-dist/personas/themes/historical-figures.yaml +0 -282
- package/pennyfarthing-dist/personas/themes/house-md.yaml +0 -313
- package/pennyfarthing-dist/personas/themes/imperial-radch.yaml +0 -283
- package/pennyfarthing-dist/personas/themes/inspector-morse.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/jane-austen.yaml +0 -281
- package/pennyfarthing-dist/personas/themes/jazz-legends.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/justified.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/legion-of-doom.yaml +0 -343
- package/pennyfarthing-dist/personas/themes/les-miserables.yaml +0 -293
- package/pennyfarthing-dist/personas/themes/lovecraft-mythos.yaml +0 -325
- package/pennyfarthing-dist/personas/themes/mad-men.yaml +0 -283
- package/pennyfarthing-dist/personas/themes/marvel-mcu.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/mass-effect.yaml +0 -283
- package/pennyfarthing-dist/personas/themes/military-commanders.yaml +0 -298
- package/pennyfarthing-dist/personas/themes/moby-dick.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/monty-python.yaml +0 -297
- package/pennyfarthing-dist/personas/themes/neuromancer.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/norse-mythology.yaml +0 -321
- package/pennyfarthing-dist/personas/themes/parks-and-rec.yaml +0 -364
- package/pennyfarthing-dist/personas/themes/peaky-blinders.yaml +0 -292
- package/pennyfarthing-dist/personas/themes/renaissance-masters.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/rome.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/russian-masters.yaml +0 -310
- package/pennyfarthing-dist/personas/themes/scientific-revolutionaries.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/shakespeare.yaml +0 -295
- package/pennyfarthing-dist/personas/themes/sherlock-holmes.yaml +0 -283
- package/pennyfarthing-dist/personas/themes/snow-crash.yaml +0 -290
- package/pennyfarthing-dist/personas/themes/software-pioneers.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/star-trek-tos.yaml +0 -327
- package/pennyfarthing-dist/personas/themes/succession.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/superfriends.yaml +0 -332
- package/pennyfarthing-dist/personas/themes/ted-lasso.yaml +0 -359
- package/pennyfarthing-dist/personas/themes/the-americans.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/the-crown.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/the-good-place.yaml +0 -315
- package/pennyfarthing-dist/personas/themes/the-odyssey.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/the-office.yaml +0 -323
- package/pennyfarthing-dist/personas/themes/the-simpsons.yaml +0 -300
- package/pennyfarthing-dist/personas/themes/the-sopranos.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/the-wire.yaml +0 -303
- package/pennyfarthing-dist/personas/themes/the-witcher.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/twin-peaks.yaml +0 -296
- package/pennyfarthing-dist/personas/themes/vorkosigan-saga.yaml +0 -294
- package/pennyfarthing-dist/personas/themes/world-explorers.yaml +0 -312
- package/pennyfarthing-dist/personas/themes/wwii-leaders.yaml +0 -299
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/cli/utils/themes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"themes.js","sourceRoot":"","sources":["../../../src/cli/utils/themes.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ description: Quick commit for small changes without full git-cleanup ceremony
|
|
|
4
4
|
|
|
5
5
|
# Quick Chore Commit
|
|
6
6
|
|
|
7
|
-
Quickly commit dirty changes without the full `/git-cleanup` ceremony.
|
|
7
|
+
Quickly commit dirty changes without the full `/git-cleanup` ceremony. Checks **all repos** (orchestrator + subrepos), creates branches, commits, merges to develop, and pushes.
|
|
8
8
|
|
|
9
9
|
<purpose>
|
|
10
10
|
Fast path for committing small changes that don't warrant story tracking.
|
|
@@ -39,31 +39,42 @@ Fast path for committing small changes that don't warrant story tracking.
|
|
|
39
39
|
|
|
40
40
|
**CRITICAL: Never use git stash.** The stash/pull/pop pattern can silently revert changes when upstream modifies the same files during the pull.
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
**CRITICAL: Always check ALL repos, not just the orchestrator.** Most changes are in subrepos (e.g., `pennyfarthing/`). Use `git -C {repo_path}` for subrepo operations.
|
|
43
|
+
|
|
44
|
+
1. Check ALL repos for dirty files (orchestrator + subrepos from `repos.yaml`)
|
|
45
|
+
2. Abort if all repos are clean
|
|
46
|
+
3. Determine variant (chore/doc/ux) from first arg
|
|
47
|
+
4. For EACH dirty repo, independently:
|
|
48
|
+
a. Create branch from current HEAD: `{variant}/{timestamp}`
|
|
49
|
+
b. Stage and commit all changes
|
|
50
|
+
c. Fetch origin and rebase onto latest develop
|
|
51
|
+
d. Switch to develop, merge the branch
|
|
52
|
+
e. Push develop
|
|
53
|
+
f. Delete local branch
|
|
50
54
|
</workflow>
|
|
51
55
|
|
|
52
56
|
## Execution
|
|
53
57
|
|
|
54
|
-
### Step 1: Pre-Flight
|
|
58
|
+
### Step 1: Multi-Repo Pre-Flight
|
|
55
59
|
|
|
56
|
-
|
|
57
|
-
# Abort if clean
|
|
58
|
-
if git diff --quiet && git diff --cached --quiet; then
|
|
59
|
-
echo "ERROR: No changes to commit."
|
|
60
|
-
exit 1
|
|
61
|
-
fi
|
|
60
|
+
**ALWAYS check all repos.** Read `repos.yaml` for repo paths.
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
```bash
|
|
63
|
+
# Check ALL repos for dirty changes
|
|
64
|
+
# Orchestrator root (.)
|
|
64
65
|
git status --short
|
|
66
|
+
|
|
67
|
+
# Subrepos (e.g., pennyfarthing/)
|
|
68
|
+
git -C pennyfarthing status --short 2>/dev/null
|
|
69
|
+
|
|
70
|
+
# Or use the multi-repo status script:
|
|
71
|
+
.pennyfarthing/scripts/git/git-status-all.sh --brief
|
|
65
72
|
```
|
|
66
73
|
|
|
74
|
+
Collect which repos have changes. If ALL repos are clean, abort with "No changes to commit."
|
|
75
|
+
|
|
76
|
+
**Common case:** Only the subrepo (`pennyfarthing/`) has changes. The orchestrator is clean. This is normal — framework development happens in the subrepo.
|
|
77
|
+
|
|
67
78
|
### Step 2: Parse Arguments
|
|
68
79
|
|
|
69
80
|
```bash
|
|
@@ -93,11 +104,17 @@ esac
|
|
|
93
104
|
MESSAGE="$*"
|
|
94
105
|
```
|
|
95
106
|
|
|
96
|
-
### Step 3: Generate Message
|
|
107
|
+
### Step 3: For Each Dirty Repo — Generate Message, Branch, Commit, Merge, Push
|
|
108
|
+
|
|
109
|
+
Repeat steps 3a–3d for each repo that has dirty changes. Use `git -C {repo_path}` for subrepo operations, or `cd` into the subrepo temporarily.
|
|
110
|
+
|
|
111
|
+
#### Step 3a: Generate Message (if user didn't provide one)
|
|
112
|
+
|
|
113
|
+
Generate a message based on the changed files **in that specific repo**.
|
|
97
114
|
|
|
98
115
|
```bash
|
|
99
116
|
if [ -z "$MESSAGE" ]; then
|
|
100
|
-
CHANGED_FILES=$(git status --porcelain | awk '{print $2}')
|
|
117
|
+
CHANGED_FILES=$(git -C {repo_path} status --porcelain | awk '{print $2}')
|
|
101
118
|
|
|
102
119
|
case "$VARIANT" in
|
|
103
120
|
docs)
|
|
@@ -132,11 +149,16 @@ if [ -z "$MESSAGE" ]; then
|
|
|
132
149
|
fi
|
|
133
150
|
```
|
|
134
151
|
|
|
135
|
-
|
|
152
|
+
**For subrepos:** Also review the diff to generate a meaningful message. Prefer descriptive messages over generic ones (e.g., "migrate TTY panel to WebSocket" over "minor updates to 3 files").
|
|
153
|
+
|
|
154
|
+
#### Step 3b: Branch and Commit
|
|
136
155
|
|
|
137
156
|
**IMPORTANT: Do NOT use git stash.** Stash + pull + pop can silently revert changes when upstream modifies the same files.
|
|
138
157
|
|
|
139
158
|
```bash
|
|
159
|
+
# For subrepos, cd into the repo first (or use git -C throughout)
|
|
160
|
+
cd {repo_path}
|
|
161
|
+
|
|
140
162
|
# Create branch from current HEAD (preserves dirty changes)
|
|
141
163
|
BRANCH="${BRANCH_TYPE}/$(date +%Y%m%d-%H%M%S)"
|
|
142
164
|
git checkout -b "$BRANCH"
|
|
@@ -159,12 +181,28 @@ git branch -d "$BRANCH"
|
|
|
159
181
|
git push origin develop
|
|
160
182
|
```
|
|
161
183
|
|
|
184
|
+
#### Step 3c: Return to orchestrator root
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
cd {orchestrator_root}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Step 4: Verify
|
|
191
|
+
|
|
192
|
+
After all repos are processed:
|
|
193
|
+
```bash
|
|
194
|
+
.pennyfarthing/scripts/git/git-status-all.sh --brief
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
All repos should show clean.
|
|
198
|
+
|
|
162
199
|
## Safety
|
|
163
200
|
|
|
164
|
-
- **NEVER commit directly to develop**
|
|
201
|
+
- **NEVER commit directly to develop** (use branches)
|
|
165
202
|
- **Never force push**
|
|
166
203
|
- **Never commit secrets** (.env, credentials)
|
|
167
|
-
- **Abort if
|
|
204
|
+
- **Abort if ALL repos are clean**
|
|
205
|
+
- **ALWAYS use `git -C {repo_path}` for subrepo operations**
|
|
168
206
|
|
|
169
207
|
## When to Use
|
|
170
208
|
|
|
@@ -176,4 +214,5 @@ git push origin develop
|
|
|
176
214
|
|
|
177
215
|
<related>
|
|
178
216
|
- `/git-cleanup` - Full ceremony for organizing multiple changes
|
|
217
|
+
- `/repo-status` - Check status across all repos
|
|
179
218
|
</related>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# /setup - Interactive Project Setup
|
|
2
|
+
|
|
3
|
+
<command>setup</command>
|
|
4
|
+
|
|
5
|
+
<purpose>
|
|
6
|
+
Launch the interactive project-setup workflow to configure a Pennyfarthing project. This workflow guides you through discovering repos, generating CLAUDE.md, configuring themes, and more.
|
|
7
|
+
</purpose>
|
|
8
|
+
|
|
9
|
+
<usage>
|
|
10
|
+
```bash
|
|
11
|
+
# Run after pennyfarthing init
|
|
12
|
+
/setup
|
|
13
|
+
|
|
14
|
+
# Skip certain steps
|
|
15
|
+
/setup --skip-theme
|
|
16
|
+
/setup --skip-cyclist
|
|
17
|
+
```
|
|
18
|
+
</usage>
|
|
19
|
+
|
|
20
|
+
<workflow>
|
|
21
|
+
The setup workflow guides you through:
|
|
22
|
+
|
|
23
|
+
1. **Discovery** - Detect project structure and tech stack
|
|
24
|
+
2. **Clone Repos** - Optionally clone subrepos for orchestrator pattern
|
|
25
|
+
3. **repos.yaml** - Generate repository configuration
|
|
26
|
+
4. **CLAUDE.md** - Create project instruction file
|
|
27
|
+
5. **shared-context.md** - Populate with real project info
|
|
28
|
+
6. **Task Runner** - Create justfile/Makefile
|
|
29
|
+
7. **Theme** - Select persona theme
|
|
30
|
+
8. **Cyclist** - Optionally install visual terminal
|
|
31
|
+
9. **Validation** - Run doctor and confirm setup
|
|
32
|
+
</workflow>
|
|
33
|
+
|
|
34
|
+
<when-to-use>
|
|
35
|
+
- After running `pennyfarthing init` for the first time
|
|
36
|
+
- When setting up a new orchestrator with subrepos
|
|
37
|
+
- When repos.yaml or CLAUDE.md don't exist
|
|
38
|
+
- When converting an existing project to use Pennyfarthing
|
|
39
|
+
</when-to-use>
|
|
40
|
+
|
|
41
|
+
<prerequisites>
|
|
42
|
+
- Pennyfarthing must be initialized (`pennyfarthing init`)
|
|
43
|
+
- Should be in project root directory
|
|
44
|
+
</prerequisites>
|
|
45
|
+
|
|
46
|
+
<execution>
|
|
47
|
+
This skill launches the `project-setup` stepped workflow.
|
|
48
|
+
|
|
49
|
+
Load the workflow definition:
|
|
50
|
+
```bash
|
|
51
|
+
cat .pennyfarthing/workflows/project-setup/workflow.yaml
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then follow the stepped workflow, starting with:
|
|
55
|
+
```bash
|
|
56
|
+
cat .pennyfarthing/workflows/project-setup/steps/step-01-discover.md
|
|
57
|
+
```
|
|
58
|
+
</execution>
|
|
59
|
+
|
|
60
|
+
<related>
|
|
61
|
+
- `/sprint` - Sprint management after setup
|
|
62
|
+
- `/theme` - Change themes after setup
|
|
63
|
+
- `/workflow` - View available workflows
|
|
64
|
+
- `pennyfarthing doctor` - Validate installation
|
|
65
|
+
</related>
|
|
@@ -135,6 +135,37 @@ if ! git diff-index --quiet HEAD -- 2>/dev/null; then
|
|
|
135
135
|
error "Uncommitted changes detected. Commit or stash before releasing."
|
|
136
136
|
fi
|
|
137
137
|
|
|
138
|
+
# Check workspace dependency version parity
|
|
139
|
+
# Catches stale pnpm links where node_modules points to old store version
|
|
140
|
+
if [[ -f "pnpm-workspace.yaml" ]] && [[ -d "packages" ]]; then
|
|
141
|
+
STALE_DEPS=()
|
|
142
|
+
for pkg_dir in packages/*/; do
|
|
143
|
+
[[ -f "$pkg_dir/package.json" ]] || continue
|
|
144
|
+
pkg_name=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$pkg_dir/package.json','utf8')).name)" 2>/dev/null) || continue
|
|
145
|
+
source_version=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$pkg_dir/package.json','utf8')).version)" 2>/dev/null) || continue
|
|
146
|
+
|
|
147
|
+
# Check all other packages that depend on this one
|
|
148
|
+
for consumer_dir in packages/*/; do
|
|
149
|
+
[[ "$consumer_dir" == "$pkg_dir" ]] && continue
|
|
150
|
+
resolved="$consumer_dir/node_modules/$pkg_name/package.json"
|
|
151
|
+
[[ -f "$resolved" ]] || continue
|
|
152
|
+
resolved_version=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$resolved','utf8')).version)" 2>/dev/null) || continue
|
|
153
|
+
if [[ "$resolved_version" != "$source_version" ]]; then
|
|
154
|
+
consumer_name=$(basename "$consumer_dir")
|
|
155
|
+
STALE_DEPS+=("$consumer_name → $pkg_name: resolved $resolved_version, workspace has $source_version")
|
|
156
|
+
fi
|
|
157
|
+
done
|
|
158
|
+
done
|
|
159
|
+
if [[ ${#STALE_DEPS[@]} -gt 0 ]]; then
|
|
160
|
+
echo -e "${RED}[ERROR]${NC} Stale workspace dependencies detected:"
|
|
161
|
+
for dep in "${STALE_DEPS[@]}"; do
|
|
162
|
+
echo -e " ${RED}✗${NC} $dep"
|
|
163
|
+
done
|
|
164
|
+
error "Run 'pnpm install' from monorepo root to fix workspace links"
|
|
165
|
+
fi
|
|
166
|
+
info "Workspace dependency versions match"
|
|
167
|
+
fi
|
|
168
|
+
|
|
138
169
|
# Get current branch
|
|
139
170
|
CURRENT_BRANCH=$(git branch --show-current)
|
|
140
171
|
info "Current branch: $CURRENT_BRANCH"
|
|
Binary file
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
#
|
|
3
|
+
# Sprint YAML Validation Hook (PostToolUse)
|
|
4
|
+
#
|
|
5
|
+
# Validates sprint YAML files after Edit/Write operations to ensure
|
|
6
|
+
# compatibility with the yaml npm package used by Cyclist's SprintPanel.
|
|
7
|
+
#
|
|
8
|
+
# The yaml npm package follows YAML 1.2 strictly and rejects:
|
|
9
|
+
# - Single-quoted strings with blank lines
|
|
10
|
+
# - Invalid multiline string formats
|
|
11
|
+
#
|
|
12
|
+
# When validation fails, returns additionalContext with an error message
|
|
13
|
+
# prompting the agent to fix the YAML format.
|
|
14
|
+
#
|
|
15
|
+
# Input: JSON via stdin with tool_name, tool_input
|
|
16
|
+
# Output: JSON with additionalContext on validation failure
|
|
17
|
+
#
|
|
18
|
+
# See also: .pennyfarthing/scripts/validation/validate-sprint-yaml.sh
|
|
19
|
+
|
|
20
|
+
set -euo pipefail
|
|
21
|
+
|
|
22
|
+
# Read hook input from stdin
|
|
23
|
+
INPUT=$(cat)
|
|
24
|
+
|
|
25
|
+
# Extract tool name and file path from input
|
|
26
|
+
TOOL_NAME=$(echo "$INPUT" | grep -o '"tool_name"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"tool_name"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || echo "")
|
|
27
|
+
FILE_PATH=$(echo "$INPUT" | grep -o '"file_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*"file_path"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/' || echo "")
|
|
28
|
+
|
|
29
|
+
# Only process Edit and Write operations on sprint YAML files
|
|
30
|
+
if [[ "$TOOL_NAME" != "Edit" && "$TOOL_NAME" != "Write" ]]; then
|
|
31
|
+
exit 0
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
# Check if it's a sprint YAML file
|
|
35
|
+
if [[ ! "$FILE_PATH" =~ sprint/.*\.(yaml|yml)$ ]]; then
|
|
36
|
+
exit 0
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Check if the file exists
|
|
40
|
+
if [[ ! -f "$FILE_PATH" ]]; then
|
|
41
|
+
exit 0
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
# Validate using Node.js yaml package (same parser Cyclist uses)
|
|
45
|
+
VALIDATION_ERROR=$(node --input-type=module -e "
|
|
46
|
+
import { parse } from 'yaml';
|
|
47
|
+
import { readFileSync } from 'fs';
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const content = readFileSync('$FILE_PATH', 'utf-8');
|
|
51
|
+
parse(content);
|
|
52
|
+
process.exit(0);
|
|
53
|
+
} catch (e) {
|
|
54
|
+
console.error(e.message);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
" 2>&1) && VALID=true || VALID=false
|
|
58
|
+
|
|
59
|
+
if [[ "$VALID" == "true" ]]; then
|
|
60
|
+
# Valid YAML - exit silently
|
|
61
|
+
exit 0
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# Validation failed - return error context to agent
|
|
65
|
+
# Escape special characters for JSON
|
|
66
|
+
ESCAPED_ERROR=$(echo "$VALIDATION_ERROR" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | tr '\n' ' ')
|
|
67
|
+
ESCAPED_PATH=$(echo "$FILE_PATH" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g')
|
|
68
|
+
|
|
69
|
+
cat << EOF
|
|
70
|
+
{
|
|
71
|
+
"hookSpecificOutput": {
|
|
72
|
+
"hookEventName": "PostToolUse",
|
|
73
|
+
"additionalContext": "⚠️ SPRINT YAML VALIDATION FAILED\n\nFile: $ESCAPED_PATH\nError: $ESCAPED_ERROR\n\nThe sprint YAML file has invalid syntax that will break the Cyclist SprintPanel.\n\nCommon fix: Single-quoted strings cannot contain blank lines in YAML 1.2.\nUse literal block scalars (|) for multiline strings instead.\n\nTo auto-fix, run: yq eval -o=json '$ESCAPED_PATH' > /tmp/sprint.json && yq eval -P /tmp/sprint.json > '$ESCAPED_PATH'"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
EOF
|
|
77
|
+
|
|
78
|
+
exit 0
|
|
@@ -19,8 +19,19 @@ set -euo pipefail
|
|
|
19
19
|
|
|
20
20
|
# Self-locate: derive PROJECT_ROOT from this script's position
|
|
21
21
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)"
|
|
22
|
-
|
|
23
|
-
#
|
|
22
|
+
|
|
23
|
+
# Detect if we're in framework development or a consumer project
|
|
24
|
+
# In framework dev: scripts/misc/generate-skill-docs.sh is in pennyfarthing/pennyfarthing-dist/scripts/misc/
|
|
25
|
+
# In consumer: this is symlinked from .pennyfarthing/scripts/misc/
|
|
26
|
+
if [[ "$SCRIPT_DIR" == */pennyfarthing/pennyfarthing-dist/scripts/* ]]; then
|
|
27
|
+
# Framework development context - derive from script location
|
|
28
|
+
PROJECT_ROOT="${SCRIPT_DIR%/pennyfarthing-dist/scripts/*}"
|
|
29
|
+
export PROJECT_ROOT
|
|
30
|
+
else
|
|
31
|
+
# Consumer project context - use find-root.sh
|
|
32
|
+
source "$SCRIPT_DIR/../lib/find-root.sh"
|
|
33
|
+
# PROJECT_ROOT is now set
|
|
34
|
+
fi
|
|
24
35
|
|
|
25
36
|
# Default paths
|
|
26
37
|
REGISTRY_PATH="${PROJECT_ROOT}/pennyfarthing-dist/skills/skill-registry.yaml"
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#!/usr/bin/env zsh
|
|
2
|
+
# validate-sprint-yaml.sh - Validate sprint YAML files for common issues
|
|
3
|
+
#
|
|
4
|
+
# Story MSSCI-14192 - Sprint panel YAML parsing fix
|
|
5
|
+
#
|
|
6
|
+
# Usage:
|
|
7
|
+
# validate-sprint-yaml.sh [path/to/sprint/current-sprint.yaml]
|
|
8
|
+
#
|
|
9
|
+
# If no path provided, looks for sprint/current-sprint.yaml in current directory.
|
|
10
|
+
#
|
|
11
|
+
# Common issues detected:
|
|
12
|
+
# - YAML syntax errors (including single-quoted strings with blank lines)
|
|
13
|
+
# - Missing required fields
|
|
14
|
+
|
|
15
|
+
set -euo pipefail
|
|
16
|
+
|
|
17
|
+
# Colors for output
|
|
18
|
+
RED='\033[0;31m'
|
|
19
|
+
GREEN='\033[0;32m'
|
|
20
|
+
YELLOW='\033[0;33m'
|
|
21
|
+
NC='\033[0m' # No Color
|
|
22
|
+
|
|
23
|
+
# Find sprint YAML file
|
|
24
|
+
SPRINT_FILE="${1:-sprint/current-sprint.yaml}"
|
|
25
|
+
|
|
26
|
+
if [[ ! -f "$SPRINT_FILE" ]]; then
|
|
27
|
+
echo -e "${RED}ERROR:${NC} Sprint file not found: $SPRINT_FILE"
|
|
28
|
+
exit 1
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
echo "Validating: $SPRINT_FILE"
|
|
32
|
+
echo ""
|
|
33
|
+
|
|
34
|
+
# Track errors
|
|
35
|
+
ERRORS=0
|
|
36
|
+
|
|
37
|
+
# Main validation using node
|
|
38
|
+
validate_yaml() {
|
|
39
|
+
local file="$1"
|
|
40
|
+
|
|
41
|
+
if ! command -v node &> /dev/null; then
|
|
42
|
+
echo -e "${YELLOW}WARNING:${NC} node not available for YAML validation"
|
|
43
|
+
return 0
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
local result
|
|
47
|
+
result=$(node -e "
|
|
48
|
+
const { readFileSync } = require('fs');
|
|
49
|
+
const { parse } = require('yaml');
|
|
50
|
+
|
|
51
|
+
const file = '$file';
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
const content = readFileSync(file, 'utf-8');
|
|
55
|
+
const data = parse(content);
|
|
56
|
+
|
|
57
|
+
// Check for sprint section
|
|
58
|
+
if (!data.sprint) {
|
|
59
|
+
console.log('WARN:Missing sprint section');
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Check for epics array
|
|
63
|
+
if (!Array.isArray(data.epics)) {
|
|
64
|
+
console.log('ERROR:epics is not an array or missing');
|
|
65
|
+
} else if (data.epics.length === 0) {
|
|
66
|
+
console.log('WARN:No epics found in sprint');
|
|
67
|
+
} else {
|
|
68
|
+
// Count epics and stories
|
|
69
|
+
let storyCount = 0;
|
|
70
|
+
data.epics.forEach((epic, i) => {
|
|
71
|
+
if (!epic.id) console.log('WARN:Epic ' + i + ' missing id');
|
|
72
|
+
if (!epic.title) console.log('WARN:Epic ' + i + ' missing title');
|
|
73
|
+
if (Array.isArray(epic.stories)) {
|
|
74
|
+
storyCount += epic.stories.length;
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
console.log('INFO:Found ' + data.epics.length + ' epic(s) with ' + storyCount + ' total stories');
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
console.log('SUCCESS');
|
|
81
|
+
} catch (err) {
|
|
82
|
+
const line = err.linePos?.[0]?.line || '?';
|
|
83
|
+
console.log('PARSE_ERROR:' + line + ':' + err.message);
|
|
84
|
+
|
|
85
|
+
// Provide hint for common single-quote issue
|
|
86
|
+
if (err.message && err.message.includes('quote')) {
|
|
87
|
+
console.log('HINT:Single-quoted YAML strings cannot contain blank lines. Use literal block scalar (|) instead.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
" 2>&1)
|
|
91
|
+
|
|
92
|
+
# Process output
|
|
93
|
+
local success=false
|
|
94
|
+
echo "$result" | while IFS= read -r line; do
|
|
95
|
+
case "$line" in
|
|
96
|
+
SUCCESS)
|
|
97
|
+
success=true
|
|
98
|
+
;;
|
|
99
|
+
PARSE_ERROR:*)
|
|
100
|
+
local info="${line#PARSE_ERROR:}"
|
|
101
|
+
local line_num="${info%%:*}"
|
|
102
|
+
local message="${info#*:}"
|
|
103
|
+
echo -e "${RED}ERROR:${NC} YAML syntax error at line $line_num"
|
|
104
|
+
echo " $message"
|
|
105
|
+
ERRORS=$((ERRORS + 1))
|
|
106
|
+
;;
|
|
107
|
+
HINT:*)
|
|
108
|
+
echo -e "${YELLOW}TIP:${NC} ${line#HINT:}"
|
|
109
|
+
;;
|
|
110
|
+
ERROR:*)
|
|
111
|
+
echo -e "${RED}ERROR:${NC} ${line#ERROR:}"
|
|
112
|
+
ERRORS=$((ERRORS + 1))
|
|
113
|
+
;;
|
|
114
|
+
WARN:*)
|
|
115
|
+
echo -e "${YELLOW}WARNING:${NC} ${line#WARN:}"
|
|
116
|
+
;;
|
|
117
|
+
INFO:*)
|
|
118
|
+
echo -e "${GREEN}✓${NC} ${line#INFO:}"
|
|
119
|
+
;;
|
|
120
|
+
esac
|
|
121
|
+
done
|
|
122
|
+
|
|
123
|
+
# Check exit status from subshell
|
|
124
|
+
if echo "$result" | grep -q "^PARSE_ERROR:" || echo "$result" | grep -q "^ERROR:"; then
|
|
125
|
+
return 1
|
|
126
|
+
fi
|
|
127
|
+
return 0
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
# Run validation
|
|
131
|
+
if validate_yaml "$SPRINT_FILE"; then
|
|
132
|
+
echo ""
|
|
133
|
+
echo -e "${GREEN}✓ Sprint YAML is valid${NC}"
|
|
134
|
+
exit 0
|
|
135
|
+
else
|
|
136
|
+
echo ""
|
|
137
|
+
echo -e "${RED}✗ Validation failed${NC}"
|
|
138
|
+
exit 1
|
|
139
|
+
fi
|
|
@@ -1,73 +1,30 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# list-themes.sh - List all available persona themes
|
|
3
3
|
#
|
|
4
|
-
#
|
|
4
|
+
# Thin wrapper: discovery logic lives in pennyfarthing_scripts.common.themes
|
|
5
5
|
#
|
|
6
|
-
#
|
|
7
|
-
# --current-only Only show the current theme name
|
|
6
|
+
# Usage: list-themes.sh [--current-only]
|
|
8
7
|
|
|
9
8
|
set -euo pipefail
|
|
10
9
|
|
|
11
10
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
12
11
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
CONFIG_FILE="$PROJECT_ROOT/.pennyfarthing/config.local.yaml"
|
|
16
|
-
|
|
17
|
-
# Get current theme from config
|
|
18
|
-
get_current_theme() {
|
|
19
|
-
if [[ -f "$CONFIG_FILE" ]]; then
|
|
20
|
-
grep -E "^theme:" "$CONFIG_FILE" 2>/dev/null | sed 's/theme:[[:space:]]*//' || echo ""
|
|
21
|
-
else
|
|
22
|
-
echo ""
|
|
23
|
-
fi
|
|
24
|
-
}
|
|
13
|
+
export PROJECT_ROOT
|
|
25
14
|
|
|
26
|
-
CURRENT_THEME=$(get_current_theme)
|
|
27
|
-
|
|
28
|
-
# Handle --current-only flag
|
|
29
15
|
if [[ "${1:-}" == "--current-only" ]]; then
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
16
|
+
python3 -c "
|
|
17
|
+
from pennyfarthing_scripts.common.themes import get_current_theme
|
|
18
|
+
t = get_current_theme()
|
|
19
|
+
if t:
|
|
20
|
+
print(t)
|
|
21
|
+
else:
|
|
22
|
+
print('No theme set')
|
|
23
|
+
exit(1)
|
|
24
|
+
"
|
|
25
|
+
else
|
|
26
|
+
python3 -c "
|
|
27
|
+
from pennyfarthing_scripts.common.themes import format_theme_list
|
|
28
|
+
print(format_theme_list())
|
|
29
|
+
"
|
|
37
30
|
fi
|
|
38
|
-
|
|
39
|
-
# Extract all theme data in one grep + format with awk (fast path)
|
|
40
|
-
# Single grep call across all files, awk handles formatting
|
|
41
|
-
grep -H "^ tier:" "$THEMES_DIR"/*.yaml 2>/dev/null | \
|
|
42
|
-
sed 's|.*/||; s|\.yaml:.*tier:[[:space:]]*| |' | \
|
|
43
|
-
sort | \
|
|
44
|
-
awk -v current="$CURRENT_THEME" '
|
|
45
|
-
{
|
|
46
|
-
theme = $1
|
|
47
|
-
tier = $2 ? $2 : "U"
|
|
48
|
-
if (theme == current) {
|
|
49
|
-
themes[NR] = "*" theme " [" tier "]"
|
|
50
|
-
} else {
|
|
51
|
-
themes[NR] = theme " [" tier "]"
|
|
52
|
-
}
|
|
53
|
-
count++
|
|
54
|
-
}
|
|
55
|
-
END {
|
|
56
|
-
# Print header
|
|
57
|
-
print "**" count " themes available.** Current: **" (current ? current : "none") "**"
|
|
58
|
-
print ""
|
|
59
|
-
|
|
60
|
-
# Print in 3 columns
|
|
61
|
-
col_width = 28
|
|
62
|
-
col = 0
|
|
63
|
-
for (i = 1; i <= count; i++) {
|
|
64
|
-
printf "%-" col_width "s", themes[i]
|
|
65
|
-
col++
|
|
66
|
-
if (col == 3) {
|
|
67
|
-
print ""
|
|
68
|
-
col = 0
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if (col > 0) print ""
|
|
72
|
-
}
|
|
73
|
-
'
|
|
@@ -18,9 +18,8 @@ workflow:
|
|
|
18
18
|
description: Interrupt-driven bug fix during active story work
|
|
19
19
|
version: "1.0.0"
|
|
20
20
|
|
|
21
|
-
# Patch mode is
|
|
22
|
-
|
|
23
|
-
type: interrupt
|
|
21
|
+
# Patch mode is a simple single-phase workflow for interrupts
|
|
22
|
+
type: phased
|
|
24
23
|
|
|
25
24
|
phases:
|
|
26
25
|
- name: fix
|