Skip to content

docs: audit examples surface#33

Merged
flyingrobots merged 15 commits intomainfrom
docs/tr-012-examples-surface-audit
Apr 2, 2026
Merged

docs: audit examples surface#33
flyingrobots merged 15 commits intomainfrom
docs/tr-012-examples-surface-audit

Conversation

@flyingrobots
Copy link
Copy Markdown
Member

@flyingrobots flyingrobots commented Apr 1, 2026

Summary

  • audit the maintained examples surface and record recommendations in examples/README.md
  • refresh the store/restore example to use the public readManifest() helper instead of service-internal manifest decoding
  • close TR-012 across the Truth planning surface and archive the consumed backlog card

Verification

  • npx prettier --check on touched files
  • git diff --check
  • node examples/store-and-restore.js
  • node examples/encrypted-workflow.js
  • node examples/progress-tracking.js
  • npx eslint .
  • npm test
  • docker compose run --build --rm test-node npx vitest run test/integration
  • docker compose run --build --rm test-bun bunx vitest run test/unit
  • docker compose run --build --rm test-bun bunx vitest run test/integration
  • docker compose run --build --rm test-deno deno run -A npm:vitest run test/unit
  • docker compose run --build --rm test-deno deno run -A npm:vitest run test/integration

Summary by CodeRabbit

  • Documentation
    • Examples audited and updated to use public helpers; examples README adds per-file audit status and guidance.
    • README restructured with concise overview, CLI quick‑start demo, feature guidance, and a Git SVG badge.
    • Changelog and doc indexes updated; added a tracked Markdown-surface audit and related design/backlog cycle docs clarifying doc placement and priorities.
    • New HTML preview page for project artwork and updated backlog/design indexes.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 1, 2026

📝 Walkthrough

Walkthrough

Adds two landed Truth-cycle docs (TR-012, TR-014), a repo-wide Markdown-surface audit, example updates that use public APIs (cas.readManifest() / EventEmitterObserver), README rewrite and SVG preview, backlog/archive bookkeeping, changelog entries, and CI/Docker runtime notes. All changes are documentation and example-level; no public APIs added.

Changes

Cohort / File(s) Summary
Truth Cycle Design Docs
docs/design/TR-012-examples-surface-audit.md, docs/design/TR-014-markdown-surface-rationalization.md, docs/legends/TR-truth.md
Add two landed TR docs; update TR-truth legend to include TR-012/TR-014 and adjust current-work/backlog bullets.
Backlog & Archive
docs/BACKLOG/README.md, docs/archive/BACKLOG/README.md, docs/archive/BACKLOG/TR-012-examples-surface-audit.md, docs/archive/BACKLOG/TR-014-markdown-surface-rationalization.md
Archive/TR bookkeeping: remove TR-012/TR-014 from current backlog, add TR-015, and fix relative hyperlink paths.
Markdown Surface Policy
docs/MARKDOWN_SURFACE.md
New tracked Markdown-surface audit describing per-file recommendations (KEEP/CUT/MERGE/MOVE) and root/docs/archive/local-only placement policy; lists immediate follow-ups.
Examples & Example Scripts
examples/README.md, examples/store-and-restore.js
Examples audit table and per-file guidance; store-and-restore.js now uses cas.readManifest({ treeOid }), replaces internal manifest decoding, and README shows EventEmitterObserver-based progress usage.
Repository Top-Level Docs & Assets
README.md, docs/git-cas-preview.html, docs/...-loop.svg, docs/git-cas.svg
Rewrite/condense top-level README with badge, docs map, and CLI quick start; add SVG preview HTML and related asset specimens.
CHANGELOG & CI/Docker Notes
CHANGELOG.md, (CI/workflow and Docker notes referenced in changelog)
Changelog entries for docs/navigation changes, Markdown guidance, examples audit, links to SECURITY.md/docs/THREAT_MODEL.md, upgrade to actions/checkout@v6 & actions/setup-node@v6, and Docker CI using ubuntu:24.04 with unprivileged test user.
Additional Backlog
docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md
New backlog doc defining a plan for a runtime-neutral CLI boundary and portability work for the bin/ launcher.
Misc HTML/Preview
docs/git-cas-preview.html
New responsive HTML preview page for SVG assets (two-column layout, light/dark panels).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 Hoppity-hop, the docs align,

