601 lines
27 KiB
Markdown
601 lines
27 KiB
Markdown
# CC Runbook — Day 0 Minus 1: OSS Push Gate + Track A Tag Ceremony
|
||
|
||
> [!CAUTION]
|
||
> **ARCHIVED / SUPERSEDED — DO NOT EXECUTE.** This May 2026 runbook predates
|
||
> the curated-forward-port security boundary. Every raw subtree/export-branch
|
||
> publication command below is invalid and retained only as historical audit
|
||
> evidence. The only authoritative OSS process is `AGENTS.md` §7.5 plus
|
||
> `packages/hive-mind-core/CONTRIBUTING.md`.
|
||
|
||
**Brief ID:** `cc-day-0-minus-1-runbook-v2` (amended 2026-05-05 sa NPM republish sekcijom posle CC PM-sync survey nalaza #1)
|
||
**Date:** 2026-05-05 (v1) + amendment 2026-05-05 (v2)
|
||
**Author:** PM
|
||
**Status:** ARCHIVED / SUPERSEDED (was ratified under the invalidated May 2026 model)
|
||
**Stream:** Solo CC sesija (sequential, ne paralelno) — izvršiti dan pre javnog Waggle launch-a
|
||
**Wall-clock:** 75-110 min ukupno (30-45 min push gate + 15-20 min NPM republish + 15 min tag ceremony + 10-15 min verifikacija + 10 min rollback drill)
|
||
**Cost cap:** $8 hard / $5 halt / $1-3 expected (pure git + npm ops, minimal LLM)
|
||
**Authority chain:**
|
||
- `decisions/2026-04-30-pre-launch-sprint-consolidation-LOCKED.md` (binds Day 0 sequencing)
|
||
- `decisions/2026-04-30-branch-architecture-opcija-c.md` (binds OSS subtree split distribution)
|
||
- `briefs/2026-04-30-cc-sesija-B-hive-mind-monorepo-migration.md` (predecessor: monorepo migration scope)
|
||
- `feedback_sha_verification_discipline` (SHA reference discipline)
|
||
- `feedback_dangling_commit_hygiene` (rescue-before-rebase)
|
||
- `project_pre_launch_sprint_2026_04_30.md` memory entry (Day 0 ETA window 2026-05-08 do 2026-05-12)
|
||
|
||
---
|
||
|
||
## §0 — Pre-flight gates (BLOCKING — must PASS before §1)
|
||
|
||
### §0.1 — Repo state verification
|
||
|
||
CC mora dokumentovati u `evidence/2026-MM-DD-day-0-minus-1-evidence.md` (datum trenutka izvršenja):
|
||
|
||
1. **waggle-os repo state.** Pokrenuti i logovati:
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
git fetch origin
|
||
git status --short --branch
|
||
git log --oneline -10
|
||
git branch -vv
|
||
git tag --list "v0.1.0-*"
|
||
```
|
||
|
||
**PASS criteria:** `main` u sync-u sa `origin/main` (0 ahead / 0 behind). Ako `main` ahead origin — `git push origin main` PRVI korak pre §1. Ako `main` behind origin — STOP, halt-and-PM, neko je push-ovao van plana.
|
||
|
||
2. **Verify SHA references su sveže.** Pokrenuti:
|
||
```powershell
|
||
git rev-parse main
|
||
git rev-parse feature/apps-web-integration
|
||
git rev-parse feature/hive-mind-monorepo-migration
|
||
git rev-parse feature/gaia2-are-setup
|
||
git rev-parse faza-1-audit-r
|
||
foreach ($b in @('oss-hive-mind-cli-export','oss-hive-mind-core-export','oss-hive-mind-mcp-server-export','oss-hive-mind-wiki-compiler-export','oss-hive-mind-shim-core-export','oss-hive-mind-hooks-claude-code-export','oss-hive-mind-hooks-claude-desktop-export','oss-hive-mind-hooks-codex-export','oss-hive-mind-hooks-codex-desktop-export','oss-hive-mind-hooks-cursor-export','oss-hive-mind-hooks-hermes-export','oss-hive-mind-hooks-openclaw-export')) { git rev-parse $b }
|
||
```
|
||
|
||
**Reference SHAs as of 2026-05-05** (verify drift):
|
||
- `main` = `ceeb601` (Clerk dark theme element overrides)
|
||
- `feature/apps-web-integration` = `447f5ac`
|
||
- `feature/hive-mind-monorepo-migration` = `a10867c` (already pushed origin)
|
||
- `feature/gaia2-are-setup` = `104aa5a`
|
||
- `faza-1-audit-r` = `639752e`
|
||
- `oss-hive-mind-cli-export` = `42dfe08`
|
||
- `oss-hive-mind-core-export` = `4f5f885`
|
||
- `oss-hive-mind-mcp-server-export` = `d52ef97`
|
||
- `oss-hive-mind-wiki-compiler-export` = `c60dc11`
|
||
- `oss-hive-mind-shim-core-export` = `4eba6c2`
|
||
- `oss-hive-mind-hooks-claude-code-export` = `149bc69`
|
||
- `oss-hive-mind-hooks-claude-desktop-export` = `12f5322`
|
||
- `oss-hive-mind-hooks-codex-export` = `43e442c`
|
||
- `oss-hive-mind-hooks-codex-desktop-export` = `b45de70`
|
||
- `oss-hive-mind-hooks-cursor-export` = `11195cf`
|
||
- `oss-hive-mind-hooks-hermes-export` = `410f773`
|
||
- `oss-hive-mind-hooks-openclaw-export` = `5002736`
|
||
|
||
**PASS criteria:** Sve grane postoje. Ako se SHA-vi razlikuju od reference — to znači da je posle 2026-05-05 bilo dodatnih commit-a, što je legitimno; LOCKED su grane koje postoje, ne tačni SHA-vi. Logovati razlike.
|
||
|
||
3. **hive-mind javni repo state.** Pokrenuti:
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git fetch origin
|
||
git status --short --branch
|
||
git log --oneline origin/master -10
|
||
git tag --list
|
||
```
|
||
|
||
**PASS criteria:** `master` postoji, last push pre 30 dana (per GitHub API created 2026-04-18, last push 2026-04-29). Ako je novije — neko (verovatno Marko) već push-ovao deo OSS sadržaja, prilagoditi §3 plan da ne overwrite-uje.
|
||
|
||
4. **Dangling commits check** (per `feedback_dangling_commit_hygiene`).
|
||
```powershell
|
||
cd D:\Projects\waggle-os; git fsck --lost-found
|
||
cd D:\Projects\hive-mind; git fsck --lost-found
|
||
```
|
||
|
||
**PASS criteria:** Nema dangling commit-a. Ako postoji bilo koji — STOP, kreirati `<sprint-name>-archive` granu + push origin pre §1, zatim ponovo verify.
|
||
|
||
### §0.2 — Authentication verification
|
||
|
||
CC mora potvrditi da `git push` radi za oba remote-a:
|
||
|
||
```powershell
|
||
cd D:\Projects\waggle-os; git ls-remote origin | Select-Object -First 3
|
||
cd D:\Projects\hive-mind; git ls-remote origin | Select-Object -First 3
|
||
```
|
||
|
||
**PASS criteria:** Bez auth promp-a, listings vraćeni. Ako prompt → halt-and-PM, Marko mora obnoviti PAT ili SSH key (per memory `feedback_sha_verification_discipline` napomena 90-day PAT expiry 2026-07-15).
|
||
|
||
### §0.3 — Working tree čistoća
|
||
|
||
```powershell
|
||
cd D:\Projects\waggle-os; git status --short | Where-Object { $_ -notmatch "^\?\?" }
|
||
```
|
||
|
||
**PASS criteria:** Output prazan ili samo CRLF/whitespace `M` entries (poznati hronični noise iz Windows ↔ Linux mount-a, per `project_execution_state.md`). Ako bilo kakvi pravi tracked changes — STOP, halt-and-PM, neko ima nekomitovan rad.
|
||
|
||
---
|
||
|
||
## §1 — Push gate Faza A: hive-mind monorepo grana (5 min)
|
||
|
||
`feature/hive-mind-monorepo-migration` na SHA `a10867c` već postoji na originu (`origin/feature/hive-mind-monorepo-migration`). Provera:
|
||
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
git fetch origin
|
||
git log --oneline origin/feature/hive-mind-monorepo-migration -3
|
||
```
|
||
|
||
**Akcije:**
|
||
|
||
1. Ako `origin/feature/hive-mind-monorepo-migration` SHA = local SHA `a10867c` → ništa ne raditi, napomenuti u evidence "already in sync".
|
||
2. Ako local ahead → `git push origin feature/hive-mind-monorepo-migration` i logovati output.
|
||
3. Ako local behind → STOP, halt-and-PM (neko je push-ovao van plana, treba review).
|
||
|
||
**Halt-and-PM signal:** bilo koji push error iz GitHub API (rate limit, auth fail, branch protection rule).
|
||
|
||
---
|
||
|
||
## §2 — Push gate Faza B: 12 OSS export grana (15-20 min)
|
||
|
||
> **INVALIDATED SECTION — DO NOT RUN OR ADAPT THESE COMMANDS.** Raw
|
||
> `oss-*-export` refs have the wrong public layout and can include proprietary
|
||
> files plus interleaved `install_audit` logic. A reviewed, maintainer-curated
|
||
> forward-port from the private monorepo is required instead.
|
||
|
||
Ovo su subtree split grane koje rebrendiraju istoriju packages-a kao samostalne repo-e za hive-mind javnu distribuciju. Push redosled je bitan zbog dependency hijerarhije.
|
||
|
||
### §2.1 — Validacija subtree split aktualnosti
|
||
|
||
Pre push-a, CC mora potvrditi da je subtree split run protiv najsvežijeg `feature/hive-mind-monorepo-migration` SHA. Ako su OSS export grane starije od `a10867c` (per `git log --oneline <branch> -1`), potreban je rerun:
|
||
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
foreach ($pkg in @('hive-mind-core','hive-mind-cli','hive-mind-mcp-server','hive-mind-wiki-compiler','hive-mind-shim-core','hive-mind-hooks-claude-code','hive-mind-hooks-claude-desktop','hive-mind-hooks-codex','hive-mind-hooks-codex-desktop','hive-mind-hooks-cursor','hive-mind-hooks-hermes','hive-mind-hooks-openclaw')) {
|
||
$branch = "oss-${pkg}-export"
|
||
Write-Output "=== $branch ==="
|
||
git log --oneline $branch -1
|
||
}
|
||
```
|
||
|
||
**Decision rule:** Ako bilo koji branch izlistava SHA stariji od `a10867c` (provera kroz `git merge-base --is-ancestor`), pokrenuti rerun po §2.6 specifikaciji u `briefs/2026-04-30-cc-sesija-B-hive-mind-monorepo-migration.md`. Ako nije specifikovano kao npm script — halt-and-PM, treba ručna procedura.
|
||
|
||
### §2.2 — Push redosled (zavisnosti naviše)
|
||
|
||
Push grupe redom da hive-mind javni repo dobija dependencies pre dependents:
|
||
|
||
**Grupa 1 — core packages (paralelno OK, ali sequential safer):**
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
foreach ($pkg in @('hive-mind-core','hive-mind-cli','hive-mind-mcp-server','hive-mind-wiki-compiler','hive-mind-shim-core')) {
|
||
$sourceBranch = "oss-${pkg}-export"
|
||
$targetBranch = "${pkg}"
|
||
Write-Output "=== Pushing $sourceBranch -> $targetBranch ==="
|
||
git push --force-with-lease "D:\Projects\waggle-os" "${sourceBranch}:refs/heads/${targetBranch}"
|
||
git push origin "${targetBranch}"
|
||
}
|
||
```
|
||
|
||
**Grupa 2 — hooks adapters (zavise od core):**
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
foreach ($pkg in @('hive-mind-hooks-claude-code','hive-mind-hooks-claude-desktop','hive-mind-hooks-codex','hive-mind-hooks-codex-desktop','hive-mind-hooks-cursor','hive-mind-hooks-hermes','hive-mind-hooks-openclaw')) {
|
||
$sourceBranch = "oss-${pkg}-export"
|
||
$targetBranch = "${pkg}"
|
||
Write-Output "=== Pushing $sourceBranch -> $targetBranch ==="
|
||
git push --force-with-lease "D:\Projects\waggle-os" "${sourceBranch}:refs/heads/${targetBranch}"
|
||
git push origin "${targetBranch}"
|
||
}
|
||
```
|
||
|
||
**NAPOMENA:** Ovaj approach pretpostavlja da hive-mind javni repo trenutno **nema** branches za pojedinačne pakete osim `master`. Ako postoje — treba rebase ili reset, što menja proceduru. CC pre §2.2 mora `git branch -r` u hive-mind repo i evidentirati postojeće remote grane.
|
||
|
||
**Alternativa ako hive-mind javni repo radi sa monorepo strukturom samo na `master` (per README):** umesto 12 zasebnih grana, push samo monorepo update kroz subtree split direktno u `master`. Tada §2 postaje:
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git fetch origin
|
||
git checkout master
|
||
git pull origin master
|
||
# Sync packages dirs from waggle-os subtree split outputs
|
||
# Procedure depends on which approach the team has commit-ovan u npm scripts
|
||
# HALT-and-PM ako npm script za sync nije identifiable iz package.json
|
||
```
|
||
|
||
**Halt-and-PM signal:** `force-with-lease` izbacuje lease check error → znak da je neko drugi push-ovao u međuvremenu, treba reconciliation.
|
||
|
||
### §2.3 — Verifikacija
|
||
|
||
Posle svakog push-a, verify na origin-u:
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git ls-remote origin | Select-String "${pkg}"
|
||
```
|
||
|
||
Logovati svaki push u evidence file.
|
||
|
||
---
|
||
|
||
## §2.5 — NPM Republish Faza B.5 (10-15 min)
|
||
|
||
**ADDED 2026-05-05 v2 amendment** posle CC PM-sync survey nalaza #1: hive-mind v0.1.0 paketi su published 2026-04-18, ali waggle-os subtree split output sadrži Wave-1 §2.4+§2.5+§2.6+§2.7 koji je 8-11 dana noviji. Day 0 javni signal koji upućuje korisnike na `npm install @hive-mind/core` mora da dovede do verzije sa post-Wave-1 sadržajem, ne stale v0.1.0.
|
||
|
||
### §2.5.1 — Version bump verifikacija
|
||
|
||
CC mora utvrditi pravu version bump strategiju pre republish-a:
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
foreach ($pkg in @('packages/core','packages/cli','packages/mcp-server','packages/wiki-compiler','packages/shim-core','packages/hooks-claude-code','packages/hooks-claude-desktop','packages/hooks-codex','packages/hooks-codex-desktop','packages/hooks-cursor','packages/hooks-hermes','packages/hooks-openclaw')) {
|
||
if (Test-Path $pkg/package.json) {
|
||
$name = (Get-Content $pkg/package.json -Raw | ConvertFrom-Json).name
|
||
$version = (Get-Content $pkg/package.json -Raw | ConvertFrom-Json).version
|
||
Write-Output "$pkg → $name @ $version"
|
||
} else {
|
||
Write-Output "$pkg → MISSING package.json (post-§2.2 push pending)"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Decision rule za version bump:**
|
||
|
||
- **Patch bump (v0.1.0 → v0.1.1)** ako su izmene: bug fixes, doc updates, dev tooling (postinstall, doctor command).
|
||
- **Minor bump (v0.1.0 → v0.2.0)** ako su izmene: new features bez breaking change-a (Apache 2.0 + CONTRIBUTING + Windows Quirks doc + import sweep + new commands).
|
||
- **Major bump (v0.1.0 → v1.0.0)** ako su API breaking change-evi.
|
||
|
||
Po Wave-1 §2.4-§2.7 sadržaju (post-§5.3 substrate test relocation, doctor command, mcp-health-check fix bundle, postinstall script, Apache 2.0 + CONTRIBUTING fajlovi, import sweep), procena je **MINOR bump v0.1.0 → v0.2.0**.
|
||
|
||
**Halt-and-PM** ako CC pronađe da se radi o breaking API change (major bump). Marko ratify potreban za major bump pre nego što ide na NPM jer to menja semver discipline za sve consumer-e.
|
||
|
||
### §2.5.2 — Bump version u svim package.json fajlovima
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
foreach ($pkgDir in @('packages/core','packages/cli','packages/mcp-server','packages/wiki-compiler','packages/shim-core','packages/hooks-claude-code','packages/hooks-claude-desktop','packages/hooks-codex','packages/hooks-codex-desktop','packages/hooks-cursor','packages/hooks-hermes','packages/hooks-openclaw')) {
|
||
if (Test-Path "$pkgDir/package.json") {
|
||
# Read, bump version, write back
|
||
$pkgJson = Get-Content "$pkgDir/package.json" -Raw | ConvertFrom-Json
|
||
$pkgJson.version = "0.2.0"
|
||
$pkgJson | ConvertTo-Json -Depth 10 | Set-Content "$pkgDir/package.json"
|
||
Write-Output "Bumped $pkgDir → 0.2.0"
|
||
}
|
||
}
|
||
```
|
||
|
||
**ALTERNATIVE:** Ako je hive-mind monorepo conscious sa `npm version` ili `lerna version` ili sličnim alatom, prefer that over manual JSON edit (preserves indentation, lock file). Pokušati prvo:
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
npm version minor --workspaces --no-git-tag-version
|
||
```
|
||
|
||
Ako prolazi — koristi to. Ako ne — fallback manual JSON edit.
|
||
|
||
**Halt-and-PM** ako:
|
||
- `package.json` u nekom paketu fali (subtree split nije sve uvezao)
|
||
- Lock file (`package-lock.json`) ne postoji ili je in conflict state
|
||
- `npm version --workspaces` izbacuje error koji nije "no workspace config"
|
||
|
||
### §2.5.3 — Build + test pre publish
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
npm install
|
||
npm run build --workspaces --if-present
|
||
npm test --workspaces --if-present
|
||
```
|
||
|
||
**PASS criteria:** Sve workspaces build green, sve tests green (ili known-failing acceptable per CC pre-existing 30-test-failure flag, dokumentovati).
|
||
|
||
**Halt-and-PM** ako bilo koji new test failure (vs poznat baseline 30 failures u `packages/agent/tests/*` i `packages/worker/tests/job-processor.test.ts`).
|
||
|
||
### §2.5.4 — npm publish
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
npm whoami # Verify auth
|
||
foreach ($pkg in @('packages/core','packages/shim-core','packages/wiki-compiler','packages/cli','packages/mcp-server','packages/hooks-claude-code','packages/hooks-claude-desktop','packages/hooks-codex','packages/hooks-codex-desktop','packages/hooks-cursor','packages/hooks-hermes','packages/hooks-openclaw')) {
|
||
if (Test-Path "$pkg/package.json") {
|
||
Write-Output "=== Publishing $pkg ==="
|
||
cd "D:\Projects\hive-mind\$pkg"
|
||
npm publish --access public
|
||
Start-Sleep -Seconds 3
|
||
}
|
||
}
|
||
cd D:\Projects\hive-mind
|
||
```
|
||
|
||
**Publish redosled** (zavisnosti naviše):
|
||
1. `core` (no deps)
|
||
2. `shim-core` (depends on core)
|
||
3. `wiki-compiler` (depends on core)
|
||
4. `cli` (depends on core)
|
||
5. `mcp-server` (depends on core + wiki-compiler)
|
||
6. 7 hooks adapters (depend on core + shim-core)
|
||
|
||
**Verify svaki publish:**
|
||
```powershell
|
||
foreach ($pkg in @('@hive-mind/core','@hive-mind/shim-core','@hive-mind/wiki-compiler','@hive-mind/cli','@hive-mind/mcp-server','@hive-mind/hooks-claude-code','@hive-mind/hooks-claude-desktop','@hive-mind/hooks-codex','@hive-mind/hooks-codex-desktop','@hive-mind/hooks-cursor','@hive-mind/hooks-hermes','@hive-mind/hooks-openclaw')) {
|
||
npm view $pkg version
|
||
}
|
||
```
|
||
|
||
**PASS criteria:** Svi paketi pokazuju 0.2.0 na NPM-u (može biti 1-2 min latencije pre nego što `npm view` reflektuje).
|
||
|
||
**Halt-and-PM** ako:
|
||
- `npm whoami` fail (nije logged in — Marko mora `npm login` first)
|
||
- Bilo koji `npm publish` fail (rate limit, auth, version-already-exists, missing files in `files` field)
|
||
- Verify sek pokazuje stari version posle 5 min sleep-a (publish lost)
|
||
|
||
### §2.5.5 — Commit version bump u hive-mind master
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git add packages/*/package.json package-lock.json
|
||
git commit -m "chore(release): bump all packages to 0.2.0
|
||
|
||
Wave-1 §2.4 + §2.5 + §2.6 + §2.7 sync posle subtree split iz
|
||
waggle-os feature/hive-mind-monorepo-migration.
|
||
|
||
Includes: doctor command, Windows Quirks doc, postinstall script,
|
||
Apache 2.0 + CONTRIBUTING files, import sweep + smoke."
|
||
git push origin master
|
||
```
|
||
|
||
**Halt-and-PM** ako push fail.
|
||
|
||
### §2.5.6 — Acceptance gate
|
||
|
||
NPM republish faza je COMPLETE kad:
|
||
1. `npm view @hive-mind/core version` → `0.2.0`
|
||
2. Sve ostale 11 paketa isto vrate `0.2.0` na `npm view`
|
||
3. `git log origin/master -1` u hive-mind repo-u pokazuje "chore(release): bump all packages to 0.2.0"
|
||
4. `npm install @hive-mind/core` u test direktorijumu radi (može quick smoke u temp folder-u)
|
||
|
||
---
|
||
|
||
## §3 — Tag ceremony Faza C: Track A freeze tag (5 min)
|
||
|
||
`feature/apps-web-integration` na SHA `447f5ac` je shipping-ready desktop binary izvor. Pre javnog launch-a treba freeze tag tako da Tauri build pipeline ima stabilan reference point i da naredne iteracije ne zbune build sistem.
|
||
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
git checkout feature/apps-web-integration
|
||
git fetch origin
|
||
git status --short # mora biti čist
|
||
|
||
# Verify SHA pre tag-a
|
||
$sha = git rev-parse HEAD
|
||
Write-Output "Tag target SHA: $sha"
|
||
|
||
# Kreiraj annotated tag sa release notes
|
||
git tag -a v0.1.0-track-a-rc1 -m "Track A apps/web shipping-ready release candidate 1
|
||
|
||
Pass 7 PASS 9/9 (FR #23-#47) + Block C state restore.
|
||
Production backend live sa WAGGLE_PROMPT_ASSEMBLER=1 runtime.
|
||
Tour/Wizard Replay + Pending Imports Reminder.
|
||
|
||
Three P2/P3 friction notes deferred Day-2 backlog (per project_pass7_block_c_closed_2026_05_01).
|
||
|
||
Predecessor closure memo: decisions/2026-05-05-pass-7-block-c-close.md
|
||
Sprint reference: project_pre_launch_sprint_2026_04_30.md Track A
|
||
"
|
||
|
||
# Push tag na origin
|
||
git push origin v0.1.0-track-a-rc1
|
||
|
||
# Verify
|
||
git tag --list "v0.1.0-track-a-*"
|
||
git ls-remote origin | Select-String "v0.1.0-track-a-rc1"
|
||
|
||
# Vrati se na main
|
||
git checkout main
|
||
```
|
||
|
||
**Halt-and-PM signal:** Tag već postoji (drugi prefix iteracija ili neko je preskočio sequencing).
|
||
|
||
---
|
||
|
||
## §4 — Tag ceremony Faza D: hive-mind javni release tag (3 min)
|
||
|
||
Posle uspešnog §1 i §2, marker tag u hive-mind javnom repo-u za Day 0 launch trenutak:
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git checkout master
|
||
git pull origin master
|
||
|
||
# Tag latest master HEAD
|
||
git tag -a v0.1.0-day-0 -m "hive-mind OSS Day 0 public launch
|
||
|
||
LoCoMo paper claim #1 LOCKED: 74% trio-strict self-judge > Mem0 paper 66.9%.
|
||
GEPA Faza 1 closure: claude::gen1-v1 + qwen-thinking::gen1-v1 deployed.
|
||
21 MCP tools, 11 harvest adapters, FTS5+vector hybrid search.
|
||
Apache 2.0 license. Egzakta Group d.o.o. copyright 2026.
|
||
|
||
Distribution: npm @hive-mind/{core,wiki-compiler,mcp-server,cli}
|
||
Sister repo: waggle-os (proprietary desktop shell)
|
||
Companion: KVARK (enterprise sovereign deployment)
|
||
"
|
||
|
||
git push origin v0.1.0-day-0
|
||
git tag --list "v0.1.0-day-0"
|
||
```
|
||
|
||
**Halt-and-PM signal:** Tag već postoji.
|
||
|
||
---
|
||
|
||
## §5 — Verification battery (10 min)
|
||
|
||
Posle §1-§4, kompletan health check:
|
||
|
||
### §5.1 — waggle-os origin reflection
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
git fetch origin --tags
|
||
git branch -r
|
||
git tag --list "v0.1.0-*"
|
||
```
|
||
|
||
**PASS criteria:**
|
||
- `origin/main` = local `main` (verify `git rev-parse main` == `git rev-parse origin/main`)
|
||
- `origin/feature/hive-mind-monorepo-migration` postoji i sinhrono
|
||
- Tag `v0.1.0-track-a-rc1` na origin-u
|
||
- Postojeći tagovi `v0.1.0-faza1-closure` + `v0.1.0-phase-5-day-0` netaknuti
|
||
|
||
### §5.2 — hive-mind origin reflection
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git fetch origin --tags
|
||
git branch -r
|
||
git tag --list
|
||
git log --oneline origin/master -5
|
||
```
|
||
|
||
**PASS criteria:**
|
||
- 12 OSS package grane na origin-u (ili confirm da je single-master strategy)
|
||
- Tag `v0.1.0-day-0` na origin-u
|
||
- `master` HEAD odgovara očekivanom subtree split outputu
|
||
|
||
### §5.3 — npm packages registry final check
|
||
|
||
**Posle §2.5 NPM republish faze**, sve 12 paketa moraju da pokazuju `0.2.0` (ili pravi bumped version) kao published version:
|
||
|
||
```powershell
|
||
foreach ($pkg in @('@hive-mind/core','@hive-mind/shim-core','@hive-mind/wiki-compiler','@hive-mind/cli','@hive-mind/mcp-server','@hive-mind/hooks-claude-code','@hive-mind/hooks-claude-desktop','@hive-mind/hooks-codex','@hive-mind/hooks-codex-desktop','@hive-mind/hooks-cursor','@hive-mind/hooks-hermes','@hive-mind/hooks-openclaw')) {
|
||
npm view $pkg version time.modified
|
||
}
|
||
```
|
||
|
||
**PASS criteria:** Sve 12 paketa imaju version `0.2.0` (ili koja god je ratifikovana via §2.5.1 odlukom) i `time.modified` od trenutne sesije, ne 2026-04-18 stara. Ako neki paket pokazuje staru verziju ili "Not found" — halt-and-PM, publish je možda partial.
|
||
|
||
### §5.4 — Final evidence log
|
||
|
||
Završni `evidence/2026-MM-DD-day-0-minus-1-evidence.md` sadrži:
|
||
1. Početni `git status` snapshot za oba repo-a
|
||
2. SHA verification table (reference vs actual)
|
||
3. Push log per branch (timestamp + result)
|
||
4. Tag creation log
|
||
5. Final state verification
|
||
6. Wall-clock total
|
||
7. Cost spend (LLM tokens used by CC)
|
||
8. Anomalije i halt-and-PM trenuci (ako bilo)
|
||
|
||
---
|
||
|
||
## §6 — Rollback plan (drill OBAVEZAN pre stvarnog izvršenja)
|
||
|
||
Pre nego što CC krene u §1, izvršiti **dry-run rollback drill** u worktree kopiji da niko ne zaboravi proceduru u real-time-u.
|
||
|
||
### §6.1 — Rollback Faza A (hive-mind monorepo grana)
|
||
|
||
Ako je `feature/hive-mind-monorepo-migration` push uneo nešto nedopustivo:
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
git push origin --delete feature/hive-mind-monorepo-migration
|
||
# Ili ako treba zadržati granu ali revert SHA:
|
||
git push origin +<previous-good-sha>:refs/heads/feature/hive-mind-monorepo-migration
|
||
```
|
||
|
||
### §6.2 — Rollback Faza B (12 OSS export grana)
|
||
|
||
Najgora situacija: javni repo dobio bad subtree split. Ako je catch within 30 min — `git push --force` sa prethodnim SHA-om je opcija. Ako prošlo 30+ min i komuna detected — STOP, halt-and-PM, treba namernu strategiju (revert commit + announcement).
|
||
|
||
```powershell
|
||
# Per-package rollback (if SHA known)
|
||
cd D:\Projects\hive-mind
|
||
git push origin +<previous-good-sha>:refs/heads/<package-branch>
|
||
```
|
||
|
||
**WAŽNO:** `--force` na javni OSS repo posle javnog signala (HN post, X thread) je **reputational hit**. Bolje je revert commit nego force-push posle 30 min. Pravilo: do 30 min from push, force-push OK; posle 30 min — revert commit only.
|
||
|
||
### §6.3 — Rollback Faza C (Track A freeze tag)
|
||
|
||
```powershell
|
||
cd D:\Projects\waggle-os
|
||
git push origin --delete v0.1.0-track-a-rc1
|
||
git tag -d v0.1.0-track-a-rc1
|
||
```
|
||
|
||
Tag rollback je čist, niska reputational cena.
|
||
|
||
### §6.4 — Rollback Faza D (hive-mind Day 0 tag)
|
||
|
||
```powershell
|
||
cd D:\Projects\hive-mind
|
||
git push origin --delete v0.1.0-day-0
|
||
git tag -d v0.1.0-day-0
|
||
```
|
||
|
||
Tag rollback ovde takođe čist; ali ako se tag već reklamirao u marketing materialu, koordinacija sa marketing pre rollback-a.
|
||
|
||
---
|
||
|
||
## §7 — Halt-and-PM signali (kada zaustaviti i tražiti Marka)
|
||
|
||
Bilo koja od sledećih situacija = STOP, halt-and-PM, ne nastavljati bez explicit Marko ratifikacije:
|
||
|
||
1. **§0 fail.** Bilo koji pre-flight gate fail (auth, dangling commit, working tree dirty, repo state divergira od reference).
|
||
2. **Force-with-lease lease check fail.** Neko drugi je push-ovao u međuvremenu.
|
||
3. **Rate limit ili auth error iz GitHub API.** Nije sigurno da je svi push-evi prošli.
|
||
4. **Subtree split rerun procedura nije identifiable.** Ako §2.1 ne može da odredi kako da regeneriše OSS export grane, halt-and-PM.
|
||
5. **hive-mind javni repo branches strategy nepoznata.** §2.2 alternativa, ako ni README ni package.json ne određuju single-master vs multi-branch.
|
||
6. **Tag conflict.** Tag već postoji.
|
||
7. **Push-error message koji nije rate-limit ili auth** (recimo "branch protection rule violated", "GPG signature required", "invalid signoff") — to je signal da je Marko menjao policy bez PM context-a.
|
||
|
||
Halt-and-PM message format CC treba da emit:
|
||
```
|
||
HALT-AND-PM Day-0-minus-1 §<broj>
|
||
Reason: <konkretan error / situacija>
|
||
Evidence: <link u evidence file za log>
|
||
Risk if proceed: <šta ide pogrešno ako se preskoči>
|
||
Recommended action: <šta CC misli da Marko treba da uradi>
|
||
```
|
||
|
||
---
|
||
|
||
## §8 — Wall-clock projection
|
||
|
||
Realna projekcija (NIJE trigger):
|
||
- §0 pre-flight: 10-15 min
|
||
- §1 hive-mind monorepo push: 5 min
|
||
- §2 12 OSS export grana: 15-25 min (zavisi od subtree split rerun-a)
|
||
- §2.5 NPM version bump + republish + commit: 15-20 min (12 paketa × ~1 min publish + verifikacija)
|
||
- §3 Track A tag: 5 min
|
||
- §4 hive-mind Day 0 tag: 3 min
|
||
- §5 verification battery: 10 min
|
||
- §6 rollback drill (pre §1): 10-15 min
|
||
|
||
**Ukupno:** 75-110 min, sa headroom-om do 2.5h ako §2 zahteva subtree split rerun ili §2.5 nailazi na npm rate limit.
|
||
|
||
**Cost projection:** $1-3 LLM, samo CC reasoning + git/npm ops.
|
||
|
||
---
|
||
|
||
## §9 — Post-execution handoff
|
||
|
||
Posle uspešnog §5, CC update-uje:
|
||
1. `evidence/2026-MM-DD-day-0-minus-1-evidence.md` finalan
|
||
2. Commit evidence file u `D:\Projects\PM-Waggle-OS\evidence\` (ne waggle-os!)
|
||
3. PM (mene) okida sledeća sesija sa preporukom da update-ujem `project_pre_launch_sprint_2026_04_30.md` sa "Day 0 minus 1 EXECUTED [datum]" stavkom.
|
||
4. Marko-side queue update: zatvoriti "OSS launch sequence pre Day 0 minus 1 (~30-60 min Track B push gate)" stavku.
|
||
|
||
---
|
||
|
||
## §10 — Decision log (PM authoring trace)
|
||
|
||
Ovaj brief autoring ima sledeće odluke koje su LOCKED:
|
||
|
||
1. **Sequential, ne paralelno.** Push gate je linearan jer §2 ima dependency redosled (core pre hooks). Mogli bismo §2.1 i §2.2 paralelizovati ali risk recovery je jeftiniji u sequential mode-u.
|
||
2. **Force-with-lease, ne force.** Lease check štiti od silent overwrite-a ako je neko drugi push-ovao.
|
||
3. **Tag pre Day 0, ne na Day 0.** `v0.1.0-track-a-rc1` i `v0.1.0-day-0` su Day 0 minus 1 ceremony jer Day 0 sam ima 5 paralelnih akcija (per `project_pre_launch_sprint_2026_04_30.md`) i tag ne sme da postane bottleneck.
|
||
4. **Rollback drill OBAVEZAN.** Bez drill-a CC ulazi u real-time bez muscle memory za rollback proceduru.
|
||
5. **30-minute force-push window pravilo.** Iznad 30 min od push-a, revert commit umesto force-push, jer reputational hit od force-push-a posle javnog signala je trajno.
|
||
6. **Halt-and-PM ima 7 trigera.** Uže od "any error" jer benign git messages (npr. "Everything up-to-date") ne smeju da blokiraju execution.
|
||
|
||
7. **NPM republish u §2.5 ADDED v2 amendment 2026-05-05.** Originalni v1 runbook je propustio NPM version bump + republish, što je značilo da bi Day 0 javni signal upućivao korisnike na stale v0.1.0 (od 2026-04-18) iako waggle-os subtree split sadrži Wave-1 §2.4-§2.7 sadržaj 8-11 dana noviji. Per CC PM-sync survey nalaza #1, ova faza je sad blocking pre tag ceremony §3.
|
||
|
||
8. **Minor bump v0.1.0 → v0.2.0 ratifikovan** kao default verzioniranje za Wave-1 sadržaj. Major bump traži eksplicitnu Marko ratifikaciju ako CC pronađe breaking API change.
|
||
|
||
---
|
||
|
||
**END RUNBOOK.** CC kreće u §0. Halt-and-PM ako bilo šta van scope-a ovog dokumenta.
|