Skip to content

Design: v1.0.0 Rebirth — Clean Open Source Launch

Date: 2026-06-22 Status: Approved Author: Alexandr Narbaev

Goal

Squash entire git history into a single initial commit (v1.0.0), restructure the project directories for cleaner open source presentation, add all standard open source documentation files, force-push to GitHub as a fresh project.

Motivation

The project evolved through 36 internal iterations (v17 → v36.0.1) with accumulated history, plans, and research that should not be part of the public initial commit. A clean v1.0.0 launch presents the project professionally, with proper open source documentation from day one.

Design Decisions

1. Versioning: v1.0.0

Semantic versioning from scratch. The 36 iterations of internal development are acknowledged in README/CHANGELOG but not in git history.

2. Full History Erasure

  • All old tags (v33.9, v33.10, v35.0) deleted from GitHub remote
  • Single orphan commit as the new root
  • Force push to main

3. Directory Restructuring

Before → After:

Old Path New Path Reason
lib/ src/lib/ Core code under src/
modes/ src/modes/ Core code under src/
plans/ docs/plans/ Plans are documentation
research/ docs/research/ Research is documentation
ai-router.sh scripts/ai-router.sh Utility, not core
ai-router.json scripts/ai-router.json Utility, not core
setup.sh setup.sh (root) Entry point, must stay
dev.sh dev.sh (root) Entry point
opencode.json opencode.json (root) OpenCode requirement
.opencode/ .opencode/ (root) OpenCode requirement

4. New Files

File Content
CHANGELOG.md Keep a Changelog format, starts at v1.0.0
.editorconfig UTF-8, LF, 2-space shell, 4-space md/json
.gitattributes LF enforcement, linguist-vendored, export-ignore
.github/ISSUE_TEMPLATE/bug_report.md GitHub issue form
.github/ISSUE_TEMPLATE/feature_request.md GitHub issue form
.github/PULL_REQUEST_TEMPLATE.md Checklist from CONTRIBUTING.md
FUNDING.yml GitHub Sponsors link
CITATION.cff BibTeX-compatible citation

5. Updated Files

File Changes
setup.sh lib/ → src/lib/, modes/ → src/modes/
dev.sh lib/ → src/lib/
All lib/*.sh Relative source paths updated
tests/ Paths updated
README.md Version v1.0.0, updated structure, fresh tone
CONTRIBUTING.md Updated paths, v1.0.0 references
.gitignore Remove plans/, research/, add ai-router.* exclusion
AGENTS.md Updated structure and version

6. Files NOT Changed

  • LICENSE (MIT) — stays as is
  • CODE_OF_CONDUCT.md — stays as is
  • SECURITY.md — stays as is
  • opencode.json — stays as is
  • .opencode/ — stays as is
  • All 24 lib modules content (only paths updated)
  • All 4 mode scripts content (only paths updated)
  • All 15 test files content (only paths updated)
  • All 18 docs files content (only relocated)
  • CI workflows

Git Operations (Sequence)

1. LOCAL BACKUP:    git tag archive/pre-v1.0.0 HEAD
2. DELETE REMOTE TAGS: git push github --delete v33.9 v33.10 v35.0
3. RESTRUCTURE:      mv lib/ src/lib/, mv modes/ src/modes/, etc.
4. UPDATE PATHS:     sed in all .sh files
5. CREATE DOCS:      CHANGELOG, .editorconfig, templates, etc.
6. ORPHAN COMMIT:    git checkout --orphan temp && git add -A
7. COMMIT:           git commit -m "v1.0.0: Initial public release"
8. TAG:              git tag v1.0.0
9. FORCE PUSH:       git push --force github main --tags
10. CLEANUP:         git branch -D main && git branch -m temp main

Acceptance Criteria

  • All source paths updated (lib/ → src/lib/, modes/ → src/modes/)
  • bash -n setup.sh passes
  • bash -n dev.sh passes
  • All lib/*.sh pass bash -n
  • All modes/*.sh pass bash -n
  • All tests pass (tests/run_tests.sh)
  • ShellCheck passes on all .sh files
  • Single commit in git history
  • Tag v1.0.0 exists
  • All 8 new files created with correct content
  • GitHub remote has only v1.0.0 tag, no old tags
  • GitHub remote has single commit on main
  • README.md reflects v1.0.0
  • CHANGELOG.md starts with v1.0.0 entry
  • .editorconfig valid
  • .gitattributes valid
  • .gitignore updated (no plans/ or research/ exclusion)