Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions dev/docs-validator/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
MODEL = "gemini-2.5-flash"
INTEGRATIONS_DIR = "~/git/integrations"
#PACKAGE_NAME = "cisco_ise"
5 changes: 5 additions & 0 deletions dev/docs-validator/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.env
.env.*
!.env.example

.venv
31 changes: 31 additions & 0 deletions dev/docs-validator/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Docs Validator

This script validates the `system_info.md` knowledge-base markdown file by:

1. Reading the markdown file and extracting URLs.
2. Validating the URLs.
3. Validating the markdown file's format against a template.

## Installation

This project uses `uv` for package management. To install the dependencies, run:

```bash
uv venv && uv sync
```

## Usage

To run the script, execute the `validate.py` file:

```bash
uv run validate.py
```

## Environment Variables

The script uses the following environment variables:

* `MODEL`: The model to use for the AI agents. Defaults to `google-gla:gemini-2.5-flash`.
* `INTEGRATIONS_REPO_PATH`: The path to the integrations repository. Defaults to the parent directory of the script.
* `PACKAGE_NAME`: The name of the package to validate. Defaults to `cisco_ftd`.
53 changes: 53 additions & 0 deletions dev/docs-validator/_static/system_info_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@

# Service Info

## Common use cases
/* Common use cases that this will facilitate */

## Data types collected
/* What types of data this integration can collect */

## Compatibility
/* Information on the vendor versions this integration is compatible with or has been tested against */

## Scaling and Performance
/* Vendor-specific information on what performance can be expected, how to set up scaling, etc. */

# Set Up Instructions

## Vendor prerequisites
/* Add any vendor specific prerequisites, e.g. "an API key with permission to access <X, Y, Z> is required" */

## Elastic prerequisites
/* If there are any Elastic specific prerequisites, add them here
The stack version and agentless support is not needed, as this can be taked from the manifest */

## Vendor set up steps
/* List the specific steps that are needed in the vendor system to send data to Elastic.
If multiple input types are supported, add instructions for each in a subsection */

## Kibana set up steps
/* List the specific steps that are needed in Kibana to add and configure the integration to begin ingesting data */

# Validation Steps
/* List the steps that are needed to validate the integration is working, after ingestion has started.
This may include steps on the vendor system to trigger data flow, and steps on how to check the data is correct in Kibana dashboards or alerts. */

# Troubleshooting
/* Add lists of "*Issue* / *Solutions*" for troubleshooting knowledge base into the most appropriate section below */

## Common Configuration Issues
/* For generic problems such as "service failed to start" or "no data collected" */

## Ingestion Errors
/* For problems that involve "error.message" being set on ingested data */

## API Authentication Errors
/* For API authentication failures, credential errors, and similar */

## Vendor Resources
/* If the vendor has a troubleshooting specific help page, add it here */

# Documentation sites
/* List of URLs that contain info on the service (reference pages, set up help, API docs, etc. */

15 changes: 15 additions & 0 deletions dev/docs-validator/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[project]
name = "validator-mcp"
version = "0.1.0"
description = "This project provides a tool for validating documentation markdown files. It checks for broken URLs and ensures that the files adhere to a predefined format template, leveraging AI to enhance the validation process."
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"fastmcp>=2.13.0.2",
"langchain[google-genai]>=1.0.5",
"markdown-analysis>=0.1.5",
"markdown-it-pyrs>=0.4.0",
"pydantic-ai>=1.14.1",
"python-markdown>=0.1.0",
"rich>=14.2.0",
]
Loading