Logo FS-Skia-UI

ADR 0004 — Spec Kit fork stance (D4)

Context

The repository builds on upstream Spec Kit. It already customises Spec Kit through an overlay, not a hard fork: vanilla Spec Kit assets live under .specify/templates/ and .specify/scripts/, while repo-specific behaviour is layered as extensions (.specify/extensions/evidence, .specify/extensions/git) and presets (.specify/presets/fsharp-opinionated/), with the skill mirror under .claude/skills.agents/skills. The question: should the programme hard fork Spec Kit upstream, or continue the overlay/extension model?

Decision

Do not hard-fork upstream Spec Kit. Track upstream and customise through the existing extension + preset overlay. Concretely:

  1. Keep vanilla Spec Kit assets vendored under .specify/ so upstream updates remain mergeable with minimal conflict surface.
  2. Express all repo-specific behaviour as extensions (.specify/extensions/* with their own extension.yml, scripts, and commands) and presets (.specify/presets/*), never by editing vendored upstream files in place where an overlay point exists.
  3. The Codex (.agents/skills) and Claude (.claude/skills) skill sets are maintained as byte-identical synchronized peers (validated as such), not divergent forks.

Alternatives considered

Consequences / rationale

Stages shaped

Verification in feature 039

Stance recorded only; no Spec Kit assets, extensions, or presets are modified by this feature (plan Constitution Check: "no Spec Kit assets" changed).

Type something to start searching.