Skip to content

Phase 6 — Packaging + Launch (Docker action, live push, README) - #6

Merged
YoniRaviv merged 19 commits into
mainfrom
feat/phase-6-packaging-launch
Jun 12, 2026
Merged

YoniRaviv merged 19 commits into
mainfrom
feat/phase-6-packaging-launch

Conversation

@YoniRaviv

Copy link
Copy Markdown
Owner

Summary

Phase 6 turns DocPulse into a runnable GitHub Action and ships the launch docs.

  • Live push engine — checked_runner (raises on failure) + --push on check/repair. check --push posts a flag comment to the PR; repair --push commits the doc fix straight onto the PR branch (lands in the same PR). RuntimeError → exit 2 with a setup hint. Dry-run / --write behavior unchanged.
  • Packaging — Dockerfile (python:3.12-slim + uv + gh, pinned uv:0.11.8) + env-driven entrypoint.sh; Docker-based action.yml (image: 'Dockerfile', inputs mode / config-path / base-ref / heuristics-only); ghcr release-on-tag workflow; dogfood workflow.
  • Keyless option — heuristics-only action input runs indexing without an embedding key (mention-based linking).
  • README launch rewrite — hero, Action + CLI quickstart, eval table (precision/recall 1.00 on 12 seed cases), mermaid architecture diagram, Jenkins docker run recipe.
  • Readable PR comments — flag comment now uses a per-finding heading + heading trail + diagnosis paragraph + collapsed <details> evidence.

Design notes

  • Repair commits onto the PR branch (no separate companion PR) — the merge-ref checkout otherwise made companion PRs carry the PR's own code changes.
  • Loop-safe: skips when the latest commit is a DocPulse doc-sync (plus GitHub's own token-push protection).
  • Entrypoint sets a bot git identity and fetches the base into refs/remotes/origin/<base> so origin/<base> resolves on shallow PR checkouts.

Live E2E (exit criterion — met)

Full loop demonstrated on a forked pydantic PR (YoniRaviv/pydantic#1), changing model_copy(deep=False→True):

  • check posted a precise flag comment with file:line evidence (exit 1 = drift).
  • repair committed a surgical doc fix ("shallow" → "deep copy") onto the PR branch as docpulse[bot], no loop.

Test plan

  • uv run pytest — 197 passed
  • uv run ruff check — clean
  • docker build + docpulse --help in-image
  • Live E2E on forked pydantic, both modes
  • Reviewer: confirm the Action wiring + README before tagging v1.0.0

Out of scope (maintainer follow-ups)

Actions Marketplace listing, demo video, and cutting the v1.0.0 tag (which triggers the ghcr release workflow).

🤖 Generated with Claude Code

YoniRaviv and others added 19 commits June 12, 2026 08:48
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ture, Jenkins

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…guard against self-trigger

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…anion PR

Review found the companion PR (branched off the detached merge ref) carried the
PR's own code changes. --push now commits the doc fix onto the current branch and
pushes, landing the fix in the same PR. Removes gh-pr-create/base_branch; adds a
bot-author loop guard in the entrypoint.
… wording, dedupe bot email

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…dexing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ed evidence

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@YoniRaviv
YoniRaviv merged commit dc31be1 into main Jun 12, 2026
2 of 3 checks passed
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