|
| 1 | +# ContextKit 1.0.0 — Release Plan |
| 2 | + |
| 3 | +> Honest baseline: **0.12.7 today**. Feature-complete, but test coverage is 27%, core UX has a mismatch, and the project doesn't dogfood itself. One focused sprint gets us there. |
| 4 | +
|
| 5 | +--- |
| 6 | + |
| 7 | +## Summary |
| 8 | + |
| 9 | +| Area | Status | Blocking 1.0? | |
| 10 | +|------|--------|---------------| |
| 11 | +| Core CLI (install, status, update) | ✅ Tested & stable | No | |
| 12 | +| Platform integrations (9 platforms) | ✅ Working | No | |
| 13 | +| Quality gates (7 languages) | ✅ Tested | No | |
| 14 | +| Squad workflow | ✅ Feature-complete, ❌ untested | Yes | |
| 15 | +| Command test coverage | ❌ 3/11 commands tested (27%) | Yes | |
| 16 | +| Analyze UX clarity | ❌ Behavior mismatch | Yes | |
| 17 | +| Project dogfooding | ❌ Own product files are placeholders | Yes | |
| 18 | +| API stability contract | ❌ Not documented | Yes | |
| 19 | +| Contributing guide | ❌ Missing | Yes | |
| 20 | +| MD-first pattern (3-level spec) | 🚧 Partial (templates + commands done) | Yes | |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +## 1. Test Coverage |
| 25 | + |
| 26 | +> **Goal:** Bring critical commands to tested. Not aiming for 100% — focus on the commands users actually run. |
| 27 | +
|
| 28 | +### High Priority (user-facing commands) |
| 29 | +- [ ] `lib/commands/analyze.js` — test scope detection, monorepo detection, context loading, usage output |
| 30 | +- [ ] `lib/commands/pull.js` — test registry pull, version resolution, backup flag, overwrite behavior |
| 31 | +- [ ] `lib/commands/check.js` — test install detection, status reporting |
| 32 | +- [ ] `lib/commands/run.js` — test command routing and execution |
| 33 | + |
| 34 | +### Medium Priority |
| 35 | +- [ ] `lib/commands/ai.js` — test prompt construction, tool routing (aider, claude, gemini) |
| 36 | +- [ ] `lib/commands/dashboard.js` — test status rendering and data aggregation |
| 37 | +- [ ] `lib/commands/publish.js` — test package validation and registry write |
| 38 | +- [ ] `lib/commands/note.js` — test file append and corrections log format |
| 39 | + |
| 40 | +### Squad Workflow (integration-level) |
| 41 | +- [ ] Test manifest creation from `squad-batch` input (fresh start) |
| 42 | +- [ ] Test manifest append mode (existing manifest detected, numbering continues correctly) |
| 43 | +- [ ] Test `squad-run` phase routing based on manifest statuses |
| 44 | +- [ ] Test clarify status detection pauses the correct tasks |
| 45 | +- [ ] Test single handoff file creation from `squad` input |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +## 2. Analyze UX Clarity |
| 50 | + |
| 51 | +> **The mismatch:** Users run `ck analyze` expecting standards files to be generated. The CLI only detects project structure and prints instructions — the AI does the actual work. This surprises users. |
| 52 | +
|
| 53 | +- [ ] Update the `ck analyze` terminal output to **explicitly state the handoff**: "Analysis complete. Now paste the above context into your AI tool, or run: `claude .contextkit/commands/analyze.md`" |
| 54 | +- [ ] Add a "Next step" callout box at the end of the analyze output (not buried in instructions) |
| 55 | +- [ ] Update README `ck analyze` section to clearly describe the two-stage process: CLI detects → AI generates |
| 56 | +- [ ] Update docs site quick-start page to reflect the two-stage flow |
| 57 | +- [ ] Consider adding `ck analyze --with-claude` / `--with-aider` flags that auto-invoke the detected AI tool (stretch goal — not blocking) |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +## 3. Project Dogfooding |
| 62 | + |
| 63 | +> **The credibility gap:** ContextKit's own `.contextkit/` is mostly placeholder. The tool that helps teams fill their context hasn't filled its own. |
| 64 | +
|
| 65 | +### Product files |
| 66 | +- [ ] Fill `.contextkit/product/mission.md` — write actual ContextKit mission, users, problem, value |
| 67 | +- [ ] Fill `.contextkit/product/mission-lite.md` — condensed 2-3 sentence version for AI context |
| 68 | +- [ ] Fill `.contextkit/product/decisions.md` — document real architectural decisions made so far: |
| 69 | + - Why markdown over a database |
| 70 | + - Why AI-delegated analyze (not in-CLI generation) |
| 71 | + - Why CommonJS over TypeScript |
| 72 | + - Why platform bridge files vs single universal format |
| 73 | +- [ ] Fill `.contextkit/product/roadmap.md` — use this document as the source |
| 74 | + |
| 75 | +### Standards files (run `ck analyze` on itself) |
| 76 | +- [ ] Generate `.contextkit/standards/code-style.md` — Node.js/CommonJS, chalk, ora, inquirer patterns |
| 77 | +- [ ] Generate `.contextkit/standards/architecture.md` — command pattern, utils structure, integration pattern |
| 78 | +- [ ] Generate `.contextkit/standards/testing.md` — Jest, mock patterns, integration vs unit split |
| 79 | +- [ ] Generate `.contextkit/standards/workflows.md` — git flow, versioning, changelog discipline |
| 80 | +- [ ] Generate `.contextkit/standards/ai-guidelines.md` — ContextKit-specific AI behavior rules |
| 81 | + |
| 82 | +--- |
| 83 | + |
| 84 | +## 4. API Stability Contract |
| 85 | + |
| 86 | +> **1.0.0 signals "the interface is locked."** Without documenting what's stable, users can't trust it. |
| 87 | +
|
| 88 | +- [ ] Define and document the **stable public API surface** in README: |
| 89 | + - CLI commands that won't be renamed or removed |
| 90 | + - File paths that are guaranteed stable (`.contextkit/standards/`, `.contextkit/commands/`, handoff file schema) |
| 91 | + - Config file schema (`config.yml`, `manifest.md` fields) |
| 92 | +- [ ] Add a **Breaking Changes policy** to README: breaking changes require a major bump, deprecated features get one release cycle warning |
| 93 | +- [ ] Document the **squad handoff file schema** as a stable format (fields: `task`, `status`, sections 1–5) |
| 94 | +- [ ] Document the **manifest.md schema** as stable (fields: `batch`, `total`, `checkpoint`, task list format) |
| 95 | + |
| 96 | +--- |
| 97 | + |
| 98 | +## 5. Contributing Guide |
| 99 | + |
| 100 | +- [ ] Create `CONTRIBUTING.md` at the project root with: |
| 101 | + - [ ] How to set up the dev environment |
| 102 | + - [ ] How to run tests (`npm test`) |
| 103 | + - [ ] How to add a new platform integration (the integration pattern) |
| 104 | + - [ ] How to add a new command |
| 105 | + - [ ] Commit message format (conventional commits — already enforced by hook) |
| 106 | + - [ ] PR checklist (tests pass, changelog entry, version bump if needed) |
| 107 | +- [ ] Link `CONTRIBUTING.md` from README |
| 108 | + |
| 109 | +--- |
| 110 | + |
| 111 | +## 6. MD-First Development Pattern |
| 112 | + |
| 113 | +> **The idea:** Before any component or feature is coded, a markdown spec must exist. This is the 3-level documentation hierarchy — Architecture → Project → Component — where specs drive implementation, not the other way around. |
| 114 | +
|
| 115 | +### The 3 Levels (Option A: Colocated) |
| 116 | + |
| 117 | +| Level | Scope | Location | |
| 118 | +|-------|-------|----------| |
| 119 | +| **1. Architecture** | How projects connect | `.contextkit/standards/architecture.md` | |
| 120 | +| **2. Project** | What this project does, structure | `.contextkit/product/mission.md` + `context.md` | |
| 121 | +| **3. Component** | Individual component logic & responsibilities | `<ComponentName>/<ComponentName>.md` (colocated) | |
| 122 | + |
| 123 | +Level 3 example: |
| 124 | +``` |
| 125 | +src/components/Button/ |
| 126 | + Button.md ← spec (written first) |
| 127 | + Button.tsx ← code (written after spec) |
| 128 | + Button.test.tsx |
| 129 | +``` |
| 130 | + |
| 131 | +### Deliverables |
| 132 | + |
| 133 | +- [x] Create `templates/component-spec.md` — Level 3 spec template with Purpose, Responsibilities, Props/API, Logic & Behavior, Dependencies sections |
| 134 | +- [x] Create `commands/spec.md` — Standalone command to write a component spec before coding |
| 135 | +- [x] Update `commands/create-component.md` — Step 1 is now spec check/creation; code only after spec is confirmed |
| 136 | +- [ ] Document the 3-level pattern in `.contextkit/standards/architecture.md` |
| 137 | +- [ ] Add spec scanning to `ck analyze` — report which components have specs vs. missing |
| 138 | + |
| 139 | +--- |
| 140 | + |
| 141 | +## 7. Polish & Loose Ends |
| 142 | + |
| 143 | +- [ ] **`ck pull` docs** — it's implemented and registered but not mentioned anywhere in the README CLI commands table. Add it. |
| 144 | +- [ ] **`squad-run-agents` scope** — currently undocumented that it's Claude Code-only. Add a note in the docs site squad page and in the command file itself. |
| 145 | +- [ ] **`vibe-kit` / `vk` aliases** — these legacy aliases are still in `package.json` bin. Decide: keep with deprecation notice or remove before 1.0. |
| 146 | +- [ ] **`nolrm-vibe-kit-0.1.2.tgz`** in the repo root — stale artifact, should be deleted or gitignored. |
| 147 | +- [ ] **`test-project/`** in the repo root — confirm it's gitignored and not shipping in the npm package. |
| 148 | +- [ ] **Node.js engine requirement** — `package.json` says `>=14.0.0` but codebase likely uses features requiring 16+. Verify and update if needed. |
| 149 | + |
| 150 | +--- |
| 151 | + |
| 152 | +## 8. Version Milestones |
| 153 | + |
| 154 | +| Version | Focus | Done when | |
| 155 | +|---------|-------|-----------| |
| 156 | +| **0.13** | Test coverage + analyze UX | All high-priority tests written, analyze output updated | |
| 157 | +| **0.14** | Dogfooding + product files | All `.contextkit/product/` and standards filled | |
| 158 | +| **0.15** | API contract + contributing | README stability docs + CONTRIBUTING.md merged | |
| 159 | +| **0.16** | Polish sprint | All loose ends resolved, no known issues | |
| 160 | +| **1.0.0** | Release | All items above checked off | |
| 161 | + |
| 162 | +--- |
| 163 | + |
| 164 | +## Done When |
| 165 | + |
| 166 | +1.0.0 ships when every checkbox above is checked. No partial credit. |
| 167 | + |
| 168 | +> Last updated: 2026-03-01 · Baseline: v0.12.7 |
0 commit comments