Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

UI and command line parity becomes an enforced rule

Created Updated

Crosswalker must let a person, a script, an agent and CI perform the same vault actions through the same engine. The UI remains the primary interface; cw is the automation and escape-hatch route. Every action has both routes or an explicit gap with a reason and plan. This is engine parity, not copying wizard screens into a terminal.

The living UI and CLI parity reference is generated from tools/parity/capabilities.ts. bun run check:parity stops new commands or verbs from silently bypassing the inventory. Existing gaps are visible, not falsely declared complete.

“do we need to develop the CLI with feature parity at some point????? Im not sure you ever made sure I understood that”

After the decision card:

“yes, add the parity table and CI check and add structures into knowledge ops/KB since it should be resident in knowledge base crystallized there as well”

This resolves a communication and process gap: shipping a first CLI slice did not mean its lifecycle coverage matched the plugin. The owner should not have to infer that distinction from implementation details.

A team refreshing a knowledge set can use cw replay with the same kept recipe revision as the plugin’s Run again. A reviewer approving an evidence link cannot yet switch to cw: that missing route must remain a named gap until the same revision and attestation safeguards are exposed. A generic frontmatter edit is not equivalent approval.

The real organization benefit is reproducibility: recurring imports and review workflows can eventually run through approved scripts and CI without a second engine or a fragile desktop automation script. Interactive previews and wizard steps need no terminal replicas. The action and its deterministic result do.

The June UI parity audit looked from headless capabilities toward the UI. This decision adds the reverse direction to one registry. Both are required for the lifecycle to remain UI-first and automatable.

demo:build calling shared saved-query and graph-color code outside cw is the smell: the engine can perform the action, but the public automation route cannot. The remedy is to expose the shared action through cw, not keep extending a parallel demo-only route. The demo is still useful and deterministic; it does not prove full command line parity.

PriorityWorkWhy this order
1Set managementScripts need to list identities and safely delete sets. Refresh is already supported by cw import --set and cw replay; the initial decision card’s blanket refresh gap was incorrect. Current UI deletion is a protected developer reset, not a complete general set-management UI
2Saved queries and graph colorsLets demo:build become plain cw calls instead of separate orchestration
3Mapping and evidence approvalsSame review facts, revision checks and safeguards across interfaces
4Recipe librarySave, browse, reuse and share recipes; cw recipes currently lists built-ins, not saved library entries

The registry also records typed mapping-table import and table storage selection as missing command line routes. The near-term roadmap owns this ordered parity backlog; the living reference holds its individual gaps. No missing capability is implemented by this inventory change.

  • Single source: typed capabilities name lifecycle stage, outcome, real command ids or UI surface, CLI verb and relevant flags, and a reason and plan whenever a side is absent.
  • Gate: scripts/check-parity.mjs parses registration syntax in src/ and dispatch in cli/crosswalker.ts without executing either. It rejects missing and stale registrations, incomplete gaps and generated-table drift. Dynamic source forms fail closed.
  • Regeneration: bun run parity:write updates the marked table and counts in the living reference; CI only checks, never repairs silently.
  • Knowledge operations: the gates reference, contributor checklist and agent instructions make the invariant discoverable before implementation starts.
  • Not a behavioral proof: a green inventory gate allows tracked gaps and cannot prove equivalence, validate named UI surfaces or detect a new button that has no command registration. Review still inventories wizard and settings actions; behavior tests still prove results.

This changes governance, tooling and documentation, not plugin behavior or schemas. No milestone is marked complete, and no unrelated living-page freshness markers are advanced.