Skip to content

polish: highlight TheoremPath site + iOS companion in FormalSLT README#7

Open
Robby955 wants to merge 1 commit into
mainfrom
polish/readme-product-family-2026-06-04
Open

polish: highlight TheoremPath site + iOS companion in FormalSLT README#7
Robby955 wants to merge 1 commit into
mainfrom
polish/readme-product-family-2026-06-04

Conversation

@Robby955

@Robby955 Robby955 commented Jun 5, 2026

Copy link
Copy Markdown
Owner

What this changes

  • New above-the-fold hero with a mermaid diagram of the FormalSLT → theorempath.com → TheoremPath iOS flow.
  • New "Part of the TheoremPath family" section with one paragraph each for the live site, the native iOS companion, and Semantic Linker v0 (in development).
  • New "For researchers" and "For students" audience callouts.
  • New About footer with author + accepted ICML 2026 Culture × AI workshop poster (verified against research-ops-2026/submissions/SUBMISSIONS_TRACKER.md).
  • Three new CI-checked badges (theorems / Lean modules / Lean lines) backed by scripts/generate_badge_counts.py and docs/badges/{theorems,modules,lines}.json. CI gains a Check badge counts step that mirrors generate_proof_frontier_manifest.py --check.

What this does NOT change

The pre-existing v0.1 surface table, scope, install, release-candidate checks, audit commands, module map, roadmap, dependencies, contributing, citation, and license sections are untouched.

Verified counts at this snapshot (origin/main 108a139)

Metric Value Source
FormalSLT/*.lean files 60 find FormalSLT -name '*.lean' | wc -l
FormalSLT/ + examples/ *.lean files 85 find FormalSLT examples -name '*.lean' | wc -l
Total Lean lines 33,427 find ... -name '*.lean' | xargs wc -l
theorem/lemma decls 673 regex over all .lean files
sorry / admit / custom axioms 0 / 0 / 0 existing CI gates

Audit

Follow-ups (not blocking this PR)

  • The pre-existing intro paragraph still carries hardcoded 33,427 lines text. The new badge row is the live source of truth; the prose number is a snapshot. Future polish pass can drop or hyperlink.
  • TheoremPath iOS About-screen attribution back to this repo is a separate quick PR against theorem-path-ios.
  • TheoremPath main layout "Built on FormalSLT" footer is a separate quick PR against theorem-path.

Summary by CodeRabbit

  • New Features

    • Added project status badges displaying theorem count, Lean modules, and line count metrics
    • Integrated verification flowchart linking to TheoremPath ecosystem
  • Documentation

    • Enhanced README with MIT license badge and TheoremPath family overview section
    • Added author attribution, about section, and verification audit instructions

Adds an above-the-fold hero (mermaid diagram), a "Part of the TheoremPath
family" section describing the live site (theorempath.com) and the native
iOS companion (theorem-path-ios), and "For researchers" / "For students"
audience callouts. Adds an About footer.

Adds three CI-checked badges (theorems / modules / lines) backed by a new
scripts/generate_badge_counts.py and three docs/badges/*.json blobs. CI
gains a "Check badge counts" step that mirrors the existing
generate_proof_frontier_manifest.py --check pattern, so counts cannot
silently drift.

No changes to the existing v0.1 surface table, scope, install,
release-candidate checks, audit commands, module map, roadmap, dependencies,
contributing, citation, or license sections.

Counts at this snapshot (verified on disk against origin/main 108a139):
- 60 FormalSLT/*.lean files
- 85 FormalSLT/ + examples/ *.lean files
- 33,427 total Lean lines
- 673 theorem + lemma declarations
- 0 sorry, 0 admit, 0 custom axioms

Audit:
- 0 banned phrases per AGENTS.md rule #2
- 0 em-dashes per rule #3 (0/3 budget used)
- 0 Claude / agent / dispatch mentions per rule #4
- 0 emoji in README body
@coderabbitai

coderabbitai Bot commented Jun 5, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The PR adds an automated badge-generation system for the FormalSLT repository. A new Python script scans Lean source files to collect theorem, module, and line-count metrics, produces Shields.io-compatible badge JSON payloads, and integrates metric verification into CI. The README is enriched with dynamic badge endpoints, TheoremPath ecosystem context, and documentation of the badge regeneration process.

Changes

Badge Metric Generation and Documentation

Layer / File(s) Summary
Badge generation script implementation
scripts/generate_badge_counts.py
New Python script that scans Lean .lean files under FormalSLT and examples to compute theorem/lemma count, module count, and total line count. Implements iter_lean_files to recursively enumerate files, count_theorems and count_lines to aggregate metrics, badge_payload to format Shields.io JSON structures, and write_or_check to either persist badge files or validate them against regenerated output in --check mode. The main entrypoint orchestrates the full flow with exit-code reporting for CI integration.
Generated badge artifacts
docs/badges/theorems.json, docs/badges/modules.json, docs/badges/lines.json
Three badge payload JSON files containing Shields.io-compatible structures with metric values (673 theorems checked, 60 Lean modules, 33,427 Lean lines) and standard schema/color fields.
CI automation and README documentation
.github/workflows/ci.yml, README.md
Adds a CI build step that runs python3 scripts/generate_badge_counts.py --check to detect metric drift. Updates README header with MIT license badge and endpoint badges for theorems and modules, adds a Mermaid flowchart linking FormalSLT to the TheoremPath ecosystem, introduces a "Part of the TheoremPath family" section describing the three product surfaces and cross-links for researchers and students, documents the badge regeneration process in the audit section, and adds an "About" section with author attribution and badge management pointers.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

  • Robby955/FormalSLT#4: Both PRs augment README content to expand cross-linking into the TheoremPath portfolio and ecosystem documentation.

Poem

🐰 Badges bold, in JSON dress,
Count the theorems, put to test,
Lean lines numbered, modules true,
CI's guardian keeps them new.
Shields displayed for all to see—
FormalSLT's proof pedigree!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: updating README to highlight TheoremPath product family and iOS companion, which aligns with the substantial README.md modifications and new badge infrastructure.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch polish/readme-product-family-2026-06-04

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 527-534: The About paragraph for "FormalSLT" currently mixes
repository/product description with a workshop acceptance claim; edit the README
About section by splitting that paragraph into two distinct parts: one sentence
or bullet describing the library and its role (e.g., "FormalSLT is authored by
Rob Sneiderman... verification spine for related research..."), and a separate
sentence or bullet that states the workshop acceptance (e.g., "The author has an
accepted ICML 2026 Culture × AI workshop poster and upstream contributions to
mathlib4"), ensuring the product/repo claims and the ICML/workshop claim are
clearly separated.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 58fb1dd4-9b89-4709-be40-452be279ca2d

📥 Commits

Reviewing files that changed from the base of the PR and between 108a139 and 1f41eec.

📒 Files selected for processing (6)
  • .github/workflows/ci.yml
  • README.md
  • docs/badges/lines.json
  • docs/badges/modules.json
  • docs/badges/theorems.json
  • scripts/generate_badge_counts.py

Comment thread README.md
Comment on lines +527 to +534
FormalSLT is authored by **Rob Sneiderman**
([Robby955](https://github.com/Robby955) on GitHub,
[robbysneiderman.com](https://robbysneiderman.com)). The library underwrites
the public TheoremPath learning surfaces and is the verification spine for
related research on finite-sample concentration, PAC-Bayes, and statistical
learning theory. The author is an applied/mathematical statistician with an
accepted ICML 2026 Culture × AI workshop poster and upstream contributions to
mathlib4.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Separate workshop claim from product/repo claims in About section.

This paragraph mixes public-repo/product description with the workshop acceptance statement; split them into distinct sentences or bullets by claim type.

Suggested rewrite
-FormalSLT is authored by **Rob Sneiderman**
-([Robby955](https://github.com/Robby955) on GitHub,
-[robbysneiderman.com](https://robbysneiderman.com)). The library underwrites
-the public TheoremPath learning surfaces and is the verification spine for
-related research on finite-sample concentration, PAC-Bayes, and statistical
-learning theory. The author is an applied/mathematical statistician with an
-accepted ICML 2026 Culture × AI workshop poster and upstream contributions to
-mathlib4.
+FormalSLT is authored by **Rob Sneiderman**
+([Robby955](https://github.com/Robby955) on GitHub,
+[robbysneiderman.com](https://robbysneiderman.com)).
+
+Public-repo/product claim: this library underwrites the TheoremPath learning
+surfaces as their Lean verification spine.
+
+Workshop-paper claim: the author has an accepted ICML 2026 Culture × AI
+workshop poster.
+
+Other contribution claim: upstream contributions to mathlib4.

As per coding guidelines: “Keep workshop-paper claims, public-repo claims, and future-venue claims separate in documentation to avoid blurring what is proved today with what is planned next”.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
FormalSLT is authored by **Rob Sneiderman**
([Robby955](https://github.com/Robby955) on GitHub,
[robbysneiderman.com](https://robbysneiderman.com)). The library underwrites
the public TheoremPath learning surfaces and is the verification spine for
related research on finite-sample concentration, PAC-Bayes, and statistical
learning theory. The author is an applied/mathematical statistician with an
accepted ICML 2026 Culture × AI workshop poster and upstream contributions to
mathlib4.
FormalSLT is authored by **Rob Sneiderman**
([Robby955](https://github.com/Robby955) on GitHub,
[robbysneiderman.com](https://robbysneiderman.com)). The library underwrites
the public TheoremPath learning surfaces and is the verification spine for
related research on finite-sample concentration, PAC-Bayes, and statistical
learning theory.
The author has an accepted ICML 2026 Culture × AI workshop poster and has
contributed upstream to mathlib4.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 527 - 534, The About paragraph for "FormalSLT"
currently mixes repository/product description with a workshop acceptance claim;
edit the README About section by splitting that paragraph into two distinct
parts: one sentence or bullet describing the library and its role (e.g.,
"FormalSLT is authored by Rob Sneiderman... verification spine for related
research..."), and a separate sentence or bullet that states the workshop
acceptance (e.g., "The author has an accepted ICML 2026 Culture × AI workshop
poster and upstream contributions to mathlib4"), ensuring the product/repo
claims and the ICML/workshop claim are clearly separated.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f41eecf0d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread README.md
Comment on lines +14 to +17
> Every theorem here has a matching learning surface on the live site
> [theorempath.com](https://theorempath.com), and the same checked
> statements feed the native iOS companion at
> [theorem-path-ios](https://github.com/Robby955/theorem-path-ios).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Do not promise every theorem has a site surface

The linked TheoremPath verification page at https://theorempath.com/lean currently advertises only 56 verified entries and describes that manifest as a scoped subset, while this repo reports hundreds of Lean theorem/lemma declarations. For users following this integration, the claim that every theorem in the repo has a matching learning surface is false until the site indexes the whole repo, so this should be narrowed to the public-facing theorem subset.

Useful? React with 👍 / 👎.

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