-
Notifications
You must be signed in to change notification settings - Fork 1
Agents markdown file #422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Agents markdown file #422
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,103 @@ | ||||||||||||||||||||||||||||||||||||
| # AGENTS.md | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ## Project Overview | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| **ctrld-sync** is a Python CLI tool that syncs Control D DNS filtering folders | ||||||||||||||||||||||||||||||||||||
| with remote block-lists. It downloads JSON block-lists, deletes existing folders | ||||||||||||||||||||||||||||||||||||
| with matching names, recreates them, and pushes rules in batches to the | ||||||||||||||||||||||||||||||||||||
| Control D API. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ## Language & Runtime | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| - Python 3.13+ | ||||||||||||||||||||||||||||||||||||
| - Runtime dependencies: `httpx`, `python-dotenv` | ||||||||||||||||||||||||||||||||||||
| - Dependency metadata lives in `pyproject.toml` (source of truth); | ||||||||||||||||||||||||||||||||||||
| `requirements.txt` is kept in sync for CI pip-caching. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ## Repository Layout | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ```text | ||||||||||||||||||||||||||||||||||||
| main.py # Single-file CLI application (~2900 lines) | ||||||||||||||||||||||||||||||||||||
| fix_env.py # Utility for .env file permission repair | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
| fix_env.py # Utility for .env file permission repair | |
| fix_env.py # Utility for .env file validation, cleanup, and secure permission enforcement |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Repository Layout section provides a great overview of the project structure, but it's missing an entry for this AGENTS.md file itself. For completeness, it would be helpful to include it.
| main.py # Single-file CLI application (~2900 lines) | |
| fix_env.py # Utility for .env file permission repair | |
| pyproject.toml # Project metadata & dependency declarations | |
| requirements.txt # Pinned runtime deps (mirrors pyproject.toml) | |
| tests/ # pytest test suite (27 test files) | |
| .github/workflows/ # 18 GitHub Actions workflows | |
| .trunk/ # Trunk linter/formatter configuration | |
| configs/ # Per-tool config (ruff, isort, markdownlint, yamllint) | |
| AGENTS.md # This file; project documentation for agents | |
| main.py # Single-file CLI application (~2900 lines) | |
| fix_env.py # Utility for .env file permission repair | |
| pyproject.toml # Project metadata & dependency declarations | |
| requirements.txt # Pinned runtime deps (mirrors pyproject.toml) | |
| tests/ # pytest test suite (27 test files) | |
| .github/workflows/ # 18 GitHub Actions workflows | |
| .trunk/ # Trunk linter/formatter configuration | |
| configs/ # Per-tool config (ruff, isort, markdownlint, yamllint) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The instructions for setting up the environment could be clearer by distinguishing between running the application and setting up a development environment. The Testing section mentions pytest, which is a dev dependency, but this section only shows how to install runtime dependencies. I suggest clarifying the setup for both use cases.
| No build step is required. Install dependencies and run directly: | |
| ```bash | |
| pip install -r requirements.txt | |
| python main.py --dry-run # safe preview, no API calls | |
| python main.py --profiles <id> # live sync against Control D | |
| ``` | |
| The project also supports `uv sync` for local development. | |
| For running the application, install runtime dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| python main.py --dry-run # safe preview, no API calls | |
| python main.py --profiles <id> # live sync against Control D |
For local development (e.g., to run tests), it's recommended to use uv to install all dependencies:
# Install runtime and dev dependencies in editable mode
uv pip install -e .[dev]
Copilot
AI
Feb 24, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This statement is inaccurate. While there are 26 test files in the tests/ directory, test_main.py (776 lines) is located in the root directory, making it 27 total test files. Consider rephrasing to: "All test files follow the test_*.py naming convention. Most (26) live under tests/, with test_main.py in the repository root."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The main heading of a markdown file should describe its content, not its filename. The current heading
# AGENTS.mdis redundant. A more descriptive heading would improve clarity and is a common best practice for documentation files.