Files
scriptorium/docs/roadmap/step5.md

95 lines
3.9 KiB
Markdown

# 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](migration.md) owns the overall sequence.
[ADR 0002](../adr/0002-split-promptkit-from-scriptorium.md) owns the repository
boundary, module path, versioning direction, and cross-repository ordering.
[ADR 0003](../adr/0003-use-maintainer-run-validation-and-tag-only-releases-for-promptkit.md)
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:
```sh
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.