Skip to content

pipeline-capture v1.1.0 — publish to Union queue + incremental sync#1

Open
theo-sun-primary wants to merge 2 commits into
mainfrom
feature/publish-to-union
Open

pipeline-capture v1.1.0 — publish to Union queue + incremental sync#1
theo-sun-primary wants to merge 2 commits into
mainfrom
feature/publish-to-union

Conversation

@theo-sun-primary

Copy link
Copy Markdown
Collaborator

Closes the agent side of the Pipeline Contribution feature (P3). The skill no longer ends by emailing a CSV — it publishes straight to the fund's private Union review queue, where the VC approves what's shared. Pull = agent (local Gmail); approve = Union web app.

What's new

  • union.py (bundled, python3 stdlib): connect (decode a per-fund connection code → local config; token stored 0600, never in repo/CSV), publish (pipeline.csv → §7.1 rows → POST /ingest with x-ingest-token → prints review URL, advances the incremental cursor), cursor (incremental start), mint (operator builds a connection code). Provenance columns ride along so Union's row-detail drawer renders rich.
  • SKILL.md/pipeline-capture sync incremental mode (scan only since cursor − 3d buffer); a Deliver section that publishes to Union by default and falls back to CSV + email-to-Primary when not connected; on success the agent self-emails the VC the review link.
  • ONBOARDING.md — Connect-to-Union step (paste connection code), recurring sync guidance, validation-run-stays-local, and an operator section for minting connection codes.
  • plugin.json → 1.1.0.

UX

  • Setup (one-time): install → paste connection code → connect Google → local validation sample → first full run publishes to the queue + emails the review link.
  • Recurring: /pipeline-capture sync → incremental scan → new quarantine batch → self-email with link → approve in Union. Each sync = one review batch.

Privacy (unchanged)

Only structured rows leave the machine, into the fund's own private queue; raw email/decks never leave; nothing reaches Primary/network until approved in Union. The token is fund-scoped — it can only ever populate its own queue.

Verified

union.py mint→connect→cursor→publish round-trip, and a full end-to-end against a local Supabase stack: token auth → quarantine staging (state=quarantine, fund_id set, provenance in raw_data, 0 external_deals writes). Live use needs the ingest function deployed + a minted per-fund token.

🤖 Generated with Claude Code

theo-sun-primary and others added 2 commits June 24, 2026 09:46
….1.0)

Replaces "email a CSV to Primary" with publishing straight to the fund's
private Union review queue; the VC approves what's shared in Union.

- union.py (python3 stdlib, bundled): `connect` (decode the per-fund
  connection code → local config, token stored 0600, never in repo/CSV),
  `publish` (pipeline.csv → §7.1 rows → POST /ingest with x-ingest-token →
  prints review URL, advances incremental cursor), `cursor` (incremental
  start), `mint` (operator builds a connection code). Provenance columns
  (confidence/evidence/synthesized_from/description) ride along so Union's
  row-detail drawer renders rich.
- SKILL.md: `/pipeline-capture sync` incremental mode (scan only since the
  cursor − 3d buffer); Deliver section publishes to Union by default and
  falls back to CSV + email-to-Primary when not connected; on success the
  agent self-emails the VC the review link.
- ONBOARDING.md: Connect-to-Union step (paste connection code), recurring
  `sync` guidance, validation run stays local, operator mint instructions.
- plugin.json → 1.1.0.

Privacy unchanged: only structured rows leave the machine, into the fund's
own private queue; nothing reaches Primary/network until approved in Union.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ion.py

Addresses the gap that setup didn't cover actually downloading/installing
the agent on a VC's machine.

- SETUP.md (new): from-zero guide — install Claude Code, add the public
  marketplace, install the plugin, connect Google, paste the Union
  connection code, first run, recurring sync, troubleshooting + an
  operator section for minting connection codes. Works on a call or
  self-serve.
- README: install section now points to SETUP.md; dropped the private-repo
  invite/git-auth/token friction (repo is public — updates need no token).
- union.py / SKILL.md / ONBOARDING.md: locate the bundled helper via
  `find ~/.claude -name union.py -path '*pipeline-capture*'` instead of a
  hardcoded ~/.claude/skills path, so it works for a PLUGIN install (files
  live under the plugin dir) as well as a skills-dir copy. ONBOARDING no
  longer assumes the old zip/copy model.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@theo-sun-primary

Copy link
Copy Markdown
Collaborator Author

Added the missing download/install/setup coverage:

  • Made the marketplace public — install is now just /plugin marketplace add + /plugin install, no GitHub invite/auth/token. (The per-fund token is the only secret and it's delivered separately via the connection code, never in the repo.)
  • SETUP.md — true from-zero guide: install Claude Code → add marketplace → install plugin → connect Google → paste connection code → first run → recurring sync → troubleshooting, plus an operator section for minting connection codes. Written to work on a setup call or fully self-serve.
  • README install section repointed to SETUP.md; dropped the private-repo friction.
  • Install-agnostic union.py — the skill now locates the bundled helper via find ~/.claude -name union.py -path '*pipeline-capture*' instead of a hardcoded skills-dir path, so it works for a real plugin install (files live under the plugin dir), not just a copied skill. ONBOARDING no longer assumes the old zip model.

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