> ## Documentation Index
> Fetch the complete documentation index at: https://tashfiq.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Product updates and announcements for Charter.

<Update label="June 2026" description="v1.0.0" tags={["Release"]}>
  The first stable release. Full v1 rule set, seven commands, and CI integration. Everything needed to score a repo, understand the findings, fix what's auto-fixable, and gate CI on the result.

  <CardGroup cols={2}>
    <Card title="18 Rules" icon="layout-grid">
      Complete v1 rule set across context, secrets, MCP safety, agent config, environment, CI, testing, autonomy, and governance. Full reference at [/rules/overview](/rules/overview).
    </Card>

    <Card title="7 Commands" icon="terminal">
      `init` · `doctor` · `explain` · `report` · `fix` · `suppress` · `version` — everything from first scaffold to CI gate.
    </Card>

    <Card title="GitHub Action" icon="git-branch">
      `use-charter/charter-action@v1` — runs `charter doctor`, uploads SARIF to GitHub Code Scanning, and fails the check at your configured threshold.
    </Card>

    <Card title="HTML Report" icon="file-analytics">
      Self-contained offline HTML report with embedded fonts. WCAG 2.2 AA compliant. No server required — share the file directly.
    </Card>
  </CardGroup>

  ### Commands

  * `charter doctor` — full scan with styled TTY output, interactive TUI (`-i`), SARIF / JSON / Markdown / HTML output
  * `charter init` — scaffold missing agent context files in under 2 minutes
  * `charter fix` — diff-first auto-fix for `AE-CTX-001`, `AE-CTX-004`, `AE-CI-002`, `AE-MCP-001`
  * `charter report` — self-contained offline HTML report (WCAG 2.2 AA, embedded fonts)
  * `charter explain` — rule metadata lookup by rule ID
  * `charter suppress` — governed suppression with reason, expiry, and approver fields
  * `charter version` — build metadata (version, commit, date, Go version, platform)

  ### Score formula

  ```text theme={null}
  score = max(0, 100 − B×20 − H×10 − M×4 − L×1)
  final = min(score, applicable_cap)
  ```

  Hard caps: raw secret → `≤ 49`, any Blocker → `≤ 59`. Fixed for the v1 major version.

  ### Distribution

  * **Homebrew:** `brew install use-charter/tap/charter`
  * **GitHub Action:** `use-charter/charter-action@v1`
  * **Signed releases:** cosign keyless signing, SLSA Level 3 provenance, SPDX 2.3 SBOM on every build artifact
</Update>
