Skip to content
Back to skills

Gz Constitute

ASecurity

Use to create or refresh governance constitution artifacts.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
testinggobashnode

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add tvproductions/gzkit --skill gz-constitute --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gz Constitute?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gz Constitute
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tvproductions-gz-constitute/badge)](https://www.skillsdirectory.com/skills/tvproductions-gz-constitute)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: gz-constitute
description: Use to create or refresh governance constitution artifacts.
category: governance-infrastructure
lifecycle_state: active
owner: gzkit-governance
last_reviewed: 2026-10-17
metadata:
  skill-version: "0.3.1"
model: opus
---

# gz constitute

## Overview


> **Self-Escalation (opus-tier).** The dialogue with the operator stays in the main session: a subagent cannot ask the operator a question or hear the answer, and what the operator adds is this skill's primary input. When the session model is below opus-tier, you may spawn an `Agent` with `model="opus"` for a bounded drafting or QC track that needs no operator input — pass the operator's words verbatim and the relevant context (ADR IDs, OBPI IDs, prior decisions), and treat what it returns as a draft you verify, not as the operator-facing result.

Scaffold a constitution, then fill it with the operator. `gz constitute <name>`
(`constitute` in `src/gzkit/commands/init_cmd.py`):

- requires an initialized project (`.gzkit.json`); otherwise it exits 1;
- canonicalizes `name` to `CONSTITUTION-<SLUG>-<semver>`: a leading
  `CONSTITUTION-` is dropped, a trailing `-X.Y.Z` becomes the semver (default
  `1.0.0`), and the rest is stripped to alphanumerics and upper-cased, so
  `charter` becomes `CONSTITUTION-CHARTER-1.0.0` (GHI #216). A name with no
  alphanumeric character exits 1;
- renders the `constitution` template (`src/gzkit/templates/constitution.md`)
  with `status: Draft`, today's date and `--title` (default: the id) into
  `<paths.constitutions>/<id>.md`;
- appends one `constitution_created` ledger event, which makes the id a node in
  the `gz state` graph.

The scaffold holds placeholder principles and rules; the content comes from the
operator. It does not check for an existing file: a name that canonicalizes to
an existing id overwrites that file and appends a second event. `--dry-run`
prints the path and event it would write, whether or not the file exists, and
writes nothing.

## Workflow

1. Preview: `uv run gz constitute <name> --dry-run`. If the printed path already
   exists, stop — that constitution is revised in place, not re-scaffolded.
2. Create it: `uv run gz constitute <name> [--title "<title>"]`.
3. Draft each section the template requires with the operator — Purpose, Scope,
   Principles, Rules (requirement, rationale, verification), Exceptions,
   Amendments — using the operator's words. `required_headers` in
   `src/gzkit/schemas/constitution.json` is the authority for the sections and
   the permitted `status` values.
4. Validate: `uv run gz validate --documents` checks the frontmatter and
   headers against that schema. Capture the output to a file and read `$?`
   straight after it.
5. Report the id, path and validation result. Changing `status` from `Draft`
   is the operator's ratification, not the agent's.

## Example

```bash
uv run gz constitute charter --dry-run
uv run gz constitute charter --title "Project Charter"
uv run gz validate --documents
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.