ad-hoc-profile-load
Legacy alias for resolver-backed profile loading. Use the canonical spk-doctrine-profile-load…
Drive REASONS Canvas authoring and review for Spec Kitty missions that opted in to Structured-Prompt-Driven Development (SPDD) via charter selection. Triggers: "use SPDD", "use REASONS", "generate a REASONS canvas", "apply structured prompt driven development", "make this
$ npx -y skills add spec-kitty/spec-kitty --skill spec-kitty-spdd-reasons --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/spec-kitty-spdd-reasonsContext preview
The summary Claude sees to decide when to auto-load this skill.
Drive REASONS Canvas authoring and review for Spec Kitty missions that opted in to Structured-Prompt-Driven Development (SPDD) via charter selection. Triggers: "use SPDD", "use REASONS", "generate a REASONS canvas", "apply structured prompt driven development", "make this
name: spec-kitty-spdd-reasons description: >- Drive REASONS Canvas authoring and review for Spec Kitty missions that opted in to Structured-Prompt-Driven Development (SPDD) via charter selection. Triggers: "use SPDD", "use REASONS", "generate a REASONS canvas", "apply structured prompt driven development", "make this mission SPDD". Does NOT handle: enforcing SPDD on projects whose charter has not selected the doctrine pack (escalate to charter workflow instead). Does NOT mirror code as prose; code remains the source of truth for current behavior.
Drive REASONS Canvas authoring and review for missions that opted in to Structured-Prompt-Driven Development (SPDD) via charter selection. The canvas is a thin, agent-curated reasoning layer that sits next to the spec, plan, and tasks; it is **not** a duplicate system mirror.
This skill is documentation for the agent. It assumes the SPDD/REASONS doctrine pack (paradigm, tactics, styleguide, directive, template) has already been shipped under `src/charter/offering/` and that activation can be detected via the helper described below.
---
charter context, glossary, research notes, contracts, and relevant code.
seven-section template fragment.
for one (a focused slice of the canvas scoped to a single work package).
classifies divergences using the drift taxonomy.
artifacts; it does not duplicate them. Code remains the source of truth for current behavior.
section already contains user content, the skill **merges** by appending or refining, never by silent rewrite.
charter. If the user demands enforcement and the charter is not configured, escalate to the charter workflow.
Three branches:
1. **Active** — charter selected the SPDD/REASONS pack (paradigm `structured-prompt-driven-development`, tactic `reasons-canvas-fill`, tactic `reasons-canvas-review`, or directive `DIRECTIVE_038`). Proceed with canvas authoring or review using the seven-section template at `src/charter/offering/templates/fragments/reasons-canvas-template.md`. 2. **Inactive + ad-hoc request** — user asked to "use REASONS" once, without charter opt-in. Proceed, but stamp the canvas header with a "not formally opted in via charter" note so reviewers know the canvas is advisory only. 3. **Inactive + enforcement demand** — user wants REASONS enforced as a gate but the charter has not selected the pack. Do NOT enforce. Escalate to the charter workflow: suggest running the charter interview to add the paradigm or directive, then return to this skill.
Programmatic (preferred):
from charter.offering.spdd_reasons.activation import is_spdd_reasons_active active = is_spdd_reasons_active(repo_root)
The helper inspects the project's active charter -- the top-level `activated_paradigms`, `activated_tactics` and `activated_directives` keys in `.kittify/config.yaml`, or in the `charter.yaml` its `charter:` pointer names -- and returns `True` iff any of the four selectors is in force:
Manual fallback: read `.kittify/config.yaml` (or the `charter.yaml` its `charter:` pointer names) directly and look for the same selectors under `activated_paradigms`, `activated_tactics`, or `activated_directives`. An absent (or `null`) key means every built-in artifact of that kind is in force, so it counts as a match: a project with no `activated_paradigms` key has SPDD active. SPDD is off only when all three keys are present and none of them lists its selector (or when `.kittify/config.yaml` does not exist).
1. **Read mission artifacts**: `kitty-specs/<mission>/spec.md`, `plan.md`, `tasks.md`, per-WP prompts, `research/*`, `contracts/*`, the project glossary, and any source files the spec or plan calls out. 2. **Map content to the seven sections** using the template at `src/charter/offering/templates/fragments/reasons-canvas-template.md`:
terms.
ownership boundaries.
things not to break. 3. **Link, don't duplicate**: prefer `[see spec.md §X](../spec.md#x)` over inlining spec content. The canvas is a reasoning layer, not a copy. 4. **Preserve user content**: if the canvas already exists, read it before writing. Merge new content into existing sections; never blow away user-authored prose. 5. **Append-only Deviations**: the `## Deviations` section is append-only. New entries go at the bottom in the form `- <date> — <wp> — <description> — <rationale>`. Never rewrite or re-order existing entries.
Output path: `kitty-specs/<mission>/reasons-canvas.md`.
Comparison-mode review pairs an implementati
Spec-Driven Development with organizational governance. Specs tell AI agents what to build; Charter governs how they build it. Git-native missions, enforceable workflows, and consistent engineering standards across AI coding agents and harnesses.
Legacy alias for resolver-backed profile loading. Use the canonical spk-doctrine-profile-load…
Deploy a bounded, profile-loaded adversarial review squad at a mission point-cut so…
Recognize when a mission is a bulk edit and drive the occurrence-classification guardrail on…
Run charter interview, generation, context, and sync workflows for project governance in Spec…
Understand how Spec Kitty manages git: what git operations Python handles automatically, what…
Curate and apply canonical terminology across Spec Kitty missions. Triggers: "update the…