Audience
- Casual contributors who want to build from source and verify changes locally before opening a PR.
- Maintainers who cut releases, manage CI, and own the build/test infrastructure.
- Operators who need reproducible builds for internal deployment.
Pages in this section
| Page | What it covers |
|---|---|
| Building from source | Local build, the make targets, Go version requirements, embedding a version string |
| CI and tests | The ci.yml workflow, what runs on every push and PR, how to reproduce CI failures locally |
| Releasing | The release.yml workflow, semver tag conventions, multi-arch binary + Docker image artifacts |
Repository layout (relevant to development)
deployment/ directory was removed in spec-43 Concern L. The Compose stack, K8s manifests, and auth-helper templates moved into the embedded scaffold tree under internal/project/scaffolds/templates/; the MCP server catalog moved to mcp-servers/ at the repo root.
Quick start
Development cycle
End-to-end loop from “I have an idea” to “users candocker pull it”:
Each arrow above is documented in detail:
- Spec → see
../fracta-specs/. Open or claim a number, writespec.mdandplan.md, get review before coding. - Code + test loop → Building from source. Reproducing CI locally → CI and tests.
- CI → runs on every push to
mainand every PR. Same page. - Cut a release → Releasing covers the whole tag-and-publish flow.
When to cut a release
Fracta releases are feature-driven, not calendar-driven. The rule of thumb:- MAJOR (
v1.0.0) — first stable; or a breaking change to the CLI, config schema, or public Go API afterv1. - MINOR (
v0.X.0) — new user-facing surface: a new command, a new scaffold mode, a new MCP catalog source form. Examples:v0.2.0shippedfracta config mcpand spec-42 scaffolds. - PATCH (
v0.X.Y) — bug fixes, doc improvements, dependency bumps with no behavior change.
main. Don’t release from feature branches except for hotfixes against an older v0.X line — see Backports and hotfixes.
Where the changelog lives
- GitHub Release notes — auto-generated from commit messages since the previous tag. This is the primary changelog for end users; it lands automatically on every release.
docs/contributing/changelog.md— the editorial changelog. Hand-curated for notable changes worth a longer explanation. Update it for any change that warrants more than a one-line commit subject.

