|
| 1 | +# v2-release.anchor.yaml |
| 2 | +# Outcome Anchoring for Manifold v2.0.0 Release |
| 3 | +# Generated: 2026-01-15 |
| 4 | + |
| 5 | +outcome: "Ship Manifold v2.0.0: GitHub release with CLI binaries, updated README, validated installation" |
| 6 | + |
| 7 | +# Backward Reasoning: What MUST be true for this outcome? |
| 8 | + |
| 9 | +required_truths: |
| 10 | + - id: RT-1 |
| 11 | + statement: "All version numbers are synchronized at 2.0.0" |
| 12 | + requires: |
| 13 | + - "cli/package.json version: 2.0.0" |
| 14 | + - "install/install.sh VERSION: 2.0.0" |
| 15 | + - "install/install.sh CLI_VERSION: 2.0.0" |
| 16 | + current_state: SATISFIED |
| 17 | + evidence: "Verified in codebase - all show 2.0.0" |
| 18 | + priority: 1 |
| 19 | + |
| 20 | + - id: RT-2 |
| 21 | + statement: "All tests pass" |
| 22 | + requires: |
| 23 | + - "bun test in cli/ passes" |
| 24 | + - "No TypeScript errors" |
| 25 | + current_state: SATISFIED |
| 26 | + evidence: "39 tests passing, typecheck clean" |
| 27 | + priority: 1 |
| 28 | + |
| 29 | + - id: RT-3 |
| 30 | + statement: "CLI binaries can be built for all platforms" |
| 31 | + requires: |
| 32 | + - "bun build --compile works for darwin-arm64" |
| 33 | + - "bun build --compile works for darwin-x64" |
| 34 | + - "bun build --compile works for linux-x64" |
| 35 | + - "bun build --compile works for linux-arm64" |
| 36 | + current_state: NOT_VERIFIED |
| 37 | + evidence: "Build scripts exist but not yet executed for all platforms" |
| 38 | + priority: 1 |
| 39 | + |
| 40 | + - id: RT-4 |
| 41 | + statement: "README documents CLI commands and GitHub Action" |
| 42 | + requires: |
| 43 | + - "CLI Commands section with status, validate, init, verify" |
| 44 | + - "GitHub Action usage example" |
| 45 | + - "Installation includes CLI mention" |
| 46 | + current_state: NOT_SATISFIED |
| 47 | + evidence: "Current README has no CLI documentation" |
| 48 | + priority: 2 |
| 49 | + |
| 50 | + - id: RT-5 |
| 51 | + statement: "Release notes document what's new" |
| 52 | + requires: |
| 53 | + - "Changelog or release body with v2.0.0 features" |
| 54 | + - "CLI introduction highlighted" |
| 55 | + - "Breaking changes noted (if any)" |
| 56 | + current_state: NOT_SATISFIED |
| 57 | + evidence: "No release notes drafted" |
| 58 | + priority: 2 |
| 59 | + |
| 60 | + - id: RT-6 |
| 61 | + statement: "Installation works end-to-end" |
| 62 | + requires: |
| 63 | + - "install.sh downloads CLI binary successfully" |
| 64 | + - "manifold command available after install" |
| 65 | + - "Works on darwin-arm64 (current machine)" |
| 66 | + current_state: NOT_VERIFIED |
| 67 | + evidence: "Cannot verify until binaries are published" |
| 68 | + priority: 1 |
| 69 | + |
| 70 | +# Gap Analysis |
| 71 | +gaps: |
| 72 | + blocking: |
| 73 | + - id: GAP-1 |
| 74 | + truth: RT-3 |
| 75 | + issue: "Binaries not yet built" |
| 76 | + action: "Run bun run compile:all in cli/" |
| 77 | + |
| 78 | + - id: GAP-2 |
| 79 | + truth: RT-4 |
| 80 | + issue: "README lacks CLI documentation" |
| 81 | + action: "Add CLI Commands and GitHub Action sections" |
| 82 | + |
| 83 | + - id: GAP-3 |
| 84 | + truth: RT-5 |
| 85 | + issue: "No release notes" |
| 86 | + action: "Draft release notes for v2.0.0" |
| 87 | + |
| 88 | + non_blocking: |
| 89 | + - id: GAP-4 |
| 90 | + truth: RT-6 |
| 91 | + issue: "E2E installation not tested" |
| 92 | + action: "Test after binaries published, before announcing" |
| 93 | + |
| 94 | +# Solution Space |
| 95 | +solution_options: |
| 96 | + - option: A |
| 97 | + name: "Manual Release" |
| 98 | + description: "Build binaries locally, create release via GitHub web UI" |
| 99 | + steps: |
| 100 | + - "Update README with CLI docs" |
| 101 | + - "Commit and push" |
| 102 | + - "Create v2.0.0 tag" |
| 103 | + - "Build binaries locally (bun run compile:all)" |
| 104 | + - "Create GitHub release via web UI" |
| 105 | + - "Upload 4 binary assets manually" |
| 106 | + satisfies: [RT-1, RT-2, RT-3, RT-4, RT-5, RT-6] |
| 107 | + complexity: Low |
| 108 | + time: "~15 minutes" |
| 109 | + pros: |
| 110 | + - "Simple, no CI setup needed" |
| 111 | + - "Full control over process" |
| 112 | + cons: |
| 113 | + - "Manual upload tedious" |
| 114 | + - "No automation for future releases" |
| 115 | + |
| 116 | + - option: B |
| 117 | + name: "GitHub CLI Release" |
| 118 | + description: "Use gh CLI for streamlined release creation" |
| 119 | + steps: |
| 120 | + - "Update README with CLI docs" |
| 121 | + - "Commit and push" |
| 122 | + - "Create v2.0.0 tag" |
| 123 | + - "Build binaries locally" |
| 124 | + - "gh release create v2.0.0 --title 'v2.0.0' --notes-file RELEASE.md" |
| 125 | + - "gh release upload v2.0.0 ./cli/dist/*" |
| 126 | + satisfies: [RT-1, RT-2, RT-3, RT-4, RT-5, RT-6] |
| 127 | + complexity: Low |
| 128 | + time: "~10 minutes" |
| 129 | + pros: |
| 130 | + - "Scriptable and reproducible" |
| 131 | + - "Faster than web UI" |
| 132 | + cons: |
| 133 | + - "Still manual builds" |
| 134 | + |
| 135 | + - option: C |
| 136 | + name: "GitHub Actions Automation" |
| 137 | + description: "Create release workflow that builds and publishes on tag push" |
| 138 | + steps: |
| 139 | + - "Create .github/workflows/release.yml" |
| 140 | + - "Update README with CLI docs" |
| 141 | + - "Commit and push" |
| 142 | + - "Push v2.0.0 tag → triggers automated build and release" |
| 143 | + satisfies: [RT-1, RT-2, RT-3, RT-4, RT-5, RT-6] |
| 144 | + complexity: Medium |
| 145 | + time: "~30 minutes setup, then instant releases" |
| 146 | + pros: |
| 147 | + - "Fully automated future releases" |
| 148 | + - "Reproducible builds" |
| 149 | + - "Cross-platform builds in CI" |
| 150 | + cons: |
| 151 | + - "More setup time for first release" |
| 152 | + - "Overkill for infrequent releases" |
| 153 | + |
| 154 | +recommendation: |
| 155 | + option: B |
| 156 | + name: "GitHub CLI Release" |
| 157 | + rationale: | |
| 158 | + Option B (GitHub CLI) is optimal because: |
| 159 | + 1. Faster than manual web UI (satisfies B1 - enable adoption quickly) |
| 160 | + 2. Simple enough for a one-time release |
| 161 | + 3. Scriptable for documentation |
| 162 | + 4. We can add automation (Option C) later if releases become frequent |
| 163 | +
|
| 164 | + Option C is over-engineering for a project that may release infrequently. |
| 165 | + Option A works but is slower and more error-prone. |
| 166 | +
|
| 167 | +execution_order: |
| 168 | + - phase: "Pre-Release" |
| 169 | + steps: |
| 170 | + - "1. Verify version consistency (RT-1)" |
| 171 | + - "2. Run tests (RT-2)" |
| 172 | + - "3. Update README with CLI docs (RT-4)" |
| 173 | + - "4. Draft release notes (RT-5)" |
| 174 | + - "5. Commit and push changes" |
| 175 | + |
| 176 | + - phase: "Build" |
| 177 | + steps: |
| 178 | + - "6. Create and push v2.0.0 tag" |
| 179 | + - "7. Build binaries: cd cli && bun run compile:all (RT-3)" |
| 180 | + - "8. Verify binary sizes < 50MB (T3)" |
| 181 | + |
| 182 | + - phase: "Release" |
| 183 | + steps: |
| 184 | + - "9. Create release with gh CLI" |
| 185 | + - "10. Upload binary assets" |
| 186 | + - "11. Test installation in fresh env (RT-6)" |
| 187 | + |
| 188 | + - phase: "Post-Release" |
| 189 | + steps: |
| 190 | + - "12. Verify install.sh downloads work" |
| 191 | + - "13. Update manifold state to CONVERGED" |
0 commit comments