Contribute to ctxindex
Set up the workspace, follow the canonical contracts, and prove each focused change.
ctxindex is pre-alpha and developed in public. Start from a GitHub issue and read CONTRIBUTING.md before changing behavior.
Set up the workspace
ctxindex pins Bun 1.3.14 and uses Bun workspaces with Turborepo.
bun install
bun cli --help
bun devUse package-owned focused commands while iterating:
bun test <focused-test-file>
bun run --cwd apps/web typecheck
bun run --cwd apps/web buildBefore completing a non-trivial change, run the repository gates:
bun run ci
bun run test:integration
bun run test:e2e
bunx openspec validate --all --strictThe test lanes are separate so pull requests can run them in parallel. Worktrees created by the repository helper also isolate CLI state, preventing one change from reusing another worktree's database, config, or installed Extensions.
Find the source of truth
| Source | Owns |
|---|---|
CONTEXT.md | ubiquitous language and domain relationships |
openspec/specs/** | normative capability behavior and selective implementation doctrine |
SYSTEM.md | readable, non-normative system projection |
docs/design/2026-07-13-context-access-layer.md | accepted cross-cutting decisions D1–D22 |
DESIGN.md | project-wide visual doctrine |
codemap.md files | hierarchical implementation maps |
The public CLI composes private core, Adapter, Profile, and Extension SDK workspaces. Extensions import the public SDK facade and ordinary definition packages; they do not import runtime internals. The website projects those contracts without owning product behavior or user state.
The CLI is the only agent integration surface. Do not add an MCP server, an agent-specific integration layer, arbitrary Extension command families, or provider mutations beyond reversible email Drafts.
Prove the change
- Add a failing reproduction for a bug or a focused test for new behavior.
- Pass each focused task and Slice gate before moving on.
- Refresh affected
codemap.mdfiles after structural changes. - Never commit secrets or
.envfiles, delete user data under~/.local/share/ctxindexwithout consent, or use live provider traffic when fixtures prove the contract.
Use the live /design specimen and public /brand assets for visual work instead of inventing parallel tokens or logo geometry.