# SpryGit dev-handover: requirements inputs (pinned, document not yet written)

**Date:** 2026-07-25. **Status:** PINNED / inputs only. No requirements have been
drafted. This file exists so the work resumes without re-derivation.

STATUS: PINNED, not started. The operator ruled 2026-07-25: "Hold the SpryGit document
creation until after we finish up the Code handover but make sure it is pinned so we can
continue it shortly." This handoff pack IS the Code handover, so SpryGit is the next Chat
deliverable.

## What is being produced

A DEV HANDOVER DOCUMENT for the in-house SpryGit team: a full feature list covering
basic functions, advanced functions, protocols, API surface, and other requirements,
scoped so the product has everything needed for proper integration into this stack and
the processes being developed here.

## Why it is sequenced after this pack, and why it matters more than a wishlist

The operating model pinned in item 70 has a REAL DEPENDENCY on git-host capability that
GitBucket does not meet. SpryGit's requirements are therefore not speculative -- they are
derived from a concrete pipeline this project is about to build. Known inputs already
identified:

- CI/runner: GitBucket has no Actions-style runner, which is the gap blocking "the
  renderer runs automatically" (item 70 section 5).
- SSH access: deferred to v2 on GitBucket; the current workaround is HTTPS basic auth.
  An automated push needs a credential posture better than that.
- Merge-request review as the APPROVAL GATE (item 70 section 2) -- the diff is the change
  request, so review, required approvals, and merge policy are load-bearing, not
  cosmetic.
- Group/path semantics: this repo has already moved once (D-110), and the skill's rule is
  never to hardcode its path. Redirects on move are a requirement, not a nicety --
  GitBucket's lack of one cost a failed clone at the start of the 2026-07-25 Chat
  session.
- The browse-URL-vs-clone-URL trap: GitBucket's browse URL yields a silent empty clone.
- Airgap/mirror behaviour per D-107.

## Sources the operator authorised

Current products in use, project knowledge, and online research into other git products'
feature sets.

## Not started

No requirements have been drafted. Nothing in this file is a requirement list -- it is
the pin plus the inputs already known, so the work resumes without re-derivation.
