100xprism 2.3.1
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/LICENSE +21 -0
- package/README.md +196 -0
- package/VERSION +1 -0
- package/adapters/antigravity.sh +14 -0
- package/adapters/claude-code.sh +160 -0
- package/adapters/codex.sh +13 -0
- package/adapters/copilot.sh +13 -0
- package/adapters/cursor.sh +13 -0
- package/adapters/gemini.sh +13 -0
- package/adapters/lib/__pycache__/modules.cpython-312.pyc +0 -0
- package/adapters/lib/modules.py +592 -0
- package/adapters/lib/shared.sh +83 -0
- package/adapters/lib/sync_plugins.py +113 -0
- package/adapters/windsurf.sh +15 -0
- package/bin/100xprism.js +29 -0
- package/get.sh +24 -0
- package/install-project.sh +82 -0
- package/install.sh +281 -0
- package/lib/adapters/windows.js +429 -0
- package/lib/bootstrap.js +33 -0
- package/lib/init.js +19 -0
- package/lib/install.js +18 -0
- package/lib/migrate.js +52 -0
- package/lib/platform.js +22 -0
- package/lib/update.js +29 -0
- package/modules/_lib/reference.md +77 -0
- package/modules/a11y-auditor/SKILL.md +151 -0
- package/modules/ab-test-setup/SKILL.md +266 -0
- package/modules/ab-test-setup/evals/evals.json +105 -0
- package/modules/ab-test-setup/references/sample-size-guide.md +263 -0
- package/modules/ab-test-setup/references/test-templates.md +277 -0
- package/modules/ad-creative/SKILL.md +362 -0
- package/modules/ad-creative/evals/evals.json +90 -0
- package/modules/ad-creative/references/generative-tools.md +637 -0
- package/modules/ad-creative/references/platform-specs.md +213 -0
- package/modules/ai-seo/SKILL.md +398 -0
- package/modules/ai-seo/evals/evals.json +90 -0
- package/modules/ai-seo/references/content-patterns.md +285 -0
- package/modules/ai-seo/references/platform-ranking-factors.md +152 -0
- package/modules/analytics-tracking/SKILL.md +309 -0
- package/modules/analytics-tracking/evals/evals.json +90 -0
- package/modules/analytics-tracking/references/event-library.md +260 -0
- package/modules/analytics-tracking/references/ga4-implementation.md +300 -0
- package/modules/analytics-tracking/references/gtm-implementation.md +390 -0
- package/modules/architect/SKILL.md +282 -0
- package/modules/branch/SKILL.md +105 -0
- package/modules/churn-prevention/SKILL.md +424 -0
- package/modules/churn-prevention/evals/evals.json +93 -0
- package/modules/churn-prevention/references/cancel-flow-patterns.md +316 -0
- package/modules/churn-prevention/references/dunning-playbook.md +408 -0
- package/modules/cloud-security/SKILL.md +240 -0
- package/modules/cold-email/SKILL.md +178 -0
- package/modules/cold-email/evals/evals.json +94 -0
- package/modules/cold-email/references/benchmarks.md +83 -0
- package/modules/cold-email/references/follow-up-sequences.md +81 -0
- package/modules/cold-email/references/frameworks.md +90 -0
- package/modules/cold-email/references/personalization.md +79 -0
- package/modules/cold-email/references/subject-lines.md +53 -0
- package/modules/commit/SKILL.md +195 -0
- package/modules/competitor-alternatives/SKILL.md +256 -0
- package/modules/competitor-alternatives/evals/evals.json +93 -0
- package/modules/competitor-alternatives/references/content-architecture.md +271 -0
- package/modules/competitor-alternatives/references/templates.md +223 -0
- package/modules/connect/SKILL.md +894 -0
- package/modules/content-strategy/SKILL.md +359 -0
- package/modules/content-strategy/evals/evals.json +90 -0
- package/modules/context-dump/SKILL.md +67 -0
- package/modules/copy-editing/SKILL.md +447 -0
- package/modules/copy-editing/evals/evals.json +89 -0
- package/modules/copy-editing/references/plain-english-alternatives.md +394 -0
- package/modules/copywriting/SKILL.md +271 -0
- package/modules/copywriting/evals/evals.json +111 -0
- package/modules/copywriting/references/cold-email-benchmarks.md +83 -0
- package/modules/copywriting/references/cold-email-follow-ups.md +81 -0
- package/modules/copywriting/references/cold-email-frameworks.md +90 -0
- package/modules/copywriting/references/cold-email-personalization.md +79 -0
- package/modules/copywriting/references/cold-email-subject-lines.md +53 -0
- package/modules/copywriting/references/copy-frameworks.md +344 -0
- package/modules/copywriting/references/email-copy-guidelines.md +113 -0
- package/modules/copywriting/references/email-types.md +515 -0
- package/modules/copywriting/references/natural-transitions.md +272 -0
- package/modules/copywriting/references/sequence-templates.md +168 -0
- package/modules/data-query/SKILL.md +58 -0
- package/modules/data-viz/SKILL.md +225 -0
- package/modules/db/SKILL.md +205 -0
- package/modules/db/db-engines/_router.md +24 -0
- package/modules/db/db-engines/athena.md +16 -0
- package/modules/db/db-engines/cloud-sql.md +16 -0
- package/modules/db/db-engines/databricks.md +14 -0
- package/modules/db/db-engines/oracle.md +14 -0
- package/modules/db/db-engines/postgres.md +15 -0
- package/modules/db/db-engines/presto.md +14 -0
- package/modules/db/db-engines/snowflake.md +14 -0
- package/modules/docs/SKILL.md +100 -0
- package/modules/email-sequence/SKILL.md +309 -0
- package/modules/email-sequence/evals/evals.json +93 -0
- package/modules/email-sequence/references/copy-guidelines.md +113 -0
- package/modules/email-sequence/references/email-types.md +515 -0
- package/modules/email-sequence/references/sequence-templates.md +168 -0
- package/modules/enterprise-design/SKILL.md +75 -0
- package/modules/eval/SKILL.md +105 -0
- package/modules/figma-translator/SKILL.md +49 -0
- package/modules/fix-bugs/SKILL.md +104 -0
- package/modules/form-cro/SKILL.md +429 -0
- package/modules/form-cro/evals/evals.json +90 -0
- package/modules/free-tool-strategy/SKILL.md +178 -0
- package/modules/free-tool-strategy/evals/evals.json +90 -0
- package/modules/free-tool-strategy/references/tool-types.md +217 -0
- package/modules/gate/SKILL.md +232 -0
- package/modules/grill-me/SKILL.md +59 -0
- package/modules/interaction-engineer/SKILL.md +49 -0
- package/modules/issue/SKILL.md +272 -0
- package/modules/launch/SKILL.md +345 -0
- package/modules/launch-strategy/SKILL.md +353 -0
- package/modules/launch-strategy/evals/evals.json +91 -0
- package/modules/lint/SKILL.md +126 -0
- package/modules/marketing-ideas/SKILL.md +167 -0
- package/modules/marketing-ideas/evals/evals.json +90 -0
- package/modules/marketing-ideas/references/ideas-by-category.md +366 -0
- package/modules/marketing-psychology/SKILL.md +455 -0
- package/modules/marketing-psychology/evals/evals.json +88 -0
- package/modules/motion-designer/SKILL.md +214 -0
- package/modules/onboarding-cro/SKILL.md +220 -0
- package/modules/onboarding-cro/evals/evals.json +92 -0
- package/modules/onboarding-cro/references/experiments.md +258 -0
- package/modules/orchestrate/SKILL.md +77 -0
- package/modules/page-cro/SKILL.md +182 -0
- package/modules/page-cro/evals/evals.json +111 -0
- package/modules/page-cro/references/experiments.md +248 -0
- package/modules/page-cro/references/paywall-experiments.md +164 -0
- package/modules/paid-ads/SKILL.md +315 -0
- package/modules/paid-ads/evals/evals.json +90 -0
- package/modules/paid-ads/references/ad-copy-templates.md +207 -0
- package/modules/paid-ads/references/audience-targeting.md +243 -0
- package/modules/paid-ads/references/platform-setup-checklists.md +277 -0
- package/modules/paywall-upgrade-cro/SKILL.md +227 -0
- package/modules/paywall-upgrade-cro/evals/evals.json +93 -0
- package/modules/paywall-upgrade-cro/references/experiments.md +164 -0
- package/modules/popup-cro/SKILL.md +453 -0
- package/modules/popup-cro/evals/evals.json +94 -0
- package/modules/pr/SKILL.md +203 -0
- package/modules/pricing-strategy/SKILL.md +231 -0
- package/modules/pricing-strategy/evals/evals.json +90 -0
- package/modules/pricing-strategy/references/research-methods.md +152 -0
- package/modules/pricing-strategy/references/tier-structure.md +232 -0
- package/modules/product-marketing-context/SKILL.md +241 -0
- package/modules/product-marketing-context/evals/evals.json +85 -0
- package/modules/programmatic-seo/SKILL.md +238 -0
- package/modules/programmatic-seo/evals/evals.json +94 -0
- package/modules/programmatic-seo/references/playbooks.md +308 -0
- package/modules/push/SKILL.md +202 -0
- package/modules/referral-program/SKILL.md +255 -0
- package/modules/referral-program/evals/evals.json +89 -0
- package/modules/referral-program/references/affiliate-programs.md +164 -0
- package/modules/referral-program/references/program-examples.md +143 -0
- package/modules/release/SKILL.md +293 -0
- package/modules/revops/SKILL.md +343 -0
- package/modules/revops/evals/evals.json +91 -0
- package/modules/revops/references/automation-playbooks.md +290 -0
- package/modules/revops/references/lifecycle-definitions.md +278 -0
- package/modules/revops/references/routing-rules.md +203 -0
- package/modules/revops/references/scoring-models.md +247 -0
- package/modules/sales-enablement/SKILL.md +349 -0
- package/modules/sales-enablement/evals/evals.json +91 -0
- package/modules/sales-enablement/references/deck-frameworks.md +263 -0
- package/modules/sales-enablement/references/demo-scripts.md +355 -0
- package/modules/sales-enablement/references/objection-library.md +270 -0
- package/modules/sales-enablement/references/one-pager-templates.md +208 -0
- package/modules/schema-markup/SKILL.md +179 -0
- package/modules/schema-markup/evals/evals.json +87 -0
- package/modules/schema-markup/references/schema-examples.md +398 -0
- package/modules/security/SKILL.md +138 -0
- package/modules/seo-audit/SKILL.md +412 -0
- package/modules/seo-audit/evals/evals.json +136 -0
- package/modules/seo-audit/references/ai-writing-detection.md +200 -0
- package/modules/seo-audit/references/content-patterns.md +285 -0
- package/modules/seo-audit/references/platform-ranking-factors.md +152 -0
- package/modules/signup-flow-cro/SKILL.md +359 -0
- package/modules/signup-flow-cro/evals/evals.json +88 -0
- package/modules/site-architecture/SKILL.md +357 -0
- package/modules/site-architecture/evals/evals.json +88 -0
- package/modules/site-architecture/references/mermaid-templates.md +216 -0
- package/modules/site-architecture/references/navigation-patterns.md +305 -0
- package/modules/site-architecture/references/site-type-templates.md +293 -0
- package/modules/social-content/SKILL.md +278 -0
- package/modules/social-content/evals/evals.json +92 -0
- package/modules/social-content/references/platforms.md +170 -0
- package/modules/social-content/references/post-templates.md +177 -0
- package/modules/social-content/references/reverse-engineering.md +195 -0
- package/modules/spec/SKILL.md +81 -0
- package/modules/subagents/SKILL.md +123 -0
- package/modules/techdebt/SKILL.md +71 -0
- package/modules/terminal-setup/SKILL.md +49 -0
- package/modules/test/SKILL.md +493 -0
- package/modules/test/references/e2e-patterns.md +294 -0
- package/modules/update-claude-md/SKILL.md +52 -0
- package/modules/visual-system-architect/SKILL.md +53 -0
- package/package.json +44 -0
- package/plugins/plugins.json +43 -0
- package/shell/aliases.sh +24 -0
- package/shell/check-update.sh +212 -0
- package/templates/.env.example +199 -0
- package/templates/docker-compose.md +46 -0
- package/templates/node-frontend.md +56 -0
- package/templates/node-fullstack.md +59 -0
- package/templates/python-api.md +57 -0
- package/update.sh +231 -0
package/update.sh
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
CLAUDE_DIR="$HOME/.claude"
|
|
6
|
+
COMMANDS_DIR="$CLAUDE_DIR/commands"
|
|
7
|
+
SKILLS_DIR="$CLAUDE_DIR/skills"
|
|
8
|
+
SETTINGS_FILE="$CLAUDE_DIR/settings.json"
|
|
9
|
+
CHECK_ONLY=false
|
|
10
|
+
PLUGINS_ONLY=false
|
|
11
|
+
# Overridable so tests can stub the CLI (see test/update-plugins.test.js).
|
|
12
|
+
CLAUDE_BIN="${CLAUDE_BIN:-claude}"
|
|
13
|
+
|
|
14
|
+
# Colors
|
|
15
|
+
GREEN='\033[0;32m'
|
|
16
|
+
YELLOW='\033[1;33m'
|
|
17
|
+
CYAN='\033[0;36m'
|
|
18
|
+
NC='\033[0m'
|
|
19
|
+
|
|
20
|
+
for _arg in "$@"; do
|
|
21
|
+
[ "$_arg" = "--check-only" ] && CHECK_ONLY=true
|
|
22
|
+
[ "$_arg" = "--plugins-only" ] && PLUGINS_ONLY=true
|
|
23
|
+
done
|
|
24
|
+
|
|
25
|
+
# ── Plugin update function (always available) ─────────────────────────────────
|
|
26
|
+
# Reads the plugin list from plugins/plugins.json (single source of truth). Each
|
|
27
|
+
# entry is the fully-qualified `name@marketplace` id — the only form
|
|
28
|
+
# `claude plugin update` accepts (bare names fail with "not found").
|
|
29
|
+
run_plugin_updates() {
|
|
30
|
+
local _plugins_file="$REPO_DIR/plugins/plugins.json"
|
|
31
|
+
local _plugins=()
|
|
32
|
+
while IFS= read -r _p; do
|
|
33
|
+
[ -n "$_p" ] && _plugins+=("$_p")
|
|
34
|
+
done < <(python3 -c "import json,sys; print('\n'.join(json.load(open(sys.argv[1])).get('plugins',[])))" "$_plugins_file" 2>/dev/null)
|
|
35
|
+
|
|
36
|
+
if [ "${#_plugins[@]}" -eq 0 ]; then
|
|
37
|
+
echo -e " ${YELLOW}→ Plugins: no entries found in plugins.json — skipping${NC}"
|
|
38
|
+
return 0
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
local _ok=0 _failed=()
|
|
42
|
+
for _p in "${_plugins[@]}"; do
|
|
43
|
+
# A plugin can be installed at user, project, or local scope. `claude plugin
|
|
44
|
+
# update` defaults to user scope and exits non-zero with "not installed at
|
|
45
|
+
# scope <s>" when the plugin lives at a different scope — which previously
|
|
46
|
+
# surfaced as a spurious failure for project/local-scoped plugins. Try each
|
|
47
|
+
# scope until one updates; only mark failed if it's absent from all of them.
|
|
48
|
+
local _updated=false _scope
|
|
49
|
+
for _scope in user project local; do
|
|
50
|
+
if "$CLAUDE_BIN" plugin update "$_p" --scope "$_scope" >/dev/null 2>&1; then
|
|
51
|
+
_updated=true
|
|
52
|
+
break
|
|
53
|
+
fi
|
|
54
|
+
done
|
|
55
|
+
if $_updated; then
|
|
56
|
+
(( _ok++ )) || true
|
|
57
|
+
else
|
|
58
|
+
_failed+=("$_p")
|
|
59
|
+
fi
|
|
60
|
+
done
|
|
61
|
+
|
|
62
|
+
if [ "${#_failed[@]}" -eq 0 ]; then
|
|
63
|
+
echo -e " ${GREEN}→ Plugins: $_ok updated ✓${NC}"
|
|
64
|
+
else
|
|
65
|
+
echo -e " ${GREEN}→ Plugins: $_ok updated${NC}, ${YELLOW}${#_failed[@]} failed:${NC}"
|
|
66
|
+
for _p in "${_failed[@]}"; do
|
|
67
|
+
echo -e " ${YELLOW}• $_p${NC}"
|
|
68
|
+
done
|
|
69
|
+
fi
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
# ── Hook sync (only refreshes hooks already installed; never enables new ones) ─
|
|
73
|
+
# Keeps the wired-in hook commands current after a pull without re-prompting or
|
|
74
|
+
# silently opting users into hooks they declined at install time.
|
|
75
|
+
sync_hooks() {
|
|
76
|
+
[ -f "$SETTINGS_FILE" ] || return 0
|
|
77
|
+
python3 "$REPO_DIR/adapters/lib/modules.py" emit-hooks --sync 2>/dev/null || true
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
# Test seam: when sourced with UPDATE_SH_SOURCE_ONLY=1, load the functions above
|
|
81
|
+
# without running the update flow, so tests can exercise them against a stubbed
|
|
82
|
+
# CLAUDE_BIN. No effect when the script is executed normally.
|
|
83
|
+
if [ -n "${UPDATE_SH_SOURCE_ONLY:-}" ]; then
|
|
84
|
+
return 0 2>/dev/null || exit 0
|
|
85
|
+
fi
|
|
86
|
+
|
|
87
|
+
if [ "$PLUGINS_ONLY" = true ]; then
|
|
88
|
+
echo ""
|
|
89
|
+
echo "Updating Claude plugins..."
|
|
90
|
+
run_plugin_updates
|
|
91
|
+
echo ""
|
|
92
|
+
echo -e "${GREEN}✓ Done. Restart Claude Code to activate changes.${NC}"
|
|
93
|
+
echo ""
|
|
94
|
+
exit 0
|
|
95
|
+
fi
|
|
96
|
+
|
|
97
|
+
echo ""
|
|
98
|
+
echo "Checking for updates..."
|
|
99
|
+
|
|
100
|
+
cd "$REPO_DIR"
|
|
101
|
+
|
|
102
|
+
git fetch origin main --quiet 2>/dev/null
|
|
103
|
+
|
|
104
|
+
LOCAL=$(git rev-parse HEAD)
|
|
105
|
+
REMOTE=$(git rev-parse origin/main)
|
|
106
|
+
|
|
107
|
+
if [ "$LOCAL" = "$REMOTE" ]; then
|
|
108
|
+
echo -e "${GREEN}✓ Repo already up to date.${NC}"
|
|
109
|
+
echo ""
|
|
110
|
+
echo "Syncing plugins and settings..."
|
|
111
|
+
python3 "$REPO_DIR/adapters/lib/sync_plugins.py" \
|
|
112
|
+
--settings "$SETTINGS_FILE" --plugins "$REPO_DIR/plugins/plugins.json"
|
|
113
|
+
sync_hooks
|
|
114
|
+
run_plugin_updates
|
|
115
|
+
echo ""
|
|
116
|
+
echo -e "${CYAN}Tip: Restart Claude Code to activate any plugin changes.${NC}"
|
|
117
|
+
echo ""
|
|
118
|
+
exit 0
|
|
119
|
+
fi
|
|
120
|
+
|
|
121
|
+
CHANGES=$(git log --oneline "$LOCAL..$REMOTE" 2>/dev/null)
|
|
122
|
+
LOCAL_SHORT=$(git rev-parse --short HEAD)
|
|
123
|
+
REMOTE_SHORT=$(git rev-parse --short origin/main)
|
|
124
|
+
|
|
125
|
+
echo ""
|
|
126
|
+
echo " Current version: $LOCAL_SHORT ($(git log -1 --format='%ar' HEAD))"
|
|
127
|
+
echo " Latest version: $REMOTE_SHORT ($(git log -1 --format='%ar' origin/main))"
|
|
128
|
+
echo ""
|
|
129
|
+
echo "Changes:"
|
|
130
|
+
while IFS= read -r line; do echo " • $line"; done <<< "$CHANGES"
|
|
131
|
+
echo ""
|
|
132
|
+
|
|
133
|
+
if [ "$CHECK_ONLY" = true ]; then
|
|
134
|
+
echo -e "${CYAN}Run '~/100xprism/update.sh' to apply updates.${NC}"
|
|
135
|
+
echo ""
|
|
136
|
+
exit 0
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
read -rp "Apply updates? (Y/n): " confirm
|
|
140
|
+
confirm=${confirm:-Y}
|
|
141
|
+
|
|
142
|
+
if [[ ! "$confirm" =~ ^[Yy]$ ]]; then
|
|
143
|
+
echo "Skipped."
|
|
144
|
+
exit 0
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
echo ""
|
|
148
|
+
|
|
149
|
+
git pull origin main --quiet
|
|
150
|
+
echo -e " ${GREEN}→ Pulled latest ✓${NC}"
|
|
151
|
+
|
|
152
|
+
# Optional: verify GPG signature on HEAD when HUNDRED_X_VERIFY_SIGNATURES=1.
|
|
153
|
+
# Requires the maintainer's public key to be imported in the user's GPG keyring.
|
|
154
|
+
if [ "${HUNDRED_X_VERIFY_SIGNATURES:-0}" = "1" ]; then
|
|
155
|
+
if git verify-commit HEAD >/dev/null 2>&1; then
|
|
156
|
+
echo -e " ${GREEN}→ HEAD signature verified ✓${NC}"
|
|
157
|
+
else
|
|
158
|
+
echo -e " ${YELLOW}⚠ HEAD commit is not signed or signature is invalid.${NC}"
|
|
159
|
+
echo -e " ${YELLOW} Set HUNDRED_X_VERIFY_SIGNATURES=0 to skip this check.${NC}"
|
|
160
|
+
fi
|
|
161
|
+
fi
|
|
162
|
+
|
|
163
|
+
if [ -d "$COMMANDS_DIR" ] && [ "$(ls -A "$COMMANDS_DIR" 2>/dev/null)" ]; then
|
|
164
|
+
BACKUP="$CLAUDE_DIR/commands.bak.$(date +%Y%m%d_%H%M%S)"
|
|
165
|
+
cp -r "$COMMANDS_DIR" "$BACKUP"
|
|
166
|
+
echo -e " ${YELLOW}→ Backed up commands to $(basename "$BACKUP")${NC}"
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
# Sync modules (skills + slash command aliases) via the claude-code adapter
|
|
170
|
+
python3 "$REPO_DIR/adapters/lib/modules.py" emit-claude-code
|
|
171
|
+
echo -e " ${GREEN}→ Updated modules ✓${NC}"
|
|
172
|
+
|
|
173
|
+
python3 "$REPO_DIR/adapters/lib/sync_plugins.py" \
|
|
174
|
+
--settings "$SETTINGS_FILE" --plugins "$REPO_DIR/plugins/plugins.json" \
|
|
175
|
+
--session-hook "$HOME/100xprism/shell/check-update.sh --claude-hook"
|
|
176
|
+
|
|
177
|
+
echo -e " ${CYAN}→ Shell aliases auto-updated (sourced file)${NC}"
|
|
178
|
+
|
|
179
|
+
# Refresh any installed hooks so their wired commands stay current.
|
|
180
|
+
sync_hooks
|
|
181
|
+
|
|
182
|
+
# ── Update Claude plugins ─────────────────────────────────────────────────────
|
|
183
|
+
run_plugin_updates
|
|
184
|
+
|
|
185
|
+
# ── Regenerate tracked project instruction files ────────────────────────────
|
|
186
|
+
|
|
187
|
+
regenerate_tracked_projects() {
|
|
188
|
+
local tracked="$HOME/.100xprism/tracked-projects"
|
|
189
|
+
[[ -f "$tracked" ]] || return 0
|
|
190
|
+
|
|
191
|
+
local count=0
|
|
192
|
+
while IFS= read -r project_path; do
|
|
193
|
+
[[ -z "$project_path" ]] && continue
|
|
194
|
+
[[ -d "$project_path" ]] || continue # skip deleted projects
|
|
195
|
+
|
|
196
|
+
local regenerated=false
|
|
197
|
+
|
|
198
|
+
[[ -f "$project_path/.cursorrules" ]] && bash "$REPO_DIR/adapters/cursor.sh" "$project_path" && regenerated=true
|
|
199
|
+
[[ -f "$project_path/AGENTS.md" ]] && bash "$REPO_DIR/adapters/codex.sh" "$project_path" && regenerated=true
|
|
200
|
+
[[ -f "$project_path/.windsurfrules" ]] && bash "$REPO_DIR/adapters/windsurf.sh" "$project_path" && regenerated=true
|
|
201
|
+
[[ -f "$project_path/.github/copilot-instructions.md" ]] && bash "$REPO_DIR/adapters/copilot.sh" "$project_path" && regenerated=true
|
|
202
|
+
[[ -f "$project_path/GEMINI.md" ]] && bash "$REPO_DIR/adapters/gemini.sh" "$project_path" && regenerated=true
|
|
203
|
+
[[ -f "$project_path/ANTIGRAVITY.md" ]] && bash "$REPO_DIR/adapters/antigravity.sh" "$project_path" && regenerated=true
|
|
204
|
+
|
|
205
|
+
"$regenerated" && (( count++ )) || true
|
|
206
|
+
done < "$tracked"
|
|
207
|
+
|
|
208
|
+
if (( count > 0 )); then
|
|
209
|
+
echo -e " ${GREEN}→ Regenerated instruction files in $count tracked project(s) ✓${NC}"
|
|
210
|
+
fi
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
# Clear update-available flag from cache so banner stops showing
|
|
214
|
+
if [[ -f "$HOME/.100xprism/update-cache" ]]; then
|
|
215
|
+
_tmp="$(mktemp)"
|
|
216
|
+
grep -v '^has_update=' "$HOME/.100xprism/update-cache" > "$_tmp" 2>/dev/null || true
|
|
217
|
+
grep -v '^snoozed_until=' "$_tmp" >> /dev/null || true
|
|
218
|
+
mv "$_tmp" "$HOME/.100xprism/update-cache"
|
|
219
|
+
echo "has_update=false" >> "$HOME/.100xprism/update-cache"
|
|
220
|
+
echo "snoozed_until=0" >> "$HOME/.100xprism/update-cache"
|
|
221
|
+
fi
|
|
222
|
+
|
|
223
|
+
regenerate_tracked_projects
|
|
224
|
+
|
|
225
|
+
echo ""
|
|
226
|
+
NEW_VERSION="$(cat "$REPO_DIR/VERSION" 2>/dev/null | tr -d '[:space:]')"
|
|
227
|
+
echo -e "${GREEN}✓ 100x Dev updated to v${NEW_VERSION}! Restart Claude Code to activate new modules and plugins.${NC}"
|
|
228
|
+
echo ""
|
|
229
|
+
echo -e "${CYAN}Tip: Add this to your crontab to get notified weekly:${NC}"
|
|
230
|
+
echo " 0 9 * * 1 $REPO_DIR/update.sh --check-only"
|
|
231
|
+
echo ""
|