95 lines
3.9 KiB
Markdown
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.
|