# Earthly Lunar

## Earthly Lunar

- [Introduction](https://docs-lunar.earthly.dev/readme.md): Earthly Lunar is a guardrails platform for monitoring and enforcing engineering practices across your software development lifecycle.
- [Install Lunar](https://docs-lunar.earthly.dev/install.md): Overview of Lunar installation, covering Hub, CLI, CI Agent for self-hosted and managed runners, and AI skills for building plugins.
- [Lunar CLI](https://docs-lunar.earthly.dev/install/cli.md): Install the Lunar CLI for managing configurations, inspecting components, running collectors, and testing policies locally.
- [Lunar Hub](https://docs-lunar.earthly.dev/install/lunar-hub.md): Install and configure Lunar Hub, the central service that stores metadata, evaluates policies, and provides visibility into engineering health.
- [Overview](https://docs-lunar.earthly.dev/install/lunar-hub/hub-overview.md)
- [Prerequisites](https://docs-lunar.earthly.dev/install/lunar-hub/hub-prereqs.md)
- [Manual GitHub App Setup](https://docs-lunar.earthly.dev/install/lunar-hub/hub-github-app-manual.md)
- [Install Walkthrough](https://docs-lunar.earthly.dev/install/lunar-hub/hub-install.md)
- [Day-2 Operations](https://docs-lunar.earthly.dev/install/lunar-hub/hub-day2.md)
- [Lunar CI Agent](https://docs-lunar.earthly.dev/install/lunar-ci-agent.md)
- [Self-Hosted Runners](https://docs-lunar.earthly.dev/install/lunar-ci-agent/agent-self-hosted.md): Install the Lunar CI Agent on self-hosted runners to instrument CI/CD pipelines and collect metadata during builds, tests, scans, and deploys.
- [Managed Runners](https://docs-lunar.earthly.dev/install/lunar-ci-agent/agent-managed.md): Use the Lunar CI Action to instrument GitHub-hosted and self-hosted GitHub Actions runners with the Lunar CI Agent.
- [Configuration Reference](https://docs-lunar.earthly.dev/install/lunar-ci-agent/agent-config.md): Reference for all environment variables that configure the Lunar CI Agent, including required settings, Docker options, and state directories.
- [Systemd](https://docs-lunar.earthly.dev/install/lunar-ci-agent/systemd.md): Run Lunar as a systemd service on Linux hosts with a sample unit file for reliable startup, restarts, and environment configuration.
- [Sync Config GitHub Action](https://docs-lunar.earthly.dev/install/github-actions.md): Use the Lunar sync-config GitHub Action to push your config repo to Lunar Hub on every push.
- [AI Skills](https://docs-lunar.earthly.dev/install/skills.md): Install AI agent skills for Claude Code, Codex, Cursor, and 50+ other agents to help build Lunar collectors, policies, and SQL queries.
- [Learn the basics](https://docs-lunar.earthly.dev/basics.md): Walk through your first Lunar setup — populating components, defining policies, and running checks against your repositories.
- [Key concepts](https://docs-lunar.earthly.dev/docs/key-concepts.md): Overview of Lunar's core concepts — domains, components, collectors, catalogers, policies, and checks — and how they fit together.
- [Component JSON](https://docs-lunar.earthly.dev/docs/component-json.md): How the Component JSON aggregates SDLC metadata deltas from collectors into a single object that policies evaluate against.
- [Catalog JSON](https://docs-lunar.earthly.dev/docs/catalog-json.md): Structure and precedence rules for the Catalog JSON, which merges domains and components from catalogers, lunar.yml, and lunar-config.yml.
- [Lunar CLI Reference](https://docs-lunar.earthly.dev/docs/lunar-cli.md): Complete reference for every Lunar CLI command, subcommand, flag, and environment variable across collectors, catalogers, policies, and Hub operations.
- [lunar-config.yml](https://docs-lunar.earthly.dev/configuration/lunar-config.md): Reference for lunar-config.yml — the central configuration file defining hub connection, catalogers, domains, components, collectors, initiatives, and policies.
- [About images](https://docs-lunar.earthly.dev/configuration/lunar-config/images.md): Configure default container images for collectors, policies, and catalogers in lunar-config.yml, with override precedence rules.
- [catalogers](https://docs-lunar.earthly.dev/configuration/lunar-config/catalogers.md): Define the catalogers section of lunar-config.yml — scripts that synchronize domain and component metadata from external systems.
- [catalogers/hooks](https://docs-lunar.earthly.dev/configuration/lunar-config/cataloger-hooks.md): Configure cataloger hooks in lunar-config.yml — triggers like cron schedules or repository events that determine when catalogers run.
- [domains](https://docs-lunar.earthly.dev/configuration/lunar-config/domains.md): Define the domains section of lunar-config.yml — hierarchical groupings that organize related components for ownership and policy targeting.
- [components](https://docs-lunar.earthly.dev/configuration/lunar-config/components.md): Define the components section of lunar-config.yml — repositories or monorepo subdirectories that Lunar monitors with metadata and tags.
- [collectors](https://docs-lunar.earthly.dev/configuration/lunar-config/collectors.md): Define the collectors section of lunar-config.yml — scripts that run on CI, code, or cron triggers to gather component metadata.
- [collectors/hooks](https://docs-lunar.earthly.dev/configuration/lunar-config/collector-hooks.md): Configure collector hooks in lunar-config.yml — triggers like CI commands, code events, or cron schedules that determine when collectors run.
- [initiatives](https://docs-lunar.earthly.dev/configuration/lunar-config/initiatives.md): Define the initiatives section of lunar-config.yml — groupings of policies around shared goals or compliance requirements.
- [policies](https://docs-lunar.earthly.dev/configuration/lunar-config/policies.md): Define the policies section of lunar-config.yml — rules that Lunar evaluates against components to enforce standards and check health.
- [on (tag matching)](https://docs-lunar.earthly.dev/configuration/lunar-config/on.md): Reference for the on field in lunar-config.yml — tag-matching expressions used by collectors, policies, and initiatives to target components.
- [lunar.yml](https://docs-lunar.earthly.dev/configuration/lunar-yml.md): Reference for lunar.yml, the optional per-repository file that configures a single component's owner, domain, branch, tags, and CI pipelines.
- [Plugins configuration](https://docs-lunar.earthly.dev/plugin-sdks/plugins.md): Overview of the three Lunar plugin types — catalogers, collectors, and policies — that extend the platform's capabilities.
- [lunar-cataloger.yml](https://docs-lunar.earthly.dev/plugin-sdks/plugins/cataloger-plugins.md): Reference for lunar-cataloger.yml, the manifest that defines a cataloger plugin used to sync software catalog information from external systems.
- [lunar-collector.yml](https://docs-lunar.earthly.dev/plugin-sdks/plugins/collector-plugins.md): Reference for lunar-collector.yml, the manifest that defines a collector plugin used to gather live information about components from various sources.
- [lunar-policy.yml](https://docs-lunar.earthly.dev/plugin-sdks/plugins/policy-plugins.md): Reference for lunar-policy.yml, the manifest that defines a policy plugin used to evaluate the health of components against rules.
- [Bash SDK](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk.md): Overview of the Lunar Bash SDK for building custom catalogers and collectors with shell scripts.
- [Installing dependencies](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk/dependencies.md): How to install dependencies for Bash collectors and catalogers using a custom Docker image or an install.sh script.
- [Cataloger](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk/cataloger.md): Write Lunar catalogers in Bash — environment variables and the lunar catalog CLI commands for saving catalog data.
- [Collector](https://docs-lunar.earthly.dev/plugin-sdks/bash-sdk/collector.md): Write Lunar collectors in Bash — environment variables and lunar CLI subcommands for emitting SDLC metadata from a collector script.
- [Python SDK](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk.md): Overview of Lunar's Python SDK for writing custom Lunar policies (with collector support coming soon).
- [Installing dependencies](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/dependencies.md): How to install Python dependencies for Lunar policies, using a custom Docker image or native runtime execution.
- [Collector](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/collector.md): Placeholder for the upcoming Python Collector SDK used to gather component metadata in Lunar.
- [Policy](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy.md): Write Lunar policies in Python with the lunar\_policy package — load component metadata, make assertions, and handle pending data.
- [Check](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/check.md): Reference for the Check class in Lunar's Python Policy SDK — the fluent API for asserting on component metadata and tracking results.
- [CheckStatus](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/check-status.md): Reference for the CheckStatus enum used to mark Lunar policy outcomes as PASS, FAIL, PENDING, ERROR, or SKIPPED.
- [Node](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/node.md): Reference for the Node class in Lunar's Python Policy SDK — used to navigate, query, and iterate over component JSON data.
- [NoDataError](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/no-data-error.md): Reference for the NoDataError exception that signals required component data is not yet collected, marking a Lunar check as pending.
- [SkippedError](https://docs-lunar.earthly.dev/plugin-sdks/python-sdk/policy/skipped-error.md): Reference for the SkippedError exception used to skip a Lunar check when it does not apply to the current component.
- [Overview](https://docs-lunar.earthly.dev/sql-api/sql-api.md): Overview of Lunar's read-only SQL API for querying components, domains, policies, checks, and other Hub data via PostgreSQL clients.
- [Views](https://docs-lunar.earthly.dev/sql-api/views.md)
- [domains](https://docs-lunar.earthly.dev/sql-api/views/domains.md): Schema reference for the domains SQL view — one row per domain with its description, owner, and metadata for grouping components.
- [components](https://docs-lunar.earthly.dev/sql-api/views/components.md): Schema reference for the components and components\_latest SQL views — time series of tracked components with merged collector metadata per commit.
- [component\_deltas](https://docs-lunar.earthly.dev/sql-api/views/component-deltas.md): Schema reference for the component\_deltas SQL views — per-collector metadata deltas that merge into each component's full JSON over time.
- [initiatives](https://docs-lunar.earthly.dev/sql-api/views/initiatives.md): Schema reference for the initiatives SQL view — one row per initiative grouping policies around a shared goal or compliance requirement.
- [policies](https://docs-lunar.earthly.dev/sql-api/views/policies.md): Schema reference for the policies SQL view — one row per policy with its enforcement level and parent initiative.
- [checks](https://docs-lunar.earthly.dev/sql-api/views/checks.md): Schema reference for the checks and checks\_latest SQL views — every policy check evaluation with status, enforcement, component, and PR context.
- [prs](https://docs-lunar.earthly.dev/sql-api/views/prs.md): Schema reference for the prs SQL view — pull request metadata mirrored from GitHub including author, status, and latest commit details.
- [catalog](https://docs-lunar.earthly.dev/sql-api/views/catalog.md): Schema reference for the catalog and catalog\_latest SQL views — full catalog JSON snapshots produced by catalogers, with history over time.


---

# Agent Instructions: Querying This Documentation

If you need additional information, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on a page URL with the `ask` query parameter:

```
GET https://docs-lunar.earthly.dev/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
