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.
- docsgraph-0.1.0a4/.editorconfig +15 -0
- docsgraph-0.1.0a4/.github/FUNDING.yml +2 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/ISSUE_TEMPLATE/bug_report.yml +3 -3
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/ISSUE_TEMPLATE/config.yml +3 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/PULL_REQUEST_TEMPLATE.md +3 -3
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/workflows/ci.yml +5 -5
- docsgraph-0.1.0a4/.github/workflows/pages.yml +43 -0
- docsgraph-0.1.0a4/.github/workflows/prepare-release.yml +52 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/workflows/release.yml +13 -10
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/workflows/repo-regression.yml +2 -2
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/ARCHITECTURE.md +9 -9
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CHANGELOG.md +37 -9
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CONTRIBUTING.md +2 -2
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/PKG-INFO +21 -10
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/README.md +19 -8
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/ROADMAP.md +2 -1
- docsgraph-0.1.0a4/SUPPORT.md +50 -0
- docsgraph-0.1.0a4/docs/.nojekyll +1 -0
- docsgraph-0.1.0a4/docs/assets/docsgraph-hero.png +0 -0
- docsgraph-0.1.0a3/docs/assets/cairn-demo.svg → docsgraph-0.1.0a4/docs/assets/docsgraph-repo-demo.svg +7 -7
- docsgraph-0.1.0a4/docs/assets/wechat-reward.jpg +0 -0
- docsgraph-0.1.0a4/docs/index.html +778 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/release-checklist.md +40 -4
- docsgraph-0.1.0a3/docs/repo-lifecycle-canvas.html → docsgraph-0.1.0a4/docs/repo-docs-workflow-canvas.html +13 -13
- docsgraph-0.1.0a3/docs/canvas.html → docsgraph-0.1.0a4/docs/retrieval-architecture-canvas.html +3 -3
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/specs/mcp-tools.md +15 -11
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/examples/hero-demo.md +11 -11
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/pyproject.toml +2 -2
- docsgraph-0.1.0a4/scripts/prepare_release.py +199 -0
- docsgraph-0.1.0a4/skills/cairn-friendly-docs/SKILL.md +188 -0
- docsgraph-0.1.0a4/skills/cairn-friendly-docs/agents/openai.yaml +7 -0
- docsgraph-0.1.0a4/skills/cairn-friendly-docs/manifest.json +14 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/__init__.py +1 -1
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/cli/app.py +19 -7
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/mcp/schemas.py +23 -6
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/mcp/server.py +172 -5
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_cli.py +46 -7
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_mcp_server.py +106 -1
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.cairn/config.toml +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.env.example +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.github/dependabot.yml +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/.gitignore +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CLAUDE.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/CODE_OF_CONDUCT.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/LICENSE +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/PRODUCT.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/SECURITY.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/benchmarks/README.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/benchmarks/architecture.toml +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/decisions/0000-template.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/decisions/0001-foundation.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/golden-docs-standard.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/docs/inspector-principle.html +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/examples/real-llm-doubao.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/scripts/eval_repos.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/scripts/smoke_many_repos.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/scripts/verify_pypi_install.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/baseline.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/dataset.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/judge.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/metrics.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/report.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/bench/runner.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/cli/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/cli/config.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/core/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/core/errors.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/core/types.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/base.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/doubao.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/fake.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/embed/openai_compatible.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/engine/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/engine/indexer.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/engine/manifest.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/base.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/fake.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/entity/heuristic.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/entities.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/summaries.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/tree.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/vectors.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/index/xrefs.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/base.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/markdown.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/markitdown.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/ingest/pdf.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/inspection.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/mcp/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/providers.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/py.typed +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/repo.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/repo_search.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/base.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/cache.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/fake.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/openai_compatible.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/summarize/prompts.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/base.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/find_mentions.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/get_related.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/get_section.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/outline.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/read_range.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/search_keyword.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/tools/search_semantic.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/base.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/fake.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/src/cairn/xref/heuristic.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/conftest.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/empty.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/nested.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/no_headings.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/simple.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/fixtures/with_frontmatter.md +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/__init__.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/conftest.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_baseline.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_dataset.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_judge.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_metrics.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_bench_runner.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_cli_config.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_embed_doubao.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_embed_fake.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_embed_openai_compatible.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_engine_indexer.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_engine_manifest.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_entities_builder.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_entity_heuristic.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_markdown_parser.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_markitdown_parser.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_pdf_parser.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_repo.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_repo_eval_gates.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summaries_builder.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summaries_reader.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_cache.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_fake.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_openai_compatible.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_summarize_prompts.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_document_index.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_find_mentions.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_get_related.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_get_section.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_outline.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_read_range.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_search_keyword.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tool_search_semantic.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_tree_builder.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_types.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_vectors_builder.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_vectors_reader.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_xref_heuristic.py +0 -0
- {docsgraph-0.1.0a3 → docsgraph-0.1.0a4}/tests/unit/test_xrefs_builder.py +0 -0
|
@@ -12,8 +12,8 @@ body:
|
|
|
12
12
|
id: version
|
|
13
13
|
attributes:
|
|
14
14
|
label: Cairn version
|
|
15
|
-
description: Output of `
|
|
16
|
-
placeholder: "0.1.
|
|
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 `
|
|
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.
|
|
@@ -21,10 +21,10 @@ jobs:
|
|
|
21
21
|
python-version: ["3.11", "3.12", "3.13"]
|
|
22
22
|
|
|
23
23
|
steps:
|
|
24
|
-
- uses: actions/checkout@
|
|
24
|
+
- uses: actions/checkout@v7
|
|
25
25
|
|
|
26
26
|
- name: Set up Python ${{ matrix.python-version }}
|
|
27
|
-
uses: actions/setup-python@
|
|
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@
|
|
51
|
+
- uses: actions/checkout@v7
|
|
52
52
|
|
|
53
53
|
- name: Set up Python
|
|
54
|
-
uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
13
|
+
- uses: actions/checkout@v7
|
|
14
14
|
|
|
15
15
|
- name: Set up Python
|
|
16
|
-
uses: actions/setup-python@
|
|
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@
|
|
43
|
+
- uses: actions/checkout@v7
|
|
41
44
|
|
|
42
45
|
- name: Set up Python
|
|
43
|
-
uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
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@
|
|
91
|
+
- uses: actions/checkout@v7
|
|
89
92
|
|
|
90
93
|
- name: Set up Python
|
|
91
|
-
uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
125
|
+
uses: softprops/action-gh-release@v3
|
|
123
126
|
with:
|
|
124
127
|
files: dist/*
|
|
125
128
|
generate_release_notes: true
|
|
@@ -302,20 +302,20 @@ configured primary when omitted.
|
|
|
302
302
|
|
|
303
303
|
### Layer 5: Tooling (CLI / inspector / extensions)
|
|
304
304
|
|
|
305
|
-
CLI (`
|
|
305
|
+
CLI (`docsgraph`, typer-based; `cairn` remains a compatibility alias):
|
|
306
306
|
|
|
307
307
|
```
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
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
|
-
- `
|
|
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.** `
|
|
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.** `
|
|
26
|
-
`
|
|
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.** `
|
|
41
|
-
freshness; `
|
|
42
|
-
and Goose. `
|
|
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
|
|
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 (`
|
|
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 `
|
|
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.
|
|
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.
|
|
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
|
[](https://github.com/jokeuncle/cairn/actions/workflows/ci.yml)
|
|
262
262
|
[](LICENSE)
|
|
263
|
-
[](https://pypi.org/project/docsgraph/)
|
|
264
|
+
[](https://jokeuncle.github.io/cairn/)
|
|
264
265
|
[](https://www.python.org/)
|
|
265
266
|
[](https://modelcontextprotocol.io/)
|
|
266
267
|
|
|
267
|
-

|
|
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.
|
|
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
|
|
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"
|
|
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).
|
|
677
|
-
|
|
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
|
[](https://github.com/jokeuncle/cairn/actions/workflows/ci.yml)
|
|
8
8
|
[](LICENSE)
|
|
9
|
-
[](https://pypi.org/project/docsgraph/)
|
|
10
|
+
[](https://jokeuncle.github.io/cairn/)
|
|
10
11
|
[](https://www.python.org/)
|
|
11
12
|
[](https://modelcontextprotocol.io/)
|
|
12
13
|
|
|
13
|
-

|
|
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.
|
|
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
|
|
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"
|
|
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).
|
|
423
|
-
|
|
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
|
-
- ☐ `
|
|
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
|
+
|
|
Binary file
|