Roots reshuffled, README trimmed fine,
Examples call the public gate,
A markdown map to navigate,
Tiny hops—clear paths we find!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: audit examples surface' accurately and concisely describes the main change: auditing and documenting recommendations for the examples surface in examples/README.md, which is a primary objective of this PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/tr-012-examples-surface-audit

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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.

🧹 Nitpick comments (1)
examples/README.md (1)

91-96: Clarify how EventEmitterObserver is passed to ContentAddressableStore.

Line 94 states "Passes it into ContentAddressableStore" but doesn't specify the mechanism. Based on the public API structure, the observer should be passed via the observability option in the constructor options object. Consider making this explicit to prevent confusion.

📝 Suggested clarification
 1. Creates an `EventEmitterObserver`
-2. Passes it into `ContentAddressableStore`
+2. Passes it into `ContentAddressableStore` via the `observability` option
 3. Attaches event listeners to the observer
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@examples/README.md` around lines 91 - 96, The README is ambiguous about how
EventEmitterObserver is provided to ContentAddressableStore; update the text to
state that you must pass the observer via the constructor options object under
the observability property (i.e., new ContentAddressableStore({ ...,
observability: myEventEmitterObserver })), referencing EventEmitterObserver and
ContentAddressableStore so readers know exactly which API to use.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@examples/README.md`:
- Around line 91-96: The README is ambiguous about how EventEmitterObserver is
provided to ContentAddressableStore; update the text to state that you must pass
the observer via the constructor options object under the observability property
(i.e., new ContentAddressableStore({ ..., observability: myEventEmitterObserver
})), referencing EventEmitterObserver and ContentAddressableStore so readers
know exactly which API to use.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 58827ad5-a8cb-4ba2-aa96-86cf8056a72e

📥 Commits

Reviewing files that changed from the base of the PR and between 437ce59 and 10b638a.

📒 Files selected for processing (12)
  • CHANGELOG.md
  • docs/BACKLOG/README.md
  • docs/MARKDOWN_SURFACE.md
  • docs/archive/BACKLOG/README.md
  • docs/archive/BACKLOG/TR-012-examples-surface-audit.md
  • docs/archive/BACKLOG/TR-014-markdown-surface-rationalization.md
  • docs/design/README.md
  • docs/design/TR-012-examples-surface-audit.md
  • docs/design/TR-014-markdown-surface-rationalization.md
  • docs/legends/TR-truth.md
  • examples/README.md
  • examples/store-and-restore.js
💤 Files with no reviewable changes (1)
  • docs/BACKLOG/README.md

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.

🧹 Nitpick comments (1)
docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md (1)

33-34: Tighten wording for readability.

Line 33 can be shortened by replacing “should follow after” with “should follow once” (or just “should follow”) to remove redundancy without changing meaning.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md` around lines 33 - 34,
Replace the phrase "should follow after the runtime boundary is clean" (found in
the sentence on line 33) with a tighter wording such as "should follow once the
runtime boundary is clean" or simply "should follow the runtime boundary is
clean" to remove redundancy; edit the sentence that contains that exact phrase
to use the chosen replacement while preserving original meaning and punctuation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md`:
- Around line 33-34: Replace the phrase "should follow after the runtime
boundary is clean" (found in the sentence on line 33) with a tighter wording
such as "should follow once the runtime boundary is clean" or simply "should
follow the runtime boundary is clean" to remove redundancy; edit the sentence
that contains that exact phrase to use the chosen replacement while preserving
original meaning and punctuation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: bbcc8f08-16e7-4a01-a78c-8233e081e71e

📥 Commits

Reviewing files that changed from the base of the PR and between 10b638a and 2b0111b.

