Skip to content

ADR-014: Multi-Root Documentation Sources#290

Open
rehsack wants to merge 4 commits into
docToolchain:mainfrom
rehsack:feature/adr-014-multi-root-docs
Open

ADR-014: Multi-Root Documentation Sources#290
rehsack wants to merge 4 commits into
docToolchain:mainfrom
rehsack:feature/adr-014-multi-root-docs

Conversation

@rehsack
Copy link
Copy Markdown

@rehsack rehsack commented Mar 11, 2026

Summary

  • Adds ADR-014 (Proposed): Multi-root documentation support with workspace/reference access modes
  • Enables cross-project documentation contexts without duplicating content or risking unintended modifications
  • Motivated by real-world scenarios: industrial product portfolios, Yocto layer stacks, spec/template co-development

Key Decisions

  • Explicit key=value CLI format (--reference name=...,type=...,path=...) — cross-platform safe (Windows, System i/z, URIs)
  • Two access modes: workspace (read-write) and reference (read-only, stable by definition)
  • Namespace separation: each root gets a name, section paths are prefixed
  • Document roles: documentation (core content) and project-meta (README, LLM.md, etc.)
  • Template type as opaque metadata: dacli annotates (type=arc42), does not interpret
  • spec key: points LLM to framework guidance (path or MCP server ID) for unfamiliar templates
  • New tool get_namespaces: entry point for LLM orientation across roots

Discussion Points

This is a Proposed ADR — seeking feedback on the approach before implementation. Key areas:

  1. Is the key=value CLI format the right trade-off between explicitness and usability?
  2. Does the role classification (documentation vs. project-meta) cover real-world needs?
  3. Should .dacli.json per root be JSON or TOML? What fields?
  4. Integration path with ADR-007: Persistent SQLite Index for CLI Performance and Fuzzy Search #185 (SQLite Index) and RAG via sqlite-vec: Vector search for documentation Q&A #265 (RAG)

Test plan

  • Review ADR for completeness and consistency
  • Validate against additional real-world scenarios
  • Discuss integration with existing architecture (ADR-001, ADR-002, ADR-007)

🤖 Generated with Claude Code

rehsack and others added 4 commits April 25, 2026 15:38
Address pip-audit findings by updating vulnerable dependencies:
- authlib: 1.6.6 to 1.6.11+ (CVE-2026-28802, CVE-2026-27962, CVE-2026-28490, GHSA-jj8c-mmj3-mmgv)
- cryptography: 46.0.5 to 46.0.7+ (CVE-2026-34073, CVE-2026-39892)
- pygments: 2.19.2 to 2.20.0+ (CVE-2026-4539)
- pyjwt: 2.10.1 to 2.12.0+ (CVE-2026-32597)
- pytest: 9.0.2 to 9.0.3+ (CVE-2025-71176)
- python-dotenv: 1.2.1 to 1.2.2+ (CVE-2026-28684)
- python-multipart: 0.0.22 to 0.0.26+ (CVE-2026-40347)
- requests: 2.32.5 to 2.33.0+ (CVE-2026-25645)

Ignore CVEs with no fix available in pip-audit:
- CVE-2026-34444 (lupa): transitive from pydocket to fakeredis[lua]
- CVE-2026-3219 (pip): pip-audit own dependency

Mark authlib.jose deprecation test as xfail pending fastmcp update.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Jens Rehsack <sno@netbsd.org>
Introduces the architectural decision for multi-root support with
workspace (read-write) and reference (read-only) access modes.
Enables cross-project documentation contexts for product portfolios,
layer stacks, and co-development scenarios.

Key decisions: explicit key=value CLI parameters, namespace separation,
document role classification, template type as opaque metadata, and
spec key for framework guidance via path or MCP server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jens Rehsack <sno@netbsd.org>
Add Hypothesis (property-based testing) cache to `.gitignore` to
avoid accidently committing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jens Rehsack <sno@netbsd.org>
Enable dacli to index multiple documentation roots simultaneously
with workspace (read-write) and reference (read-only) access modes.
This eliminates re-explaining shared context every LLM session and
prevents accidental modification of upstream documentation.

Namespace-prefixed paths (namespace:file:section) keep cross-root
sections unambiguous while single-root mode stays fully backward
compatible — all 713 existing tests pass unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jens Rehsack <sno@netbsd.org>
@rehsack rehsack force-pushed the feature/adr-014-multi-root-docs branch from cd4f372 to 8359fbd Compare April 25, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant