{"id":51505340,"url":"https://github.com/openknowledge-sh/openknowledge","last_synced_at":"2026-07-08T00:00:37.508Z","repository":{"id":365232705,"uuid":"1270574805","full_name":"openknowledge-sh/openknowledge","owner":"openknowledge-sh","description":"CLI tool for managing Open Knowledge Format (OKF) bundles.","archived":false,"fork":false,"pushed_at":"2026-07-03T22:21:53.000Z","size":1109,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-04T00:12:55.591Z","etag":null,"topics":["cli","okf","okf-format","okf-validate","openknowledgeformat"],"latest_commit_sha":null,"homepage":"https://openknowledge.sh","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openknowledge-sh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-15T21:09:15.000Z","updated_at":"2026-07-03T22:21:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/openknowledge-sh/openknowledge","commit_stats":null,"previous_names":["openknowledge-sh/openknowledge"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/openknowledge-sh/openknowledge","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openknowledge-sh%2Fopenknowledge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openknowledge-sh%2Fopenknowledge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openknowledge-sh%2Fopenknowledge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openknowledge-sh%2Fopenknowledge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openknowledge-sh","download_url":"https://codeload.github.com/openknowledge-sh/openknowledge/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openknowledge-sh%2Fopenknowledge/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35246561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-07T02:00:07.222Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","okf","okf-format","okf-validate","openknowledgeformat"],"created_at":"2026-07-08T00:00:28.440Z","updated_at":"2026-07-08T00:00:37.486Z","avatar_url":"https://github.com/openknowledge-sh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/openknowledge-readme-banner-wide.png\" alt=\"Open Knowledge CLI banner\" width=\"1160\" height=\"125\"\u003e\n\u003c/p\u003e\n\n# Open Knowledge CLI\n\nLocal LLM wiki tooling for agents and humans.\n\nOpen Knowledge CLI creates Git-native project knowledge bases in plain Markdown\nand YAML frontmatter. Use it to set up local agent memory, generate\nsource-grounded docs from existing material, validate the structure, search it,\nview it locally, and publish it as portable static HTML.\n\n[🌐 Website](https://openknowledge.sh) | [📖 README](README.md) |\n[🗂️ Repository wiki](Wiki/index.md) | [📝 Changelog](Wiki/changelog/cli.md) |\n[📐 OKF spec][okf-spec] | [⚖️ License](LICENSE)\n\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License: Apache-2.0\" src=\"https://img.shields.io/badge/license-Apache--2.0-blue\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md\"\u003e\u003cimg alt=\"OKF v0.1\" src=\"https://img.shields.io/badge/OKF-v0.1-2f6feb\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://openknowledge.sh\"\u003e\u003cimg alt=\"Local-first Markdown wiki\" src=\"https://img.shields.io/badge/wiki-local--first-0f766e\"\u003e\u003c/a\u003e\n  \u003ca href=\"Wiki/index.md\"\u003e\u003cimg alt=\"Agent-ready docs\" src=\"https://img.shields.io/badge/docs-agent--ready-6f42c1\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Contents\n\n- [Why Open Knowledge](#why-open-knowledge)\n- [At A Glance](#at-a-glance)\n- [Start Here](#start-here)\n- [Command Map](#command-map)\n- [Common Workflows](#common-workflows)\n- [How It Works](#how-it-works)\n- [Command Reference](#command-reference)\n- [Validation](#validation)\n- [Development](#development)\n- [License And Attribution](#license-and-attribution)\n\n## Why Open Knowledge\n\nOpen Knowledge is a small tooling stack around Markdown knowledge bases. It is\nuseful when you want an LLM wiki, LLM Wikipedia-style project memory, or\nKarpathy-style local wiki that stays inspectable with normal shell tools.\n\nIt gives you:\n\n- plain-file knowledge bases that agents and humans can both edit\n- source-to-wiki prompts for turning repositories, local folders, or websites\n  into OKF Markdown bundles\n- deterministic validation, listing, search, AST, JSON, graph, tar, and HTML\n  views of the same bundle\n- local registry aliases so agents can address knowledge bases by stable names\n- a local viewer and static publisher with connect manifests and portable\n  bundle archives\n- optional experimental Markdown-authored local agent jobs for scheduled\n  maintenance\n\nOpen Knowledge implements Google's [Open Knowledge Format v0.1][okf-spec]\nspecification, a Markdown and YAML-frontmatter standard designed to stay easy\nto inspect, diff, validate, and maintain.\n\n## At A Glance\n\n| | Capability | What it gives you |\n| --- | --- | --- |\n| :robot: | Agent setup | `openknowledge setup`, `from`, and `rules` print prompts that let local agents create and maintain useful project memory. |\n| :memo: | Plain Markdown | Knowledge stays in Git-friendly files that humans can read and agents can patch. |\n| :mag: | Retrieval | `search`, `get`, `list`, and `view` make the wiki usable as local context instead of a passive docs folder. |\n| :package: | Portable publishing | HTML exports include `llms.txt`, `openknowledge.json`, and a bundle archive so published wikis can be connected again. |\n| :gear: | Deterministic checks | `validate`, `ast`, JSON, graph, and experimental agent job commands provide structured views that automation can trust. |\n\n```mermaid\nflowchart LR\n  Source[\"Repository, docs, website, or local folder\"] --\u003e Prompt[\"openknowledge from / setup\"]\n  Prompt --\u003e Agent[\"Local coding agent\"]\n  Agent --\u003e Wiki[\"OKF Markdown wiki\"]\n  Wiki --\u003e Use[\"get / search / list / view\"]\n  Wiki --\u003e Check[\"validate / ast\"]\n  Wiki --\u003e Publish[\"to html / json / graph / tar\"]\n  Publish --\u003e Connect[\"connect remote or archive\"]\n```\n\n## Start Here\n\n### Let an agent create the wiki\n\nPaste this into Codex, Claude, Cursor, Cowork, or another coding agent in the\nworkspace where the wiki should live:\n\n```text\nSet up an Open Knowledge LLM wiki for this workspace.\n\nFirst check whether the openknowledge CLI is available with command -v openknowledge and openknowledge --help. If it is missing, install it with curl -fsSL https://openknowledge.sh/install | bash. Then run openknowledge setup, use openknowledge rules --list to see the available maintenance rules, inspect this workspace and any relevant memories, ask only the setup questions still needed, choose the maintenance rules this wiki should follow, such as project, docs, decisions, changelog, research, bugs, schemas, summary, or agents, create and customize the wiki for this workspace, run openknowledge validate, show me how to inspect it with openknowledge list, openknowledge search, and openknowledge get, and open it for me using openknowledge view.\n```\n\nThe agent will install the CLI if needed, inspect local context, choose useful\nmaintenance rules, create the wiki scaffold, tailor it to the workspace, run\nvalidation, and leave you with navigation commands.\n\n### Use the setup prompt directly\n\nPrint the setup prompt, then copy the terminal output into Codex, Claude Code,\nCursor, Cowork, or another agent that can edit the workspace:\n\n```sh\nopenknowledge setup\n```\n\nPreselect maintenance rules when you already know the wiki shape:\n\n```sh\nopenknowledge setup --rules docs,changelog\n```\n\nAvoid shell command substitution or piping for interactive agent CLIs; those\npatterns can be flagged by security tools and can break interactive stdin.\n\n### Generate a wiki from existing material\n\nUse `openknowledge from` when the wiki should be grounded in a repository,\nfolder, or website:\n\n```sh\nopenknowledge from https://github.com/openknowledge-sh/openknowledge --out Wiki --type understanding\n```\n\nThe command prints instructions for a local agent to inspect the source,\ncreate or update an OKF bundle, preserve source provenance, validate the\nresult, and show follow-up `list`, `search`, `get`, and `view` commands. Copy\nthat printed prompt into the agent.\n\n### Install manually\n\n```sh\ncurl -fsSL https://openknowledge.sh/install | bash\n```\n\nThen create and inspect a local bundle:\n\n```sh\nopenknowledge new ./project-memory\nopenknowledge validate ./project-memory\nopenknowledge list ./project-memory\nopenknowledge search ./project-memory \"validation workflow\"\nopenknowledge view ./project-memory\n```\n\n## Command Map\n\n| Layer | Commands | Use them for |\n| --- | --- | --- |\n| Agent setup | `setup`, `rules`, `review rules` | Print prompts and maintenance instructions for agents that create or maintain a wiki. |\n| Source-to-wiki generation | `from` | Print an agent task prompt that turns a source URL or path into a local OKF Markdown wiki. |\n| Authoring and format hygiene | `new`, `spec`, `validate`, `list`, `ast` | Create bundles, inspect structure, parse Markdown, and enforce portable OKF rules. |\n| Experimental local agent automation | `agents` | Validate, dry-run, and execute scheduled local agent jobs from Markdown specs in isolated Git worktrees. |\n| Registry and lifecycle | `connect`, `disconnect`, `registry`, `to tar` | Give local, published, archive, or Git knowledge bases stable names and package portable source archives. |\n| Use and navigation | `get`, `search`, `list`, `view` | Read exact Markdown files, inspect bundle trees, search source-grounded chunks, and browse locally. |\n| Views and publishing | `to json`, `to graph`, `to graph --type search`, `to html`, `to html --plain` | Export normalized models, source graphs, retrieval graphs, static viewers, and plain semantic HTML. |\n\n## Common Workflows\n\n### Create a bundle\n\n```sh\nopenknowledge new ./project-memory\nopenknowledge new --no-agents --no-setup ./source-wiki\nopenknowledge new --name \"Accessibility Review\" --bundle-name accessibility --bundle-tag accessibility ./accessibility\n```\n\n### Connect and navigate\n\n```sh\nopenknowledge connect ./project-memory --as personal\nopenknowledge get personal --info\nopenknowledge get personal\nopenknowledge search personal \"validation workflow\"\nopenknowledge search personal \"validation workflow\" --expand graph\nopenknowledge registry where personal\nopenknowledge view personal\nopenknowledge disconnect personal\n```\n\n### Validate and inspect\n\n```sh\nopenknowledge validate ./project-memory\nopenknowledge validate --format json ./project-memory\nopenknowledge list --depth 2 ./project-memory\nopenknowledge ast ./project-memory\n```\n\n### Publish or export\n\n```sh\nopenknowledge to html --out ./project-site ./project-memory\nopenknowledge to html --plain --out ./project-plain-site ./project-memory\nopenknowledge to json ./project-memory\nopenknowledge to graph ./project-memory\nopenknowledge to graph --type search ./project-memory\nopenknowledge to tar --out ./project-memory.tar.gz ./project-memory\n```\n\n## How It Works\n\n### Agent setup prompts\n\n`openknowledge setup` prints an agent prompt for setting up a useful local\nknowledge base with the user. Paste it into a coding agent, or pass it as an\ninitial CLI prompt when your agent CLI supports that pattern. The agent\ninspects the workspace, asks only for missing setup decisions, chooses\nmaintenance rules such as `docs`, `changelog`, `decisions`, `research`,\n`bugs`, `schemas`, `summary`, or `agents`, creates the bundle, and validates\nthe result.\n\n`openknowledge rules` prints Markdown instructions for agents that maintain an\nexisting wiki. It does not edit files. Use `openknowledge rules apply` when\nyou want the CLI to write an idempotent managed block into an agent instruction\nfile such as `AGENTS.md`, `CLAUDE.md`, or Cursor project rules.\n\n`openknowledge review rules` prints an advisory AI review prompt for checking\nwhether selected maintenance rules appear to have been followed. It does not\ncall a model, edit files, or affect validation status.\n\n### Source-to-wiki prompts\n\n`openknowledge from \u003csource\u003e --out \u003cfolder\u003e` prints a source-to-wiki agent\nprompt. Use it with a GitHub repository, local path, or website entrypoint when\nyou want a local agent to create or refresh an OKF bundle from existing\nmaterial.\n\n`--type understanding` is the default DeepWiki-style recipe for overview,\narchitecture, structure, workflows, entrypoints, diagrams, glossary, and\ncitations. `--type custom` asks the agent to interview for the wiki goal; pass\n`--about \"\u003cgoal\u003e\"` to make that non-interactive. `--depth \u003cn\u003e` is a crawl or\ntraversal hint for sources that need one.\n\n### Bundle lifecycle\n\n`openknowledge new` creates a minimal local bundle with the base OKF files: a\nsetup handoff, starter agent guidance, an update log, and a pinned copy of the\ncurrent spec. Pass `--no-agents` or `--no-setup` when starter agent guidance or\nthe interactive handoff is not useful for the workflow.\n\nAfter creation, humans and agents edit normal Markdown files.\n`openknowledge validate` checks the bundle, `openknowledge list` prints the\nbundle tree, `openknowledge get` prints exact files or declared entrypoints,\nand `openknowledge search` retrieves source-grounded Markdown chunks with\nsnippets, line ranges, heading paths, and lexical ranking.\n\n### Registry and viewer\n\n`openknowledge connect` stores stable names for local paths, published\nmanifests, tar archives, and Git sources. A key is only an alias: path-based\ncommands still work, and agents can use `openknowledge registry where \u003ckey\u003e` to\nresolve the real folder before using normal filesystem tools such as `rg`.\n\n`openknowledge view` starts a registry-backed local viewer.\n`openknowledge view \u003cpath-or-name\u003e` opens one knowledge base directly. The\nviewer serves registered knowledge bases under stable local paths such as\n`/personal/`; those path aliases do not require DNS or `/etc/hosts` changes.\n\n### Publishing\n\n`openknowledge to html` writes a static viewer app bundle by default, including\nsearchable Markdown tables, `llms.txt`, an `openknowledge.json` connect\nmanifest, and an `assets/openknowledge-bundle.tar.gz` source archive.\nPublished exports can be connected later:\n\n```sh\nopenknowledge connect https://openknowledge.sh/wiki/\n```\n\n`openknowledge to html --plain` writes unstyled semantic HTML.\n`openknowledge to json` writes a normalized bundle model.\n`openknowledge to graph` writes an AST-backed source graph.\n`openknowledge to graph --type search` writes a retrieval-oriented chunk graph.\n\nStatic viewer exports can inject trusted deployment-owned head HTML with\n`--head-file`, `--head-html`, repeatable `--script-src`, or matching\n`OPENKNOWLEDGE_HEAD_*` and `OPENKNOWLEDGE_SCRIPT_SRC` environment variables.\nBundle-local `openknowledge.toml` can also configure HTML theme, site, and\nsource-link metadata:\n\n```toml\n[html.theme]\nname = \"landing\"\nstylesheet = \"assets/wiki-theme.css\"\n\n[html.site]\nbase_url = \"https://openknowledge.sh/wiki/\"\n\n[html.source]\ngithub_base = \"https://github.com/openknowledge-sh/openknowledge/blob/main\"\nentry = \"Wiki\"\n```\n\n### Experimental Local Agent Jobs\n\n`openknowledge agents` is experimental. It runs deterministic automation\naround local agent CLIs, but the job schema and scheduler behavior may still\nchange before this command is treated as stable. Jobs are Markdown files with\nnested frontmatter for schedule, agent command, workspace, sandbox,\nverification, and output settings. The Markdown body is the agent prompt.\n\nUse `openknowledge agents new` to list shipped templates,\n`openknowledge agents new \u003ctemplate\u003e --out \u003cfile\u003e` to write one,\n`openknowledge agents validate` to check job specs, and\n`openknowledge agents run \u003cjob.md\u003e --dry-run` to print the resolved run plan.\nRun `openknowledge agents run \u003cjob.md\u003e` to create a Git worktree and run the\nconfigured agent command.\n\n## Command Reference\n\nRun `openknowledge \u003ccommand\u003e --help` for command-specific flags and examples.\n\n| Command | Purpose |\n| --- | --- |\n| `openknowledge --help` | Print command usage, summaries, and examples. |\n| `openknowledge setup` | Print an agent prompt for creating and customizing a knowledge base. |\n| `openknowledge setup --rules \u003crules\u003e` | Print the setup prompt with selected maintenance rules. |\n| `openknowledge from \u003csource\u003e --out \u003cfolder\u003e` | Print an agent prompt for generating or refreshing a wiki from a source URL or path. |\n| `openknowledge from \u003csource\u003e --out \u003cfolder\u003e --type custom --about \u003cgoal\u003e` | Print a custom source-to-wiki prompt without an interview step. |\n| `openknowledge rules --list` | List built-in agent maintenance rules. |\n| `openknowledge rules \u003crules\u003e --path \u003cpath\u003e` | Print ready-to-paste maintenance rules for an existing wiki. |\n| `openknowledge rules apply \u003crules\u003e --path \u003cpath\u003e --file \u003cfile\u003e` | Write or replace a managed rules block in an agent instruction file. |\n| `openknowledge review rules [path]` | Print an advisory AI review prompt for maintenance rules. |\n| `openknowledge agents new` | Experimental: list built-in local agent job templates. |\n| `openknowledge agents new \u003ctemplate\u003e --out \u003cfile\u003e` | Experimental: write a built-in agent job template to a Markdown file. |\n| `openknowledge agents new --reference` | Experimental: print the supported nested frontmatter syntax. |\n| `openknowledge agents list [path]` | Experimental: list Markdown agent job specs. |\n| `openknowledge agents validate \u003cjob-or-dir\u003e` | Experimental: parse and schema-check agent job specs. |\n| `openknowledge agents run \u003cjob.md\u003e --dry-run` | Experimental: print the resolved deterministic run plan. |\n| `openknowledge agents run \u003cjob.md\u003e` | Experimental: create a Git worktree and run one local agent job. |\n| `openknowledge agents daemon [jobs-dir] --once` | Experimental: check scheduled jobs once and run due jobs. |\n| `openknowledge new [folder]` | Scaffold a local Open Knowledge bundle. |\n| `openknowledge new --no-agents --no-setup [folder]` | Scaffold without starter agent rules or a setup handoff. |\n| `openknowledge connect \u003csource\u003e` | Connect a local path, registry key, manifest URL, tar archive URL, or Git URL. |\n| `openknowledge connect \u003csource\u003e --as \u003ckey\u003e` | Connect a bundle with an explicit key. |\n| `openknowledge disconnect \u003ckey-or-path\u003e` | Remove a connection while keeping files. |\n| `openknowledge disconnect \u003ckey-or-path\u003e --delete-files` | Delete files only for CLI-managed remote clones. |\n| `openknowledge get \u003cname-or-path\u003e` | Print an exact local Markdown file, default entrypoint, or root `index.md`. |\n| `openknowledge get \u003cname-or-path\u003e \u003centry-or-file\u003e` | Print a named bundle entrypoint or bundle-relative Markdown file. |\n| `openknowledge get \u003cname-or-path\u003e --info` | Print bundle and selected-file metadata. |\n| `openknowledge search \u003cname-or-path\u003e \u003cquery\u003e` | Search source-grounded Markdown chunks. |\n| `openknowledge search \u003cname-or-path\u003e \u003cquery\u003e --expand graph` | Include outgoing-link and backlink neighbor chunks. |\n| `openknowledge search \u003cname-or-path\u003e \u003cquery\u003e --format json` | Print structured search results. |\n| `openknowledge ast [path]` | Print parsed OKF AST JSON. |\n| `openknowledge ast --out \u003cfile\u003e [path]` | Write parsed OKF AST JSON to a file. |\n| `openknowledge registry connect \u003csource\u003e` | Connect a local path, registry key, manifest URL, tar archive URL, or Git URL. |\n| `openknowledge registry disconnect \u003ckey-or-path\u003e` | Remove a connection while keeping files. |\n| `openknowledge registry list` | List connected knowledge base paths. |\n| `openknowledge registry where \u003cname-or-path\u003e` | Print the absolute path for a registry name or path. |\n| `openknowledge view [path]` | Start the registry or knowledge base Markdown viewer. |\n| `openknowledge view --name \u003calias-name\u003e [path]` | Start a direct viewer with a stable local alias path. |\n| `openknowledge to html --out \u003cfolder\u003e [path]` | Write a static viewer app bundle plus `llms.txt`, connect manifest, and tar archive. |\n| `openknowledge to html --plain --out \u003cfolder\u003e [path]` | Write unstyled semantic HTML files. |\n| `openknowledge to json [path]` | Print normalized bundle JSON. |\n| `openknowledge to json --out \u003cfile\u003e [path]` | Write normalized bundle JSON to a file. |\n| `openknowledge to tar --out \u003cfile\u003e [path]` | Write a portable bundle tar.gz archive. |\n| `openknowledge to graph [path]` | Print AST-backed source graph JSON. |\n| `openknowledge to graph --out \u003cfile\u003e [path]` | Write AST-backed source graph JSON to a file. |\n| `openknowledge to graph --type search [path]` | Print derivative search graph JSON with chunk nodes. |\n| `openknowledge spec latest` | Print the latest embedded OKF spec. |\n| `openknowledge spec 0.1` | Print a specific embedded spec version. |\n| `openknowledge validate [key-or-path]` | Validate a bundle against the latest spec. |\n| `openknowledge validate --format json [key-or-path]` | Print a machine-readable validation report. |\n| `openknowledge validate --rule \u003crule=off\\|warn\\|error\u003e [key-or-path]` | Override one validation rule severity for the run. |\n| `openknowledge list [key-or-path]` | Print a bundle tree with inline validation issues. |\n| `openknowledge list --depth \u003cn\u003e [key-or-path]` | Limit the displayed tree depth. |\n| `openknowledge list --json [key-or-path]` | Print machine-readable inventory output. |\n| `openknowledge version` | Print the CLI version. |\n\n## Validation\n\n`openknowledge validate` enforces the OKF v0.1 rules that matter for a\nportable bundle:\n\n- every non-reserved Markdown file has top-level YAML frontmatter\n- every concept frontmatter has a non-empty `type`\n- Markdown files are valid UTF-8 before parsing\n- YAML frontmatter parses cleanly; non-blocking formatting issues are warnings\n- Markdown bodies avoid malformed links, code spans, tables, and fences\n- `index.md` and `log.md` are reserved files, not concept documents\n- root `index.md` may declare `okf_version: \"0.1\"` and optional\n  `okf_bundle_*` metadata; unknown root frontmatter keys are tolerated\n- any `index.md` may declare `okf_publish: false` for public-view exclusion\n- `log.md` `##` headings use `YYYY-MM-DD`\n- local Markdown links resolve inside the bundle, reported as warnings\n- custom rule files under configured `[rules].paths` have canonical IDs,\n  summaries, and instruction bullets\n\nIt does not fail on optional fields, unknown concept types, unknown\nfrontmatter keys, broken local links, non-blocking Markdown syntax warnings, or\nmissing index files.\n\nFor CI and editor integrations, `openknowledge validate --format json` emits a\nmachine-readable report with summary counts, checks, active severity policy,\nand combined or separate issue arrays. Bundle-local `openknowledge.toml` can\nconfigure lint severities under `[validation.rules]`, and repeatable `--rule`\nflags can override them per run.\n\n## Development\n\n```sh\npnpm test:cli\npnpm build:cli\npnpm build:web\npnpm dev:web\n```\n\nThis repository keeps CLI documentation in the colocated [Wiki](Wiki/index.md).\nWhen a command, flag, exporter, validation rule, viewer behavior, setup flow,\nor release-facing package behavior changes, update the relevant wiki page and\nCLI changelog memory with the source-backed behavior.\n\n## License And Attribution\n\nOpen Knowledge is licensed under Apache-2.0.\n\nThe embedded OKF spec copy is Apache-2.0 material from\n`GoogleCloudPlatform/knowledge-catalog`. See `THIRD_PARTY_NOTICES.md` and\n`packages/cli/internal/okf/assets/specs/README.md` for attribution and license\nhandling.\n\n[knowledge-catalog]: https://github.com/GoogleCloudPlatform/knowledge-catalog\n[okf-spec]: https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenknowledge-sh%2Fopenknowledge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenknowledge-sh%2Fopenknowledge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenknowledge-sh%2Fopenknowledge/lists"}