attribute-dsl 0.1.0

Shared parser helpers for Rust attribute DSLs built from paths and dot-call chains.
Documentation
# AGENTS.md

This is the working guide for contributors and coding agents in the
`attribute-dsl` workspace. The repository is a single published Rust crate for
parsing proc-macro attribute DSL chains and infer placeholders.

Start with:

- `src/lib.rs` for the public crate facade and exported API.
- `README.md` for user-facing docs; it is included as crate documentation with
  `#![doc = include_str!("../README.md")]`.
- `justfile` for local validation and maintenance recipes.

## Project Map

- `src/chain.rs`
  Audience: public API and validation.
  Owns `AttributeChain`, `ChainCall`, `ChainEntry`, `ChainList`,
  `NamedChainGroup`, completion-probe parsing, and their inline tests.

- `src/infer.rs`
  Audience: public API and validation.
  Owns `SingleTypeArg` plus the `split_terminal_single_type_arg` and
  `substitute_infer_*` helpers, with inline tests for supported syntax forms.

- `src/lib.rs`
  Audience: public facade.
  Re-exports the crate API and includes `README.md` as crate docs.

- `examples/derive_field_attrs.rs`
  Audience: executable public example.
  Mirrors the derive-macro workflow shown in `README.md`.

## Synchronization Rules

- When parser syntax, accepted/rejected chain forms, completion probes, or
  diagnostic behavior changes, update `src/chain.rs`, its inline tests, and the
  matching grammar/examples in `README.md`.
- When infer placeholder behavior changes, update `src/infer.rs`, its inline
  tests, and the `README.md` Infer Helpers section.
- When public exports change, update `src/lib.rs`, the owning module docs/tests,
  and any affected README examples in the same change.
- When the derive-macro workflow changes, keep `examples/derive_field_attrs.rs`
  and the README Derive Macro Example aligned.
- When local or CI validation changes, keep `justfile`, `.github/workflows/ci.yml`,
  and any named guidance here aligned.
- The crate is version `0.1.0`; durable docs and examples should describe the
  current API and repository shape.

## Validation

- Use `just --list` to inspect the repository command index.
- For Rust behavior changes, choose the narrowest applicable recipe from
  `justfile`: `just check`, `just clippy`, or `just test`.
- Use `just fmt` for formatting Rust, TOML, and Markdown files when formatting is
  part of the change.
- Use `just test-docs` when README or crate documentation examples change.
- Use `just ci` for the local recipe chain when the required external tools from
  the recipes are available.
- CI runs formatting checks, locked Rust tests, clippy, docs, package dry-run,
  cargo-machete, coverage, and Codecov upload from `.github/workflows/ci.yml`.