/ AGENTS.md
AGENTS.md
 1  
 2  # Groth.jl Workflow Checklist
 3  
 4  Use this guide when working inside the Groth.jl repository. For overall workspace
 5  context (e.g., ark-works/zk-book references), see the parent `AGENTS.md`.
 6  
 7  ## 1. Review current context
 8  - `docs/ROADMAP.md` — active priorities, completed milestones.
 9  - `docs/PACKAGE_REFERENCE.md` — per-package summaries and implementation notes.
10  - `docs/Implementation_vs_Arkworks.md` — how our implementation aligns with arkworks.
11  
12  ## 2. Branch & setup
13  - Create feature branches under Groth.jl (e.g., `feature/…`).
14  - Ensure local packages are devved:
15    ```julia
16    julia --project -e 'using Pkg; Pkg.develop("GrothAlgebra"); Pkg.develop("GrothCurves"); Pkg.develop("GrothProofs")'
17    ```
18  
19  ## 3. Testing & benchmarks
20  - Run tests for packages you touch:
21    ```julia
22    julia --project=GrothAlgebra -e 'using Pkg; Pkg.test()'
23    julia --project=GrothProofs  -e 'using Pkg; Pkg.test()'
24    ```
25  - Benchmarks live in `benchmarks/run.jl` / `benchmarks/plot.jl`. Regenerate plots
26    when behaviour changes and note results in `benchmarks/README.md`.
27  
28  ## 4. Coding guidelines
29  - Julia style: 4-space indent, `lowercase_with_underscores` functions, docstrings
30    on exported methods, dispatch-friendly signatures matching existing APIs.
31  - Keep package READMEs/docs in sync when user-visible output changes (e.g.,
32    update `GrothExamples/` scripts, `docs/ROADMAP.md`).
33  
34  ## 5. Commits & PRs
35  - Commit messages: concise imperatives scoped to the area (e.g., `groth16: align coset domain`).
36  - PR descriptions: list commands run (`Pkg.test`, benchmarks) and link the
37    relevant roadmap item.
38  - Update docs/examples as part of the same PR when behaviour shifts.
39  
40  Stay focused on Groth.jl; other sibling directories are references only.