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.
| Area | Status | Blocking 1.0? |
|---|---|---|
| Core CLI (install, status, update) | ✅ Tested & stable | No |
| Platform integrations (9 platforms) | ✅ Working | No |
| Quality gates (7 languages) | ✅ Tested | No |
| Squad workflow | ✅ Feature-complete, ❌ untested | Yes |
| Command test coverage | ❌ 3/11 commands tested (27%) | Yes |
| Analyze UX clarity | ❌ Behavior mismatch | Yes |
| Project dogfooding | ❌ Own product files are placeholders | Yes |
| API stability contract | ❌ Not documented | Yes |
| Contributing guide | ❌ Missing | Yes |
| MD-first pattern (3-level spec) | 🚧 Partial (templates + commands done) | Yes |
Goal: Bring critical commands to tested. Not aiming for 100% — focus on the commands users actually run.
-
lib/commands/analyze.js— test scope detection, monorepo detection, context loading, usage output -
lib/commands/pull.js— test registry pull, version resolution, backup flag, overwrite behavior -
lib/commands/check.js— test install detection, status reporting -
lib/commands/run.js— test command routing and execution
-
lib/commands/ai.js— test prompt construction, tool routing (aider, claude, gemini) -
lib/commands/publish.js— test package validation and registry write -
lib/commands/note.js— test file append and corrections log format
- Test manifest creation from
squad-batchinput (fresh start) - Test manifest append mode (existing manifest detected, numbering continues correctly)
- Test
squad-runphase routing based on manifest statuses - Test clarify status detection pauses the correct tasks
- Test single handoff file creation from
squadinput
The mismatch: Users run
ck analyzeexpecting standards files to be generated. The CLI only detects project structure and prints instructions — the AI does the actual work. This surprises users.
- Update the
ck analyzeterminal output to explicitly state the handoff: "Analysis complete. Now paste the above context into your AI tool, or run:claude .contextkit/commands/analyze.md" - Add a "Next step" callout box at the end of the analyze output (not buried in instructions)
- Update README
ck analyzesection to clearly describe the two-stage process: CLI detects → AI generates - Update docs site quick-start page to reflect the two-stage flow
- Consider adding
ck analyze --with-claude/--with-aiderflags that auto-invoke the detected AI tool (stretch goal — not blocking)
The credibility gap: ContextKit's own
.contextkit/is mostly placeholder. The tool that helps teams fill their context hasn't filled its own.
- Fill
.contextkit/product/mission.md— write actual ContextKit mission, users, problem, value - Fill
.contextkit/product/mission-lite.md— condensed 2-3 sentence version for AI context - Fill
.contextkit/product/decisions.md— document real architectural decisions made so far:- Why markdown over a database
- Why AI-delegated analyze (not in-CLI generation)
- Why CommonJS over TypeScript
- Why platform bridge files vs single universal format
- Fill
.contextkit/product/roadmap.md— use this document as the source
- Generate
.contextkit/standards/code-style.md— Node.js/CommonJS, chalk, ora, inquirer patterns - Generate
.contextkit/standards/architecture.md— command pattern, utils structure, integration pattern - Generate
.contextkit/standards/testing.md— Jest, mock patterns, integration vs unit split - Generate
.contextkit/standards/workflows.md— git flow, versioning, changelog discipline - Generate
.contextkit/standards/ai-guidelines.md— ContextKit-specific AI behavior rules
1.0.0 signals "the interface is locked." Without documenting what's stable, users can't trust it.
- Define and document the stable public API surface in README:
- CLI commands that won't be renamed or removed
- File paths that are guaranteed stable (
.contextkit/standards/,.contextkit/commands/, handoff file schema) - Config file schema (
config.yml,manifest.mdfields)
- Add a Breaking Changes policy to README: breaking changes require a major bump, deprecated features get one release cycle warning
- Document the squad handoff file schema as a stable format (fields:
task,status, sections 1–5) - Document the manifest.md schema as stable (fields:
batch,total,checkpoint, task list format)
- Create
CONTRIBUTING.mdat the project root with:- How to set up the dev environment
- How to run tests (
npm test) - How to add a new platform integration (the integration pattern)
- How to add a new command
- Commit message format (conventional commits — already enforced by hook)
- PR checklist (tests pass, changelog entry, version bump if needed)
- Link
CONTRIBUTING.mdfrom README
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.
| Level | Scope | Location |
|---|---|---|
| 1. Architecture | How projects connect | .contextkit/standards/architecture.md |
| 2. Project | What this project does, structure | .contextkit/product/mission.md + context.md |
| 3. Component | Individual component logic & responsibilities | <ComponentName>/<ComponentName>.md (colocated) |
Level 3 example:
src/components/Button/
Button.md ← spec (written first)
Button.tsx ← code (written after spec)
Button.test.tsx
- Create
templates/component-spec.md— Level 3 spec template with Purpose, Responsibilities, Props/API, Logic & Behavior, Dependencies sections - Create
commands/spec.md— Standalone command to write a component spec before coding - Update
commands/create-component.md— Step 1 is now spec check/creation; code only after spec is confirmed - Document the 3-level pattern in
.contextkit/standards/architecture.md - Add spec scanning to
ck analyze— report which components have specs vs. missing
-
ck pulldocs — it's implemented and registered but not mentioned anywhere in the README CLI commands table. Add it. -
squad-run-agentsscope — currently undocumented that it's Claude Code-only. Add a note in the docs site squad page and in the command file itself. -
vibe-kit/vkaliases — these legacy aliases are still inpackage.jsonbin. Decide: keep with deprecation notice or remove before 1.0. -
nolrm-vibe-kit-0.1.2.tgzin the repo root — stale artifact, should be deleted or gitignored. -
test-project/in the repo root — confirm it's gitignored and not shipping in the npm package. - Node.js engine requirement —
package.jsonsays>=14.0.0but codebase likely uses features requiring 16+. Verify and update if needed.
| Version | Focus | Done when |
|---|---|---|
| 0.13 | Test coverage + analyze UX | All high-priority tests written, analyze output updated |
| 0.14 | Dogfooding + product files | All .contextkit/product/ and standards filled |
| 0.15 | API contract + contributing | README stability docs + CONTRIBUTING.md merged |
| 0.16 | Polish sprint | All loose ends resolved, no known issues |
| 1.0.0 | Release | All items above checked off |
1.0.0 ships when every checkbox above is checked. No partial credit.
Last updated: 2026-03-01 · Baseline: v0.12.7