The product is functionally complete on main. This is the concrete,
sequenced list of remaining manual steps to ship 0.1.0 publicly. Tick
each box as you finish.
Status as of 2026-04-29: all code shipped, all tests green (537 pytest + 100 Node = 637), self-graph reports 0 dead code, 3 documented cycles, 0 open PRs.
- Capture 3 dashboard screenshots via Playwright (3D focus / Architecture+LearnMode / Arg-flow)
- Record hero video via Playwright
- Render dead-code journey chart (
python3 scripts/render_deadcode_chart.py) - Generate architecture diagram SVG (DONE — already shipped at
docs/images/architecture.svg) - Replace README.md with draft from
.planning/README_REWRITE/README_DRAFT.md - Verify all links in new README resolve
- Open PR for README rewrite, dogfood the PR review CI on it
- Merge
git fetch origin && git pull origin main
.venv/bin/pip install -e ".[dev]"
# Code quality gates
.venv/bin/ruff check . --exclude .claude --exclude examples
.venv/bin/mypy --strict codegraph
.venv/bin/python -m pytest -q
node --test tests/*.js
# Real-world smoke
rm -f .codegraph/graph.db
.venv/bin/codegraph build --no-incremental
.venv/bin/codegraph analyze | head -30
# Dashboard
.venv/bin/codegraph serve # http://127.0.0.1:8765 — verify Architecture tab + Learn Mode modal- All tests green
- ruff + mypy clean
- Self-graph analyze shows 0 dead-code, 3 cycles, 537+ untested-functions counts as expected
- Dashboard renders; Architecture view → click
/api/users/{user_id}→ Learn Mode → Phase 4 shows the real chain → clickuser_idchip → highlight follows it
If any step fails, stop and fix before proceeding.
Storyboard: docs/DEMO_SCRIPT.md. Two outputs:
- 45-second landscape MP4 — full demo with narration / captions
- 5-second silent square loop — for LinkedIn auto-play (muted)
Tools: OBS for capture, Kdenlive (or DaVinci Resolve / iMovie) for trim,
ffmpeg for the silent loop. Exact commands in the script.
Save final files to docs/launch-assets/ (gitignored — too large for the repo).
Run
twine uploadMANUALLY first to claim thepolycodegraphname on PyPI before the automated workflow runs. After that, tag-push triggersrelease.yml.
# Build locally to confirm the wheel is clean
python -m build
twine check dist/*
# Manual first-publish — claim the name
twine upload dist/*
# enter PyPI credentials when prompted-
pip install polycodegraphworks in a fresh venv -
codegraph --helpruns after install
Then enable the automated release pipeline:
# Set the secret on the repo so future tag pushes auto-publish
gh secret set PYPI_API_TOKEN --repo smochan/codegraph
# paste the pypi-... token
# Tag and push
git tag -a v0.1.0 -m "v0.1.0 — first public release"
git push origin v0.1.0The release.yml workflow will:
- Build sdist + wheel
twine check- Upload artifacts
- Skip the publish step (since we already published manually)
- Create the GitHub Release with
CHANGELOG.mdbody
-
gh release view v0.1.0shows the release - PyPI shows version 0.1.0
-
pip install polycodegraph==0.1.0works
After the tag, update the status badge:
# In README.md, replace
# [](...)
# with the live PyPI badge:
# [](https://pypi.org/project/polycodegraph/)- PR opened, merged
Draft is ready in .planning/draft_linkedin.md.
Verify the metrics match main before posting.
- Numbers in the post match the latest
codegraph analyze(537 tests, 0 dead, 3 cycles) - Demo video attached (45s landscape) or 5s loop in the comments
- Post on LinkedIn
- 2 minutes after posting, drop the pinned comparison-table comment (template in the draft)
- Cross-post: r/Python, r/LocalLLaMA, r/ClaudeAI, X/Twitter
Hold off on Show HN until v0.4-shaped follow-ups have shipped, per the strategic note in earlier session research. Posting now risks "isn't this GitNexus?" as the top comment.
- Reply to every comment within 6 hours
- If anyone files an issue, fix or label it within 24 hours
- Add
good first issuelabels to 3-5 known small tasks (TS R2 resolver patterns, Typer CLI HANDLER classification, multi-param arg-flow) so drive-by contributors have somewhere to start
- PyPI name is taken?
polycodegraphis reserved (verify viapip searchor open the URL). If unavailable, fall back tocodegraph-mcpormochan-codegraphand updatepyproject.tomlaccordingly. release.ymlfails on tag push? Don't panic — the manualtwine uploadalready published. Just edit the GitHub Release manually with the CHANGELOG body.- Demo recording crashes / weird timing? OBS captures at 60 fps by
default; drop to 30 if your machine struggles. Re-record only the bad
segment and stitch with
ffmpeg -f concat -i list.txt -c copy out.mp4.
If anything in this checklist (or any other doc) cites a number that
disagrees with reality, codegraph analyze is the source of truth.
Update the doc to match, never the other way around.
.venv/bin/codegraph build --no-incremental
.venv/bin/codegraph analyze
.venv/bin/python -m pytest -q
node --test tests/*.js