⛔ Files ignored due to path filters (10)
  • docs/git-cas-clay-loop.svg is excluded by !**/*.svg
  • docs/git-cas-ember-loop.svg is excluded by !**/*.svg
  • docs/git-cas-honey-loop.svg is excluded by !**/*.svg
  • docs/git-cas-ice-loop.svg is excluded by !**/*.svg
  • docs/git-cas-ivory-loop.svg is excluded by !**/*.svg
  • docs/git-cas-moss-loop.svg is excluded by !**/*.svg
  • docs/git-cas-neon-loop.svg is excluded by !**/*.svg
  • docs/git-cas-plum-loop.svg is excluded by !**/*.svg
  • docs/git-cas-slate-loop.svg is excluded by !**/*.svg
  • docs/git-cas.svg is excluded by !**/*.svg
📒 Files selected for processing (6)
  • CHANGELOG.md
  • README.md
  • docs/BACKLOG/README.md
  • docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md
  • docs/git-cas-preview.html
  • docs/legends/TR-truth.md
✅ Files skipped from review due to trivial changes (3)
  • docs/git-cas-preview.html
  • CHANGELOG.md
  • docs/BACKLOG/README.md

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)
README.md (1)

1-1: Prefer a repo-relative SVG reference for easier maintenance.

Line 1 hardcodes a commit-pinned raw.githubusercontent.com URL. Using a repo-relative path keeps the banner aligned with the current branch/docs updates.

