docxcraft 0.1.0

Generate editable DOCX documents with rich text, tables, charts and SVG drawings
Documentation
# Contributing to docxcraft


Start with [README.md](README.md) to run the source examples. For API and
repository details, read [the agent guide](docs/agent-guide.md). Coding agents
also have [AGENTS.md](AGENTS.md).

## Current contribution status


We currently accept issue reports and feature requests. External code
contributions, including patches in issues and pull requests, are not accepted
or merged until an appropriate contribution agreement is established. Please
report the problem and desired behavior rather than submitting a patch.

No CLA or additional commercial-rights grant is currently in place. This intake
policy preserves the ability to determine future contribution terms; it does
not restrict anyone's rights to use, modify or redistribute the existing code
under AGPL-3.0-only. Maintainer development instructions follow below.

Report bugs and feature requests through [GitHub Issues](https://github.com/AlgForce/docxcraft/issues).
For licensing questions, contact
[founders@exceldashboard.ai](mailto:founders@exceldashboard.ai).

## Development


Use Rust 1.89 or later (edition 2021). The minimum compiler version is declared
in `Cargo.toml`; stable CI alone does not prove that every change works on that
minimum version. Before the first XLSX publication, set up the local
`xlsxcraft` override described in the README.

```bash
cargo fmt --all -- --check
cargo test
cargo check --examples
cargo run --example basic
cargo run --example chart
cargo doc --no-deps
```

Examples write to the ignored `target/examples/` directory. Use temporary
directories in automated tests. `Cargo.lock` and `.cargo/config.toml` are local,
ignored artifacts; consumers resolve their own dependency graph.

## Maintainer changes and review


Keep each change focused and follow the existing formatter and module layout.
Add deterministic regression coverage for bug fixes and new behavior, including
ZIP parts, relationships or embedded data when export behavior changes.
Do not require credentials, a running Office application or external services.

Update the README/API guide when signatures, units, supported input or behavior
change. README Rust code blocks are compiled as doctests. Keep example programs
usable as small standalone consumer applications. Preserve packaged templates.

Use concise, imperative English commit subjects. A maintainer change should explain
the problem, resulting behavior and validation performed. State any skipped
checks. Include a small before/after image for a visual change when practical,
with the viewer name and version. A screenshot supplements package/data tests.

## Bug reports


Provide a minimal Rust program and sanitized input, the crate/Rust/OS versions,
the expected and actual result, and any error text. For rendering differences,
include the Office viewer and version and, if possible, a small output file or
screenshot. Remove private report data, credentials and identifying metadata.

## License


The current project code is licensed under `AGPL-3.0-only`. Preserve license,
SPDX and provenance notices. See [LICENSING.md](LICENSING.md) for copyright,
contact and the separate-commercial-licensing notice. Reporting an issue does
not assign copyright or grant additional commercial rights to third-party code.