clickhouse-sql-parser AGENTS.md

A repository instruction guide for developers and AI coding agents working on a Go tool that parses and formats ClickHouse SQL. It documents the project layout, commands, coding rules, and test fixtures.

In plain words
What is it for?
Use it when building the command-line parser, changing grammar or abstract syntax tree code, running tests, or updating expected parser and formatter outputs.
Why use it?
It gives an agent the project-specific context needed to edit the right files and follow the expected build, formatting, linting, and testing process.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/aftership/clickhouse-sql-parser/agents-md
Clone the repo
git clone --depth 1 https://github.com/AfterShip/clickhouse-sql-parser

Made for: Codex, OpenCode.

Per session 1,180 This file is loaded in full into every session.
When invoked 1,180 The same file — it is already loaded in full.
Security scan C 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01180 $0.01180
Opus 5 $0.00590 $0.00590
Sonnet 5 $0.00236 $0.00236
Haiku 4.5 $0.00118 $0.00118

Measured 2d ago against content hash f5ec0962f6eb, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

clickhouse-sql-parser AGENTS.md scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Downloads and executes remote codehighSupply chain

curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.

- Linux/other: `curl https://clickhouse.com/ | sh` (produces a `./clickhouse` binary; invoke as `./clickhouse local`)

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- Linux/other: `curl https://clickhouse.com/ | sh` (produces a `./clickhouse` binary; invoke as `./clickhouse local`)
AGENTS.md · 77 lines

How it starts

The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AI Agents Guidline

This document outlines guidance for AI coding agent including project structure, coding style, testing, and contribution practices for the ClickHouse SQL Parser project.

Development Commands

# Build the CLI binary
make

# Run tests
make test

# Update golden fixtures after intentional output changes
make update_test

After editing code, use goimports and gofmt to maintain code style, and run make lint to check for any issues before committing or requesting a review.

Project Structure & Module Organization

  • main.go is the CLI entry point (clickhouse-sql-parser) for AST output and SQL formatting.
  • parser/ contains core parser code: lexer (lexer.go), AST definitions (ast.go), traversal helpers (walk.go), and grammar-specific parser files (parser_query.go, parser_table.go, parser_alter.go, etc.).
  • Tests live next to source as *_test.go files, with fixtures under parser/testdata/.
  • Fixture groups are organized by SQL type (basic/, query/, dml/, ddl/), with generated expectations in output/ (AST JSON) and format/ (formatted SQL).

Coding Style & Naming Conventions

  • Use Go 1.21 conventions (go.mod) and keep code gofmt/goimports clean (enforced by lint).
  • Naming is the most important style aspect, try you best to choose a clear and descriptive name for variables, functions, types, and files. For example, use parseSelect for a function that parses a SELECT statement, and SelectStatement for the corresponding AST node type.
  • Place parsing logic in the matching module by statement family (for example, query parsing in parser/parser_query.go).
  • Follow existing parser naming patterns such as parseXxx helpers and explicit AST type names.
  • Keep AST FormatSQL() output deterministic; formatting changes must be reflected in golden files.
  • You must go through the repository before adding new code to ensure consistency with existing patterns and styles. If you are unsure about where to place new code or how to format it, please refer to the existing codebase or ask for guidance.
  • Reusing existing code and patterns is encouraged to maintain consistency and reduce redundancy. If you find a similar function or pattern in the codebase, consider adapting it for your needs instead of creating something new from scratch.

Read the full file on GitHub · 77 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 77 lines · 1,180 tokens per session scan C f5ec0962f6eb

Subscribe to this mod's changes

clickhouse-sql-parser AGENTS.md is an instructions file published in the GitHub repository AfterShip/clickhouse-sql-parser (247 stars, last pushed 5d ago), licensed MIT. It adds 1,180 tokens to every session, about $0.0059 per session on Opus 5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.