docsgraph 0.1.0a3__tar.gz → 0.1.0a4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. docsgraph-0.1.0a4/.editorconfig +15 -0
  2. docsgraph-0.1.0a4/.github/FUNDING.yml +2 -0
  3. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/ISSUE_TEMPLATE/bug_report.yml +3 -3
  4. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/ISSUE_TEMPLATE/config.yml +3 -0
  5. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/PULL_REQUEST_TEMPLATE.md +3 -3
  6. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/workflows/ci.yml +5 -5
  7. docsgraph-0.1.0a4/.github/workflows/pages.yml +43 -0
  8. docsgraph-0.1.0a4/.github/workflows/prepare-release.yml +52 -0
  9. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/workflows/release.yml +13 -10
  10. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/workflows/repo-regression.yml +2 -2
  11. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/ARCHITECTURE.md +9 -9
  12. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CHANGELOG.md +37 -9
  13. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CONTRIBUTING.md +2 -2
  14. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/PKG-INFO +21 -10
  15. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/README.md +19 -8
  16. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/ROADMAP.md +2 -1
  17. docsgraph-0.1.0a4/SUPPORT.md +50 -0
  18. docsgraph-0.1.0a4/docs/.nojekyll +1 -0
  19. docsgraph-0.1.0a4/docs/assets/docsgraph-hero.png +0 -0
  20. docsgraph-0.1.0a3/docs/assets/cairn-demo.svg → docsgraph-0.1.0a4/docs/assets/docsgraph-repo-demo.svg +7 -7
  21. docsgraph-0.1.0a4/docs/assets/wechat-reward.jpg +0 -0
  22. docsgraph-0.1.0a4/docs/index.html +778 -0
  23. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/release-checklist.md +40 -4
  24. docsgraph-0.1.0a3/docs/repo-lifecycle-canvas.html → docsgraph-0.1.0a4/docs/repo-docs-workflow-canvas.html +13 -13
  25. docsgraph-0.1.0a3/docs/canvas.html → docsgraph-0.1.0a4/docs/retrieval-architecture-canvas.html +3 -3
  26. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/specs/mcp-tools.md +15 -11
  27. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/examples/hero-demo.md +11 -11
  28. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/pyproject.toml +2 -2
  29. docsgraph-0.1.0a4/scripts/prepare_release.py +199 -0
  30. docsgraph-0.1.0a4/skills/cairn-friendly-docs/SKILL.md +188 -0
  31. docsgraph-0.1.0a4/skills/cairn-friendly-docs/agents/openai.yaml +7 -0
  32. docsgraph-0.1.0a4/skills/cairn-friendly-docs/manifest.json +14 -0
  33. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/__init__.py +1 -1
  34. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/cli/app.py +19 -7
  35. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/mcp/schemas.py +23 -6
  36. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/mcp/server.py +172 -5
  37. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_cli.py +46 -7
  38. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_mcp_server.py +106 -1
  39. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.cairn/config.toml +0 -0
  40. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.env.example +0 -0
  41. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  42. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/dependabot.yml +0 -0
  43. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.gitignore +0 -0
  44. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CLAUDE.md +0 -0
  45. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CODE_OF_CONDUCT.md +0 -0
  46. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/LICENSE +0 -0
  47. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/PRODUCT.md +0 -0
  48. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/SECURITY.md +0 -0
  49. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/benchmarks/README.md +0 -0
  50. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/benchmarks/architecture.toml +0 -0
  51. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/decisions/0000-template.md +0 -0
  52. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/decisions/0001-foundation.md +0 -0
  53. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/golden-docs-standard.md +0 -0
  54. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/inspector-principle.html +0 -0
  55. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/examples/real-llm-doubao.md +0 -0
  56. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/scripts/eval_repos.py +0 -0
  57. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/scripts/smoke_many_repos.py +0 -0
  58. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/scripts/verify_pypi_install.py +0 -0
  59. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/__init__.py +0 -0
  60. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/baseline.py +0 -0
  61. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/dataset.py +0 -0
  62. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/judge.py +0 -0
  63. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/metrics.py +0 -0
  64. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/report.py +0 -0
  65. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/runner.py +0 -0
  66. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/cli/__init__.py +0 -0
  67. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/cli/config.py +0 -0
  68. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/core/__init__.py +0 -0
  69. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/core/errors.py +0 -0
  70. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/core/types.py +0 -0
  71. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/__init__.py +0 -0
  72. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/base.py +0 -0
  73. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/doubao.py +0 -0
  74. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/fake.py +0 -0
  75. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/openai_compatible.py +0 -0
  76. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/engine/__init__.py +0 -0
  77. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/engine/indexer.py +0 -0
  78. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/engine/manifest.py +0 -0
  79. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/__init__.py +0 -0
  80. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/base.py +0 -0
  81. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/fake.py +0 -0
  82. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/heuristic.py +0 -0
  83. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/__init__.py +0 -0
  84. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/entities.py +0 -0
  85. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/summaries.py +0 -0
  86. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/tree.py +0 -0
  87. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/vectors.py +0 -0
  88. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/xrefs.py +0 -0
  89. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/__init__.py +0 -0
  90. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/base.py +0 -0
  91. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/markdown.py +0 -0
  92. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/markitdown.py +0 -0
  93. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/pdf.py +0 -0
  94. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/inspection.py +0 -0
  95. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/mcp/__init__.py +0 -0
  96. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/providers.py +0 -0
  97. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/py.typed +0 -0
  98. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/repo.py +0 -0
  99. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/repo_search.py +0 -0
  100. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/__init__.py +0 -0
  101. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/base.py +0 -0
  102. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/cache.py +0 -0
  103. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/fake.py +0 -0
  104. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/openai_compatible.py +0 -0
  105. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/prompts.py +0 -0
  106. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/__init__.py +0 -0
  107. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/base.py +0 -0
  108. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/find_mentions.py +0 -0
  109. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/get_related.py +0 -0
  110. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/get_section.py +0 -0
  111. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/outline.py +0 -0
  112. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/read_range.py +0 -0
  113. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/search_keyword.py +0 -0
  114. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/search_semantic.py +0 -0
  115. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/__init__.py +0 -0
  116. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/base.py +0 -0
  117. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/fake.py +0 -0
  118. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/heuristic.py +0 -0
  119. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/__init__.py +0 -0
  120. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/conftest.py +0 -0
  121. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/empty.md +0 -0
  122. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/nested.md +0 -0
  123. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/no_headings.md +0 -0
  124. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/simple.md +0 -0
  125. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/with_frontmatter.md +0 -0
  126. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/__init__.py +0 -0
  127. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/conftest.py +0 -0
  128. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_baseline.py +0 -0
  129. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_dataset.py +0 -0
  130. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_judge.py +0 -0
  131. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_metrics.py +0 -0
  132. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_runner.py +0 -0
  133. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_cli_config.py +0 -0
  134. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_embed_doubao.py +0 -0
  135. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_embed_fake.py +0 -0
  136. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_embed_openai_compatible.py +0 -0
  137. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_engine_indexer.py +0 -0
  138. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_engine_manifest.py +0 -0
  139. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_entities_builder.py +0 -0
  140. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_entity_heuristic.py +0 -0
  141. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_markdown_parser.py +0 -0
  142. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_markitdown_parser.py +0 -0
  143. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_pdf_parser.py +0 -0
  144. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_repo.py +0 -0
  145. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_repo_eval_gates.py +0 -0
  146. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summaries_builder.py +0 -0
  147. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summaries_reader.py +0 -0
  148. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_cache.py +0 -0
  149. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_fake.py +0 -0
  150. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_openai_compatible.py +0 -0
  151. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_prompts.py +0 -0
  152. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_document_index.py +0 -0
  153. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_find_mentions.py +0 -0
  154. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_get_related.py +0 -0
  155. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_get_section.py +0 -0
  156. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_outline.py +0 -0
  157. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_read_range.py +0 -0
  158. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_search_keyword.py +0 -0
  159. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_search_semantic.py +0 -0
  160. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tree_builder.py +0 -0
  161. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_types.py +0 -0
  162. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_vectors_builder.py +0 -0
  163. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_vectors_reader.py +0 -0
  164. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_xref_heuristic.py +0 -0
  165. {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_xrefs_builder.py +0 -0
@@ -0,0 +1,15 @@
1
+ root = true
2
+
3
+ [*]
4
+ charset = utf-8
5
+ end_of_line = lf
6
+ insert_final_newline = true
7
+ trim_trailing_whitespace = true
8
+ indent_style = space
9
+ indent_size = 2
10
+
11
+ [*.py]
12
+ indent_size = 4
13
+
14
+ [Makefile]
15
+ indent_style = tab
@@ -0,0 +1,2 @@
1
+ custom:
2
+ - https://jokeuncle.github.io/cairn/#support
@@ -12,8 +12,8 @@ body:
12
12
  id: version
13
13
  attributes:
14
14
  label: Cairn version
15
- description: Output of `cairn version` (or your installed package version).
16
- placeholder: "0.1.0a1"
15
+ description: Output of `docsgraph version` (or your installed package version).
16
+ placeholder: "0.1.0a3"
17
17
  validations:
18
18
  required: true
19
19
 
@@ -53,7 +53,7 @@ body:
53
53
  id: actual
54
54
  attributes:
55
55
  label: Actual behavior
56
- description: Include any error output. If `cairn serve` is involved, the JSON-line log is very helpful.
56
+ description: Include any error output. If `docsgraph serve` is involved, the JSON-line log is very helpful.
57
57
  render: shell
58
58
  validations:
59
59
  required: true
@@ -1,5 +1,8 @@
1
1
  blank_issues_enabled: false
2
2
  contact_links:
3
+ - name: Usage questions and support
4
+ url: https://github.com/jokeuncle/cairn/blob/main/SUPPORT.md
5
+ about: Read the support policy before opening a usage question.
3
6
  - name: Security disclosure
4
7
  url: https://github.com/jokeuncle/cairn/blob/main/SECURITY.md
5
8
  about: Report a security issue privately — please do not open a public issue.
@@ -31,9 +31,9 @@
31
31
  -->
32
32
 
33
33
  ```
34
- ruff check src tests
35
- mypy src/cairn
36
- pytest tests/unit -q
34
+ ruff check .
35
+ mypy src tests
36
+ pytest
37
37
  ```
38
38
 
39
39
  - [ ] Unit tests added / updated
@@ -21,10 +21,10 @@ jobs:
21
21
  python-version: ["3.11", "3.12", "3.13"]
22
22
 
23
23
  steps:
24
- - uses: actions/checkout@v4
24
+ - uses: actions/checkout@v7
25
25
 
26
26
  - name: Set up Python ${{ matrix.python-version }}
27
- uses: actions/setup-python@v5
27
+ uses: actions/setup-python@v6
28
28
  with:
29
29
  python-version: ${{ matrix.python-version }}
30
30
  cache: pip
@@ -48,10 +48,10 @@ jobs:
48
48
  runs-on: ubuntu-latest
49
49
  needs: lint-types-tests
50
50
  steps:
51
- - uses: actions/checkout@v4
51
+ - uses: actions/checkout@v7
52
52
 
53
53
  - name: Set up Python
54
- uses: actions/setup-python@v5
54
+ uses: actions/setup-python@v6
55
55
  with:
56
56
  python-version: "3.12"
57
57
 
@@ -65,7 +65,7 @@ jobs:
65
65
  run: python -m twine check dist/*
66
66
 
67
67
  - name: Upload artifacts
68
- uses: actions/upload-artifact@v4
68
+ uses: actions/upload-artifact@v7
69
69
  with:
70
70
  name: cairn-dist
71
71
  path: dist/*
@@ -0,0 +1,43 @@
1
+ name: Pages
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ workflow_run:
7
+ workflows: ["Release"]
8
+ types: [completed]
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: read
13
+ pages: write
14
+ id-token: write
15
+
16
+ concurrency:
17
+ group: pages-${{ github.ref }}
18
+ cancel-in-progress: true
19
+
20
+ jobs:
21
+ deploy:
22
+ name: Deploy static site
23
+ runs-on: ubuntu-latest
24
+ if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success'
25
+ environment:
26
+ name: github-pages
27
+ url: ${{ steps.deployment.outputs.page_url }}
28
+ steps:
29
+ - uses: actions/checkout@v7
30
+ with:
31
+ ref: main
32
+
33
+ - name: Configure Pages
34
+ uses: actions/configure-pages@v6
35
+
36
+ - name: Upload Pages artifact
37
+ uses: actions/upload-pages-artifact@v5
38
+ with:
39
+ path: docs
40
+
41
+ - name: Deploy to GitHub Pages
42
+ id: deployment
43
+ uses: actions/deploy-pages@v5
@@ -0,0 +1,52 @@
1
+ name: Prepare release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: "Version without leading v, e.g. 0.1.0a4"
8
+ required: true
9
+ type: string
10
+ date:
11
+ description: "Release date in YYYY-MM-DD format. Defaults to the runner UTC date."
12
+ required: false
13
+ type: string
14
+
15
+ permissions:
16
+ contents: write
17
+
18
+ jobs:
19
+ prepare:
20
+ name: Update release metadata
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - uses: actions/checkout@v7
24
+ with:
25
+ ref: main
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v6
29
+ with:
30
+ python-version: "3.13"
31
+
32
+ - name: Prepare changelog and version metadata
33
+ run: |
34
+ args=("${{ inputs.version }}")
35
+ if [ -n "${{ inputs.date }}" ]; then
36
+ args+=("--date" "${{ inputs.date }}")
37
+ fi
38
+ python scripts/prepare_release.py "${args[@]}"
39
+ python scripts/prepare_release.py "${{ inputs.version }}" --check
40
+ git diff --check
41
+
42
+ - name: Commit release metadata
43
+ run: |
44
+ if git diff --quiet; then
45
+ echo "No release metadata changes to commit."
46
+ exit 0
47
+ fi
48
+ git config user.name "github-actions[bot]"
49
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
50
+ git add pyproject.toml src/cairn/__init__.py README.md CHANGELOG.md docs/release-checklist.md docs/retrieval-architecture-canvas.html
51
+ git commit -m "Prepare release ${{ inputs.version }}"
52
+ git push origin HEAD:main
@@ -10,10 +10,10 @@ jobs:
10
10
  name: lint + types + tests
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v4
13
+ - uses: actions/checkout@v7
14
14
 
15
15
  - name: Set up Python
16
- uses: actions/setup-python@v5
16
+ uses: actions/setup-python@v6
17
17
  with:
18
18
  python-version: "3.13"
19
19
  cache: pip
@@ -23,6 +23,9 @@ jobs:
23
23
  python -m pip install --upgrade pip
24
24
  python -m pip install -e ".[dev]"
25
25
 
26
+ - name: Validate release metadata
27
+ run: python scripts/prepare_release.py "${GITHUB_REF_NAME#v}" --check
28
+
26
29
  - name: ruff
27
30
  run: ruff check .
28
31
 
@@ -37,10 +40,10 @@ jobs:
37
40
  runs-on: ubuntu-latest
38
41
  needs: verify
39
42
  steps:
40
- - uses: actions/checkout@v4
43
+ - uses: actions/checkout@v7
41
44
 
42
45
  - name: Set up Python
43
- uses: actions/setup-python@v5
46
+ uses: actions/setup-python@v6
44
47
  with:
45
48
  python-version: "3.12"
46
49
 
@@ -54,7 +57,7 @@ jobs:
54
57
  run: python -m twine check dist/*
55
58
 
56
59
  - name: Upload artifacts
57
- uses: actions/upload-artifact@v4
60
+ uses: actions/upload-artifact@v7
58
61
  with:
59
62
  name: dist
60
63
  path: dist/*
@@ -72,7 +75,7 @@ jobs:
72
75
  id-token: write
73
76
  steps:
74
77
  - name: Download artifacts
75
- uses: actions/download-artifact@v4
78
+ uses: actions/download-artifact@v8
76
79
  with:
77
80
  name: dist
78
81
  path: dist
@@ -85,10 +88,10 @@ jobs:
85
88
  runs-on: ubuntu-latest
86
89
  needs: publish-pypi
87
90
  steps:
88
- - uses: actions/checkout@v4
91
+ - uses: actions/checkout@v7
89
92
 
90
93
  - name: Set up Python
91
- uses: actions/setup-python@v5
94
+ uses: actions/setup-python@v6
92
95
  with:
93
96
  python-version: "3.12"
94
97
  cache: pip
@@ -113,13 +116,13 @@ jobs:
113
116
  contents: write
114
117
  steps:
115
118
  - name: Download artifacts
116
- uses: actions/download-artifact@v4
119
+ uses: actions/download-artifact@v8
117
120
  with:
118
121
  name: dist
119
122
  path: dist
120
123
 
121
124
  - name: Create GitHub release
122
- uses: softprops/action-gh-release@v2
125
+ uses: softprops/action-gh-release@v3
123
126
  with:
124
127
  files: dist/*
125
128
  generate_release_notes: true
@@ -16,10 +16,10 @@ jobs:
16
16
  timeout-minutes: 60
17
17
 
18
18
  steps:
19
- - uses: actions/checkout@v4
19
+ - uses: actions/checkout@v7
20
20
 
21
21
  - name: Set up Python
22
- uses: actions/setup-python@v5
22
+ uses: actions/setup-python@v6
23
23
  with:
24
24
  python-version: "3.12"
25
25
  cache: pip
@@ -302,20 +302,20 @@ configured primary when omitted.
302
302
 
303
303
  ### Layer 5: Tooling (CLI / inspector / extensions)
304
304
 
305
- CLI (`cairn`, typer-based):
305
+ CLI (`docsgraph`, typer-based; `cairn` remains a compatibility alias):
306
306
 
307
307
  ```
308
- cairn init # scaffold a .cairn/ in cwd
309
- cairn index <path> # index a document
310
- cairn serve [--http] # start MCP server
311
- cairn inspect <doc-id> # print index stats
312
- cairn outline <doc-id> # print tree
313
- cairn query <doc-id> ... # exercise tools from terminal
314
- cairn migrate # bump index format versions
308
+ docsgraph init # scaffold a .cairn/ in cwd
309
+ docsgraph index <path> # index a document
310
+ docsgraph serve [--http] # start MCP server
311
+ docsgraph inspect <doc-id> # print index stats
312
+ docsgraph outline <doc-id> # print tree
313
+ docsgraph query <doc-id> ... # exercise tools from terminal
314
+ docsgraph migrate # bump index format versions
315
315
  ```
316
316
 
317
317
  Future (v0.3+):
318
- - `cairn web` — local inspector UI (read-only).
318
+ - `docsgraph web` — local inspector UI (read-only).
319
319
  - VSCode extension surfacing the same inspector.
320
320
 
321
321
  ---
@@ -6,12 +6,39 @@ All notable changes to Cairn. Format follows
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ No unreleased changes yet.
10
+
11
+ ## [0.1.0a4] — 2026-06-23
12
+
13
+ ### Added
14
+
15
+ - Product website under `docs/index.html`, deployed to GitHub Pages on `main`
16
+ pushes and after successful release workflows.
17
+
18
+ ### Changed
19
+
20
+ - Repo-scoped MCP config now defaults to dynamic workspace resolution
21
+ (`args = ["serve"]`) instead of pinning the repo where `docsgraph install` ran.
22
+ Use `--repo` for a fixed-repo server, or per-call `projectPath` for explicit
23
+ cross-repo queries.
24
+ - PyPI project metadata and README now point the project homepage to the
25
+ GitHub Pages site.
26
+ - GitHub Actions workflows now use current major versions to avoid deprecated
27
+ Node runtime warnings.
28
+ - First-run website and contributor docs now prefer the `docsgraph` command and
29
+ deterministic `--fake` smoke-test path.
30
+ - Added support and editor-configuration metadata for contributor onboarding.
31
+ - Added a GitHub Sponsor entry plus website and support-page links for optional
32
+ project sponsorship.
33
+
34
+ ## [0.1.0a3] — 2026-06-22
35
+
9
36
  ### Added
10
37
 
11
38
  - **Doubao multimodal embeddings.** `CAIRN_EMBED_PROVIDER=doubao-vision`
12
39
  targets Volcengine ARK's `/embeddings/multimodal` shape and defaults to
13
40
  `doubao-embedding-vision-251215` with 2048-dimensional vectors.
14
- - **Static graph inspector.** `cairn inspect <doc-dir> --out inspector.html`
41
+ - **Static graph inspector.** `docsgraph inspect <doc-dir> --out inspector.html`
15
42
  writes a standalone HTML relationship explorer for sections, entities,
16
43
  tree edges, mentions, and cross-references.
17
44
  - **Semantic hit evidence.** `search_semantic` now returns an explanatory
@@ -22,8 +49,9 @@ All notable changes to Cairn. Format follows
22
49
  - **Benchmark/index progress output.** CLI indexing and benchmark runs now
23
50
  emit stage progress so hosted-model runs do not sit silently during long
24
51
  summary-generation phases.
25
- - **Repository documentation workflow.** `cairn init -y`, `cairn sync`,
26
- `cairn status`, repo-scoped `cairn serve`, and repo-scoped `cairn inspect`
52
+ - **Repository documentation workflow.** `docsgraph init -y`, `docsgraph sync`,
53
+ `docsgraph status`, repo-scoped `docsgraph serve`, and repo-scoped
54
+ `docsgraph inspect`
27
55
  turn a project directory into a multi-document MCP knowledge layer. Repo MCP
28
56
  adds `list_documents`, cross-document `search_documents`, `repo_context`,
29
57
  `repo_graph`, `repo_impact`, and routes normal tools by optional `doc`.
@@ -37,10 +65,10 @@ All notable changes to Cairn. Format follows
37
65
  `node_modules/**`, `dist/**`, and `.pytest_cache/**` now apply at any depth,
38
66
  so broad include globs do not accidentally index frontend dependencies,
39
67
  caches, or generated build output.
40
- - **Open-source DX commands.** `cairn doctor` validates repo setup and index
41
- freshness; `cairn mcp config` prints MCP snippets for Claude, Cursor, Codex,
42
- and Goose. `cairn serve --repo <path>` makes generated configs independent
43
- from the client's working directory.
68
+ - **Open-source DX commands.** `docsgraph doctor` validates repo setup and index
69
+ freshness; `docsgraph mcp config` prints MCP snippets for Claude, Cursor,
70
+ Codex, and Goose. `docsgraph serve --repo <path>` makes generated configs
71
+ independent from the client's working directory.
44
72
  - **Agent self-install command.** `docsgraph install` writes the Cairn MCP
45
73
  server config for Codex, Claude, Cursor, or Goose, while
46
74
  `docsgraph install --dry-run` prints the target path and config without
@@ -215,8 +243,8 @@ naive vector-RAG baseline.
215
243
  - `PRODUCT.md`, `ARCHITECTURE.md`, `CLAUDE.md`, `ROADMAP.md`,
216
244
  `CONTRIBUTING.md`, `LICENSE` (Apache-2.0).
217
245
  - `docs/specs/mcp-tools.md`: authoritative tool schemas.
218
- - `docs/canvas.html`: single-file visual explainer comparing Naive RAG,
219
- RAPTOR, BookRAG, A-RAG, and Cairn.
246
+ - `docs/retrieval-architecture-canvas.html`: single-file visual explainer
247
+ comparing Naive RAG, RAPTOR, BookRAG, A-RAG, and Cairn.
220
248
  - `docs/decisions/0001-foundation.md`: founding ADR.
221
249
  - `examples/hero-demo.md`: self-referential reproducible demo (Cairn
222
250
  navigates its own architecture document).
@@ -139,10 +139,10 @@ A good test:
139
139
 
140
140
  Please file an issue with:
141
141
 
142
- - Cairn version (`cairn --version`) and Python version.
142
+ - Cairn version (`docsgraph version`) and Python version.
143
143
  - A minimal reproducer (ideally a small document and a command).
144
144
  - Expected vs. actual behavior.
145
- - Any error log lines (JSON-lines from `cairn serve` are very helpful).
145
+ - Any error log lines (JSON-lines from `docsgraph serve` are very helpful).
146
146
 
147
147
  ---
148
148
 
@@ -1,8 +1,8 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docsgraph
3
- Version: 0.1.0a3
3
+ Version: 0.1.0a4
4
4
  Summary: Local-first documentation graph for AI agents. CodeGraph for docs, exposed through MCP.
5
- Project-URL: Homepage, https://github.com/jokeuncle/cairn
5
+ Project-URL: Homepage, https://jokeuncle.github.io/cairn/
6
6
  Project-URL: Documentation, https://github.com/jokeuncle/cairn/tree/main/docs
7
7
  Project-URL: Repository, https://github.com/jokeuncle/cairn
8
8
  Project-URL: Issues, https://github.com/jokeuncle/cairn/issues
@@ -260,11 +260,12 @@ Description-Content-Type: text/markdown
260
260
 
261
261
  [![CI](https://github.com/jokeuncle/cairn/actions/workflows/ci.yml/badge.svg)](https://github.com/jokeuncle/cairn/actions/workflows/ci.yml)
262
262
  [![License](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE)
263
- [![Version](https://img.shields.io/badge/version-0.1.0a3-blue.svg)](CHANGELOG.md)
263
+ [![PyPI](https://img.shields.io/pypi/v/docsgraph?include_prereleases&label=PyPI)](https://pypi.org/project/docsgraph/)
264
+ [![Website](https://img.shields.io/badge/website-cairn-48c7ba.svg)](https://jokeuncle.github.io/cairn/)
264
265
  [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/)
265
266
  [![MCP](https://img.shields.io/badge/MCP-native-7c3aed.svg)](https://modelcontextprotocol.io/)
266
267
 
267
- ![Cairn demo: repository documentation graph and MCP tools](docs/assets/cairn-demo.svg)
268
+ ![Cairn demo: repository documentation graph and MCP tools](docs/assets/docsgraph-repo-demo.svg)
268
269
 
269
270
  Cairn is a **local-first, MCP-native DocsGraph** for software
270
271
  repositories and large structured documents. It turns README files, specs,
@@ -282,9 +283,9 @@ The result: better retrieval accuracy, lower token spend, and a practical MCP
282
283
  tool layer between your project documentation and every AI coding agent you
283
284
  use. Local-first. Vendor-neutral. Designed for open-source repos.
284
285
 
285
- > 🚀 **Alpha — `0.1.0a3`.** Markdown + PDF ingest, all eight MCP tools,
286
+ > 🚀 **Alpha — `0.1.0a4`.** Markdown + PDF ingest, the core MCP tool set,
286
287
  > the full structure-aware index (tree + summaries + entities + xrefs +
287
- > vectors), repo-level `init/sync/status`, repo-scoped MCP with
288
+ > vectors), repo-level `init/sync/status`, repo-scoped MCP tools with
288
289
  > `list_documents`, `search_documents`, `repo_context`, `repo_graph`, and
289
290
  > `repo_impact`, failure-isolated sync, static graph inspector, Doubao
290
291
  > multimodal embeddings, and a benchmark harness with headline numbers. See
@@ -308,6 +309,7 @@ For the in-depth motivation, see [`PRODUCT.md`](PRODUCT.md).
308
309
  For the technical design, see [`ARCHITECTURE.md`](ARCHITECTURE.md).
309
310
  For the public documentation quality contract Cairn optimizes for, see
310
311
  [`docs/golden-docs-standard.md`](docs/golden-docs-standard.md).
312
+ The product website is published at <https://jokeuncle.github.io/cairn/>.
311
313
 
312
314
  ---
313
315
 
@@ -329,7 +331,11 @@ For the public documentation quality contract Cairn optimizes for, see
329
331
  result carries stable anchors for verification.
330
332
 
331
333
  A visual explainer comparing Cairn's approach to RAPTOR, BookRAG, and A-RAG
332
- lives at [`docs/canvas.html`](docs/canvas.html). Open it in any browser.
334
+ lives at
335
+ [`docs/retrieval-architecture-canvas.html`](docs/retrieval-architecture-canvas.html).
336
+ The repository workflow map lives at
337
+ [`docs/repo-docs-workflow-canvas.html`](docs/repo-docs-workflow-canvas.html).
338
+ Open either file in any browser.
333
339
 
334
340
  ---
335
341
 
@@ -366,7 +372,10 @@ uvx docsgraph install --client codex --yes --fake
366
372
  Use `--client claude`, `--client cursor`, or `--client goose` for other MCP
367
373
  clients. `docsgraph install` writes the same server config that
368
374
  `docsgraph mcp config` prints, with `command = "docsgraph"` and
369
- `args = ["serve", "--repo", "..."]`.
375
+ `args = ["serve"]`. The server resolves the current MCP workspace at call time,
376
+ so a global agent config does not stay pinned to the repo where it was installed.
377
+ Pass `--repo /path/to/repo` to `docsgraph install` or `docsgraph mcp config`
378
+ only when you intentionally want a fixed-repo MCP server.
370
379
 
371
380
  ### Repository Workflow
372
381
 
@@ -673,11 +682,13 @@ choices we adopted, modified, or declined.
673
682
  | 4 — v0.4 polish for production | ☐ | DOCX/RTF/EPUB, VSCode extension, security review |
674
683
  | v1.0 GA | ☐ | All `PRODUCT.md` §7 success criteria met |
675
684
 
676
- Full plan: [`ROADMAP.md`](ROADMAP.md). Current test suite: **440 passing**,
677
- mypy strict clean, ruff clean.
685
+ Full plan: [`ROADMAP.md`](ROADMAP.md). CI runs ruff, strict mypy, pytest, and
686
+ package build checks across Python 3.11, 3.12, and 3.13.
678
687
 
679
688
  Maintainer release gate: [`docs/release-checklist.md`](docs/release-checklist.md).
680
689
 
690
+ Support and sponsorship options live in [`SUPPORT.md`](SUPPORT.md).
691
+
681
692
  ---
682
693
 
683
694
  ## Contributing
@@ -6,11 +6,12 @@
6
6
 
7
7
  [![CI](https://github.com/jokeuncle/cairn/actions/workflows/ci.yml/badge.svg)](https://github.com/jokeuncle/cairn/actions/workflows/ci.yml)
8
8
  [![License](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](LICENSE)
9
- [![Version](https://img.shields.io/badge/version-0.1.0a3-blue.svg)](CHANGELOG.md)
9
+ [![PyPI](https://img.shields.io/pypi/v/docsgraph?include_prereleases&label=PyPI)](https://pypi.org/project/docsgraph/)
10
+ [![Website](https://img.shields.io/badge/website-cairn-48c7ba.svg)](https://jokeuncle.github.io/cairn/)
10
11
  [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/)
11
12
  [![MCP](https://img.shields.io/badge/MCP-native-7c3aed.svg)](https://modelcontextprotocol.io/)
12
13
 
13
- ![Cairn demo: repository documentation graph and MCP tools](docs/assets/cairn-demo.svg)
14
+ ![Cairn demo: repository documentation graph and MCP tools](docs/assets/docsgraph-repo-demo.svg)
14
15
 
15
16
  Cairn is a **local-first, MCP-native DocsGraph** for software
16
17
  repositories and large structured documents. It turns README files, specs,
@@ -28,9 +29,9 @@ The result: better retrieval accuracy, lower token spend, and a practical MCP
28
29
  tool layer between your project documentation and every AI coding agent you
29
30
  use. Local-first. Vendor-neutral. Designed for open-source repos.
30
31
 
31
- > 🚀 **Alpha — `0.1.0a3`.** Markdown + PDF ingest, all eight MCP tools,
32
+ > 🚀 **Alpha — `0.1.0a4`.** Markdown + PDF ingest, the core MCP tool set,
32
33
  > the full structure-aware index (tree + summaries + entities + xrefs +
33
- > vectors), repo-level `init/sync/status`, repo-scoped MCP with
34
+ > vectors), repo-level `init/sync/status`, repo-scoped MCP tools with
34
35
  > `list_documents`, `search_documents`, `repo_context`, `repo_graph`, and
35
36
  > `repo_impact`, failure-isolated sync, static graph inspector, Doubao
36
37
  > multimodal embeddings, and a benchmark harness with headline numbers. See
@@ -54,6 +55,7 @@ For the in-depth motivation, see [`PRODUCT.md`](PRODUCT.md).
54
55
  For the technical design, see [`ARCHITECTURE.md`](ARCHITECTURE.md).
55
56
  For the public documentation quality contract Cairn optimizes for, see
56
57
  [`docs/golden-docs-standard.md`](docs/golden-docs-standard.md).
58
+ The product website is published at <https://jokeuncle.github.io/cairn/>.
57
59
 
58
60
  ---
59
61
 
@@ -75,7 +77,11 @@ For the public documentation quality contract Cairn optimizes for, see
75
77
  result carries stable anchors for verification.
76
78
 
77
79
  A visual explainer comparing Cairn's approach to RAPTOR, BookRAG, and A-RAG
78
- lives at [`docs/canvas.html`](docs/canvas.html). Open it in any browser.
80
+ lives at
81
+ [`docs/retrieval-architecture-canvas.html`](docs/retrieval-architecture-canvas.html).
82
+ The repository workflow map lives at
83
+ [`docs/repo-docs-workflow-canvas.html`](docs/repo-docs-workflow-canvas.html).
84
+ Open either file in any browser.
79
85
 
80
86
  ---
81
87
 
@@ -112,7 +118,10 @@ uvx docsgraph install --client codex --yes --fake
112
118
  Use `--client claude`, `--client cursor`, or `--client goose` for other MCP
113
119
  clients. `docsgraph install` writes the same server config that
114
120
  `docsgraph mcp config` prints, with `command = "docsgraph"` and
115
- `args = ["serve", "--repo", "..."]`.
121
+ `args = ["serve"]`. The server resolves the current MCP workspace at call time,
122
+ so a global agent config does not stay pinned to the repo where it was installed.
123
+ Pass `--repo /path/to/repo` to `docsgraph install` or `docsgraph mcp config`
124
+ only when you intentionally want a fixed-repo MCP server.
116
125
 
117
126
  ### Repository Workflow
118
127
 
@@ -419,11 +428,13 @@ choices we adopted, modified, or declined.
419
428
  | 4 — v0.4 polish for production | ☐ | DOCX/RTF/EPUB, VSCode extension, security review |
420
429
  | v1.0 GA | ☐ | All `PRODUCT.md` §7 success criteria met |
421
430
 
422
- Full plan: [`ROADMAP.md`](ROADMAP.md). Current test suite: **440 passing**,
423
- mypy strict clean, ruff clean.
431
+ Full plan: [`ROADMAP.md`](ROADMAP.md). CI runs ruff, strict mypy, pytest, and
432
+ package build checks across Python 3.11, 3.12, and 3.13.
424
433
 
425
434
  Maintainer release gate: [`docs/release-checklist.md`](docs/release-checklist.md).
426
435
 
436
+ Support and sponsorship options live in [`SUPPORT.md`](SUPPORT.md).
437
+
427
438
  ---
428
439
 
429
440
  ## Contributing
@@ -51,7 +51,8 @@ graph, no cross-refs yet.**
51
51
  - ☐ Single-document mode
52
52
  - ☐ JSON-lines audit log
53
53
  - **CLI**
54
- - ☐ `cairn init`, `cairn index`, `cairn serve`, `cairn outline`, `cairn query`
54
+ - ☐ `docsgraph init`, `docsgraph index`, `docsgraph serve`,
55
+ `docsgraph outline`, `docsgraph query`
55
56
  - **Plug-ins**
56
57
  - ☐ Default Summarizer: OpenAI-compatible HTTP (works with Ollama)
57
58
  - ☐ Default Embedder: `sentence-transformers/all-MiniLM-L6-v2`
@@ -0,0 +1,50 @@
1
+ # Support
2
+
3
+ Cairn is an alpha-stage open-source project published as the `docsgraph`
4
+ Python package.
5
+
6
+ ## Questions and Usage Help
7
+
8
+ Start with the public docs:
9
+
10
+ - Product website: https://jokeuncle.github.io/cairn/
11
+ - README quickstart: `README.md`
12
+ - Release checklist: `docs/release-checklist.md`
13
+ - MCP tool specification: `docs/specs/mcp-tools.md`
14
+
15
+ If the docs do not answer your question, open a GitHub discussion or issue with
16
+ the command you ran, the version from `docsgraph version`, and the relevant
17
+ repository or document shape.
18
+
19
+ ## Support Maintenance
20
+
21
+ Cairn is Apache-2.0 and free to use. If it saves you time, sponsorship is
22
+ welcome and helps fund maintenance, release automation, documentation, and
23
+ agent integrations.
24
+
25
+ Use the GitHub Sponsor button when available, or scan the WeChat reward code:
26
+
27
+ <p>
28
+ <img src="docs/assets/wechat-reward.jpg" alt="WeChat reward code for supporting Cairn maintenance" width="260">
29
+ </p>
30
+
31
+ ## Bugs
32
+
33
+ Use the bug report issue template. A useful report includes:
34
+
35
+ - `docsgraph version`
36
+ - Python version and operating system
37
+ - the smallest document or repository setup that reproduces the issue
38
+ - the exact command and output
39
+
40
+ ## Security
41
+
42
+ Do not open public issues for vulnerabilities. Follow `SECURITY.md` and use
43
+ GitHub private vulnerability reporting for this repository.
44
+
45
+ ## Scope
46
+
47
+ Maintainers prioritize issues that affect the documented CLI, MCP tools,
48
+ indexing behavior, packaging, and release workflow. Feature requests that change
49
+ product scope, MCP tool contracts, on-disk formats, or major dependencies should
50
+ include or link an ADR proposal.
@@ -0,0 +1 @@
1
+