Skip to content

[Extension]: Add LLM Wiki #3319

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.

Supersedes issue #3318 (same submission, resubmitted through the Extension Submission form).

Metadata

Metadata

Assignees

No one assigned

    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