Skip to content

[Extension]: Add LLM Wiki #3317

Description

@formin

Extension ID

wiki

Extension Name

LLM Wiki

Version

1.0.0

Description

LLM-maintained compounding project wiki: source ingestion, cited answers, and consistency linting

Author

formin

Repository URL

https://github.com/formin/spec-kit-wiki

Download URL

https://github.com/formin/spec-kit-wiki/archive/refs/tags/v1.0.0.zip

License

MIT

Homepage (optional)

https://github.com/formin/spec-kit-wiki

Documentation URL (optional)

https://github.com/formin/spec-kit-wiki/blob/main/README.md

Changelog URL (optional)

https://github.com/formin/spec-kit-wiki/blob/main/CHANGELOG.md

Required Spec Kit Version

=0.2.0

Required Tools (optional)

Number of Commands

5

Number of Hooks (optional)

2

Tags

wiki, knowledge-base, docs, memory, context-management

Key Features

  • Adapts Andrej Karpathy's "LLM Wiki" pattern (https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) to spec-driven development: a persistent, LLM-maintained, compounding project wiki with three layers — immutable registered sources -> cross-referenced typed pages -> a user-editable SCHEMA.md contract that every command obeys.
  • /speckit.wiki.init — create the wiki skeleton (SCHEMA.md rules, INDEX.md page directory, sources.md registry); idempotent, never overwrites; re-running appends scope instead.
  • /speckit.wiki.ingest — the only write path for knowledge: registers the source (append-only S-ids, dedup by path/URL), extracts what outlives the moment (decisions, constraints, verified facts), and updates a hard-capped number of pages with a citation on every claim, cross-links so nothing is orphaned, and visible conflict markers instead of silent overwrites. Defaults to the active feature's research.md + plan decisions.
  • /speckit.wiki.query — answers strictly from wiki pages with page + source citations, surfacing conflicts instead of picking a winner, and closes with an honest coverage verdict (covered / partial / uncovered) plus the concrete ingest that would close any gap.
  • /speckit.wiki.lint — six checks (index drift, broken links, orphans, contradictions, staleness, uncited claims); mechanical drift auto-fixed per config, semantic findings reported to lint-report.md with suggested fixes — prose is never machine-rewritten.
  • /speckit.wiki.status — read-only one-screen snapshot (counts, freshness, open issues) + exactly one recommended next action; the session-resume entry point.
  • Optional hooks: after_plan -> speckit.wiki.ingest (compound the feature's verified research), after_implement -> speckit.wiki.ingest (capture what the build taught). Prompt-only — no external tools, MCP servers, or network access; complements code-doc generators like OpenWiki by keeping the knowledge that is NOT derivable from the code.

Testing Checklist

  • Extension installs successfully via download URL
  • All commands execute without errors
  • Documentation is complete and accurate
  • No security vulnerabilities identified
  • Tested on at least one real project

Submission Requirements

  • Valid extension.yml manifest included
  • README.md with installation and usage instructions
  • LICENSE file included
  • GitHub release created with version tag
  • All command files exist and are properly formatted
  • Extension ID follows naming conventions (lowercase-with-hyphens)

Testing Details

Tested on:

  • Windows 11, specify CLI (uv/uvx), Claude Code integration.

Test project: fresh specify init testproj --integration claude scaffold.

Test scenarios:

  1. Manifest validated: YAML parses; id matches ^[a-z0-9-]+$; version 1.0.0; description 97 chars (<100); all five provides.commands[].file paths resolve; command names match speckit.wiki.{command}; both hooks reference the defined ingest command; category/effect declared (docs / read-write).
  2. Installed from the release archive: specify extension add wiki --from https://github.com/formin/spec-kit-wiki/archive/refs/tags/v1.0.0.zip (HTTP 200, application/zip) -> specify extension list shows LLM Wiki (v1.0.0), Commands: 5 | Hooks: 2 | Status: Enabled; config template staged under .specify/extensions/wiki/.
  3. Lifecycle end-to-end on the scaffold (agent-executed): init -> ingest -> query -> lint -> status. init created SCHEMA.md/INDEX.md/sources.md; ingesting a decisions file registered S001 and produced two cross-linked typed pages (decision + reference) with per-claim (S001) citations and an updated index/registry; query answered "why SQLite over Postgres?" from the pages with citations; lint produced a clean lint-report.md (0 orphans, 0 broken links, 0 conflicts); status rendered counts and a next-action recommendation.
  4. Confirmed init is idempotent (existing SCHEMA.md is never overwritten) and query/status write nothing.

Example Usage

# Install
specify extension add wiki --from https://github.com/formin/spec-kit-wiki/archive/refs/tags/v1.0.0.zip

# Once per project
/speckit.wiki.init Everything we learn about the payments domain and our vendor constraints

# Knowledge in (hooks offer this after /speckit.plan and /speckit.implement)
/speckit.wiki.ingest                                   # default: feature's research.md + plan decisions
/speckit.wiki.ingest https://stripe.com/docs/rate-limits

# Knowledge out — cited, or honestly "uncovered"
/speckit.wiki.query Why did we pick SQLite over Postgres, and does that still hold?

# Maintenance + resume
/speckit.wiki.lint                                     # contradictions, orphans, staleness, drift
/speckit.wiki.status                                   # one screen, one recommended next action

Proposed Catalog Entry

{
  "wiki": {
    "name": "LLM Wiki",
    "id": "wiki",
    "description": "LLM-maintained compounding project wiki: source ingestion, cited answers, and consistency linting",
    "author": "formin",
    "version": "1.0.0",
    "download_url": "https://github.com/formin/spec-kit-wiki/archive/refs/tags/v1.0.0.zip",
    "repository": "https://github.com/formin/spec-kit-wiki",
    "homepage": "https://github.com/formin/spec-kit-wiki",
    "documentation": "https://github.com/formin/spec-kit-wiki/blob/main/README.md",
    "changelog": "https://github.com/formin/spec-kit-wiki/blob/main/CHANGELOG.md",
    "license": "MIT",
    "category": "docs",
    "effect": "read-write",
    "requires": { "speckit_version": ">=0.2.0" },
    "provides": { "commands": 5, "hooks": 2 },
    "tags": ["wiki", "knowledge-base", "docs", "memory", "context-management"],
    "verified": false,
    "downloads": 0,
    "stars": 0,
    "created_at": "2026-07-03T00:00:00Z",
    "updated_at": "2026-07-03T00:00:00Z"
  }
}

Additional Context

This is a docs extension (read-write): it gives a Spec Kit project a cross-feature memory layer — feature research and plan decisions compound into a persistent wiki instead of dying in per-feature directories — and never edits spec.md/plan.md/tasks.md or any ingested source. Prompt-only; the "infrastructure" is markdown files (SCHEMA/INDEX/sources/pages) committed with the repo, so it works with any agent Spec Kit supports. Design adapts Andrej Karpathy's "LLM Wiki" gist (https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f); the per-mechanism mapping and deliberate differences (hard caps, mandatory citations, preserved conflicts, mechanical-vs-semantic lint split) are documented in docs/concepts.md. Complements the same author's Research Harness extension (harness verifies one feature's research; the wiki makes it permanent and reusable) and code-doc generators like langchain-ai/openwiki (which document what IS derivable from the code). Not affiliated with Karpathy, LangChain, or GitHub.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions