Skip to content

Docstring coverage report — public surface

Auto-generated by scripts/audit_docstrings.py. Read alongside the gate's curated exemption list at docstring_gaps.toml.

Tier model from CONTRACT v1.0 #C2: 100% on the explicit public surface (symbols in __all__), 80% on the second ring (importable but not re-exported), no gate on internals.

Classification: full (≥3 lines OR has Args/Returns/Raises/Examples), one-line (single line; renders but thin), missing (no docstring).

Ring 0 — activegraph (public surface, target 100%)

  • [x] ActiveGraphError
  • [x] AmbiguousBehaviorError
  • [ ] AmbiguousToolErrorone-line
  • [x] ApprovalNotFoundError
  • [ ] Behaviorone-line
  • [x] BehaviorNotFoundError
  • [ ] Budgetmissing
  • [ ] Clockone-line
  • [ ] ConfigurationErrorone-line
  • [x] CorruptedEventPayloadError
  • [ ] Diffone-line
  • [ ] DiscoveredPackone-line
  • [ ] DivergentObjectone-line
  • [ ] DivergentRelationone-line
  • [x] DuplicateEventError
  • [ ] EmptySettingsone-line
  • [ ] Eventone-line
  • [x] EventNotFoundError
  • [ ] EventStoreone-line
  • [x] ExecutionError
  • [ ] Frameone-line
  • [ ] FrozenClockone-line
  • [ ] Graphone-line
  • [ ] IDGenone-line
  • [ ] InMemoryEventStoremissing
  • [x] IncompatibleRuntimeState
  • [x] InternalEvaluatorError
  • [x] InvalidActivateAfter
  • [x] InvalidArgumentType
  • [x] InvalidPatchLifecycleState
  • [x] InvalidRuntimeConfiguration
  • [x] InvalidStoreURL
  • [x] InvalidToolRegistration
  • [x] LLMBehavior
  • [x] LLMBehaviorError
  • [x] Metrics
  • [ ] MigrationReportone-line
  • [ ] MigrationRunReportone-line
  • [x] MissingOptionalDependency
  • [x] MissingProviderError
  • [x] MissingToolError
  • [x] NoOpMetrics
  • [x] NonSerializableEventError
  • [ ] Objectone-line
  • [x] ObjectType
  • [x] Pack
  • [x] PackConflictError
  • [x] PackError
  • [x] PackNotFoundError
  • [x] PackPolicy
  • [x] PackPrompt
  • [ ] PackPromptLoadErrorone-line
  • [x] PackSchemaViolation
  • [ ] PackSettingsMissingErrorone-line
  • [x] PackValidationError
  • [x] PackVersionConflictError
  • [ ] Patchone-line
  • [ ] PatternErrorone-line
  • [x] PendingApproval
  • [ ] Policyone-line
  • [x] PrometheusMetrics
  • [x] RegistrationError
  • [ ] Relationone-line
  • [ ] RelationBehaviorone-line
  • [x] RelationType
  • [x] ReplayDivergenceError
  • [x] ReplayError
  • [ ] RunRecordone-line
  • [ ] Runtimemissing
  • [x] RuntimeContextRequiredError
  • [ ] RuntimeStatusone-line
  • [ ] SQLiteEventStoreone-line
  • [x] SchemaVersionMismatch
  • [ ] StorageErrorone-line
  • [ ] TickingClockone-line
  • [ ] Toolone-line
  • [ ] ToolContextone-line
  • [x] ToolError
  • [x] ToolNotFoundError
  • [x] UnknownToolError
  • [x] UnsupportedPatternError
  • [ ] Viewmissing
  • [x] behavior
  • [ ] clear_discovery_cacheone-line
  • [ ] clear_registrymissing
  • [ ] clear_tool_registrymissing
  • [x] configure_logging
  • [x] discover
  • [ ] get_registrymissing
  • [ ] get_tool_registrymissing
  • [x] llm_behavior
  • [ ] load_by_nameone-line
  • [x] load_prompts_from_dir
  • [x] migrate
  • [x] open_store
  • [ ] parse_store_urlone-line
  • [x] relation_behavior
  • [x] tool

Ring 0 — activegraph.packs.diligence (public surface, target 100%)

  • [x] DiligenceSettings
  • [x] pack

Ring 1 — importable but not in __all__ (target 80% not-missing)

activegraph.cli.main

  • [x] main

activegraph.cli.quickstart

  • [x] run_fixture_mode
  • [x] run_interactive_mode

activegraph.core.graph

  • [x] apply_event
  • [x] evaluate_where

activegraph.errors

  • [x] internal_bug_fields

activegraph.llm.anthropic

  • [x] AnthropicProvider

activegraph.llm.cache

  • [x] CachedEntryone-line
  • [ ] LLMCachemissing

activegraph.llm.prompt

  • [x] AssembledPrompt
  • [x] assemble_prompt
  • [x] build_instruction
  • [x] build_system_prompt
  • [ ] build_user_messagemissing
  • [x] schema_to_json
  • [x] serialize_view

activegraph.llm.provider

  • [x] LLMProvider

activegraph.llm.recorded

  • [x] RecordedLLMProvider
  • [x] RecordingLLMProvider

activegraph.llm.types

  • [x] LLMMessage
  • [x] LLMResponseone-line
  • [x] ToolCall

activegraph.observability.logging

  • [x] JsonLineFormatter
  • [x] get_logger
  • [x] redact_payloadone-line
  • [x] runtime_log_extra
  • [x] set_payload_redactorone-line

activegraph.observability.metrics

  • [x] MetricSpecone-line
  • [x] validate_cardinality_rule

activegraph.observability.status

  • [x] BehaviorInfoone-line
  • [x] BudgetSnapshotone-line
  • [x] EventSummaryone-line
  • [x] FrameSnapshotone-line
  • [x] status_to_dict

activegraph.packs

  • [x] behaviorone-line
  • [x] llm_behaviorone-line
  • [x] relation_behaviorone-line
  • [x] tool

activegraph.packs.diligence.behaviors

  • [x] MemoBody
  • [x] QuestionList
  • [x] ResearchFindings
  • [x] ResearcherClaim
  • [x] RiskList

activegraph.packs.diligence.fixtures

  • [x] RecordedDiligenceProvider
  • [ ] lookup_company_docsmissing
  • [ ] lookup_filingsmissing
  • [ ] lookup_summarymissing

activegraph.packs.diligence.fixtures.companies

  • [ ] company_goalmissing

activegraph.packs.diligence.object_types

  • [x] Claimone-line
  • [x] Companyone-line
  • [x] Contradiction
  • [x] Documentone-line
  • [x] Evidenceone-line
  • [x] Memo
  • [x] Questionone-line
  • [x] Riskone-line

activegraph.packs.diligence.tools

  • [x] DocumentRef
  • [x] FetchCompanyDocsInput
  • [x] FetchCompanyDocsOutput
  • [x] SearchFilingsInput
  • [x] SearchFilingsOutput
  • [x] SummarizeDocumentInput
  • [x] SummarizeDocumentOutput

activegraph.packs.loader

  • [x] PackRuntimeStateone-line
  • [x] load_pack_into_runtimeone-line

activegraph.packs.scaffold

  • [x] normalize_pack_name
  • [x] scaffold_pack

activegraph.runtime.behavior_graph

  • [ ] BehaviorGraphmissing
  • [ ] Countersmissing

activegraph.runtime.diff

  • [ ] compute_diffmissing

activegraph.runtime.patterns

  • [x] AndExprone-line
  • [x] Comparisonone-line
  • [x] Match
  • [x] MatchClause
  • [x] NodePatone-line
  • [x] NotExistsone-line
  • [x] NotExprone-line
  • [x] Patternone-line
  • [x] PatternMatcherone-line
  • [x] RelPatone-line
  • [x] Tokone-line
  • [x] parseone-line

activegraph.runtime.queue

  • [ ] EventQueuemissing

activegraph.runtime.registry

  • [ ] Registrymissing

activegraph.runtime.runtime

  • [x] Contextone-line

activegraph.runtime.scheduler

  • [x] DelayedQueueone-line
  • [x] ScheduledEntryone-line
  • [x] parse_activate_after

activegraph.runtime.view_builder

  • [ ] build_viewmissing

activegraph.store.base

  • [x] replay_into

activegraph.store.conformance

  • [x] EventStoreConformance

activegraph.store.postgres

  • [x] PostgresEventStoreone-line

activegraph.store.serde

  • [x] decode_eventone-line
  • [x] decode_payload
  • [x] encode_eventone-line
  • [x] encode_payloadone-line
  • [x] validate_eventone-line

activegraph.store.url

  • [x] StoreURLone-line

activegraph.tools.cache

  • [x] CachedToolResponseone-line
  • [ ] ToolCachemissing
  • [x] canonicalize_args
  • [ ] hash_tool_callmissing

activegraph.tools.graph_query

  • [x] GraphQueryInput
  • [x] GraphQueryOutput
  • [x] ObjectRef
  • [x] make_graph_query_tool

activegraph.tools.recorded

  • [x] DirectToolInvoker
  • [x] RecordedToolProviderone-line
  • [x] RecordingToolProvider

activegraph.tools.web_fetch

  • [x] WebFetchInput
  • [x] WebFetchOutput

activegraph.trace.causal

  • [ ] causal_chainmissing

activegraph.trace.printer

  • [ ] Tracemissing
  • [ ] format_eventmissing

Summary

Ring 0 — public surface (target 100%)

  • 57/100 fully documented (57.0%) — gap to 100% full: 43 symbols
  • 92/100 not-missing (92.0%) — gap to 100% not-missing: 8 symbols (these need docstring_gaps.toml exemptions for the gate to pass)

Ring 0 missing-entirely (gate exemptions):

  • activegraph.Budget
  • activegraph.InMemoryEventStore
  • activegraph.Runtime
  • activegraph.View
  • activegraph.clear_registry
  • activegraph.clear_tool_registry
  • activegraph.get_registry
  • activegraph.get_tool_registry

Ring 1 — importable but not in __all__ (target 80% not-missing)

  • 56/114 fully documented (49.1%) — v1.1 burndown target is 100% full
  • 97/114 not-missing (85.1%) — gate threshold is 80% not-missing

Ring 1 is above the 80% gate threshold. The gate enforces the threshold; individual missing-Ring-1 symbols are v1.1 burndown items, not gate exemptions.