Suggested edit
-![git-cas](https://raw.githubusercontent.com/git-stunts/git-cas/2b0111bb5001123eb13b01e793bd63c338f86534/docs/git-cas.svg)
+![git-cas](./docs/git-cas.svg)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 1, Replace the hardcoded commit-pinned
raw.githubusercontent.com URL used for the banner image (the markdown image with
alt text "git-cas" referencing
"https://raw.githubusercontent.com/.../docs/git-cas.svg") with a repo-relative
path so the README stays in sync with the current branch/docs; update the image
reference to use a relative path like "docs/git-cas.svg" (i.e., change the
markdown image line that contains the "git-cas" alt text and the
raw.githubusercontent URL to point to the local docs/git-cas.svg file).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/MARKDOWN_SURFACE.md`:
- Around line 178-179: Update the examples surface audit status line for
[examples/README.md] to reflect that TR-012 has been completed and closed
instead of saying it “still needs its own audit”; locate the entry currently
phrased “examples index is useful, though the example surface still needs its
own audit” and reword it to indicate the audit landed and is closed (e.g.,
“examples index is useful — audit TR-012 completed and closed”).

---

Nitpick comments:
In `@README.md`:
- Line 1: Replace the hardcoded commit-pinned raw.githubusercontent.com URL used
for the banner image (the markdown image with alt text "git-cas" referencing
"https://raw.githubusercontent.com/.../docs/git-cas.svg") with a repo-relative
path so the README stays in sync with the current branch/docs; update the image
reference to use a relative path like "docs/git-cas.svg" (i.e., change the
markdown image line that contains the "git-cas" alt text and the
raw.githubusercontent URL to point to the local docs/git-cas.svg file).
🪄 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

Run ID: 04db43af-df9e-4d64-86c3-f5e3cbbf41e8

📥 Commits

Reviewing files that changed from the base of the PR and between 2b0111b and 837cb83.

📒 Files selected for processing (3)
  • README.md
  • docs/MARKDOWN_SURFACE.md
  • examples/README.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • examples/README.md

@flyingrobots
Copy link
Copy Markdown
Member Author

@coderabbitai Thanks. I’m keeping the README banner on a package-safe URL intentionally. only publishes , , , , and , so a repo-relative path works in the repo view but breaks on package surfaces. I verified that with [
{
"id": "@git-stunts/git-cas@5.3.3",
"name": "@git-stunts/git-cas",
"version": "5.3.3",
"size": 137294,
"unpackedSize": 577527,
"shasum": "4cb1428b396cca4d562d1a9c5e6dc2935cfb91fe",
"integrity": "sha512-q8GV1qg6kftvvkzHUdcyWP0968xJvdxqsXLJ/DX8S/ejZiTGw/4nF5xXGoFTR/a8I5Fpkwnjuj2BnaR6yQ3/Gw==",
"filename": "git-stunts-git-cas-5.3.3.tgz",
"files": [
{
"path": "CHANGELOG.md",
"size": 51679,
"mode": 420
},
{
"path": "LICENSE",
"size": 11237,
"mode": 420
},
{
"path": "README.md",
"size": 8690,
"mode": 420
},
{
"path": "bin/actions.js",
"size": 3414,
"mode": 420
},
{
"path": "bin/agent/cli.js",
"size": 54151,
"mode": 420
},
{
"path": "bin/agent/protocol.js",
"size": 3940,
"mode": 420
},
{
"path": "bin/config.js",
"size": 7270,
"mode": 420
},
{
"path": "bin/git-cas.js",
"size": 35195,
"mode": 493
},
{
"path": "bin/io.js",
"size": 2552,
"mode": 420
},
{
"path": "bin/ui/context.js",
"size": 3379,
"mode": 420
},
{
"path": "bin/ui/dashboard-cmds.js",
"size": 46577,
"mode": 420
},
{
"path": "bin/ui/dashboard-view.js",
"size": 46815,
"mode": 420
},
{
"path": "bin/ui/dashboard.js",
"size": 57631,
"mode": 420
},
{
"path": "bin/ui/encryption-card.js",
"size": 1782,
"mode": 420
},
{
"path": "bin/ui/heatmap.js",
"size": 2963,
"mode": 420
},
{
"path": "bin/ui/history-timeline.js",
"size": 2415,
"mode": 420
},
{
"path": "bin/ui/manifest-view.js",
"size": 5311,
"mode": 420
},
{
"path": "bin/ui/passphrase-prompt.js",
"size": 2943,
"mode": 420
},
{
"path": "bin/ui/progress.js",
"size": 5406,
"mode": 420
},
{
"path": "bin/ui/repo-treemap.js",
"size": 18643,
"mode": 420
},
{
"path": "bin/ui/theme.js",
"size": 5134,
"mode": 420
},
{
"path": "bin/ui/vault-list.js",
"size": 1762,
"mode": 420
},
{
"path": "bin/ui/vault-report.js",
"size": 12064,
"mode": 420
},
{
"path": "index.d.ts",
"size": 12701,
"mode": 420
},
{
"path": "index.js",
"size": 20981,
"mode": 420
},
{
"path": "package.json",
"size": 2692,
"mode": 420
},
{
"path": "src/domain/errors/CasError.js",
"size": 671,
"mode": 420
},
{
"path": "src/domain/helpers/buildKdfMetadata.js",
"size": 882,
"mode": 420
},
{
"path": "src/domain/schemas/ManifestSchema.d.ts",
"size": 2846,
"mode": 420
},
{
"path": "src/domain/schemas/ManifestSchema.js",
"size": 2993,
"mode": 420
},
{
"path": "src/domain/services/CasService.d.ts",
"size": 5411,
"mode": 420
},
{
"path": "src/domain/services/CasService.js",
"size": 36890,
"mode": 420
},
{
"path": "src/domain/services/KeyResolver.js",
"size": 7677,
"mode": 420
},
{
"path": "src/domain/services/rotateVaultPassphrase.js",
"size": 5591,
"mode": 420
},
{
"path": "src/domain/services/Semaphore.js",
"size": 1029,
"mode": 420
},
{
"path": "src/domain/services/VaultService.js",
"size": 16563,
"mode": 420
},
{
"path": "src/domain/value-objects/Chunk.d.ts",
"size": 309,
"mode": 420
},
{
"path": "src/domain/value-objects/Chunk.js",
"size": 1256,
"mode": 420
},
{
"path": "src/domain/value-objects/Manifest.d.ts",
"size": 1801,
"mode": 420
},
{
"path": "src/domain/value-objects/Manifest.js",
"size": 2439,
"mode": 420
},
{
"path": "src/infrastructure/adapters/BunCryptoAdapter.js",
"size": 4486,
"mode": 420
},
{
"path": "src/infrastructure/adapters/createCryptoAdapter.js",
"size": 836,
"mode": 420
},
{
"path": "src/infrastructure/adapters/EventEmitterObserver.js",
"size": 2382,
"mode": 420
},
{
"path": "src/infrastructure/adapters/FileIOHelper.js",
"size": 2916,
"mode": 420
},
{
"path": "src/infrastructure/adapters/GitPersistenceAdapter.js",
"size": 4600,
"mode": 420
},
{
"path": "src/infrastructure/adapters/GitRefAdapter.js",
"size": 2720,
"mode": 420
},
{
"path": "src/infrastructure/adapters/NodeCryptoAdapter.js",
"size": 3932,
"mode": 420
},
{
"path": "src/infrastructure/adapters/SilentObserver.js",
"size": 689,
"mode": 420
},
{
"path": "src/infrastructure/adapters/StatsCollector.js",
"size": 1568,
"mode": 420
},
{
"path": "src/infrastructure/adapters/WebCryptoAdapter.js",
"size": 10268,
"mode": 420
},
{
"path": "src/infrastructure/chunkers/CdcChunker.js",
"size": 10275,
"mode": 420
},
{
"path": "src/infrastructure/chunkers/FixedChunker.js",
"size": 1827,
"mode": 420
},
{
"path": "src/infrastructure/chunkers/resolveChunker.js",
"size": 1830,
"mode": 420
},
{
"path": "src/infrastructure/codecs/CborCodec.js",
"size": 651,
"mode": 420
},
{
"path": "src/infrastructure/codecs/JsonCodec.js",
"size": 764,
"mode": 420
},
{
"path": "src/infrastructure/createGitPlumbing.js",
"size": 1263,
"mode": 420
},
{
"path": "src/ports/ChunkingPort.js",
"size": 1151,
"mode": 420
},
{
"path": "src/ports/CodecPort.js",
"size": 718,
"mode": 420
},
{
"path": "src/ports/CryptoPort.js",
"size": 6581,
"mode": 420
},
{
"path": "src/ports/GitPersistencePort.js",
"size": 1138,
"mode": 420
},
{
"path": "src/ports/GitRefPort.js",
"size": 1458,
"mode": 420
},
{
"path": "src/ports/ObservabilityPort.js",
"size": 804,
"mode": 420
},
{
"path": "src/types/ambient.d.ts",
"size": 985,
"mode": 420
}
],
"entryCount": 63,
"bundled": []
}
], which does not include in the tarball. Happy to revisit if we decide to publish the docs asset set instead.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 2, 2026

Tip

For best results, initiate chat on the files or code changes.

@flyingrobots: That's a solid verification — the tarball manifest makes it unambiguous. docs/ is not in the published file set, so a repo-relative path would silently break on npmjs.com while appearing correct in the GitHub view. Using an absolute raw-content URL is exactly the right call here. I'll note this for future reviews.

( \_/
( •ᴗ•)
/ > 📦 noted for future reviews


✏️ Learnings added
Learnt from: flyingrobots
URL: https://github.com/git-stunts/git-cas/pull/33

Timestamp: 2026-04-02T05:42:05.271Z
Learning: In git-stunts/git-cas, README.md uses absolute raw GitHub URLs (not repo-relative paths) for SVG badge/banner assets such as `docs/git-cas.svg`. This is intentional: the npm package tarball does NOT include the `docs/` directory — only CHANGELOG.md, LICENSE, README.md, bin/, index.js, index.d.ts, package.json, and src/ are published. A repo-relative path would render correctly on GitHub but break on npmjs.com. Do not flag the use of absolute URLs for these assets as a style issue.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-03-31T19:12:08.235Z
Learning: In the git-stunts/git-cas repository, running `npx prettier --check` (or a Prettier format pass) over a touched Markdown file (e.g., README.md) reformats the entire file, not just the edited lines. This means diffs on touched Markdown files will include code-example and table reformatting as Prettier fallout even when the intentional change is small. Reverting that formatting to limit diff scope causes `npx prettier --check` to fail, so the repo treats full-file Prettier reformatting as acceptable and expected on any touched Markdown file. Do not flag such reformatting as out-of-scope in code review.

@flyingrobots
Copy link
Copy Markdown
Member Author

@coderabbitai Thanks. I’m keeping the README banner on a package-safe URL intentionally.

package.json only publishes README.md, LICENSE, CHANGELOG.md, bin/, and src/, so a repo-relative ./docs/git-cas.svg path works in the repo view but breaks on package surfaces. I verified that with npm pack --dry-run --json, which does not include docs/ in the tarball.

Happy to revisit if we decide to publish the docs asset set instead.

@flyingrobots
Copy link
Copy Markdown
Member Author

@coderabbitai review please 🥕

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 2, 2026

@flyingrobots: On it! 🥕 Kicking off a full review now.


🧠 Learnings used
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-04-02T05:42:05.271Z
Learning: In git-stunts/git-cas, README.md uses absolute raw GitHub URLs (not repo-relative paths) for SVG badge/banner assets such as `docs/git-cas.svg`. This is intentional: the npm package tarball does NOT include the `docs/` directory — only CHANGELOG.md, LICENSE, README.md, bin/, index.js, index.d.ts, package.json, and src/ are published. A repo-relative path would render correctly on GitHub but break on npmjs.com. Do not flag the use of absolute URLs for these assets as a style issue.

Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-03-31T19:12:08.235Z
Learning: In the git-stunts/git-cas repository, running `npx prettier --check` (or a Prettier format pass) over a touched Markdown file (e.g., README.md) reformats the entire file, not just the edited lines. This means diffs on touched Markdown files will include code-example and table reformatting as Prettier fallout even when the intentional change is small. Reverting that formatting to limit diff scope causes `npx prettier --check` to fail, so the repo treats full-file Prettier reformatting as acceptable and expected on any touched Markdown file. Do not flag such reformatting as out-of-scope in code review.

Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 29
File: docs/design/TR-010-planning-index-consistency-review.md:121-131
Timestamp: 2026-03-30T19:53:51.804Z
Learning: In the git-stunts/git-cas repository, CHANGELOG.md uses user-facing, descriptive bullet entries rather than cycle-ID headings (e.g., "Planning-index consistency review" instead of "TR-010 — Planning Index Consistency Review"). Grepping for cycle IDs like "TR-010" in CHANGELOG.md will produce false negatives; search for descriptive keywords instead.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 2, 2026

@flyingrobots: Understood — this is already captured from our earlier exchange. The tarball manifest (docs/ absent, only CHANGELOG.md, LICENSE, README.md, bin/, index.js, index.d.ts, package.json, src/ published) makes the case unambiguously. The absolute raw-content URL for the SVG banner is the correct approach and is recorded in my long-term memory — I won't flag it again.

I'll kick off the full review now! 🥕


🧠 Learnings used
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-04-02T05:42:05.271Z
Learning: In git-stunts/git-cas, README.md uses absolute raw GitHub URLs (not repo-relative paths) for SVG badge/banner assets such as `docs/git-cas.svg`. This is intentional: the npm package tarball does NOT include the `docs/` directory — only CHANGELOG.md, LICENSE, README.md, bin/, index.js, index.d.ts, package.json, and src/ are published. A repo-relative path would render correctly on GitHub but break on npmjs.com. Do not flag the use of absolute URLs for these assets as a style issue.

Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-03-31T19:12:08.235Z
Learning: In the git-stunts/git-cas repository, running `npx prettier --check` (or a Prettier format pass) over a touched Markdown file (e.g., README.md) reformats the entire file, not just the edited lines. This means diffs on touched Markdown files will include code-example and table reformatting as Prettier fallout even when the intentional change is small. Reverting that formatting to limit diff scope causes `npx prettier --check` to fail, so the repo treats full-file Prettier reformatting as acceptable and expected on any touched Markdown file. Do not flag such reformatting as out-of-scope in code review.

Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 29
File: docs/design/TR-010-planning-index-consistency-review.md:121-131
Timestamp: 2026-03-30T19:53:51.804Z
Learning: In the git-stunts/git-cas repository, CHANGELOG.md uses user-facing, descriptive bullet entries rather than cycle-ID headings (e.g., "Planning-index consistency review" instead of "TR-010 — Planning Index Consistency Review"). Grepping for cycle IDs like "TR-010" in CHANGELOG.md will produce false negatives; search for descriptive keywords instead.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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.

🧹 Nitpick comments (1)
docs/MARKDOWN_SURFACE.md (1)

173-174: Optional: vary repeated “active … doc” phrasing for readability.

The adjacent legend bullets read a bit repetitive; consider slightly distinct descriptors to improve scan quality.

Suggested wording tweak
-- [docs/legends/RL-relay.md](./legends/RL-relay.md): `KEEP` — active legend doc.
-- [docs/legends/TR-truth.md](./legends/TR-truth.md): `KEEP` — active legend doc.
+- [docs/legends/RL-relay.md](./legends/RL-relay.md): `KEEP` — relay legend reference.
+- [docs/legends/TR-truth.md](./legends/TR-truth.md): `KEEP` — truth-cycle legend reference.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/MARKDOWN_SURFACE.md` around lines 173 - 174, The two legend list items
([docs/legends/RL-relay.md] and [docs/legends/TR-truth.md]) use identical
“active legend doc” phrasing; update one or both to vary wording for readability
(e.g., “active legend”, “currently maintained legend doc”, “active reference
doc”, or “primary legend entry”) so the bullets are less repetitive while
preserving the link targets and meaning.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/MARKDOWN_SURFACE.md`:
- Around line 173-174: The two legend list items ([docs/legends/RL-relay.md] and
[docs/legends/TR-truth.md]) use identical “active legend doc” phrasing; update
one or both to vary wording for readability (e.g., “active legend”, “currently
maintained legend doc”, “active reference doc”, or “primary legend entry”) so
the bullets are less repetitive while preserving the link targets and meaning.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 547a0e42-4c15-41ba-8b0c-518ecdfae1ac

📥 Commits

Reviewing files that changed from the base of the PR and between 837cb83 and 859ece9.

📒 Files selected for processing (3)
  • docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md
  • docs/MARKDOWN_SURFACE.md
  • examples/README.md
✅ Files skipped from review due to trivial changes (2)
  • examples/README.md
  • docs/BACKLOG/TR-015-platform-agnostic-cli-plan.md

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 2, 2026

@flyingrobots: On it! 🥕 Kicking off the review now.


🧠 Learnings used
Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-03-31T19:12:08.235Z
Learning: In the git-stunts/git-cas repository, running `npx prettier --check` (or a Prettier format pass) over a touched Markdown file (e.g., README.md) reformats the entire file, not just the edited lines. This means diffs on touched Markdown files will include code-example and table reformatting as Prettier fallout even when the intentional change is small. Reverting that formatting to limit diff scope causes `npx prettier --check` to fail, so the repo treats full-file Prettier reformatting as acceptable and expected on any touched Markdown file. Do not flag such reformatting as out-of-scope in code review.

Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 0
File: :0-0
Timestamp: 2026-04-02T05:42:05.271Z
Learning: In git-stunts/git-cas, README.md uses absolute raw GitHub URLs (not repo-relative paths) for SVG badge/banner assets such as `docs/git-cas.svg`. This is intentional: the npm package tarball does NOT include the `docs/` directory — only CHANGELOG.md, LICENSE, README.md, bin/, index.js, index.d.ts, package.json, and src/ are published. A repo-relative path would render correctly on GitHub but break on npmjs.com. Do not flag the use of absolute URLs for these assets as a style issue.

Learnt from: flyingrobots
Repo: git-stunts/git-cas PR: 29
File: docs/design/TR-010-planning-index-consistency-review.md:121-131
Timestamp: 2026-03-30T19:53:51.804Z
Learning: In the git-stunts/git-cas repository, CHANGELOG.md uses user-facing, descriptive bullet entries rather than cycle-ID headings (e.g., "Planning-index consistency review" instead of "TR-010 — Planning Index Consistency Review"). Grepping for cycle IDs like "TR-010" in CHANGELOG.md will produce false negatives; search for descriptive keywords instead.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@flyingrobots flyingrobots merged commit 2431c83 into main Apr 2, 2026
6 checks passed
@flyingrobots flyingrobots deleted the docs/tr-012-examples-surface-audit branch April 2, 2026 07:30
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