This file serves as the tracking document and roadmap execution record for the CompText CLI (ctxt) project.
CompText CLI is an experimental terminal context client for building deterministic, schema-checked Context Packs before interacting with local or cloud model providers.
Models are providers. Context is the product.
- CLI Shell: Command parser and handler for local, offline-first commands.
- Context Harvester: Logic to inspect and aggregate codebase context.
- Deterministic Context Packs: Unified payload stored in
.comptext/context_pack.latest.jsonwith keys sorted recursively and sensitive values redacted. - Provider Adapters: Pluggable provider system (Dummy, Ollama, OpenAI-compatible, etc.) with explicit network and policy boundaries.
- Proposal/Apply Gate: Workflows to review planned changes (
propose) and apply them (apply) safely.
CURRENT_PHASE: 17
CURRENT_TASK: Antigravity Plugin Bundle Skeleton
LAST_GREEN_PHASE: 16
STATUS: REVIEW-GATE
NEXT_ALLOWED_ACTION: Await review gate confirmation
- Allowed Modifications: May edit source code (
src/**), tests (tests/**), docs (docs/**), skills (.agent/skills/**,.agents/skills/**), prompts (prompts/**), and configurations (Cargo.toml,comptext.example.toml). - Allowed Commands: May run local compilation, lint checks, tests, and formatting validation.
- Error Remediation: May automatically modify code to fix local build, format, test, or clippy failures.
- Phase Transition: May update project status and phase reports after local validation passes. A local commit requires explicit phase-level authorization. Any remote publication, branch publication, PR creation, or merge requires separate explicit user authorization. If remote interaction is needed without that authorization, halt as
BLOCKED.
- No Secret Material Access: Forbidden to read or parse secret-bearing local files or private auth material.
- No Sensitive Output Leakage: Forbidden to print sensitive values in stdout/stderr or write them to logs/reports/artifacts.
- No Untrusted Provider Action: Forbidden to execute real cloud API provider calls during coding/validation phases unless explicitly approved for live integration runs.
- No Destructive/Out-of-Scope Commands: Forbidden to run shell operations outside the repo root.
- No Overwriting Remote History: Forbidden to run force-push operations unless explicitly approved.
- No Unsupported Assurance Claims: Forbidden to make unsupported assurance claims.
The agent must halt execution and yield to the user when:
- Secret or private auth material is required to proceed.
- Real cloud provider execution or live network calls are needed.
- Git merge conflicts arise that cannot be resolved safely.
- Validation fails and cannot be resolved with small, safe changes.
- Codebase requirements or user requests are contradictory.
- Target files outside the repository root need to be accessed or created.
- Local commit, remote publication, branch publication, PR creation, or merge is needed without explicit authorization for that exact action.
The agent must run and satisfy the following validation suite before completing any phase:
cargo fmt --all --check
cargo check
cargo test
cargo clippy -- -D warningsPassing validation does not imply permission to mutate Git or remote state.
Allowed without separate Git authorization:
- read-only status checks
- read-only diff/stat inspection
- read-only latest-commit inspection
Requires explicit phase-level authorization:
- staging phase changes
- creating a local commit
Requires separate explicit remote authorization:
- publishing to remote
- creating remote branches
- creating PRs
- merging
If remote Git interaction is required without explicit remote authorization, stop and report BLOCKED.
| Phase | Description | Goal / Scope | Status |
|---|---|---|---|
| Phase 0 | Repo Genesis & Bootstrap | Scaffold Rust project, basic commands (help, doctor, providers list, version), verify CI |
COMPLETE |
| Phase 1 | CLI Shell Hardening | Hardening argument parsing, input handling, and errors for the base shell commands | COMPLETE |
| Phase 2 | Context Pack Contract | Implement ctxt context inspect, ctxt context pack --task "...", and ctxt ask --dry-run "..." |
COMPLETE |
| Phase 3 | Provider Adapter Layer | Define provider interface and Dummy offline test provider | COMPLETE |
| Phase 4 | Ollama Local Adapter | Support local Ollama integrations with explicit network boundaries | COMPLETE |
| Phase 4B | Skill Registry Normalization | Normalize the local Antigravity skill structure and crystallize autonomy rules | COMPLETE |
| Phase 4C | Long-Run Autonomy Hardening | Harden state machine progression rules and git safety boundaries | COMPLETE |
| Phase 5 | Proposal Mode | Implement ctxt propose to output changes as structured proposals |
COMPLETE |
| Phase 6 | Apply Gate | Implement ctxt apply to confirm/apply changes and run verification |
COMPLETE |
| Phase 7 | Provider Config Layer | Support dynamic provider profile switching and configurations | COMPLETE |
| Phase 8 | OpenAI-Compatible Adapter | Implement OpenAI adapter skeleton | COMPLETE |
| Phase 9 | Validate and Benchmark | Local validation, dry-runs, and deterministic benchmark flows | COMPLETE |
| Phase 10 | MVP Stabilization & Release Readiness | Audit documentation, verify command flows, safety hygiene checks | COMPLETE |
| Phase 11 | Release Packaging | Package CLI binary, finalize manifests, release artifact generation | COMPLETE |
| Phase 12 | Antigravity CLI Governance & Token Economy | Antigravity governance docs, token economy rules, skill/hook/permission target architecture | COMPLETE |
| Phase 13 | Skill Bundle Registry | Local skill bundle registry and starter skill templates | COMPLETE |
| Phase 14 | Hook/Permission Integration | Hook boundaries, dynamic run approvals | COMPLETE |
| Phase 15 | Cryptographic Provenance Engine | local SHA-256 provenance manifests | COMPLETE |
| Phase 16 | Agent State Contract | Add local agent-state capture/verify/report | COMPLETE |
| Phase 17 | Antigravity Plugin Bundle | Implement ctxt antigravity commands, local templates, and docs | REVIEW-GATE |
All phase transitions must output their status report using the following schema:
PHASE: <Phase Number and Title>
STATUS: <success | blocked>
FILES_CHANGED: <list of changed files>
COMMANDS_RUN: <list of commands executed>
VALIDATION: <validation output summary>
ARTIFACTS: <list of generated artifacts>
GIT: <read-only status by default; local commit only if explicitly authorized; remote action only if separately explicitly authorized>
RISKS: <analysis of potential risks>
NEXT: <next action or phase name>