Draft platform-native release announcements (HN, Reddit, X, Mastodon, LinkedIn) from CHANGELOG + README (Python port of @p-vbordei/agent-launch)
Project description
agent-launch (Python)
Idiomatic Python port of @p-vbordei/agent-launch. Draft platform-native release announcements (HN, Reddit, X, Mastodon, LinkedIn) from your repo's CHANGELOG + README. v0.1: drafts only — you post. Output is textually identical to the TS reference when given the same inputs.
What's in the box
draft_one(platform, project, context, repo, anthropic)— produce a platform-tuned post draft- Platforms:
hn,reddit,x,mastodon,linkedin gather_context(cwd, version)— collect CHANGELOG section + README + recent commitsload_launch_config(path)— strict pydantic-validatedlaunch.yaml- CLI:
agent-launch draft <version> [--platforms hn,x] [--out drafts/] - Strict input validation — no surprises in output
Install
pip install agent-launch
# or
uv add agent-launch
Quickstart
CLI (run inside any repo with a CHANGELOG.md, README.md, and launch.yaml):
cp launch.yaml.example launch.yaml && $EDITOR launch.yaml
ANTHROPIC_API_KEY=... agent-launch draft 0.2.0
# → launches/v0.2.0/{hn,reddit-*,x,mastodon,linkedin}.md
Library (offline — uses a scripted fake Anthropic client):
python examples/quickstart.py
See examples/quickstart.py for the 40-line walkthrough.
How it relates
| Repo | Lang | Install |
|---|---|---|
agent-launch |
TypeScript (reference) | npm i -g @p-vbordei/agent-launch |
agent-launch-py |
Python (this repo) | pip install agent-launch |
agent-launch-rs |
Rust | cargo install agent-launch |
All three share the same launch.yaml schema, the same vendored prompt templates, and the same conformance clauses.
Conformance
uv sync --extra dev
uv run pytest -v
The TS reference defines five conformance clauses (see SPEC.md §6). All pass here:
- C1 — Determinism. Same inputs → same output (with
temperature=0and a scripted client, byte-identical). - C2 — Length caps. Per-platform caps enforced with up to 2 retries; over-cap drafts marked
capped: false. - C3 — Repo URL. Every draft body contains the GitHub URL.
- C4 — No secrets / declared fields only. Env-var values are never echoed;
DraftResultexposes only declared fields. - C5 — Strict
launch.yaml. Missing/extra/invalid fields fail fast with a clear error.
Plus security clauses S2 (no tools field in the Anthropic call — model has no shell access), S4 (no sockets opened during drafting with a scripted client), S5 (--out sandboxed under cwd).
Architecture
See docs/architecture.md.
Development
git clone https://github.com/p-vbordei/agent-launch-py
cd agent-launch-py
uv sync --extra dev
uv run pytest -v
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_launch-0.1.0.tar.gz.
File metadata
- Download URL: agent_launch-0.1.0.tar.gz
- Upload date:
- Size: 85.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fe76db05003b80e096cc2036cb4d8ccc8ed768a0fed87b931f8c43bd11c3321
|
|
| MD5 |
f405b66f1151734e3acc0dc0d05929fd
|
|
| BLAKE2b-256 |
599f613aff4eed58d31c12b1802be49a624b35536c78a3d56dabf96b2d9602c8
|
Provenance
The following attestation bundles were made for agent_launch-0.1.0.tar.gz:
Publisher:
publish.yml on p-vbordei/agent-launch-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_launch-0.1.0.tar.gz -
Subject digest:
9fe76db05003b80e096cc2036cb4d8ccc8ed768a0fed87b931f8c43bd11c3321 - Sigstore transparency entry: 1579440261
- Sigstore integration time:
-
Permalink:
p-vbordei/agent-launch-py@c8b6f846bb70db7c1095a1f4d6ba555d4f24d739 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/p-vbordei
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c8b6f846bb70db7c1095a1f4d6ba555d4f24d739 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file agent_launch-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agent_launch-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03d4b285a39453cccef248c3b80238fd119a68281cf7407dc9b8e87027948b80
|
|
| MD5 |
66fe0e3e2a46509e004958cec60d618c
|
|
| BLAKE2b-256 |
b5015d6d72cf1449618897f7cb7443d5c92a9f1f070d11ad6f28b72d9a24f828
|
Provenance
The following attestation bundles were made for agent_launch-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on p-vbordei/agent-launch-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_launch-0.1.0-py3-none-any.whl -
Subject digest:
03d4b285a39453cccef248c3b80238fd119a68281cf7407dc9b8e87027948b80 - Sigstore transparency entry: 1579440555
- Sigstore integration time:
-
Permalink:
p-vbordei/agent-launch-py@c8b6f846bb70db7c1095a1f4d6ba555d4f24d739 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/p-vbordei
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c8b6f846bb70db7c1095a1f4d6ba555d4f24d739 -
Trigger Event:
workflow_dispatch
-
Statement type: