Skip to content

docs: add demo video to README hero#68

Merged
mohanagy merged 3 commits into
mainfrom
docs/readme-demo-video
May 10, 2026
Merged

docs: add demo video to README hero#68
mohanagy merged 3 commits into
mainfrom
docs/readme-demo-video

Conversation

@mohanagy
Copy link
Copy Markdown
Owner

@mohanagy mohanagy commented May 9, 2026

Summary

Adds a short demo video right under the lead paragraph (above the Why graphify-ts? section) so anyone landing on the README sees the tool in action before scrolling.

The video is hosted on GitHub user-attachments (~75 MB), so nothing gets committed to the repo and the npm tarball stays unchanged. Embedded as a bare URL on its own line — that's the canonical pattern that GitHub renders as an inline player.

Test plan

  • npx vitest run tests/unit/why-graphify-doc.test.ts tests/unit/package-metadata.test.ts — 31/31 pass (doc-honesty assertions still satisfied)
  • Reviewer confirms the video plays inline on the rendered README on github.com
  • Reviewer confirms placement (under lead paragraph, before the first ---) reads naturally

Summary by CodeRabbit

  • Documentation

    • Added a "See it in action" section to the README with a hosted demo and a 30‑second usage/benchmark summary.
    • Added a new benchmark README documenting an auth‑flow "compare" end‑to‑end benchmark with reproducer instructions, results summary, and artifact expectations.
    • Added a verification/reproducer script to validate benchmark reports and compute reduction metrics for turns, latency, and tokens.
  • Tests

    • Added tests that pin published benchmark metrics, verify README links to the benchmark, and assert expected verifier behavior.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 9, 2026

📝 Walkthrough

Walkthrough

Adds a README demo link, a new auth-flow compare benchmark README with reproducer and headline Anthropic metrics, an executable verify.sh that parses report.json to compute baseline vs graphify reductions, and unit tests that pin documented numbers and verifier behavior.

Changes

Documentation Update & Verification Script

Layer / File(s) Summary
README updates
README.md
Added a "See it in action" subsection with a hosted demo URL and added an "Auth-flow compare benchmark" bullet in Public proof.
Benchmark README
docs/benchmarks/2026-05-09-govalidate-auth-e2e/README.md
Introduces the GoValidate auth-flow compare benchmark, reproducer command, headline Anthropic metrics, expected artifacts, reproduction instructions, and honesty notes.
Verify script
docs/benchmarks/2026-05-09-govalidate-auth-e2e/verify.sh
Adds an executable Bash script with an embedded Node parser that reads report.json, finds baseline vs graphify runs, extracts turns/latency/token usage, computes reduction ratios, and prints results and usage objects.
Tests / Assertions
tests/unit/why-graphify-doc.test.ts
Pins README demo caption reduction figures, asserts README links to the new benchmark folder, and adds tests confirming verify.sh content and missing-report.json behavior.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant verify_sh
  participant jq
  participant NodeJS
  participant report_json
  User->>verify_sh: run ./verify.sh
  verify_sh->>jq: ensure jq present
  verify_sh->>NodeJS: execute embedded parser
  NodeJS->>report_json: load & parse report.json
  NodeJS->>NodeJS: extract baseline & graphify metrics
  NodeJS->>verify_sh: print reduction ratios and usage dumps
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped to the docs with a pen so spry,
A demo link, a benchmark, a script to try.
I count tokens, turns, and time in a dance,
Print ratios, artifacts — give reviewers a glance.
🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description covers the summary and testing, but the checklist section is incomplete: only 2 of 4 verification checkboxes are marked as done, and the related issues section is missing. Complete the testing checklist by running all specified commands and document results. Add a related issues section if applicable, or explicitly state none.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title "docs: add demo video to README hero" is clear and specific, directly describing the main change: adding a demo video to the README's hero section.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 docs/readme-demo-video

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

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`:
- Line 15: Change the "See it in action" heading from h3 to h2 to match the
document hierarchy: replace the leading "###" with "##" for the heading text
"See it in action" so it follows the existing h1 → h2 structure and resolves the
MD001 heading-increment warning.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 81d4cb91-6835-411b-bf38-98ab374d6a03

📥 Commits

Reviewing files that changed from the base of the PR and between 18c6e2e and c891654.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md

graphify-ts indexes a TypeScript/Node workspace (and PR diffs) into a local knowledge graph, then compiles that graph into the **smallest verifiable context pack** the agent actually needs for the task at hand. No cloud upload, no API key for indexing, no SaaS dashboard — just a local subprocess your agent talks to over MCP.

### See it in action
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

Fix heading level to match document structure.

The heading uses h3 (###) but should use h2 (##) to maintain consistent document hierarchy. All other major sections in the README use h2, and markdown best practices require headings to increment by only one level at a time (h1 → h2, not h1 → h3).

📝 Proposed fix
-### See it in action
+## See it in action

As per static analysis guidelines, this resolves the MD001 heading-increment warning.

📝 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
### See it in action
## See it in action
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 15-15: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

🤖 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` at line 15, Change the "See it in action" heading from h3 to h2 to
match the document hierarchy: replace the leading "###" with "##" for the
heading text "See it in action" so it follows the existing h1 → h2 structure and
resolves the MD001 heading-increment warning.

mohanagy added 2 commits May 10, 2026 03:53
- Add a caption under the embedded video so the headline numbers
  (31 -> 14 turns, 170s -> 107s, 2.81M -> 532K input tokens; all
  Anthropic-reported) are readable without watching the clip.
- Scaffold docs/benchmarks/2026-05-09-govalidate-auth-e2e/ with a
  README describing the run setup and a verify.sh that reads the
  compare report.json and prints the reductions. The actual
  report.json + paired prompt/answer files still need to be dropped
  in from graphify-out/compare/2026-05-09T23-21-35/ before the
  benchmark is independently reproducible.
- Link the new benchmark folder from the README's Public proof
  section so it's discoverable alongside the existing artifacts.
Adds four assertions to why-graphify-doc.test.ts so the new
caption + benchmark folder are covered by the same honesty
contract as the existing 2026-04-30 numbers:

- README caption must contain the captured Anthropic-reported
  reductions (2,811,682 / 532,021 / 5.28x / 2.21x / 1.58x).
- README must link the new docs/benchmarks/2026-05-09-... folder.
- The new benchmark README must mention the Anthropic-reported
  framing and the --baseline-mode native_agent invocation.
- verify.sh must exit cleanly with a clear message when
  report.json has not yet been dropped in.

Full suite: 1384/1384 passing.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
tests/unit/why-graphify-doc.test.ts (1)

108-108: ⚡ Quick win

Avoid pinning the full second-level timestamp literal.

Line 108 hard-codes an exact run timestamp, which will cause noisy test churn on benchmark refreshes. Prefer matching stable structure (date/prefix) with a regex.

Proposed assertion softening
-      expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35')
+      expect(verify).toMatch(/graphify-out\/compare\/2026-05-09T\d{2}-\d{2}-\d{2}/)
🤖 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 `@tests/unit/why-graphify-doc.test.ts` at line 108, The test currently pins a
full timestamp in the assertion by using
expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35'); change
this to assert the stable prefix and a pattern instead of the exact second-level
timestamp: update the assertion on the verify variable (the expect call) to use
a regex-based match (or toMatch) that checks for "graphify-out/compare/"
followed by a YYYY-MM-DD and time at least to hour-minute (omit or make seconds
optional) so the test no longer fails when the run-second changes.
🤖 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 `@tests/unit/why-graphify-doc.test.ts`:
- Around line 104-109: The test in why-graphify-doc.test.ts currently checks the
generated verify script for several strings but doesn't assert the "exits
cleanly" behavior; update the failing test case that inspects the verify
variable (inside the it(...) block that mentions "exits cleanly") to include an
assertion that the missing-file branch contains an explicit clean exit by adding
expect(verify).toContain('exit 0') so the test will fail if the script no longer
exits cleanly.

---

Nitpick comments:
In `@tests/unit/why-graphify-doc.test.ts`:
- Line 108: The test currently pins a full timestamp in the assertion by using
expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35'); change
this to assert the stable prefix and a pattern instead of the exact second-level
timestamp: update the assertion on the verify variable (the expect call) to use
a regex-based match (or toMatch) that checks for "graphify-out/compare/"
followed by a YYYY-MM-DD and time at least to hour-minute (omit or make seconds
optional) so the test no longer fails when the run-second changes.
🪄 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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bc317a4d-9229-44a8-8a59-dff7fa9fc061

📥 Commits

Reviewing files that changed from the base of the PR and between 6e08a8c and 7f4b97f.

📒 Files selected for processing (1)
  • tests/unit/why-graphify-doc.test.ts

Comment on lines +104 to +109
it('ships a verify.sh reproducer that reads report.json and exits cleanly when missing', () => {
expect(verify).toContain('#!/usr/bin/env bash')
expect(verify).toContain('report.json')
expect(verify).toContain('not found')
expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35')
})
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

The “exits cleanly” claim is not actually asserted.

On Line 104, the test says missing report.json exits cleanly, but Lines 105-109 only validate string presence. Add an assertion that the missing-file branch includes an explicit clean exit (exit 0) so this test fails on behavior regressions.

Proposed test tightening
     it('ships a verify.sh reproducer that reads report.json and exits cleanly when missing', () => {
       expect(verify).toContain('#!/usr/bin/env bash')
       expect(verify).toContain('report.json')
-      expect(verify).toContain('not found')
+      expect(verify).toMatch(/report\.json[\s\S]*not found[\s\S]*exit\s+0/i)
       expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35')
     })
📝 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
it('ships a verify.sh reproducer that reads report.json and exits cleanly when missing', () => {
expect(verify).toContain('#!/usr/bin/env bash')
expect(verify).toContain('report.json')
expect(verify).toContain('not found')
expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35')
})
it('ships a verify.sh reproducer that reads report.json and exits cleanly when missing', () => {
expect(verify).toContain('#!/usr/bin/env bash')
expect(verify).toContain('report.json')
expect(verify).toMatch(/report\.json[\s\S]*not found[\s\S]*exit\s+0/i)
expect(verify).toContain('graphify-out/compare/2026-05-09T23-21-35')
})
🤖 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 `@tests/unit/why-graphify-doc.test.ts` around lines 104 - 109, The test in
why-graphify-doc.test.ts currently checks the generated verify script for
several strings but doesn't assert the "exits cleanly" behavior; update the
failing test case that inspects the verify variable (inside the it(...) block
that mentions "exits cleanly") to include an assertion that the missing-file
branch contains an explicit clean exit by adding expect(verify).toContain('exit
0') so the test will fail if the script no longer exits cleanly.

@mohanagy mohanagy merged commit 33d4264 into main May 10, 2026
7 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