Merge pull request #276 from mvanhorn/feat/beta-channel-wiring

feat: wire compare.sh and CLAUDE.md for /last30days-beta channel
This commit is contained in:
Matt Van Horn
2026-04-17 22:44:31 -04:00
committed by GitHub
2 changed files with 26 additions and 21 deletions
+5 -1
View File
@@ -18,4 +18,8 @@ bash scripts/sync.sh # Deploy to ~/.claud
## Rules ## Rules
- `lib/__init__.py` must be bare package marker (comment only, NO eager imports) - `lib/__init__.py` must be bare package marker (comment only, NO eager imports)
- After edits: run `bash scripts/sync.sh` to deploy - After edits: run `bash scripts/sync.sh` to deploy
- Git remotes: origin=private, upstream=public - Git remote: origin = public (`mvanhorn/last30days-skill`)
## Beta channel
Experimental changes get tested on `mvanhorn/last30days-skill-private`, which installs as a parallel `/last30days-beta` slash command. Beta-only changes never ship to public without a review PR here. Workflow guide lives at `BETA.md` in the private repo. Plan that established this setup: `docs/plans/2026-04-17-005-feat-beta-skill-from-private-repo-plan.md`.
+21 -20
View File
@@ -1,14 +1,13 @@
#!/bin/bash #!/bin/bash
# A/B/C test runner for last30days skill variants # A/B test runner: public release vs private beta
# Usage: bash scripts/compare.sh "Kanye West" # Usage: bash scripts/compare.sh "Kanye West"
# #
# Runs all 3 skills sequentially (30s gap for rate limits), # Runs /last30days (public release) and /last30days-beta (private beta)
# saves raw results with unique suffixes, then prints file paths # sequentially with a 30s gap, saves raw results with distinct suffixes,
# for comparison. # prints file paths for comparison.
set -e set -e
# Join all args as the topic (so "bash compare.sh Kevin Rose" works without quotes)
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
echo "Usage: bash scripts/compare.sh <topic>" echo "Usage: bash scripts/compare.sh <topic>"
echo " Example: bash scripts/compare.sh Kevin Rose" echo " Example: bash scripts/compare.sh Kevin Rose"
@@ -20,40 +19,42 @@ DIR="$HOME/Documents/Last30Days"
DATE=$(date +%Y-%m-%d) DATE=$(date +%Y-%m-%d)
echo "==============================================" echo "=============================================="
echo " A/B/C Test: $TOPIC" echo " A/B Test: $TOPIC"
echo " Date: $DATE" echo " Date: $DATE"
echo "==============================================" echo "=============================================="
echo "" echo ""
# Run 1: v2.9 production # Run 1: public release
echo "[1/3] Running v2.9 (production /last30days)..." echo "[1/2] Running /last30days (public release)..."
echo " This takes 2-4 minutes..." echo " This takes 2-4 minutes..."
claude -p --dangerously-skip-permissions "/last30days $TOPIC" > /dev/null 2>&1 || true claude -p --dangerously-skip-permissions "/last30days $TOPIC" > /dev/null 2>&1 || true
V2_FILE="$DIR/${SLUG}-raw.md" RELEASE_FILE="$DIR/${SLUG}-raw.md"
[ -f "$V2_FILE" ] && echo " Done $V2_FILE" || echo " FAILED no output file" [ -f "$RELEASE_FILE" ] && echo " Done: $RELEASE_FILE" || echo " FAILED: no output file"
echo "" echo ""
echo " Waiting 30s for API rate limits..." echo " Waiting 30s for API rate limits..."
sleep 30 sleep 30
# Run 2: v3 Gemini # Run 2: private beta
echo "[2/3] Running v3 (/last30days-3)..." echo "[2/2] Running /last30days-beta (private beta)..."
echo " This takes 2-4 minutes..." echo " This takes 2-4 minutes..."
claude -p --dangerously-skip-permissions "/last30days-3:last30days-skill-private $TOPIC" > /dev/null 2>&1 || true claude -p --dangerously-skip-permissions "/last30days-beta $TOPIC" > /dev/null 2>&1 || true
V3GEM_FILE="$DIR/${SLUG}-raw-v3.md" BETA_FILE="$DIR/${SLUG}-raw-beta.md"
[ -f "$V3GEM_FILE" ] && echo " Done $V3GEM_FILE" || echo " FAILED no output file" [ -f "$BETA_FILE" ] && echo " Done: $BETA_FILE" || echo " FAILED: no output file"
echo ""
echo "" echo ""
echo "==============================================" echo "=============================================="
echo " Both complete. Raw files:" echo " Both complete. Raw files:"
echo "==============================================" echo "=============================================="
echo "" echo ""
ls -la "$DIR/${SLUG}-raw"*.md 2>/dev/null || echo " (no files found check if skills saved correctly)" ls -la "$DIR/${SLUG}-raw"*.md 2>/dev/null || echo " (no files found - check if skills saved correctly)"
echo "" echo ""
echo "To compare, run in Claude Code:" echo "To compare, run in Claude Code:"
echo " Read and compare these raw research files, produce a detailed report:" echo " Read and compare these raw research files, produce a detailed report:"
echo " $DIR/${SLUG}-raw.md" echo " $RELEASE_FILE"
echo " $DIR/${SLUG}-raw-v3.md" echo " $BETA_FILE"
echo ""
echo "Beta output should start with a line like:"
echo " 🧪 last30days-beta · branch <name> · synced $DATE"
echo "If that line is missing, the beta badge regressed. See docs/plans/2026-04-17-005-*-plan.md."
echo "" echo ""