From 9b2952398a6b883d6009a76cbca5e734077894c1 Mon Sep 17 00:00:00 2001 From: saagpatel Date: Sat, 20 Jun 2026 10:33:46 -0700 Subject: [PATCH 1/2] chore: launch-prep hygiene fixes for public repo - fix: set setuptools-scm fallback_version to 0.1.4 (matches latest PyPI/GitHub tag); was incorrectly set to 0.19.0 (internal dev series) - docs: add versioning note to CHANGELOG.md explaining the 0.x.0 internal history vs the public 0.1.x PyPI line - chore: git rm proof-pr.json (CI artifact, not project source) - chore: git rm sprint13-*.png (unreferenced dev screenshots) - chore: add proof-pr.json and sprint*.png to .gitignore - fix: audit.yml username input default changed from hardcoded owner account to empty string; remove || fallbacks in run blocks - ci: expand Python matrix to include 3.12 alongside 3.11 - fix: Development Status classifier bumped from Alpha to Beta - docs: replace hardcoded dated filenames in README demo section with generic glob patterns - docs: replace literal placeholder in workbook-signoff example with 'yourname' - docs: remove emoji from README case-study line --- .github/workflows/audit.yml | 8 +- .github/workflows/ci.yml | 2 +- .gitignore | 2 + CHANGELOG.md | 6 + README.md | 8 +- proof-pr.json | 182 ----------------------- pyproject.toml | 4 +- sprint13-dismissal-history.png | Bin 28782 -> 0 bytes sprint13-dismissed-with-history-link.png | Bin 40121 -> 0 bytes 9 files changed, 19 insertions(+), 193 deletions(-) delete mode 100644 proof-pr.json delete mode 100644 sprint13-dismissal-history.png delete mode 100644 sprint13-dismissed-with-history-link.png diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index 959669a..059282c 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -6,7 +6,7 @@ on: username: description: GitHub username to audit required: false - default: saagpatel + default: '' permissions: contents: read @@ -47,7 +47,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.AUDIT_TOKEN }} run: | mkdir -p output/history - USERNAME="${{ github.event.inputs.username || 'saagpatel' }}" + USERNAME="${{ github.event.inputs.username }}" if ls output/audit-report-*.json >/dev/null 2>&1 && [ -f output/.audit-fingerprints.json ]; then audit "$USERNAME" --incremental --html --badges --diff --excel-mode standard else @@ -56,7 +56,7 @@ jobs: - name: Build control-center artifact run: | - USERNAME="${{ github.event.inputs.username || 'saagpatel' }}" + USERNAME="${{ github.event.inputs.username }}" audit "$USERNAME" --control-center - name: Inspect canonical scheduled handoff issue @@ -64,7 +64,7 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - USERNAME="${{ github.event.inputs.username || 'saagpatel' }}" + USERNAME="${{ github.event.inputs.username }}" TITLE="Scheduled Audit Handoff: $USERNAME" python3 - <<'PY' import json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b892c5..2933e73 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.11"] + python-version: ["3.11", "3.12"] steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: Set up Python ${{ matrix.python-version }} diff --git a/.gitignore b/.gitignore index 7bdb3d8..aa76ce7 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,8 @@ output/PORTFOLIO.md !output/.gitkeep config/notion-config.json HANDOFF.md +proof-pr.json +sprint*.png .claude/ .serena/ __pycache__/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 781342c..37f456e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project are documented here. Format: [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +> **Versioning note:** The `0.x.0` entries below (0.1.0 through 0.19.0) reflect +> the internal development history prior to the first public PyPI release. The +> public PyPI line starts at `0.1.0` (tag `v0.1.0`, released 2026-05-18) and +> follows `0.1.x` for patches. Do not conflate the internal `0.x.0` series with +> PyPI release versions. + --- ## [Unreleased] diff --git a/README.md b/README.md index 75121a4..90be77c 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ > Know the truth about every project you've ever started — because `git log` across a crowded repo portfolio doesn't tell you which ones are worth finishing. -📐 **Case study — [Operator OS: a multi-agent control plane over a repo portfolio](CASE-STUDY.md).** How this auditor's truth layer anchors six local services and two coordinated coding agents (Claude Code + Codex), with real portfolio metrics and a [90-second demo plan](DEMO-PLAN.md). +**Case study — [Operator OS: a multi-agent control plane over a repo portfolio](CASE-STUDY.md).** How this auditor's truth layer anchors six local services and two coordinated coding agents (Claude Code + Codex), with real portfolio metrics and a [90-second demo plan](DEMO-PLAN.md). GitHub Repo Auditor is a portfolio audit and operator tool for developers with a lot of repositories. It clones every repo on your GitHub account, runs 12 analyzers across completeness and interest dimensions, assigns letter grades and achievement badges, preserves historical state, and generates actionable dashboards you can actually use to decide what to work on next. Built for developers who ship fast, start often, and need a system to manage the sprawl. @@ -212,8 +212,8 @@ Expected outputs include `output/demo/demo-report.json`, `output/demo/operator-control-center-demo.json`, `output/demo/operator-control-center-demo.md`, `output/demo/portfolio-truth-latest.json`, -`output/demo/weekly-command-center-sample-user-2026-04-12.json`, -`output/demo/security-burndown-sample-user-2026-04-12.json`, +`output/demo/weekly-command-center--.json`, +`output/demo/security-burndown--.json`, `output/demo/pending-proposals.json`, and `output/demo/portfolio-warehouse.db`. To browse the same fixture in the local web UI: @@ -393,7 +393,7 @@ That command generates stable sample `standard` and `template` workbooks, valida After that manual desktop Excel check, record the outcome back into the gate artifacts: ```bash -make workbook-signoff ARGS="--reviewer --outcome passed --check excel-open-no-repair=passed --check visible-tabs-present=passed --check normal-zoom-readable=passed --check chart-placement-clean=passed --check filters-work=passed" +make workbook-signoff ARGS="--reviewer yourname --outcome passed --check excel-open-no-repair=passed --check visible-tabs-present=passed --check normal-zoom-readable=passed --check chart-placement-clean=passed --check filters-work=passed" ``` ## Managed Campaigns and Governance diff --git a/proof-pr.json b/proof-pr.json deleted file mode 100644 index 7b6a5ae..0000000 --- a/proof-pr.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "schema_version": "proof-pr.v1", - "receipt_id": "saagpatel-github-repo-auditor-proof-pr-dogfood", - "generated_at": "2026-06-20T09:00:00Z", - "subject": { - "repo": "saagpatel/GithubRepoAuditor", - "pr_number": null, - "pr_url": null, - "base_ref": "main", - "base_sha": "b69bd828a240572594ed4a8afec159e546fccefa", - "head_ref": "chore/proof-pr-dogfood", - "head_sha": "pending-pr-head", - "head_sha_status": "pending_commit" - }, - "producer": { - "tool": "proof-pr", - "version": "0.1.3", - "agent": "codex", - "mode": "local", - "example_pattern": { - "pattern": "Workflow dogfood", - "example": "examples/pr-087-github-repo-auditor-dogfood.json", - "tier": "T3", - "source": "explicit" - } - }, - "risk": { - "tier": "T3", - "reasons": [ - "adds a GitHub Actions workflow", - "introduces proof-pr as a reusable CI evidence consumer", - "commits a machine-readable proof receipt" - ], - "changed_surfaces": [ - "github-actions", - "proof-receipt", - "public-repo-evidence" - ] - }, - "change": { - "summary": "Adds an advisory proof-pr dogfood workflow and committed receipt for GitHub Repo Auditor.", - "files_touched": [ - ".github/workflows/proof-pr.yml", - "proof-pr.json" - ], - "diff_stats": { - "files": 2, - "additions": 175, - "deletions": 0 - }, - "scope_notes": "No application code, package metadata, generated portfolio truth, or release workflow behavior changes." - }, - "evidence": [ - { - "id": "proof-pr-validate", - "kind": "repo-native", - "command": [ - "proof-pr validate proof-pr.json" - ], - "status": "passed", - "required": true, - "summary": "Committed receipt validates against proof-pr.v1 schema." - }, - { - "id": "proof-pr-render", - "kind": "repo-native", - "command": [ - "proof-pr render proof-pr.json" - ], - "status": "passed", - "required": true, - "summary": "Receipt renders into the standard Markdown PR block." - }, - { - "id": "workflow-yaml", - "kind": "repo-native", - "command": [ - "ruby -e \"require 'yaml'; YAML.load_file('.github/workflows/proof-pr.yml')\"" - ], - "status": "passed", - "required": true, - "summary": "New workflow YAML parses." - }, - { - "id": "public-fixture-proof-package", - "kind": "repo-native", - "command": [ - "PYTHONDONTWRITEBYTECODE=1 python3 scripts/validate_proof_package.py docs/demo-proof/public-fixture/proof-package.json" - ], - "status": "passed", - "required": true, - "summary": "Existing public fixture proof package remains valid." - }, - { - "id": "secrets-scan", - "kind": "security", - "command": [ - "gitleaks detect --source . --no-banner --redact --verbose" - ], - "status": "passed", - "required": true, - "summary": "No leaks found in the dogfood worktree." - }, - { - "id": "public-boundary-scan", - "kind": "security", - "status": "passed", - "required": true, - "summary": "No private repo names, local paths, personal email, or token prefixes found in the new public dogfood files." - }, - { - "id": "full-test-suite", - "kind": "test", - "status": "skipped", - "required": false, - "summary": "No Python source, package metadata, or generated truth surface changed.", - "reason": "The PR adds only an advisory workflow caller and proof receipt; normal CI still runs on pull_request." - }, - { - "id": "screenshots", - "kind": "screenshot", - "status": "not_applicable", - "required": false, - "summary": "No UI, workbook, dashboard, or visual artifact changed." - }, - { - "id": "public-git-metadata", - "kind": "security", - "command": [ - "proof-pr", - "check-public-git-metadata", - "--ref", - "HEAD", - "--base-ref", - "origin/main", - "--summary-format", - "text" - ], - "status": "passed", - "required": true, - "summary": "Public git metadata checked in introduced mode for origin/main..HEAD; legacy history and tags were not in scope; findings=0." - } - ], - "security": { - "secrets_scan": { - "status": "passed", - "summary": "Gitleaks scan found no leaks." - }, - "permission_diff": { - "status": "passed", - "summary": "New workflow grants explicit read-only permissions: contents: read and actions: read." - }, - "redaction": { - "status": "not_applicable", - "summary": "No screenshots or generated portfolio artifacts are included in this PR." - } - }, - "rollback": { - "status": "documented", - "path": "Revert this PR or remove .github/workflows/proof-pr.yml and proof-pr.json.", - "notes": "The workflow is manual-only and advisory, so rollback does not require data migration or external cleanup." - }, - "artifacts": [ - { - "id": "proof-pr-json", - "kind": "json", - "path_or_url": "proof-pr.json", - "description": "Committed proof-pr dogfood receipt.", - "required": true, - "external": false - } - ], - "limitations": [ - "The committed receipt uses pending-pr-head because a receipt committed in the same change cannot know its final commit SHA before the commit exists.", - "PR number and PR URL should be reflected in the pull request proof block after PR creation.", - "The workflow is manual-only for dogfood; pull_request enforcement is intentionally deferred." - ], - "overall": { - "status": "passed_with_warnings", - "review_decision": "ready_with_operator_awareness" - } -} diff --git a/pyproject.toml b/pyproject.toml index 7cbe7ef..92bef89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ keywords = [ "developer-tools", ] classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Programming Language :: Python :: 3", @@ -100,4 +100,4 @@ target-version = "py311" ignore = ["E501"] [tool.setuptools_scm] -fallback_version = "0.19.0" +fallback_version = "0.1.4" diff --git a/sprint13-dismissal-history.png b/sprint13-dismissal-history.png deleted file mode 100644 index a8aeee2ee6daf217cdf6a3da6f2951226b0d643c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28782 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 diff --git a/sprint13-dismissed-with-history-link.png b/sprint13-dismissed-with-history-link.png deleted file mode 100644 index 333f836128c69e025c170c260f2ff2bf72b822ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40121 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 SEa0MCQIu7CS@z=fhyMnXj46iz From ad2934a7329d55b8a131e698060c880e4754f02d Mon Sep 17 00:00:00 2001 From: saagpatel Date: Sat, 20 Jun 2026 11:49:57 -0700 Subject: [PATCH 2/2] fix(audit-workflow): guard empty username dispatch with saagpatel fallback `workflow_dispatch` with no username input produced an empty USERNAME, causing `audit ""` to hit `/users//repos` and build a blank handoff title. Add `|| 'saagpatel'` fallback to all three USERNAME assignments so a bare "Run workflow" click audits the canonical owner rather than failing silently. Fixes test_packaging.py assertion and addresses P2 review comment on PR #117. --- .github/workflows/audit.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index 059282c..1cb39d5 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: inputs: username: - description: GitHub username to audit + description: GitHub username to audit (defaults to saagpatel) required: false default: '' @@ -47,7 +47,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.AUDIT_TOKEN }} run: | mkdir -p output/history - USERNAME="${{ github.event.inputs.username }}" + USERNAME="${{ github.event.inputs.username || 'saagpatel' }}" if ls output/audit-report-*.json >/dev/null 2>&1 && [ -f output/.audit-fingerprints.json ]; then audit "$USERNAME" --incremental --html --badges --diff --excel-mode standard else @@ -56,7 +56,7 @@ jobs: - name: Build control-center artifact run: | - USERNAME="${{ github.event.inputs.username }}" + USERNAME="${{ github.event.inputs.username || 'saagpatel' }}" audit "$USERNAME" --control-center - name: Inspect canonical scheduled handoff issue @@ -64,7 +64,7 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - USERNAME="${{ github.event.inputs.username }}" + USERNAME="${{ github.event.inputs.username || 'saagpatel' }}" TITLE="Scheduled Audit Handoff: $USERNAME" python3 - <<'PY' import json