Module: Chiridion
- Defined in:
- lib/chiridion.rb,
lib/chiridion/config.rb,
lib/chiridion/engine.rb,
lib/chiridion/version.rb,
lib/chiridion/engine/writer.rb,
lib/chiridion/engine/renderer.rb,
lib/chiridion/semantic_engine.rb,
lib/chiridion/engine/extractor.rb,
lib/chiridion/engine/rbs_loader.rb,
lib/chiridion/engine/file_writer.rb,
lib/chiridion/engine/type_merger.rb,
lib/chiridion/engine/class_linker.rb,
lib/chiridion/engine/drift_checker.rb,
lib/chiridion/engine/file_renderer.rb,
lib/chiridion/engine/github_linker.rb,
lib/chiridion/engine/document_model.rb,
lib/chiridion/engine/post_processor.rb,
lib/chiridion/engine/inline_rbs_loader.rb,
lib/chiridion/engine/semantic_renderer.rb,
lib/chiridion/engine/template_renderer.rb,
lib/chiridion/engine/semantic_extractor.rb,
lib/chiridion/engine/frontmatter_builder.rb,
lib/chiridion/engine/spec_example_loader.rb,
lib/chiridion/engine/generated_rbs_loader.rb,
lib/chiridion/engine/rbs_type_alias_loader.rb
Overview
Chiridion: Agent-oriented documentation generator for Ruby projects.
Chiridion (“handbook” in Greek, from the same root as Enchiridion) generates documentation optimized for AI agents and LLMs working with Ruby codebases. It extracts documentation from YARD comments, merges RBS type signatures, and produces structured markdown suitable for context injection.
## Key Features
-
**YARD Integration**: Extracts docstrings, @param, @return, @example tags
-
**RBS Authority**: RBS type signatures are authoritative over YARD types
-
**Spec Examples**: Extracts usage examples from RSpec files
-
Wikilinks: Obsidian-compatible [[Class::Name]] cross-references
-
**Drift Detection**: CI mode to ensure docs stay in sync with code
## Design Philosophy
Traditional documentation is written for human developers reading in browsers. Agent-oriented documentation is optimized for LLMs processing in context windows:
-
Structured frontmatter with navigation metadata
-
Explicit type information (not just prose descriptions)
-
Cross-reference links that can be followed programmatically
-
Compact but complete method signatures
Defined Under Namespace
Classes: Config, DefaultLogger, Engine, Error, SemanticEngine
Constant Summary collapse
- VERSION =
"0.3.4"
Class Method Summary collapse
-
.check(paths = nil) ⇒ void
Convenience method to check for documentation drift.
-
.config ⇒ Config
Global configuration instance.
-
.configure {|Config| ... } ⇒ Config
Configure Chiridion with a block.
-
.refresh(paths = nil, output: nil) ⇒ void
Convenience method to run documentation refresh.
-
.reset_config! ⇒ Object
Reset configuration to defaults (useful for testing).
Class Method Details
.check(paths = nil) ⇒ void
This method returns an undefined value.
Convenience method to check for documentation drift.
92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/chiridion.rb', line 92 def check(paths = nil) engine = Engine.new( paths: paths || [config.source_path], output: config.output, namespace_filter: config.namespace_filter, include_specs: config.include_specs, verbose: config.verbose, logger: config.logger, inline_source_threshold: config.inline_source_threshold, output_mode: config.output_mode ) engine.check end |
.config ⇒ Config
Returns Global configuration instance.
54 |
# File 'lib/chiridion.rb', line 54 def config = @config ||= Config.new |
.configure {|Config| ... } ⇒ Config
Configure Chiridion with a block.
60 61 62 63 |
# File 'lib/chiridion.rb', line 60 def configure yield config config end |
.refresh(paths = nil, output: nil) ⇒ void
This method returns an undefined value.
Convenience method to run documentation refresh.
73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/chiridion.rb', line 73 def refresh(paths = nil, output: nil) engine = Engine.new( paths: paths || [config.source_path], output: output || config.output, namespace_filter: config.namespace_filter, include_specs: config.include_specs, verbose: config.verbose, logger: config.logger, inline_source_threshold: config.inline_source_threshold, output_mode: config.output_mode ) engine.refresh end |