docs: comprehensive documentation for developers and AI agents#63
Merged
thorwhalen merged 1 commit intomasterfrom Mar 7, 2026
Merged
docs: comprehensive documentation for developers and AI agents#63thorwhalen merged 1 commit intomasterfrom
thorwhalen merged 1 commit intomasterfrom
Conversation
- misc/docs/general_design.md: language-agnostic design principles - misc/docs/python_design.md: Python architecture deep dive - misc/docs/issues_and_discussions.md: GitHub issues/discussions analysis - misc/docs/frontend_dol_ideas.md: zoddal TypeScript architecture design - llms.txt / llms-full.txt: LLM-consumable API reference (llmstxt.org spec) - CLAUDE.md: AI agent guide with key files, patterns, and docs index - .claude/rules/dol-conventions.md: coding conventions for AI agents - .claude/commands/: slash commands (new-store, explain-store, add-codec)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a comprehensive set of documentation files for the
dolpackage, targeting two audiences: developers exploring dol's design and AI coding agents working on or with dol.New Files
misc/docs/— Design & Analysis Documentsgeneral_design.mdpython_design.mdCollection → KvReader → KvPersister → Store),wrap_kvsfull parameter reference,store_decorator4-way usage,Codec/Sig/Pipepatterns, constructive critiqueissues_and_discussions.mdfrontend_dol_ideas.mdKvStore<K,V>interface,wrapKvs(),ValueCodec/KeyCodectypes, built-in adapters (in-memory, REST, IndexedDB), and bridge toDataProvidergenerate_llms_txt_instruction.mdllms.txt/llms-full.txtfilesRoot-Level Files
llms.txtllms-full.txtdol.base,dol.trans,dol.kv_codecs,dol.filesys,dol.caching,dol.paths,dol.sources,dol.signatures,dol.util) with signatures, docstrings, and runnable examplesCLAUDE.md.claude/— AI Agent Resources.claude/rules/dol-conventions.mdKvReader/KvPersisterbase classes,wrap_kvsbest practices,X_of_Ynaming, codec patterns, testing, no silent failures.claude/commands/new-store.md/new-storeslash command — guides agent to create a new store with backend, key/value transforms, docstring and doctest.claude/commands/explain-store.md/explain-storeslash command — traces MRO,wrap_kvslayers, and draws read/write pipeline.claude/commands/add-codec.md/add-codecslash command — implements aValueCodec/KeyCodecpair with composition exampleKey Background Findings
Architecture Agent Output
The background codebase exploration confirmed:
trans.pyis the largest/most complex module (~2100 lines) —wrap_kvsat line 1802 is the central functionDelegatedAttributedescriptor,redirect_getattr_to_getitem,lazyprop,double_up_as_factorydig.py(tracing/introspection) andappendable.pyare secondary but notable modules not yet prominent in public docsGitHub Issues Agent Output
Confirmed 10 architectural pain points, with specific issues:
wrap_kvsinconsistencies (due to incorrect signature-based conditioning) #9 —wrap_kvssignature-inspection magic causes silent failures (e.g.,bytes.decodeunbound fails,lambda x: x.decode()works)selfinsidewrap_kvs-decorated class methods is unwrapped, causing transform inconsistenciesStore.wrapbreaks the signature of subclasses. #6 —@Store.wrapbreaks subclass__init__signaturesconditional_data_transbetter, and generally; recursively applying wrappers #10 — Recursive wrapper application needed for nested storesKeyPathability to write when path doesn't already exist #16 —KeyPathneeds defaultdict-like auto-creation for nested writesupdateand synching #56 —store.update(src)is O(n) with no coordination between source/target for efficient syncTotal
~2,800 lines across 12 new files.