← Docs hub

Declined ideas

Audience: maintainers and contributors about to re-propose something. Check this file before filing an issue — we may have already considered and rejected your idea, and the reason is here.

The project has a scope. Not every cool idea fits. This file is the graveyard where declined ideas rest, with a date and a one-sentence rationale. If you disagree with a decline, open a new issue and link to the entry — explain what's changed since the rejection.

Format

## <Date> — <Title>

**Reason:** one-sentence rationale.

**Context (optional):** link to the issue, PR, or discussion. Any
nuance about *when* this might be reconsidered.

2026-04-09 — N-way comparisons on vs-comparison pages

Reason (historical): When #58 sketched 2-way side-by-side comparisons, N-way was declined as degenerating into an info table. The whole /vs/ surface was later removed (#138); this entry stays only as the record of that earlier non-goal.

Context: #58 non-goal; superseded by #138.

2026-04-09 — Automatic benchmark scraping from provider websites

Reason: Scraping is fragile, violates most providers' ToS, and creates a hidden data pipeline that can silently break. Users add benchmarks manually for v1. Structured community contributions are welcome via PR.

Context: #55 non-goal. Reconsider if a provider ships an official machine-readable benchmark API.

2026-04-09 — USD cost estimates in token usage cards

Reason: Requires a pricing table that's correct at the moment of rendering, which means either an external API call (bad — kills offline mode) or a stale hardcoded table (bad — wrong numbers are worse than no numbers). Will revisit after the v0.7 structured model schema (#55) landed, so cost can be computed from the same pricing block users already maintain.

Context: #66 non-goal. #55 shipped; revisit in v0.10.

2026-04-09 — Rollback for append-only changelog entries

Reason: Append-only by design. If an entry is wrong, add a correcting entry rather than deleting the original — preserves the audit trail. Same rule as the wiki log.

Context: #56 non-goal.

2026-04-09 — Per-turn tool timelines

Reason: Would need turn-level structured data in every session frontmatter (beyond the per-session aggregates in #63), which is a 5× larger converter output and bloats the search index. The per-session bar chart from #65 covers the 90% use case.

Context: #65 non-goal. Reconsider if users start asking for it.

2026-04-09 — Success/failure counts per tool

Reason: The raw JSONL has toolUseResult.isError on every tool result block, but wiring it through the converter aggregates doubles the state-machine complexity. Defer until users ask.

Context: #65 non-goal.

2026-04-09 — Replicating qmd's hybrid search inside llmwiki

Reason: qmd already does hybrid BM25 + vector + LLM rerank. llmwiki's built-in search is a deliberate "works offline, zero deps, client-side fuzzy" design. Users who need hybrid search run llmwiki export-qmd and point qmd at the output. Two tools, one source of truth, no competing stacks.

Context: #59 non-goal. Reconsider only if qmd becomes unmaintained.

2026-04-09 — Shipping qmd as a dependency

Reason: qmd is TypeScript/Node. llmwiki is stdlib Python plus markdown. Adding a Node runtime as a dep would destroy the "works on any 3.9+ Python, no other dependencies" promise.

Context: #59 non-goal.

2026-04-09 — Forcing users to create _context.md files

Reason: Folder-level context files are an optional navigation hint. Making them mandatory turns them into busywork for sparse folders and obscures their value for large ones. The /wiki-lint warning (#60) nags at >10-file folders without a stub, which is enough social pressure without blocking a build.

Context: #60 non-goal.

2026-04-09 — Auto-generating _context.md via LLM on sync

Reason: The whole point of _context.md is a human (or LLM during /wiki-query) having a stable, reviewable description of the folder's purpose. Auto-generating it on sync would make the file drift every time the converter runs, which defeats the caching benefit. A separate /wiki-write-contexts slash command that takes user approval is acceptable — just not in the sync pipeline.

Context: #60 follow-up, not a non-goal.

2026-04-09 — SEO schema.org markup on vs-comparison pages

Reason (historical): Vs-comparison pages were never a clean schema.org article type; half-correct markup was declined under #58. The /vs/ surface itself was later removed (#138).

Context: #58 non-goal; superseded by #138.

2026-04-09 — CLAs or DCO sign-off for contributions

Reason: llmwiki is MIT. The added bureaucracy deters small PRs and buys nothing the license doesn't already cover.

Context: #62 non-goal.

2026-04-09 — Enforcing governance retroactively on old issues

Reason: Issues #1–#61 were filed before the governance scaffold existed. Re-triaging them would churn for no user benefit. New rules apply to new issues.

Context: #62 non-goal.

2026-04-09 — Bots for automated triage

Reason: Manual triage via /triage-issue <number> is enough for the current queue size (<60 open issues). Automated bots create labeling noise and false positives. Revisit if the queue grows past 300.

Context: #62 non-goal.

Update 2026-09-08: the /triage-issue command was retired in #227 and /fix-bug is the entry point for working a bug issue; TRIAGE.md remains the label-taxonomy reference for the rules it applied. Staying off automated triage bots is unchanged.

2026-08-09 — First-class open questions as a page kind

Reason: type: question sat in the vocabulary for years without a single line of product creating one — no scaffold, no synth path, no promote path — so it bought a graph colour and a legend label and nothing else; an open question is a concept page with an unanswered heading.

Context: #109. llmwiki migrate page-kinds moves any hand-written question page into wiki/concepts/. Reconsider only if question state tracking (open / answered / stale) becomes a feature someone builds, which is a lifecycle problem, not a page-kind problem.

2026-08-26 — Auto-generated /vs/ model-comparison surface

Reason: render_vs_section had no production callers, hard-coded REPO_ROOT/wiki, and never emitted site/vs/ on a real vault. Docs and nav still advertised Compare. Per the fork-residue inventory rule, remove the dead surface rather than wire it.

Context: #138. /models/ (render_models_section, ai-model schema) stays. Reconsider only if a real demand for pairwise model diffs appears with a design that takes a vault path and is called from build_site.

2026-08-09 — Comparison pages as a page kind

Reason: A hand-authored type: comparison kind duplicated the word "comparison" without sharing machinery with anything else in the product and left readers unsure what it meant. Model diffs were briefly sketched as auto-generated /vs/ pages from AI-model entity frontmatter; that surface was never wired and was later removed (#138).

Context: #109. llmwiki migrate page-kinds moves any hand-written comparison page into wiki/concepts/. Reconsider a first-class comparison kind only if a real product need for authored side-by-side pages appears — not as a revival of dead /vs/ code.


Want to propose something that's on this list? File an issue with a link to the entry and explain what's changed since the rejection. Maintainers read proposals with an open mind, but "the idea is cool" isn't a new argument.

2026-08-16 — Slack / Discord export ingestion

Reason: Chat exports are conversation logs without an agent session's structure — no tool calls, no project, no model — so they would land in raw/ as a shape the converter, the frontmatter contract and every downstream page format were not built for.

Context: Carried from the retired docs/roadmap.md (W-L0-01). Reconsider only if someone wants a chat adapter badly enough to design the frontmatter mapping first.

2026-08-16 — TUI browser for the wiki

Reason: The generated site is already browsable as plain files and the terminal audience is served by existing tools; a second UI would double the surface that every site feature has to ship into.

Context: Carried from the retired docs/roadmap.md (W-L2-01), which deferred to raine/claude-history.

2026-08-16 — Real-time collaborative editing

Reason: Not a product goal. The wiki is a single-operator artifact compiled from that operator's own sessions; collaboration happens in git, not in the page.

Context: Carried from the retired docs/roadmap.md (W-L3-01).

2026-08-16 — Precompiled Go / Rust binary

Reason: Python-first policy. A second toolchain would fork the build, the release pipeline and every adapter that reaches into a Python session store.

Context: Carried from the retired docs/roadmap.md (W-L4-01).

2026-08-16 — Sentry / telemetry

Reason: Privacy rule. The product reads a user's entire session history; shipping anything that phones home is incompatible with that, regardless of what is in the payload.

Context: Carried from the retired docs/roadmap.md (W-L7-01). Local-only usage telemetry (llmwiki usage) is the deliberate alternative — it never leaves the machine.

2026-08-16 — Supabase / Postgres backend

Reason: Stdlib-first rule. A database would make the vault something other than files on disk, which is the property that makes it greppable, diffable and portable.

Context: Carried from the retired docs/roadmap.md (W-L7-02).

Reason: The server was removed and the site is plain files opened directly from disk, so llmwiki serve, the serve.sh / serve.bat wrappers, and the SQLite FTS5 server-side search fallback all lost the runtime they depended on. Search is the prebuilt client-side index.

Context: Carried from the retired docs/roadmap.md (M-L3-15, M-L4-04, C-L7-02), which still listed the server as a shipped Must long after it was deleted. Reconsider only together with a decision to reintroduce a runtime.

2026-08-26 — Eval framework / llmwiki eval subcommand

Reason: Never implemented. Docs and roadmaps advertised an eval framework / llmwiki eval as shipped since v0.3, and CI once ran a no-op behind || true, so the check reported success while measuring nothing. Structural and wiki quality remains llmwiki lint / /wiki-lint.

Context: #154. Do not reintroduce a scoring CLI unless it is a real subcommand with tests; until then, lint is the quality gate.

Keyboard shortcuts

⌘K / Ctrl+KOpen command palette
/Focus search
g hGo to home
g pGo to projects
g sGo to sessions
j / kNext / prev row (tables)
?Show this help
EscClose dialogs

Structured queries

Mix key:value filters with free text in the palette:

type:sessionOnly session pages
project:llm-wikiFilter by project name (substring)
model:claudeFilter by model name (substring)
date:>2026-03-01Sessions after a date
date:<2026-04-01Sessions before a date
tags:rustPages mentioning a tag/topic
sort:dateSort results by date (newest first)

Example: type:session project:llm-wiki date:>2026-04 sort:date