11 releases
Uses new Rust 2024
| 0.4.14 | Mar 22, 2026 |
|---|---|
| 0.4.13 | Mar 22, 2026 |
| 0.4.5 | Feb 25, 2026 |
#282 in Internationalization (i18n)
7,088 downloads per month
Used in 31 crates
(7 directly)
190KB
5K
SLoC
Greentic QA
This repository hosts the Greentic QA toolkit: qa-spec for defining QA forms/flows, component-qa as a wasm component, greentic-qa for authoring, and qa-wizard-pack for deployable wizard automation.
Repository structure
greentic-qa/
.codex/
global_rules.md
SECURITY.md
LICENSE.md
README.md
ci/
crates/
qa-spec/
component-qa/
qa-cli/ (greentic-qa CLI)
packs/
qa-wizard-pack/
Getting started
- Run
ci/local_check.shto verify formatting, linting, and tests. - Each crate is a workspace member; building the workspace checks all executable components.
- Follow the PR bundle in
.codex/QA-PR-*.mdfor the incremental implementation plan.
Governance
- Review
.codex/global_rules.mdbefore adding features (CLI scaffolding, secrets, visibility, and persistence policies are enforced there). - Secrets are default-deny; use
secrets-policyhelpers once implemented. - Wizard outputs default to event emission; enable dev-mode explicitly via
QA_WIZARD_OUTPUT_DIRunder an allowed root.
greentic-qa CLI
greentic-qa wizard --spec <form.json>runs the text-based component wizard against a FormSpec.- Optional i18n flags:
--locale <LOCALE>--i18n-resolved <file.json>(flat JSON object map of string keys to string values)--i18n-debug(adds debug metadata for compatible frontends)
- Optional i18n flags:
greentic-qa new [--out <dir>] [--force]walks through metadata and question prompts, then emits the bundle of forms/flows/examples/schemas (stored under<dir>/<dir_name>). If--outisn’t provided the command usesQA_WIZARD_OUTPUT_DIR(or falls back to the current working directory). The CLI refuses to overwrite an existing bundle unless you pass--force.greentic-qa generate --input <answers.json> [--out <dir>] [--force]consumes a JSON payload (seeci/fixtures/sample_form_generation.json) and regenerates the bundle non-interactively. It respectsQA_WIZARD_OUTPUT_DIR/QA_WIZARD_ALLOWED_ROOTSso you can run it as the dev-mode writer while ensuring file writes stay under the allowed roots.greentic-qa validate --spec <form.json> --answers <answers.json>validates stored answers and prints the error summary.
Smoke tests rely on ci/scripts/smoke.sh, which reads the fixture above and runs greentic-qa generate to build a sample bundle. The generated bundle includes the derived README plus the JSON artifacts that you can reuse in other repositories or packs.
component-qa compatibility notes
- The interface remains single-version and backward-compatible.
- Config input accepts:
- raw
FormSpecJSON (legacy/direct) - config envelope with
form_spec_json - optional
include_registry(form_ref -> form spec JSON) for include expansion.
- raw
- Runtime context accepts:
- direct context payload (legacy)
- additive envelope style with
ctxobject.
- i18n rendering can consume:
ctx.localectx.i18n_resolvedmap- optional debug flag
ctx.i18n_debug(orctx.debug_i18n) for card metadata.
Dependencies
~19–27MB
~546K SLoC