Files
scriptorium/docs/roadmap/step5.md

3.9 KiB

Migration Step 5: Promptkit Repository Foundation

Status

Complete as of 2026-07-28.

Purpose

Establish Promptkit as an independent, maintainable Go library repository ready to receive framework extraction in Migration Step 6 without moving framework behavior prematurely.

The main migration roadmap owns the overall sequence. ADR 0002 owns the repository boundary, module path, versioning direction, and cross-repository ordering. ADR 0003 owns the maintainer-run validation and tag-only release decision.

Completed Work

Repository And Module Foundation

  • Confirmed the Promptkit repository, maintainer governance, configured origin, and main tracking of origin/main.
  • Created dependency-free module gitea.maximumdirect.net/eric/promptkit with Go 1.25.5.
  • Added the root promptkit package as the sole implemented Go package and public package boundary.
  • Added no framework implementation, exported API, internal package, speculative package tree, command, workspace file, or local replacement.
  • Retained GPLv3 and changed only the two template project names in its example notices to Promptkit.

Durable Repository Guidance

  • Replaced application-template architecture, documentation, and testing policies with library-specific policies.
  • Recorded the root package as the only implemented component and kept future framework boundaries explicitly unimplemented.
  • Rewrote repository orientation and contributor workflow for the Promptkit module.
  • Documented deterministic, offline, parallel-safe, maintainer-run validation.
  • Documented temporary sibling workspace and uncommitted replacement workflows without committing machine-local coupling.
  • Added a semantic Go module tag release procedure with no runnable binaries or hosted CI.

Decision Reconciliation

  • Accepted ADR 0003 as the later controlling decision for Promptkit validation while leaving ADR 0002 Accepted and its repository-split decision unchanged.
  • Reconciled the main migration roadmap with maintainer-run validation, tag-only releases, and the requirement that Promptkit publish its first versioned tag before Scriptorium adopts it.

Acceptance Record

From a clean Promptkit checkout with no active Go workspace or local replacement, the maintainer successfully ran:

go test ./...
go vet ./...
go build ./...
gofmt -l $(git ls-files '*.go')
git diff --check

The formatting command produced no paths. Acceptance also confirmed:

  • module path gitea.maximumdirect.net/eric/promptkit, Go 1.25.5, root package promptkit, and matching import path;
  • no external dependency, go.sum, go.work, go.work.sum, or replace directive;
  • no hosted CI configuration, command package, release artifact, version tag, or placeholder framework package;
  • every maintained Markdown link resolves;
  • repository orientation, policies, inventory, contributor workflow, and release procedure are internally consistent and free of template residue;
  • the configured origin belongs to Promptkit and main tracks origin/main;
  • GPLv3 wording and attribution remain unchanged apart from the two approved Promptkit example-notice names; and
  • Scriptorium contains only the decision and roadmap documentation required for this foundation work, with no production code or module dependency change.

Scope Boundary And Next Gate

No framework implementation or public framework API was extracted, no consumer was migrated, and no v0.1.0 tag was created. Promptkit remains an independently valid repository foundation.

Migration Step 6 is now authorized to extract and stabilize the framework. It must pass Promptkit's documented validation and publish the first versioned tag before Scriptorium or another consumer adopts the module.