tz

Authors change requirements as OpenSpec change directories with proposals, spec deltas, and task checklists.

Updated Jul 28, 2026
One-click install
npx skills add https://github.com/CybernetKZ/sdd-kit --skill tz-cybernetkz
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: tz
Source: https://github.com/CybernetKZ/sdd-kit/tree/main/profiles/conversation_flow/.claude/skills/tz
Command: npx skills add https://github.com/CybernetKZ/sdd-kit --skill tz-cybernetkz

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing a change requirement ("ТЗ") for the HubTalk AI Conversation Flow project requires a strict, multi-artifact format: a numbered OpenSpec change directory with a proposal, spec deltas, and acceptance tasks. This Skill enforces that structure so requirements are consistent, reviewable, and traceable across the migration branch and main. ## Core Features & Use Cases - Numbered change authoring: Computes the next free ТЗ number from four sources (changelog, local patches, origin/main patches, existing changes) and creates openspec/changes/tz-NNN-<slug>/ with proposal.md, spec deltas, and tasks.md. - Spec delta rules: Enforces OpenSpec delta conventions (ADDED/MODIFIED Requirements, Scenario blocks, id/entities/enforced metadata whitelist, MODIFIED identity rules) so changes validate and archive cleanly. - Gate-driven workflow: Integrates with the pipeline /tz -> /tz-review -> plan-griller -> test-author -> /tz-implement, including tier selection (light/standard/deep) and pre-submission checks via scripts/sdd/check.sh and lint_brand.py. - Use Case: A developer is asked to write a requirement for a new voice-flow fix; the Skill scouts the codebase, picks number tz-101, drafts the proposal with Why/What Changes/Grill/Тир sections, writes the spec delta against the affected capability, and lists acceptance tasks. ## Quick Start Ask the assistant to write a ТЗ (change requirement) for your feature or defect using the tz skill, providing the ticket or defect context.

Frequently Asked Questions about tz

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a change requirement as an OpenSpec change?▼

Create a directory openspec/changes/tz-NNN-<slug>/ containing proposal.md with the mandated sections (Why, What Changes, Grill, Тир), a spec delta under specs/<capability>/spec.md with ADDED or MODIFIED Requirements, and tasks.md with acceptance checkboxes. The Skill computes the next free number and enforces the structure.

How is the next ТЗ number determined?▼

The number is the maximum across four sources: the changelog in docs/DOCUMENTATION.md, local docs/patches/, origin/main docs/patches/ via git ls-tree, and existing openspec/changes entries. All four must be checked because main keeps creating patches in parallel with the migration branch.

What metadata keys are allowed in OpenSpec requirements?▼

Exactly three HTML-comment keys are permitted: id, entities, and enforced. Any other key such as verify or note triggers an unknown_key violation in spec-lint, and ids must be unique across the canon to avoid duplicate_id errors.

Does the enforced anchor need to resolve to existing code?▼

For existing files, the anchor must reference a real existing symbol that the change modifies. For files created by the change itself, a planned path and symbol are allowed, but tasks.md must include the task that creates them and the proposal must note the file is new.

What validation gates run before submitting a change?▼

Run scripts/sdd/check.sh, which executes openspec validate --all --strict and spec-lint.py, plus lint_brand.py for brand-clean text. Spec-lint findings on deltas are advisory by default unless SPEC_LINT_STRICT=1 is set.

When should the light tier be used instead of standard?▼

Use light tier for point fixes or regressions: it needs only a minimal proposal with one Requirement and one Scenario, and the grill step is skipped. Tests are still written by test-author before any code, and all other gates remain identical.