Marmite Development Guide
Coding standards, workflows, and checklists for contributing to marmite, a Rust static site generator, covering formatting, testing, and documentation gates.
Pure documentation skill with no destructive commands, credential handling, or covert data flows; recommends cargo audit and dependency minimization; provenance and license clearly attributed. Deducted for: remote theme download (--set-theme) and curl|sh install referenced without risk/confirmation discussion, and unverified publisher identity.
Instructions are self-consistent: toolchain commands (mask/cargo), two-layer testing, code patterns and error-handling guidance align. Deducted for: no executed verification possible in static review; maskfile not in evidence; sample --show-urls JSON contains trailing commas (invalid JSON); failure-feedback quality unverified.
Audience is explicit (contributors to the marmite codebase) and non-fit boundary is declared up front (use the marmite skill for site building). Deducted for: no Chinese-language support notes, builds depend on overseas crates.io access, and no declared environment prerequisites (Rust version, mask availability).
Well-layered structure (tools, code quality, testing, architecture, checklists); AGPL-3.0-or-later consistent across SKILL.md, Cargo.toml and LICENSE; references maintainer sign-off. Deducted for: no skill-level version/changelog, SKILL.md text appears truncated mid-checklist, and dependency on mask without install instructions.
Covers the core contribution workflow (fmt/lint/test, architecture, step-by-step feature recipes, breaking-change policy) with concrete, actionable content and clear marginal value over source-diving. Deducted for: steps unverifiable without execution; referenced files (references/*.md) absent from evidence so completeness unconfirmed.
Claims are cross-checkable against source, Cargo.toml and CI workflows; structural claims (test inventory, module table) are auditable. Deducted for: no execution evidence in static review; the listed test files themselves are not in evidence; fact/inference separation left to the reader.
- This is a static source review; no commands or tests were executed, confidence is low.
- The skill assumes marmite binary, Rust toolchain and mask runner are installed, but states no prerequisites.
- Referenced files (references/*.md) are absent from the evidence; their accuracy and sync status are unverified.
- The repo involves remote theme downloads and a curl|sh install script; mind supply-chain and network provenance.
- SKILL.md appears truncated at the end (cut off mid-checklist); verify against the full file.
- Builds depend on crates.io and GitHub resources, which may be constrained from mainland-China networks.
What does this skill do, and when should you use it?
This skill ships inside the marmite repository and targets engineers who want to contribute to marmite's own codebase — not users building sites with marmite (that is the separate `marmite` skill). It codifies code quality rules (formatting, clippy, no unwrap/panic), a two-layer testing system (unit tests plus subprocess-based integration tests), backward-compatibility principles, documentation requirements, and a full contribution checklist. It also teaches agents to use marmite's built-in --show-urls, --init-site, and --new commands for development verification. The project is AGPL-3.0-or-later, Rust edition 2021, and uses the mask task runner.
Once read, it directs a developer or agent through: running mask fmt / mask check / mask pedantic for formatting and linting; running mask test across unit tests in src/tests/ and integration tests in tests/; adding config fields per the prescribed flow (serde default in config.rs + CLI flag in cli.rs + override wiring); running marmite --show-urls to compare URL output before and after refactors; scaffolding with marmite --init-site and marmite --new; keeping documentation in sync across example/content/ blog posts, example/ai/llms.txt, .agents/skills/marmite/references/ files, and draft release notes; and applying template/static changes to both the main theme and theme_template.
- A Rust developer preparing a PR to marmite who needs to know the project's formatting, clippy, testing, and documentation gates
- An AI agent tasked with implementing a new marmite feature that must update code, tests, and multiple docs in one pass
- A contributor fixing a bug who must add a reproducing test and update the draft release notes
- A developer adding a marmite.yaml config option who needs to also add the CLI flag, defaults, and reference docs
- A maintainer changing Tera templates who must keep the main theme and theme_template in sync
What are this skill's strengths and limitations?
- Comprehensive: code standards, two test layers, compatibility principles, documentation requirements, and checklists all in one place
- Copy-paste-ready commands and code patterns (config fields, template functions, integration test templates)
- Explicitly teaches agents to verify refactors with built-in tools like --show-urls
- Strong backward-compatibility emphasis (feature flags, serde defaults, no field/flag removal) reduces breakage risk
- Only useful for contributing to marmite's code; worthless for users building sites (that is the sibling marmite skill's scope)
- Hard dependency on the mask task runner and a Rust toolchain adds setup cost
- Pedantic clippy issues require maintainer confirmation, limiting full agent autonomy
How do you install this skill?
The skill is bundled in the marmite repository at .agents/skills/marmite-development/. Clone the repo and point any Agent Skills-compatible client at the SKILL.md in that folder. The marmite binary also offers --skill / --skill-install style commands for embedded skills (the README confirms the mechanism, though the source does not state whether this development skill is embedded).
How do you use this skill?
1) Install the mask task runner: cargo install mask. 2) Install the pre-commit hook: mask install_hook. 3) Build and preview the example site: mask serve (http://localhost:8000, WebSocket live reload). 4) After every change run mask fmt, mask check, mask test; before a PR also run mask pedantic and mask serve_theme. Example agent prompt: 'Add a --foo CLI flag to marmite and complete tests and docs per SKILL.md.'
How does this skill compare with similar options?
SKILL.md itself defines the split of labor with the site-building marmite skill: this one covers contributing code, the other covers building sites. The README names Zola, Cobalt, and Zine as alternative SSGs, but that is a product-level comparison irrelevant to this development skill.