specweave 1.0.553 → 1.0.554
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specweave",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.554",
|
|
4
4
|
"description": "100+ domain-expert AI skills — PM, Architect, Frontend, QA, Security and more. Skills learn your team's patterns permanently. Spec-first planning, autonomous execution, multi-agent teams, synced to GitHub/JIRA. Claude Code, Cursor, Copilot & more.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -65,8 +65,8 @@ fi
|
|
|
65
65
|
|
|
66
66
|
| Command | Flow | Use Case |
|
|
67
67
|
|---------|------|----------|
|
|
68
|
-
| `sw-release:npm` | Auto-commit → **PUSH** → Bump → Build → **Publish** → Push tag → **GH Release** | **DEFAULT: FULL RELEASE** |
|
|
69
|
-
| `sw-release:npm --quick` | Auto-commit → **PUSH** → Bump → Build → **Publish locally** → NO GH release | **QUICK: Save +
|
|
68
|
+
| `sw-release:npm` | Auto-commit → **PUSH** → Bump → Build → **Publish** → Push tag → **GH Release** → **Deploy all** | **DEFAULT: FULL RELEASE + Deploy** |
|
|
69
|
+
| `sw-release:npm --quick` | Auto-commit → **PUSH** → Bump → Build → **Publish locally** → **Deploy all** → NO GH release | **QUICK: Save + Release + Deploy** |
|
|
70
70
|
| `sw-release:npm --ci` | Bump → Push → **CI publishes + GH Release** | Let GitHub Actions handle everything |
|
|
71
71
|
| `sw-release:npm --only` | Bump → Build → **Publish locally** → NO push | Quick local release, push later |
|
|
72
72
|
| `sw-release:npm --only --local` | **Bump ONLY** → NO build, NO publish, NO git | FASTEST: Local testing only |
|
|
@@ -421,6 +421,7 @@ gh release view "v$NEW_VERSION" --json tagName,url
|
|
|
421
421
|
✅ Published to npmjs.org (explicit registry!)
|
|
422
422
|
✅ Version commit + tag pushed to GitHub
|
|
423
423
|
✅ **GitHub Release created with release notes**
|
|
424
|
+
✅ **Deployment**: all deployable repos deployed (docs sites, platforms)
|
|
424
425
|
|
|
425
426
|
---
|
|
426
427
|
|
|
@@ -550,6 +551,7 @@ git push origin $BRANCH
|
|
|
550
551
|
✅ Published to npmjs.org (explicit registry!)
|
|
551
552
|
✅ Version commit pushed to GitHub
|
|
552
553
|
⏭️ Tag NOT pushed (no GitHub Actions)
|
|
554
|
+
✅ **Deployment**: all deployable repos deployed (docs sites, platforms)
|
|
553
555
|
|
|
554
556
|
---
|
|
555
557
|
|
|
@@ -822,6 +824,145 @@ Skip this step entirely — there's only one repo and it was already pushed.
|
|
|
822
824
|
|
|
823
825
|
---
|
|
824
826
|
|
|
827
|
+
## DEPLOYMENT STEP (Post-Release) — RUNS AFTER UMBRELLA SYNC
|
|
828
|
+
|
|
829
|
+
**Skip this step for `--only --local` and `--only` modes.** For DEFAULT, QUICK, and CI modes, this runs after umbrella sync to deploy all services and docs that received changes.
|
|
830
|
+
|
|
831
|
+
**Why**: A release should ship everything — not just npm. If docs changed, deploy the docs site. If the platform changed, deploy it. One command = fully shipped.
|
|
832
|
+
|
|
833
|
+
### Deployment Detection
|
|
834
|
+
|
|
835
|
+
During umbrella sync, track which repos were pushed (had dirty files or unpushed commits). Only deploy repos that had actual changes pushed.
|
|
836
|
+
|
|
837
|
+
```bash
|
|
838
|
+
# PUSHED_REPOS array was populated during umbrella sync
|
|
839
|
+
# Each entry: "repo_dir|repo_name"
|
|
840
|
+
```
|
|
841
|
+
|
|
842
|
+
### SpecWeave Public Docs (spec-weave.com)
|
|
843
|
+
|
|
844
|
+
Docs deploy via GitHub Actions on push to `develop`, or via `workflow_dispatch` on any branch.
|
|
845
|
+
|
|
846
|
+
```bash
|
|
847
|
+
SPECWEAVE_DIR="$UMBRELLA_ROOT/repositories/anton-abyzov/specweave"
|
|
848
|
+
if [ -d "$SPECWEAVE_DIR" ]; then
|
|
849
|
+
cd "$SPECWEAVE_DIR"
|
|
850
|
+
SW_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
851
|
+
|
|
852
|
+
# Check if docs-related files changed in recent commits
|
|
853
|
+
DOCS_CHANGED=$(git diff HEAD~5 --name-only 2>/dev/null | grep -E '^(docs-site/|\.specweave/docs/public/|README\.md|CHANGELOG\.md)' || true)
|
|
854
|
+
|
|
855
|
+
if [ -n "$DOCS_CHANGED" ]; then
|
|
856
|
+
if [ "$SW_BRANCH" = "develop" ]; then
|
|
857
|
+
echo "Docs changes pushed to develop — GitHub Actions will auto-deploy to spec-weave.com"
|
|
858
|
+
else
|
|
859
|
+
# Trigger workflow_dispatch for docs deployment from non-develop branch
|
|
860
|
+
SW_GH_REPO=$(node -p "try { const r = require('./package.json').repository; typeof r === 'string' ? r : r?.url?.replace(/\\.git$/, '') || '' } catch(e) { '' }" | sed 's|https://github.com/||')
|
|
861
|
+
if [ -n "$SW_GH_REPO" ]; then
|
|
862
|
+
echo "Triggering docs deployment via workflow_dispatch..."
|
|
863
|
+
gh workflow run deploy-docs.yml --repo "$SW_GH_REPO" --ref "$SW_BRANCH" 2>/dev/null && \
|
|
864
|
+
echo "Docs deployment triggered for spec-weave.com" || \
|
|
865
|
+
echo "WARNING: Could not trigger docs deploy — may need manual trigger from GitHub Actions tab"
|
|
866
|
+
fi
|
|
867
|
+
fi
|
|
868
|
+
else
|
|
869
|
+
echo "No docs changes detected — skipping spec-weave.com deploy"
|
|
870
|
+
fi
|
|
871
|
+
cd "$UMBRELLA_ROOT"
|
|
872
|
+
fi
|
|
873
|
+
```
|
|
874
|
+
|
|
875
|
+
### Verified-Skill Platform (verified-skill.com)
|
|
876
|
+
|
|
877
|
+
The vskill-platform deploys to Cloudflare Workers. Only deploy from `main` branch.
|
|
878
|
+
|
|
879
|
+
```bash
|
|
880
|
+
VSKILL_DIR="$UMBRELLA_ROOT/repositories/anton-abyzov/vskill-platform"
|
|
881
|
+
if [ -d "$VSKILL_DIR" ]; then
|
|
882
|
+
cd "$VSKILL_DIR"
|
|
883
|
+
VS_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
884
|
+
|
|
885
|
+
if [ "$VS_BRANCH" = "main" ]; then
|
|
886
|
+
# Check if this repo had changes (was pushed during umbrella sync or had recent changes)
|
|
887
|
+
VS_DIRTY=$(git diff HEAD~3 --name-only 2>/dev/null | grep -E '^(src/|app/|pages/|lib/|prisma/|public/)' || true)
|
|
888
|
+
VS_AHEAD_OF_DEPLOY=$(git log --oneline -3 --no-merges 2>/dev/null | head -3)
|
|
889
|
+
|
|
890
|
+
if [ -n "$VS_DIRTY" ] || [ -n "$VS_AHEAD_OF_DEPLOY" ]; then
|
|
891
|
+
echo "Deploying vskill-platform to Cloudflare Workers..."
|
|
892
|
+
npm run db:generate
|
|
893
|
+
npm run db:migrate
|
|
894
|
+
npm run build
|
|
895
|
+
npm run build:worker
|
|
896
|
+
npm run deploy
|
|
897
|
+
|
|
898
|
+
echo "Deploy complete. Warming caches..."
|
|
899
|
+
sleep 3
|
|
900
|
+
|
|
901
|
+
# Cache warming
|
|
902
|
+
INTERNAL_KEY=""
|
|
903
|
+
if [ -f ".dev.vars" ]; then
|
|
904
|
+
INTERNAL_KEY=$(grep 'INTERNAL_BROADCAST_KEY=' .dev.vars 2>/dev/null | cut -d'=' -f2 || true)
|
|
905
|
+
fi
|
|
906
|
+
|
|
907
|
+
if [ -n "$INTERNAL_KEY" ]; then
|
|
908
|
+
curl -s -X POST https://verified-skill.com/api/v1/internal/cache-warm \
|
|
909
|
+
-H "X-Internal-Key: $INTERNAL_KEY" \
|
|
910
|
+
-H "Content-Type: application/json" || true
|
|
911
|
+
echo "Cache warmed via internal API"
|
|
912
|
+
else
|
|
913
|
+
curl -s https://verified-skill.com/api/v1/stats > /dev/null || true
|
|
914
|
+
echo "Cache warmed via stats endpoint"
|
|
915
|
+
fi
|
|
916
|
+
|
|
917
|
+
echo "vskill-platform deployed to verified-skill.com"
|
|
918
|
+
else
|
|
919
|
+
echo "No platform changes detected — skipping verified-skill.com deploy"
|
|
920
|
+
fi
|
|
921
|
+
else
|
|
922
|
+
echo "vskill-platform not on main ($VS_BRANCH) — skipping deploy"
|
|
923
|
+
fi
|
|
924
|
+
cd "$UMBRELLA_ROOT"
|
|
925
|
+
fi
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
### Generic Deployment Detection
|
|
929
|
+
|
|
930
|
+
For other repos with deployment scripts, auto-detect and run:
|
|
931
|
+
|
|
932
|
+
```bash
|
|
933
|
+
for repo_dir in repositories/*/*/; do
|
|
934
|
+
[ -d "$repo_dir/.git" ] || continue
|
|
935
|
+
|
|
936
|
+
# Skip already-handled repos
|
|
937
|
+
case "$(cd "$repo_dir" && pwd)" in
|
|
938
|
+
*specweave|*vskill-platform) continue ;;
|
|
939
|
+
esac
|
|
940
|
+
|
|
941
|
+
# Check for push-deploy.sh script
|
|
942
|
+
if [ -f "$repo_dir/scripts/push-deploy.sh" ]; then
|
|
943
|
+
cd "$repo_dir"
|
|
944
|
+
REPO_NAME=$(basename "$repo_dir")
|
|
945
|
+
REPO_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
946
|
+
echo "Found deploy script in $REPO_NAME — running..."
|
|
947
|
+
bash scripts/push-deploy.sh origin "$REPO_BRANCH" || echo "WARNING: Deploy failed for $REPO_NAME"
|
|
948
|
+
cd "$UMBRELLA_ROOT"
|
|
949
|
+
fi
|
|
950
|
+
done
|
|
951
|
+
```
|
|
952
|
+
|
|
953
|
+
### Report Deployment Results
|
|
954
|
+
|
|
955
|
+
Append to the release report:
|
|
956
|
+
|
|
957
|
+
```markdown
|
|
958
|
+
**Deployments**:
|
|
959
|
+
- spec-weave.com: [deployed via GH Actions | triggered workflow_dispatch | no docs changes | skipped]
|
|
960
|
+
- verified-skill.com: [deployed to Cloudflare Workers | no changes | skipped (not on main)]
|
|
961
|
+
- [other-repo]: [deployed via push-deploy.sh | skipped]
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
---
|
|
965
|
+
|
|
825
966
|
## Quick Reference
|
|
826
967
|
|
|
827
968
|
```bash
|
|
@@ -844,14 +985,14 @@ sw-release:npm --only --local
|
|
|
844
985
|
sw-release:npm --stable
|
|
845
986
|
```
|
|
846
987
|
|
|
847
|
-
| Scenario | Command | Prerelease Handling | Git Pushed | Tag Pushed | GH Release | Umbrella Sync |
|
|
848
|
-
|
|
849
|
-
| **FULL RELEASE** | (no flags) | `rc.1`→`rc.2` (smart) | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
|
|
850
|
-
| **QUICK RELEASE** | `--quick` | `rc.1`→`rc.2` (smart) | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
|
|
851
|
-
| CI release | `--ci` | `rc.1`→`rc.2` (smart) | ✅ Yes | ✅ Yes | ✅ (via CI) | ✅ Yes |
|
|
852
|
-
| Local publish | `--only` | `rc.1`→`rc.2` (smart) | ❌ No | ❌ No | ❌ No | ✅ Yes |
|
|
853
|
-
| Local bump | `--only --local` | `rc.1`→`rc.2` (smart) | ❌ No | ❌ No | ❌ No | ❌ No |
|
|
854
|
-
| **PROMOTE** | `--stable` | `rc.X`→`X.Y.Z+1` | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
|
|
988
|
+
| Scenario | Command | Prerelease Handling | Git Pushed | Tag Pushed | GH Release | Umbrella Sync | Deployed |
|
|
989
|
+
|----------|---------|---------------------|------------|------------|------------|---------------|----------|
|
|
990
|
+
| **FULL RELEASE** | (no flags) | `rc.1`→`rc.2` (smart) | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
|
|
991
|
+
| **QUICK RELEASE** | `--quick` | `rc.1`→`rc.2` (smart) | ✅ Yes | ❌ No | ❌ No | ✅ Yes | ✅ Yes |
|
|
992
|
+
| CI release | `--ci` | `rc.1`→`rc.2` (smart) | ✅ Yes | ✅ Yes | ✅ (via CI) | ✅ Yes | ✅ Yes |
|
|
993
|
+
| Local publish | `--only` | `rc.1`→`rc.2` (smart) | ❌ No | ❌ No | ❌ No | ✅ Yes | ❌ No |
|
|
994
|
+
| Local bump | `--only --local` | `rc.1`→`rc.2` (smart) | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No |
|
|
995
|
+
| **PROMOTE** | `--stable` | `rc.X`→`X.Y.Z+1` | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
|
|
855
996
|
|
|
856
997
|
---
|
|
857
998
|
|
|
@@ -66,8 +66,8 @@ fi
|
|
|
66
66
|
|
|
67
67
|
| Command | Flow | Use Case |
|
|
68
68
|
|---------|------|----------|
|
|
69
|
-
| `sw:npm` | Auto-commit -> **PUSH** -> Bump -> Build -> **Publish** -> Push tag -> **GH Release** | **DEFAULT: FULL RELEASE** |
|
|
70
|
-
| `sw:npm --quick` | Auto-commit -> **PUSH** -> Bump -> Build -> **Publish locally** -> NO GH release | **QUICK: Save +
|
|
69
|
+
| `sw:npm` | Auto-commit -> **PUSH** -> Bump -> Build -> **Publish** -> Push tag -> **GH Release** -> **Deploy all** | **DEFAULT: FULL RELEASE + Deploy** |
|
|
70
|
+
| `sw:npm --quick` | Auto-commit -> **PUSH** -> Bump -> Build -> **Publish locally** -> **Deploy all** -> NO GH release | **QUICK: Save + Release + Deploy** |
|
|
71
71
|
| `sw:npm --ci` | Bump -> Push -> **CI publishes + GH Release** | Let GitHub Actions handle everything |
|
|
72
72
|
| `sw:npm --only` | Bump -> Build -> **Publish locally** -> NO push | Quick local release, push later |
|
|
73
73
|
| `sw:npm --only --local` | **Bump ONLY** -> NO build, NO publish, NO git | FASTEST: Local testing only |
|
|
@@ -455,6 +455,7 @@ gh release view "v$NEW_VERSION" --json tagName,url
|
|
|
455
455
|
- Version commit + tag pushed to GitHub
|
|
456
456
|
- **GitHub Release created with release notes**
|
|
457
457
|
- **Umbrella sync**: all sibling repos committed+pushed, umbrella repo committed+pushed
|
|
458
|
+
- **Deployment**: all deployable repos deployed (docs sites, platforms)
|
|
458
459
|
|
|
459
460
|
---
|
|
460
461
|
|
|
@@ -576,6 +577,7 @@ git push origin $BRANCH
|
|
|
576
577
|
- Version commit pushed to GitHub
|
|
577
578
|
- Tag NOT pushed (no GitHub Actions)
|
|
578
579
|
- **Umbrella sync**: all sibling repos committed+pushed, umbrella repo committed+pushed
|
|
580
|
+
- **Deployment**: all deployable repos deployed (docs sites, platforms)
|
|
579
581
|
|
|
580
582
|
---
|
|
581
583
|
|
|
@@ -905,6 +907,145 @@ Skip this step entirely — there's only one repo and it was already pushed.
|
|
|
905
907
|
|
|
906
908
|
---
|
|
907
909
|
|
|
910
|
+
## DEPLOYMENT STEP (Post-Release) — RUNS AFTER UMBRELLA SYNC
|
|
911
|
+
|
|
912
|
+
**Skip this step for `--only --local` and `--only` modes.** For DEFAULT, QUICK, and CI modes, this runs after umbrella sync to deploy all services and docs that received changes.
|
|
913
|
+
|
|
914
|
+
**Why**: A release should ship everything — not just npm. If docs changed, deploy the docs site. If the platform changed, deploy it. One command = fully shipped.
|
|
915
|
+
|
|
916
|
+
### Deployment Detection
|
|
917
|
+
|
|
918
|
+
During umbrella sync, track which repos were pushed (had dirty files or unpushed commits). Only deploy repos that had actual changes pushed.
|
|
919
|
+
|
|
920
|
+
```bash
|
|
921
|
+
# PUSHED_REPOS array was populated during umbrella sync
|
|
922
|
+
# Each entry: "repo_dir|repo_name"
|
|
923
|
+
```
|
|
924
|
+
|
|
925
|
+
### SpecWeave Public Docs (spec-weave.com)
|
|
926
|
+
|
|
927
|
+
Docs deploy via GitHub Actions on push to `develop`, or via `workflow_dispatch` on any branch.
|
|
928
|
+
|
|
929
|
+
```bash
|
|
930
|
+
SPECWEAVE_DIR="$UMBRELLA_ROOT/repositories/anton-abyzov/specweave"
|
|
931
|
+
if [ -d "$SPECWEAVE_DIR" ]; then
|
|
932
|
+
cd "$SPECWEAVE_DIR"
|
|
933
|
+
SW_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
934
|
+
|
|
935
|
+
# Check if docs-related files changed in recent commits
|
|
936
|
+
DOCS_CHANGED=$(git diff HEAD~5 --name-only 2>/dev/null | grep -E '^(docs-site/|\.specweave/docs/public/|README\.md|CHANGELOG\.md)' || true)
|
|
937
|
+
|
|
938
|
+
if [ -n "$DOCS_CHANGED" ]; then
|
|
939
|
+
if [ "$SW_BRANCH" = "develop" ]; then
|
|
940
|
+
echo "Docs changes pushed to develop — GitHub Actions will auto-deploy to spec-weave.com"
|
|
941
|
+
else
|
|
942
|
+
# Trigger workflow_dispatch for docs deployment from non-develop branch
|
|
943
|
+
SW_GH_REPO=$(node -p "try { const r = require('./package.json').repository; typeof r === 'string' ? r : r?.url?.replace(/\\.git$/, '') || '' } catch(e) { '' }" | sed 's|https://github.com/||')
|
|
944
|
+
if [ -n "$SW_GH_REPO" ]; then
|
|
945
|
+
echo "Triggering docs deployment via workflow_dispatch..."
|
|
946
|
+
gh workflow run deploy-docs.yml --repo "$SW_GH_REPO" --ref "$SW_BRANCH" 2>/dev/null && \
|
|
947
|
+
echo "Docs deployment triggered for spec-weave.com" || \
|
|
948
|
+
echo "WARNING: Could not trigger docs deploy — may need manual trigger from GitHub Actions tab"
|
|
949
|
+
fi
|
|
950
|
+
fi
|
|
951
|
+
else
|
|
952
|
+
echo "No docs changes detected — skipping spec-weave.com deploy"
|
|
953
|
+
fi
|
|
954
|
+
cd "$UMBRELLA_ROOT"
|
|
955
|
+
fi
|
|
956
|
+
```
|
|
957
|
+
|
|
958
|
+
### Verified-Skill Platform (verified-skill.com)
|
|
959
|
+
|
|
960
|
+
The vskill-platform deploys to Cloudflare Workers. Only deploy from `main` branch.
|
|
961
|
+
|
|
962
|
+
```bash
|
|
963
|
+
VSKILL_DIR="$UMBRELLA_ROOT/repositories/anton-abyzov/vskill-platform"
|
|
964
|
+
if [ -d "$VSKILL_DIR" ]; then
|
|
965
|
+
cd "$VSKILL_DIR"
|
|
966
|
+
VS_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
967
|
+
|
|
968
|
+
if [ "$VS_BRANCH" = "main" ]; then
|
|
969
|
+
# Check if this repo had changes (was pushed during umbrella sync or had recent changes)
|
|
970
|
+
VS_DIRTY=$(git diff HEAD~3 --name-only 2>/dev/null | grep -E '^(src/|app/|pages/|lib/|prisma/|public/)' || true)
|
|
971
|
+
VS_AHEAD_OF_DEPLOY=$(git log --oneline -3 --no-merges 2>/dev/null | head -3)
|
|
972
|
+
|
|
973
|
+
if [ -n "$VS_DIRTY" ] || [ -n "$VS_AHEAD_OF_DEPLOY" ]; then
|
|
974
|
+
echo "Deploying vskill-platform to Cloudflare Workers..."
|
|
975
|
+
npm run db:generate
|
|
976
|
+
npm run db:migrate
|
|
977
|
+
npm run build
|
|
978
|
+
npm run build:worker
|
|
979
|
+
npm run deploy
|
|
980
|
+
|
|
981
|
+
echo "Deploy complete. Warming caches..."
|
|
982
|
+
sleep 3
|
|
983
|
+
|
|
984
|
+
# Cache warming
|
|
985
|
+
INTERNAL_KEY=""
|
|
986
|
+
if [ -f ".dev.vars" ]; then
|
|
987
|
+
INTERNAL_KEY=$(grep 'INTERNAL_BROADCAST_KEY=' .dev.vars 2>/dev/null | cut -d'=' -f2 || true)
|
|
988
|
+
fi
|
|
989
|
+
|
|
990
|
+
if [ -n "$INTERNAL_KEY" ]; then
|
|
991
|
+
curl -s -X POST https://verified-skill.com/api/v1/internal/cache-warm \
|
|
992
|
+
-H "X-Internal-Key: $INTERNAL_KEY" \
|
|
993
|
+
-H "Content-Type: application/json" || true
|
|
994
|
+
echo "Cache warmed via internal API"
|
|
995
|
+
else
|
|
996
|
+
curl -s https://verified-skill.com/api/v1/stats > /dev/null || true
|
|
997
|
+
echo "Cache warmed via stats endpoint"
|
|
998
|
+
fi
|
|
999
|
+
|
|
1000
|
+
echo "vskill-platform deployed to verified-skill.com"
|
|
1001
|
+
else
|
|
1002
|
+
echo "No platform changes detected — skipping verified-skill.com deploy"
|
|
1003
|
+
fi
|
|
1004
|
+
else
|
|
1005
|
+
echo "vskill-platform not on main ($VS_BRANCH) — skipping deploy"
|
|
1006
|
+
fi
|
|
1007
|
+
cd "$UMBRELLA_ROOT"
|
|
1008
|
+
fi
|
|
1009
|
+
```
|
|
1010
|
+
|
|
1011
|
+
### Generic Deployment Detection
|
|
1012
|
+
|
|
1013
|
+
For other repos with deployment scripts, auto-detect and run:
|
|
1014
|
+
|
|
1015
|
+
```bash
|
|
1016
|
+
for repo_dir in repositories/*/*/; do
|
|
1017
|
+
[ -d "$repo_dir/.git" ] || continue
|
|
1018
|
+
|
|
1019
|
+
# Skip already-handled repos
|
|
1020
|
+
case "$(cd "$repo_dir" && pwd)" in
|
|
1021
|
+
*specweave|*vskill-platform) continue ;;
|
|
1022
|
+
esac
|
|
1023
|
+
|
|
1024
|
+
# Check for push-deploy.sh script
|
|
1025
|
+
if [ -f "$repo_dir/scripts/push-deploy.sh" ]; then
|
|
1026
|
+
cd "$repo_dir"
|
|
1027
|
+
REPO_NAME=$(basename "$repo_dir")
|
|
1028
|
+
REPO_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
1029
|
+
echo "Found deploy script in $REPO_NAME — running..."
|
|
1030
|
+
bash scripts/push-deploy.sh origin "$REPO_BRANCH" || echo "WARNING: Deploy failed for $REPO_NAME"
|
|
1031
|
+
cd "$UMBRELLA_ROOT"
|
|
1032
|
+
fi
|
|
1033
|
+
done
|
|
1034
|
+
```
|
|
1035
|
+
|
|
1036
|
+
### Report Deployment Results
|
|
1037
|
+
|
|
1038
|
+
Append to the release report:
|
|
1039
|
+
|
|
1040
|
+
```markdown
|
|
1041
|
+
**Deployments**:
|
|
1042
|
+
- spec-weave.com: [deployed via GH Actions | triggered workflow_dispatch | no docs changes | skipped]
|
|
1043
|
+
- verified-skill.com: [deployed to Cloudflare Workers | no changes | skipped (not on main)]
|
|
1044
|
+
- [other-repo]: [deployed via push-deploy.sh | skipped]
|
|
1045
|
+
```
|
|
1046
|
+
|
|
1047
|
+
---
|
|
1048
|
+
|
|
908
1049
|
## Quick Reference
|
|
909
1050
|
|
|
910
1051
|
```bash
|
|
@@ -927,14 +1068,14 @@ sw:npm --only --local
|
|
|
927
1068
|
sw:npm --stable
|
|
928
1069
|
```
|
|
929
1070
|
|
|
930
|
-
| Scenario | Command | Prerelease Handling | Git Pushed | Tag Pushed | GH Release | Umbrella Sync |
|
|
931
|
-
|
|
932
|
-
| **FULL RELEASE** | (no flags) | `rc.1`->`rc.2` (smart) | Yes | Yes | Yes | Yes |
|
|
933
|
-
| **QUICK RELEASE** | `--quick` | `rc.1`->`rc.2` (smart) | Yes | No | No | Yes |
|
|
934
|
-
| CI release | `--ci` | `rc.1`->`rc.2` (smart) | Yes | Yes | Yes (via CI) | Yes |
|
|
935
|
-
| Local publish | `--only` | `rc.1`->`rc.2` (smart) | No | No | No | Yes |
|
|
936
|
-
| Local bump | `--only --local` | `rc.1`->`rc.2` (smart) | No | No | No | No |
|
|
937
|
-
| **PROMOTE** | `--stable` | `rc.X`->`X.Y.Z+1` | Yes | Yes | Yes | Yes |
|
|
1071
|
+
| Scenario | Command | Prerelease Handling | Git Pushed | Tag Pushed | GH Release | Umbrella Sync | Deployed |
|
|
1072
|
+
|----------|---------|---------------------|------------|------------|------------|---------------|----------|
|
|
1073
|
+
| **FULL RELEASE** | (no flags) | `rc.1`->`rc.2` (smart) | Yes | Yes | Yes | Yes | Yes |
|
|
1074
|
+
| **QUICK RELEASE** | `--quick` | `rc.1`->`rc.2` (smart) | Yes | No | No | Yes | Yes |
|
|
1075
|
+
| CI release | `--ci` | `rc.1`->`rc.2` (smart) | Yes | Yes | Yes (via CI) | Yes | Yes |
|
|
1076
|
+
| Local publish | `--only` | `rc.1`->`rc.2` (smart) | No | No | No | Yes | No |
|
|
1077
|
+
| Local bump | `--only --local` | `rc.1`->`rc.2` (smart) | No | No | No | No | No |
|
|
1078
|
+
| **PROMOTE** | `--stable` | `rc.X`->`X.Y.Z+1` | Yes | Yes | Yes | Yes | Yes |
|
|
938
1079
|
|
|
939
1080
|
## Resources
|
|
940
1081
|
|