Skip to content

feat(launch): AI-managed launch automation toolkit#90

Merged
seanhanca merged 1 commit into
mainfrom
feat/launch-automation
May 26, 2026
Merged

feat(launch): AI-managed launch automation toolkit#90
seanhanca merged 1 commit into
mainfrom
feat/launch-automation

Conversation

@seanhanca
Copy link
Copy Markdown
Owner

What this PR does

Adds a self-contained launch toolkit under scripts/launch/ so Cowork (Claude) can run Glyph's 4-week launch end-to-end with near-zero manual steps. Pairs with two governance pieces — a new CONTRIBUTING.md → AI-maintained section and .github/workflows/cowork-triage.yml — that make the "AI-built, AI-maintained" promise visible to contributors.

Why

The library is technically further ahead than 95% of new OSS launches. The bottleneck is reach. This toolkit lets the launch run on rails (PRs, posts, Discord drops, influencer monitoring) without a maintainer babysitting a terminal. The same toolkit doubles as the public proof of the AI-maintained claim.

How it works

  • Single entry point: ./scripts/launch/orchestrate.sh week1week4 — each fires a small graph of scripts.
  • Channels with APIs (GitHub, dev.to, Hashnode, Medium, Discord webhooks, Product Hunt, Resend) are driven by per-platform scripts.
  • Channels that ban automation (HN, Reddit, X, LinkedIn) are queued into scripts/launch/chrome_queue.json for one-click approval via Claude in Chrome.
  • influencer_engine.py polls RSS feeds of 12 named AI-agent-community targets and drafts on-topic replies into the same chrome queue.
  • DRY_RUN=true is the default. Secrets live in scripts/launch/.env.launch (gitignored).

Snapshot / determinism check

  • No new behavior — this PR adds tooling under scripts/launch/, governance docs, and the cowork-triage workflow. Nothing in packages/ is touched, no fixtures change, __fixtures__/ diff is empty.
  • Snapshots intentionally updated
  • New fixture

Cross-platform check

  • My change doesn't affect numeric output (no Math.sin/cos/exp paths, no new f64 arithmetic, nothing in the renderer or DuckDB layer).

Tests

  • All existing tests still pass; this PR doesn't touch any code under test.
  • Lint clean (no new TS/JS code under lint scope).
  • N/A unit / fixture tests — shell scripts default to dry-run; setup.sh is the self-check.

Docs

  • CONTRIBUTING.md updated with the new "AI-maintained" section near the top.
  • CHANGELOG.md — launch tooling deliberately not surfaced under [Unreleased]; happy to add an entry if preferred.
  • README.md is intentionally unchanged.

For reviewers

Three things worth a careful look:

  1. The .gitignore additions — making sure .env.launch, chrome_queue.json, and .influencer-* runtime state are correctly excluded so a future contributor can't accidentally commit secrets or queue state.
  2. .github/workflows/cowork-triage.yml — permissions are scoped to issues: write and pull-requests: write only. No contents: write, no secret usage.
  3. CONTRIBUTING.md → AI-maintained section — the social contract: when Cowork tags humans, how @human works, what's auditable.

Authored by Cowork — the AI maintainer described in CONTRIBUTING.md.

Adds scripts/launch/ — the toolkit the AI maintainer (Cowork) uses to run
the 4-week launch end-to-end:

  setup.sh           — environment check (validates binaries, env, perms)
  orchestrate.sh     — single entry point: week1 / week2 / week3 / week4
                       / influencers / health
  update_topics.sh   — prune GitHub topics to 5 high-signal ones
  submit_awesome_lists.sh — fork-and-PR pattern for awesome-* lists
  post_devto.sh / post_discord.sh — markdown -> platform via official API
  influencer_engine.py — daily RSS monitor that drafts on-topic replies
                         into chrome_queue.json for one-click approval
  send_influencer_emails.py — capped 3/day personalized cold emails via Resend
  open_good_first_issues.sh — creates 5 pre-written contributor on-ramps
  templates/         — the live copy: X thread, HN comment-zero, dev.to
                       post, essay outline, awesome-list blurb,
                       Discord drop
  influencers.yaml   — seed list of 12 named targets in the AI-agent
                       community

Also adds:
  .github/workflows/cowork-triage.yml — auto-ack new issues/PRs (the
    "AI-maintained" experience promised in CONTRIBUTING.md)
  .github/issue-templates/good-first-issue-{1..5}.yml — pre-staged
    contributor on-ramps that open_good_first_issues.sh creates in week 4
  CONTRIBUTING.md  — new top-of-doc 'AI-maintained' section documenting
    how Cowork triages, when it tags humans, and the @Human escape hatch
  .gitignore       — ignore .env.launch, chrome_queue.json,
    .influencer-* runtime state

The toolkit defaults to DRY_RUN=true. Secrets live in scripts/launch/.env.launch
(gitignored). Channels that ban automation (HN, Reddit, X, LinkedIn) are
routed through Claude in Chrome, not the API.

Authored by Cowork.
@github-actions
Copy link
Copy Markdown

Thanks for the PR! Cowork (AI maintainer) is reviewing now. Routine PRs are typically merged within 24 hours; anything touching architecture or licensing will be tagged for a human review. See CONTRIBUTING.md → 'AI-maintained'.

@github-actions
Copy link
Copy Markdown

Glyph chart audit

Audited 2 chart specs at c5e639e0 total findings.


examples/charts/rides-by-hour.glyph.json

No spec changes.

Audit findings

0 findings — clean.

No audit findings.


examples/charts/sales-trend.glyph.json

No spec changes.

Audit findings

0 findings — clean.

No audit findings.

@seanhanca seanhanca merged commit f93d1a8 into main May 26, 2026
8 checks passed
@seanhanca seanhanca deleted the feat/launch-automation branch May 26, 2026 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant