> For the complete documentation index, see [llms.txt](https://soroban-cost-estimator.gitbook.io/soroban-cost_estimator-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://soroban-cost-estimator.gitbook.io/soroban-cost_estimator-docs/contributing.md).

# Contributing

Contributions are welcome, and the project is set up for scoped, low-friction first contributions.

## Start with the issue backlog

The fastest path to useful work is the issue tracker — every open issue carries a Summary, Acceptance Criteria, and Tech Stack, sized for a focused sprint:

* Issue backlog: <https://github.com/aigbagbobila/soroban-cost-estimator/issues>
* List open issues from the CLI:

  ```bash
  gh issue list -R aigbagbobila/soroban-cost-estimator --state open
  ```

Recent scoped work has included exponential RPC backoff, cache pruning and a cache stats command, spec-typed `--arg` validation, parallelized `estimate-all`, footprint reporting, and graceful watch shutdown. If you are arriving from a Drips Wave contributor sprint, issues labeled `Stellar Wave` are the ones with acceptance criteria ready for pickup.

## Development setup and standards

The full contributing guide — coding standards, the PR process, and the project structure — lives in [`CONTRIBUTING.md`](https://github.com/aigbagbobila/soroban-cost-estimator/blob/main/CONTRIBUTING.md). In short:

* One commit per logical unit, conventional commit format (`feat(rpc): …`, `fix(fee-calc): …`).
* No `unwrap()` or `expect()` outside `tests/`; all fallible operations return `Result` through the `AppError` enum.
* No floats near fee math, and no hardcoded stroops-per-unit constants — every fee-relevant constant must come from a fetched `ConfigSetting*` entry or from `simulateTransaction`'s own output.
* `clippy::all` + `clippy::pedantic` clean, enforced in CI.

```bash
cargo build
cargo test
cargo clippy --all-targets
```

`main` is protected: the CI `build` check must be green for changes to merge.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://soroban-cost-estimator.gitbook.io/soroban-cost_estimator-docs/contributing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
