You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Completes the v0 DAG schema: each `dag` node now carries the per-node
**`headlines`** array the spec defines (`docs/arghda-spec.adoc` lines
128–135) but the builder previously omitted — the sorted, deduped list
of top-level headline theorem names the module declares.
## Design
- **Reuses the `unpinned-headline` extractor** — no duplicate parsing.
`headline_decls` becomes `pub`, and `dag::build` runs it per node with
the configured headline `Regex`.
- **`build_dag` gains a `headline_pattern: &str` parameter.** `dag`
threads the *resolved* pattern through (built-in default <
`.arghda/config.toml` < CLI `--headline-pattern`, via the #8 config
plumbing), so the DAG honours the same operator configuration as the
lint.
- Column-0-only extraction means indented `private` helpers are not
surfaced (same export-only filter as the rule).
## Verification
- `cargo fmt --check`, `cargo clippy --all-targets -- -D warnings`,
`cargo build`, `cargo test` all green (7 groups).
- New `tests/fixtures/headlines/` + `dag_populates_node_headlines`:
asserts `Thm → ["thm-one","thm-two"]`, that the indented `private
helper` is excluded, and the import-only `All` entry surfaces `[]`.
- **Live:** `arghda dag tests/fixtures/headlines` emits `"headlines":
["thm-one","thm-two"]` on the `Thm` node and `[]` on `All`.
Last of three sequenced engine-polish PRs (3 → 2 → 1): `unused-import`
(#7), `.arghda/config.toml` (#8), **DAG `headlines`** (this). With
these, the v0 Agda lint set and DAG schema in `arghda-spec.adoc` are
complete.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_019GiSiEfgZCte35dyykgBHs
---
_Generated by [Claude
Code](https://claude.ai/code/session_019GiSiEfgZCte35dyykgBHs)_
0 commit comments