Contribute

GlyphWeaveForge is open source under the MIT license. Help us make it better.

How to contribute

  1. Fork & Clone

    Fork the glyph-weave-forge repository and clone it locally.

  2. Find an Issue

    Browse open issues or create one to discuss your idea before coding.

  3. Create a Branch

    Use a descriptive branch name: feat/mermaid-gantt, fix/table-alignment, docs/api-examples.

  4. Follow the Architecture

    Respect the internal boundary: api → pipeline → core → adapters. Read AGENTS.md for project conventions.

  5. Write Tests

    All changes should include tests. Run cargo test --all-features before committing.

  6. Submit a PR

    Open a pull request against main. The CI will run cargo fmt, clippy, and all tests.

Areas to improve

Here are some high-impact areas where contributions are especially welcome:

📚 More Themes

Design and contribute new built-in themes — legal briefs, resumes, brochures, slide decks. Themes are JSON-configurable.

🔧 Mermaid Expansion

Extend the Rust-native Mermaid subset renderer — sequence diagrams, state machines, pie charts, and Gantt charts are partially implemented.

Math Engine

Expand the TeX-subset converter to support more LaTeX math environments and symbols. The parser already handles a practical subset.

🌐 WASM Target

Help make the minimal backend compile to WebAssembly so GlyphWeaveForge can run in browsers and edge functions.

📄 Table of Contents

Auto-generate a TOC from headings. Link it to page numbers in the PDF output.

🎨 Syntax Highlighting

Render code blocks with actual syntax highlighting in the Typst backend instead of monochrome text.

Pre-commit checklist

Before submitting a PR, make sure these pass:

cargo fmt --check
cargo check
cargo test --all-features
cargo test --doc
cargo clippy --all-targets --all-features -- -D warnings

The project also runs a security scan before every release. You can run it manually:

# Trigger the gwf-validate skill (if using OpenCode)
/gwf-validate

Code of Conduct

Be respectful. Be constructive. This is a community project — contributions of all kinds are welcome: code, docs, bug reports, feature suggestions, and design feedback.