Venture loop: launch products, not pages
Ported from the notplanned venture template: - launch round: every board seat writes a launch plan (positioning, first users, pricing, channels, 7-day success and kill lines); one seat synthesizes them into LAUNCH.md with where each idea came from - launch page brief: one primary call to action in the hero, the working product preloaded with a sample, why-this-exists with real star counts, pricing (free plus at most two honest early-access tiers), honest limits, a design direction that rotates and never repeats the last six - signups through a GitHub issue form prefilled with venture and plan; each signup is thanked on its own issue - checks: deterministic gates, then headless Chrome measuring at exactly 390x844 and 1280x800 (horizontal scroll, button below the fold, JS errors); two fix rounds, then andon with needs-human and /time retry - a contact-sheet screenshot of phone and desktop on the card - 7-day decision on distinct people: v2 card, kill, or one more week then park; a next version counts only signups after its own launch - scheduling: a card that is measuring never blocks the others; one new card a day; a tick runs light stages back to back and one worker run - the studio index at /ventures/ is generated from ventures.json Security: the worker's shell no longer sees tokens or keys, its checkout keeps no token in .git/config, and workflows don't persist credentials. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UpT7eWzeLhRwuYmsSQnbRb
This commit is contained in:
1 parent
66c427eba4
commit
cdfe4c7199
9 files changed
+1328
-163
No files matched your search
@@ -34,6 +34,7 @@ jobs:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
sparse-checkout: .github/time
|
||||
persist-credentials: false # the worker's shell must not find the token in .git/config
|
||||
- run: python3 .github/time/time.py heartbeat
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -51,3 +52,4 @@ jobs:
|
||||
TIME_PLANNER: ${{ vars.TIME_PLANNER }}
|
||||
TIME_WORKER: ${{ vars.TIME_WORKER }}
|
||||
TIME_WORKER_STEPS: ${{ vars.TIME_WORKER_STEPS }}
|
||||
TIME_WORKER_MAX_TOKENS: ${{ vars.TIME_WORKER_MAX_TOKENS }}
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
- name: copy engine, open PR if changed
|
||||
run: |
|
||||
set -e
|
||||
for f in .github/time/time.py .github/time/venture.py .github/time/test_time.py .github/time/seats.json .claude/skills/time/SKILL.md; do
|
||||
for f in .github/time/time.py .github/time/venture.py .github/time/test_time.py .github/time/seats.json .github/ISSUE_TEMPLATE/early-access.yml .claude/skills/time/SKILL.md; do
|
||||
mkdir -p "$(dirname "$f")"; cp "/tmp/up/$f" "$f"
|
||||
done
|
||||
python3 .github/time/test_time.py > /dev/null
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
name: venture
|
||||
# The venture loop: one stage per tick. Daily kickoff plus a nudge every 20 minutes while a card is open
|
||||
# (cheap: a tick with no open card and TIME_VENTURE!=on exits at once). Off until TIME_VENTURE=on.
|
||||
# The venture loop: trending repos -> pitches -> board -> launch plan -> launch page on Pages -> 7 days of signups.
|
||||
# Every 20 minutes it advances whatever is due (cheap when nothing is); a new venture card starts once a day.
|
||||
# Off until TIME_VENTURE=on. Signups come in through .github/ISSUE_TEMPLATE/early-access.yml.
|
||||
on:
|
||||
schedule:
|
||||
- cron: "*/20 * * * *"
|
||||
@@ -16,11 +17,12 @@ concurrency:
|
||||
jobs:
|
||||
tick:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
timeout-minutes: 40
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
sparse-checkout: .github/time
|
||||
persist-credentials: false # the worker's shell must not find the token in .git/config
|
||||
- run: python3 .github/time/venture.py tick
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -28,5 +30,8 @@ jobs:
|
||||
TIME_VENTURE: ${{ vars.TIME_VENTURE }}
|
||||
TIME_VENTURE_PITCH: ${{ vars.TIME_VENTURE_PITCH }}
|
||||
TIME_VENTURE_BOARD: ${{ vars.TIME_VENTURE_BOARD }}
|
||||
TIME_VENTURE_CHAIR: ${{ vars.TIME_VENTURE_CHAIR }}
|
||||
TIME_VENTURE_MEASURE_DAYS: ${{ vars.TIME_VENTURE_MEASURE_DAYS }}
|
||||
TIME_WORKER: ${{ vars.TIME_WORKER }}
|
||||
TIME_WORKER_STEPS: ${{ vars.TIME_WORKER_STEPS }}
|
||||
TIME_WORKER_MAX_TOKENS: ${{ vars.TIME_WORKER_MAX_TOKENS }}
|
||||
Reference in new issue
Block a user