Skip to content

Commit 7c23033

Browse files
authored
docs: sync README + CONTRIBUTING + getting-started + architecture; bump to v0.9.0 (#82)
User feedback: "Readme top demo of gitlab pages should be there, plus simple rule of contribution, all docs are out of sync review every thing test with actual data". This PR addresses all four asks. README.md: - Hoist the live demo link to the VERY top of the file, above the badges. Presented as a big `## 👉` header so it's impossible to miss. Demo URL: https://pratiyush.github.io/llm-wiki/ - Explain what the demo shows (heatmap, tool charts, token usage, model info cards, vs-comparisons, project topics) so new visitors know what to expect before clicking - Update stale badges: * version v0.4.0 → v0.9.0 * tests 95 passing → 420 passing - New one-line "Contributing in one line:" paragraph immediately after the install snippet, linking to CONTRIBUTING.md with the TL;DR rules inline CONTRIBUTING.md: - New "TL;DR rules of contribution" section at the top with 7 numbered rules (one concern per PR, commit prefixes, no real session data, no new runtime deps, tests must pass, CHANGELOG entry, open issue for large work). Hits the user's "simple rule of contribution" ask. - Prominent link to the live demo up top so new contributors can explore the product before reading the contribution rules - Remove stale pygments references from the dev setup list (superseded by highlight.js + CDN in #73) - Fix the PR title format section: the repo uses conventional commits (feat: / fix: / docs: / chore: / test:), not `add:` which was documented here. Aligned with what git log actually shows. docs/getting-started.md: - Update step 1 of the setup description to drop pygments and explain that highlight.js runs in the browser via CDN docs/architecture.md: - Update L2 Site section to describe the v0.9 page surface: heatmap, tool charts, token usage stats, models/, vs/, changelog.html, AI exports - Drop pygments from the runtime deps list in both the L2 description and the Design principles section (item #1) llmwiki/__init__.py + pyproject.toml: - __version__ and pyproject version bumped 0.4.0 → 0.9.0 to match the shipped feature set (#55, #56, #58, #60, #63, #64, #65, #66, #72, #73, #74, #75, #76, #77, #78, #79, #80, #81 + project topics all merged on master between v0.4 and now) tests/test_v04.py: - Relax the hardcoded version assertion so every release bump doesn't break the v0.4 test module. New behavior: accept any 0.x.y pre-1.0 release with minor ≥ 4 (since the tests themselves were introduced in v0.4) - Replace `test_pyproject_version_matches` naive substring check with an equality check against `__version__` — catches the real bug (pyproject and package drifting apart) without being tied to a specific number 420 tests still passing after the docs sync + version bump. Verified the live build shows all 6 nav links (Home / Projects / Sessions / Models / Compare / Changelog), the llm-wiki card shows topic chips (`python, wiki, karpathy, claude-code, +3 more`), and `llmwiki --version` prints `llmwiki 0.9.0`.
1 parent 2a31a49 commit 7c23033

7 files changed

Lines changed: 71 additions & 25 deletions

File tree

CONTRIBUTING.md

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22

33
Thanks for wanting to contribute. This project follows strict rules about commits, PRs, and privacy — please read this before opening a PR.
44

5+
**Try the live demo first:** [pratiyush.github.io/llm-wiki](https://pratiyush.github.io/llm-wiki/). It's rebuilt on every `master` push from [`examples/demo-sessions/`](examples/demo-sessions) so you can see every feature working before touching code.
6+
57
## Table of contents
68

9+
- [TL;DR rules of contribution](#tldr-rules-of-contribution)
710
- [Code of conduct](#code-of-conduct)
811
- [Dev setup](#dev-setup)
912
- [Project structure](#project-structure)
@@ -13,6 +16,18 @@ Thanks for wanting to contribute. This project follows strict rules about commit
1316
- [Testing](#testing)
1417
- [Releases](#releases)
1518

19+
## TL;DR rules of contribution
20+
21+
1. **One concern per PR.** Don't mix a bug fix with a new feature.
22+
2. **Commit prefixes:** `feat:` / `fix:` / `docs:` / `chore:` / `test:` — e.g. `feat(v0.7): tool-calling bar chart (#65)`.
23+
3. **Never commit real session data.** `raw/sessions/` is gitignored. Fixtures must be synthetic or heavily redacted.
24+
4. **No new runtime deps.** Stdlib + `markdown` only. Viewer loads highlight.js from a CDN — no server-side parser needed.
25+
5. **Tests must pass.** Run `python3 -m pytest tests/ -q` before pushing. CI runs on Python 3.9 + 3.12.
26+
6. **Add a CHANGELOG entry** under `## [Unreleased]` for every user-visible change.
27+
7. **Open an issue first** for anything bigger than a one-file fix. Keeps scope aligned.
28+
29+
That's it. If you follow those seven rules your PR is 90% of the way through review.
30+
1631
## Code of conduct
1732

1833
Be kind. Respect privacy. Prefer plain English to jargon. No scope creep.
@@ -22,19 +37,18 @@ Be kind. Respect privacy. Prefer plain English to jargon. No scope creep.
2237
```bash
2338
git clone https://github.com/Pratiyush/llm-wiki.git
2439
cd llm-wiki
25-
./setup.sh # installs markdown + pygments, scaffolds raw/ wiki/ site/
40+
./setup.sh # installs markdown, scaffolds raw/ wiki/ site/
2641
python3 -m pytest tests/ -q
2742
```
2843

2944
Requirements:
3045

3146
- Python ≥ 3.9
32-
- `markdown` (required)
33-
- `pygments` (optional — syntax highlighting)
47+
- `markdown` (required — the only runtime dep)
3448
- `ruff` (dev — lint)
3549
- `pytest` (dev — tests)
3650

37-
No other runtime deps. That's a hard rule.
51+
No other runtime deps. That's a hard rule. Syntax highlighting runs in the browser via [highlight.js](https://highlightjs.org/) loaded from a CDN, so the build pipeline stays stdlib-only.
3852

3953
## Project structure
4054

@@ -73,11 +87,17 @@ Adapted from the parent [Open Source Project Framework](docs/framework.md):
7387

7488
### PR title format
7589

76-
- `add: <feature>` — new functionality
77-
- `fix: <what>` — bug fix
90+
Use conventional-commit-style prefixes (matches what's in `git log` on
91+
this repo):
92+
93+
- `feat: <feature>` or `feat(v0.X): <feature>` — new functionality
94+
- `fix: <what>` or `fix(v0.X): <what>` — bug fix
7895
- `docs: <what>` — docs only
79-
- `chore: <what>` — refactor, dep bump, CI
80-
- `test: <what>` — tests only
96+
- `chore: <what>` — refactor, dep bump, CI, version bumps
97+
- `test: <what>` or `test+docs: <what>` — tests only / tests + docs
98+
99+
Include the issue number in the PR title or body when the PR closes
100+
one: `feat(v0.8): tool-calling bar chart (#65)`.
81101

82102
### PR body checklist
83103

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,14 @@
33
> **LLM-powered knowledge base from your Claude Code, Codex CLI, Cursor, Gemini CLI, and Obsidian sessions.**
44
> Built on [Andrej Karpathy's LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f).
55
6+
## 👉 Live demo: **[pratiyush.github.io/llm-wiki](https://pratiyush.github.io/llm-wiki/)**
7+
8+
Rebuilt on every `master` push from the synthetic sessions in [`examples/demo-sessions/`](examples/demo-sessions). No personal data. Shows every feature of the real tool (activity heatmap, tool charts, token usage, model info cards, vs-comparisons, project topics) running against safe reference data.
9+
610
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
711
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/)
8-
[![Version](https://img.shields.io/badge/version-v0.4.0-7C3AED.svg)](CHANGELOG.md)
9-
[![Tests](https://img.shields.io/badge/tests-95%20passing-10B981.svg)](tests/)
12+
[![Version](https://img.shields.io/badge/version-v0.9.0-7C3AED.svg)](CHANGELOG.md)
13+
[![Tests](https://img.shields.io/badge/tests-420%20passing-10B981.svg)](tests/)
1014
[![Works with Claude Code](https://img.shields.io/badge/Claude%20Code-✓-7C3AED.svg)](https://claude.com/claude-code)
1115
[![Works with Codex CLI](https://img.shields.io/badge/Codex%20CLI-✓-7C3AED.svg)](https://github.com/openai/codex)
1216

@@ -21,7 +25,7 @@ Every Claude Code, Codex CLI, and Cursor session writes a full transcript to dis
2125
./build.sh && ./serve.sh # build + serve at http://127.0.0.1:8765
2226
```
2327

24-
> **Live demo:** https://pratiyush.github.io/llm-wiki/ — built from the dummy sessions in [`examples/demo-sessions/`](examples/demo-sessions) by [`.github/workflows/pages.yml`](.github/workflows/pages.yml). No personal data.
28+
**Contributing in one line:** read [`CONTRIBUTING.md`](CONTRIBUTING.md), keep PRs focused (one concern each), use `feat:` / `fix:` / `docs:` / `chore:` / `test:` commit prefixes, never commit real session data (`raw/` is gitignored), no new runtime deps. CI must be green to merge.
2529

2630
## Screenshots
2731

docs/architecture.md

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -87,17 +87,23 @@ llmwiki does NOT write to `wiki/` directly. The agent does, via slash commands (
8787

8888
Owner: `llmwiki/build.py`
8989

90-
Converts every file under `raw/sessions/` (and any hand-authored files under `wiki/`) into static HTML. Uses `python-markdown` + `pygments` (optional, for syntax highlighting). Writes to `site/`.
90+
Converts every file under `raw/sessions/` (and any hand-authored files under `wiki/`) into static HTML. Uses `python-markdown` (the only runtime dep) — syntax highlighting runs in the browser via highlight.js loaded from a pinned jsdelivr CDN (v0.5, #73), so the build pipeline itself stays stdlib-only. Writes to `site/`.
9191

92-
Pages rendered:
92+
Pages rendered (v0.9 surface):
9393

94-
- `site/index.html` — home with hero + synthesis + project cards
95-
- `site/projects/index.html` — project grid
96-
- `site/projects/<project>.html` — per-project session list
94+
- `site/index.html` — home with hero + 365-day activity heatmap + token-usage stat grid + recently-updated card + project grid with topic chips
95+
- `site/projects/index.html` — project grid with freshness badges
96+
- `site/projects/<project>.html` — per-project page with topics strip, 365-day heatmap (scoped), tool-calling bar chart, token timeline, main sessions + sub-agents
9797
- `site/sessions/index.html` — sortable sessions table with filter bar
98-
- `site/sessions/<project>/<slug>.html` — per-session transcript page
98+
- `site/sessions/<project>/<slug>.html` — per-session transcript with tool chart + token card + full conversation
99+
- `site/models/index.html` — sortable AI-model directory (v0.7, #55)
100+
- `site/models/<slug>.html` — per-model info card + changelog timeline + pricing sparkline (v0.7, #56)
101+
- `site/vs/index.html` — auto-generated vs-comparison index (v0.7, #58)
102+
- `site/vs/<a>-vs-<b>.html` — side-by-side info table + benchmark chart + price delta
103+
- `site/changelog.html``CHANGELOG.md` rendered as a first-class page (v0.4.2, #72)
99104
- `site/search-index.json` — pre-built client-side search index
100105
- `site/sources/<project>/<slug>.md` — copies of raw source for download
106+
- Plus AI-consumable exports: `llms.txt`, `llms-full.txt`, `graph.jsonld`, `sitemap.xml`, `rss.xml`, per-page `.txt` + `.json` siblings
101107

102108
### L3 — Viewer (browser JS)
103109

@@ -174,7 +180,7 @@ See [framework.md §5.25 Adapter Flow](framework.md) for the full contract. TL;D
174180

175181
## Design principles
176182

177-
1. **Stdlib first.** Runtime deps: `markdown` (required) + `pygments` (optional). Nothing else.
183+
1. **Stdlib first.** Runtime dep: `markdown` only. Nothing else. Syntax highlighting runs client-side via a CDN-loaded highlight.js (v0.5, #73) so the build stays deterministic and offline-capable.
178184
2. **Privacy by default.** Redact everything sensitive before it hits disk.
179185
3. **Idempotent everything.** Re-running any command is safe and cheap.
180186
4. **Localhost only.** No network, no telemetry, no cloud. The user controls if/when to publish.

docs/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ setup.bat
3030

3131
`setup.sh` / `setup.bat` does the following, idempotently:
3232

33-
1. Installs `markdown` (required) and `pygments` (optional, syntax highlighting) via `pip install --user`
33+
1. Installs `markdown` (the only runtime dep) via `pip install --user`. Syntax highlighting runs in the browser via highlight.js loaded from a CDN, so the build stays stdlib-only.
3434
2. Scaffolds `raw/`, `wiki/`, `site/` directories
3535
3. Runs `llmwiki adapters` to show which agents are detected
3636
4. Does a dry-run of the first sync so you see what *would* be converted

llmwiki/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
- llmwiki.adapters.REGISTRY — adapter registry
1212
"""
1313

14-
__version__ = "0.4.0"
14+
__version__ = "0.9.0"
1515
__author__ = "Pratiyush"
1616
__license__ = "MIT"
1717

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "llmwiki"
7-
version = "0.4.0"
7+
version = "0.9.0"
88
description = "Karpathy-style LLM wiki from your Claude Code, Codex CLI, Cursor, and Obsidian sessions"
99
readme = "README.md"
1010
requires-python = ">=3.9"

tests/test_v04.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,29 @@
1515
# ─── version bump ────────────────────────────────────────────────────────
1616

1717

18-
def test_version_is_v04():
19-
assert __version__.startswith("0.4"), f"expected 0.4.x, got {__version__}"
18+
def test_version_is_valid_semver_0x():
19+
"""v0.4 originally locked __version__ to 0.4.x. That was too tight —
20+
the project has shipped through v0.5 → v0.9 since then and the
21+
hardcoded 0.4 assertion kept catching every release bump. Relaxed
22+
to "any 0.x.y pre-1.0 release" so the v0.4 exporters tests below
23+
still gate on the actual exporter behaviour, not the version string."""
24+
parts = __version__.split(".")
25+
assert len(parts) == 3, f"expected x.y.z, got {__version__}"
26+
major, minor, patch = parts
27+
assert major == "0", f"expected pre-1.0 release, got {__version__}"
28+
assert minor.isdigit() and int(minor) >= 4, (
29+
f"v0.4 introduced these tests; got {__version__}"
30+
)
2031

2132

22-
def test_pyproject_version_matches():
33+
def test_pyproject_version_matches_package():
34+
"""Whatever version `llmwiki/__init__.py` sets, `pyproject.toml`
35+
must match — otherwise `pip install .` ships a different number
36+
than `llmwiki --version` reports."""
2337
content = (REPO_ROOT / "pyproject.toml").read_text(encoding="utf-8")
24-
assert 'version = "0.4' in content
38+
assert f'version = "{__version__}"' in content, (
39+
f"pyproject.toml version does not match __version__ ({__version__})"
40+
)
2541

2642

2743
# ─── exporters ───────────────────────────────────────────────────────────

0 commit comments

Comments
 (0)