# How to contribute

Anyone who is well-grounded in the subject of this library can speed things up!

At this moment contributors may help to make:

* Additional implementations for existing API sections. Here are by the way some features that current version misses: breadth-first traversal, lightweight array-based implementations of stacks and queues, circular doubly-linked list, 2-4 tree, additional comparators for certain practical cases.
* Better documentation (keeping docs up-to-date and with enough details takes a lot of time really :).

Every pull request that meets the [project structure](/adsjs/contribution-notes/project-structure.md) and satisfies the following rules will be considered for merging:

* 100% test coverage report.
* Passing `npm run lint` without errors and warnings.
* Descriptions in code are detailed: "function doSmthn() { } // Does something" will be rejected.

If you've found some bugs or mistakes please [open issues on GitHub](https://github.com/alex-myznikov/ads-js/issues).


---

# Agent Instructions: 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:

```
GET https://alex-myznikov.gitbook.io/adsjs/contribution-notes/how-to-contribute.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
