{"id":51454345,"url":"https://github.com/rangzen/knowledge-project-skills","last_synced_at":"2026-07-05T23:30:36.704Z","repository":{"id":367132571,"uuid":"1276884602","full_name":"rangzen/knowledge-project-skills","owner":"rangzen","description":"Reusable AI agent skills for knowledge projects: ingest PDFs, wikis, and reports, extract structured entities, and build a navigable knowledge base your agents can query.","archived":false,"fork":false,"pushed_at":"2026-06-24T16:56:43.000Z","size":815,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-24T18:22:24.733Z","etag":null,"topics":["agent-skills","agentic-workflow","knowledge-management","obsidian"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rangzen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-22T11:35:42.000Z","updated_at":"2026-06-24T16:56:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rangzen/knowledge-project-skills","commit_stats":null,"previous_names":["rangzen/knowledge-project-skills"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/rangzen/knowledge-project-skills","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rangzen%2Fknowledge-project-skills","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rangzen%2Fknowledge-project-skills/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rangzen%2Fknowledge-project-skills/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rangzen%2Fknowledge-project-skills/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rangzen","download_url":"https://codeload.github.com/rangzen/knowledge-project-skills/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rangzen%2Fknowledge-project-skills/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35172975,"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-05T02:00:06.290Z","response_time":100,"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":["agent-skills","agentic-workflow","knowledge-management","obsidian"],"created_at":"2026-07-05T23:30:35.921Z","updated_at":"2026-07-05T23:30:36.689Z","avatar_url":"https://github.com/rangzen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Knowledge Project Skills\n\nA collection of reusable AI agent skills for **knowledge projects** - projects that\nstart with existing documentation and treat it as raw material. The goal is to\n**progressively extract, organize, and surface** the knowledge inside so agents and\nhumans can use it without reading everything.\n\nThe pipeline ingests sources, extracts entities, concepts, names, and facts using an\nLLM, then builds a navigable wiki you can query. The primary target is not code\ngeneration - it is structured knowledge: entities, facts, relationships, timelines,\nsummaries, and a navigable wiki built from what was already written.\n\nSome formats need preprocessing scripts to surface text and metadata a plain read\nwould miss (page boundaries, table structure, cell types). For those, skills ship\nPython scripts in their `scripts/` directory. Plain-text formats are read directly.\n\nSkills target Claude Code, Cursor, Codex, and compatible assistants.\n\n[AI Research OS](https://github.com/iusztinpaul/ai-research-os-workshop) uses very\nsimilar concepts, so names are intentionally chosen to be compatible with that\nproject's vocabulary. It predates this project, and several conventions here\n(the skills scripts structure, for example) are borrowed from it.\n\nExamples of knowledge projects:\n- A product team with scattered specs and ADRs who wants a queryable knowledge base\n- Competitive intelligence from earnings calls, filings, and analyst reports\n- Research synthesis across hundreds of papers\n- Domain glossary construction from technical documentation\n\n---\n\n## Agentic documentation enables progressive disclosure\n\nThe goal is **agentic documentation**: a file-based semantic layer structured\nfor agent consumption so that agents can navigate knowledge progressively —\nstarting from a small, stable entry point and going deeper on demand, without\nloading the full corpus into context.\n\nTraditional documentation is written for humans reading linearly. Agents work\ndifferently: they query non-linearly, compose answers from fragments across\nmany sources, and need unambiguous terminology to avoid hallucination. Prose\nthat works for humans is verbose, context-dependent, and unsearchable at the\nentity level.\n\nThe pipeline builds a four-tier semantic layer from your existing documentation:\n\n| Tier | Files | What it gives agents |\n|---|---|---|\n| **Entity index** | `staging/\u003cid\u003e.json` | Named entities with type, source, and context - per source |\n| **Resolved glossary** | `wiki/glossary.md` | Canonical terms, aliases, definitions, cross-references - across all sources |\n| **Navigable wiki** | `wiki/*.md` with `[[wikilinks]]` | Relationship graph between concepts, readable in Obsidian or VS Code |\n| **Agent index** | `wiki/index.yaml` | Typed, structured entry point - no Markdown parsing required |\n\nThis structure makes progressive disclosure possible:\n\n- `/kp-init` gives you the scaffold immediately.\n- `/kp-source` adds one source at a time.\n- `/kp-staging` produces useful output per source - no need to wait for the full corpus.\n- `/kp-wiki build` improves incrementally with each new extraction - glossary and pages regenerate together.\n- `/kp-query` works at any stage; each question is saved and feeds the next build.\n\nAn agent always starts from `wiki/index.yaml` - a typed, stable map - and follows\nlinks only as deep as the question requires. The semantic layer is what makes\nthat navigation precise instead of speculative.\n\n### AX (Agent Experience) properties\n\n- **Stable, typed entry point** - `wiki/index.yaml` requires no Markdown parsing; agents read structure, not prose.\n- **Alias resolution** - the glossary normalizes synonyms so agents do not treat \"ML model\", \"model\", and \"trained model\" as three different things.\n- **Source attribution** - every fact carries `source_ref`, so agents cite and verify rather than assert.\n- **Gap visibility** - each question records confidence and answer sources, giving `/kp-wiki build` a signal for where the layer is thin.\n\n---\n\n## Project layout (created by `init`)\n\n```\nproject-root/\n├── sources/              # Raw inputs: PDFs, URLs, database dumps, CSVs, etc.\n│   └── \u003csource-id\u003e/      # One subdirectory per source\n├── staging/              # Structured output, one JSON per source\n│   └── \u003csource-id\u003e.json  # Entities, summary, dates, key facts, schema, etc.\n├── wiki/                   # Knowledge base - generated and maintained by skills\n│   ├── index.yaml        # Agent entry point: typed links, KB metadata, search hints\n│   ├── index.md          # Human / Obsidian entry point: navigable starting page\n│   ├── glossary.md       # Resolved terminology, aliases, cross-references\n│   ├── queries/          # Compound query knowledge (feeds back into /kp-wiki build)\n│   │   └── YYYY-MM-DD-\u003cslug\u003e.md  # One file per question: answer + how it was generated\n│   └── \u003ctopic\u003e.md        # One page per entity or concept (wikilinks throughout)\n└── .knowledge-project    # Project config and schema version\n```\n\n---\n\n## Workflow\n\n```mermaid\nflowchart TD\n    A([\"/kp-init\"]) --\u003e B[\"sources/\"]\n    C([\"/kp-source add\"]) --\u003e B\n    B --\u003e D([\"/kp-staging\"])\n    D --\u003e E[\"staging/*.json\"]\n    E --\u003e F([\"/kp-wiki build\"])\n    G[\"wiki/queries/\"] --\u003e|compound knowledge| F\n    F --\u003e H[\"wiki/\"]\n    H --\u003e I([\"/kp-query\"])\n    I --\u003e G\n\n    classDef skill fill:#dbeafe,stroke:#2563eb,color:#1e3a8a\n    classDef artifact fill:#f0fdf4,stroke:#16a34a,color:#14532d\n    class A,C,D,F,I skill\n    class B,E,H,G artifact\n```\n\nSkills are shown in blue, file artifacts in green. The feedback loop from `/kp-query` back into `/kp-wiki build` is what makes the KB improve incrementally over time.\n\n---\n\n## Skills / Commands\n\n### `kp-init`\nScaffold a new knowledge project in the current directory.\n\nCreates the directory structure above, writes `.knowledge-project` with project metadata, and generates stub files so the pipeline has a known shape from the start.\n\n```\n/kp-init\n```\n\n---\n\n### `kp-source`\nManage sources: add new ones, check for updates, track provenance.\n\nOperations:\n- Add a PDF, URL, database connection, or CSV as a new source\n- Check whether a previously seen source has changed\n- Record ingestion metadata (ingested-at, hash, origin URL, page count, etc.)\n- List all sources and their ingestion status\n\n```\n/kp-source add \u003cpath-or-url\u003e\n/kp-source status\n/kp-source check-updates\n```\n\n---\n\n### `kp-staging`\nRun LLM-based or rule-based extractors over ingested sources and write structured output to `staging/`.\n\nEach extraction produces a JSON file containing:\n- `entities` - people, organizations, places, products, concepts\n- `summary` - short and long-form summaries\n- `key_facts` - discrete, citable claims\n- `dates` - timeline events with ISO dates\n- `schema` (for structured sources) - table names, column types, relationships\n- `images` (for PDFs) - extracted figures with captions\n- `source_ref` - back-pointer to the originating source\n\n```\n/kp-staging \u003csource-id\u003e\n/kp-staging --all\n/kp-staging --model claude-opus-4-8\n```\n\n---\n\n### `kp-query`\nAsk a question against the knowledge base. The question, answer, and a record of\nhow the answer was generated (which KB pages, extractions, or raw sources were\nused, and with what confidence) are saved to `wiki/queries/` as a dated Markdown file.\n\nEach question file becomes part of the KB itself. On the next `/kp-wiki build` run,\nthe questions directory is read as an additional input: frequently asked topics\nbecome first-class KB pages, low-confidence answers flag gaps for the next\n`/kp-staging` pass, and the answer-source trail informs how entities are linked.\nThis is **compound knowledge** - the KB gets better at answering related questions\nover time without re-reading every source.\n\n```\n/kp-query \"What are the main claims about X?\"\n/kp-query --gaps              # List low-confidence questions from wiki/queries/\n/kp-query --related \"X\"       # Show past questions related to a topic\n```\n\n---\n\n### 'wiki'\nBuild or update the knowledge base under `wiki/` from extracted content.\n\nInternally runs the full synthesis pipeline: resolves entity aliases, generates `wiki/glossary.md`, writes one Markdown page per entity, and produces both entry points (`wiki/index.md` for Obsidian, `wiki/index.yaml` for agents). Also reads `wiki/queries/` - frequently asked topics become first-class pages, low-confidence answers trigger extraction gap warnings.\n\n```\n/kp-wiki build\n/kp-wiki update\n/kp-wiki add-page \u003ctopic\u003e\n```\n\n---\n\n## Compatibility\n\nConcept names align with [ai-research-os-workshop](https://github.com/iusztinpaul/ai-research-os-workshop):\n\n| This project | ai-research-os-workshop |\n|---|---|\n| `sources/` | raw data / documents layer |\n| `staging/` | processed / structured layer |\n| `wiki/glossary.md` | ontology / vocabulary |\n| `wiki/` | knowledge base |\n| `wiki/queries/` | retrieval + feedback loop |\n\n---\n\n## Installation\n\nSkills follow the [Agent Skills](https://agentskills.io) open standard - each\nskill is a folder with a `SKILL.md` file, compatible with Claude Code, Cursor,\nCodex, Gemini CLI, and others.\n\n### Via skills.sh (recommended)\n\nInstall directly using the [skills.sh](https://skills.sh) CLI:\n\n```bash\nnpx skills add https://github.com/rangzen/knowledge-project-skills\n```\n\nTo update later:\n\n```bash\nnpx skills update\n```\n\n### Manual install\n\nClone the repo and copy the skill folders into your agent's skills directory:\n\n```bash\ngit clone https://github.com/\u003corg\u003e/knowledge-project-skills\n\n# Claude Code (global):\ncp -r knowledge-project-skills/skills/* ~/.claude/skills/\n\n# Claude Code (project-local):\ncp -r knowledge-project-skills/skills/* .claude/skills/\n\n# Cross-agent (.agents/skills/ convention):\ncp -r knowledge-project-skills/skills/* .agents/skills/\n\n# Other agents: see docs/references/agentskills-io.md for per-agent paths\n```\n\nSkills that include a `scripts/` directory require Python 3.11+. Dependencies\nare listed in each skill's `scripts/requirements.txt`.\n\n---\n\n## Status\n\nEarly development. Contributions and issue reports welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frangzen%2Fknowledge-project-skills","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frangzen%2Fknowledge-project-skills","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frangzen%2Fknowledge-project-skills/lists"}