Workspai CLI Artifact Catalog

August 17, 2026 · View on GitHub

Canonical map of on-disk artifacts produced by Workspai CLI commands. Dashboards, VS Code extension, and CI should read paths listed here — not infer from legacy fields (e.g. workspace.json.projects).

Authority layers (identity)

ArtifactPathWriterReader purpose
Workspace manifest.workspai/workspace.jsoncreate workspace, foundation ensure, bootstrap (profile)Profile, engine, bootstrap metadata — not project list
Workspace contract.workspai/workspace.contract.jsonworkspace sync, workspace contract *, import/adoptOperational project registry (ports, contracts)
Registry summary.workspai/workspace-registry.v1.jsonworkspace sync, contract sync, registry status --refreshCanonical project count + authority for UI/CI
Workspace marker.workspai-workspacecreate workspace, foundation ensurePortable root detection; commit with the workspace

Legacy .rapidkit-workspace and .rapidkit/* paths are read as fallback for older workspaces. New Workspai CLI writes target .workspai-workspace and .workspai/*. Workspace archive hydrate also normalizes legacy archive entries to canonical Workspai paths on restore.

The canonical .workspai-workspace marker must remain trackable. Generated workspace .gitignore files exclude legacy/local engine state but do not exclude the canonical marker.

Project entry and grounding

These paths are relative to each registered project root, not the workspace root:

ArtifactWriterSchema / formatPortability and reader purpose
.workspai/workspace-link.local.jsonadopt, import, project creation, workspace sync, project workspace relinkproject-workspace-link.v1Machine-local absolute binding; always gitignored and never an agent evidence payload
.workspai/agent-entry.v1.jsonProject lens reconciliation and workspace agent-sync --writeworkspai.agent-entry.v1Portable host-discovery, canonical read-order, authority, and integrity contract
.workspai/reports/project-context-agent.jsonProject lens reconciliation and workspace agent-sync --writeproject-context-agent.v1Portable bounded model/graph/proof projection for project-local agents
.workspai/PROJECT-GROUNDING.mdProject lens reconciliationMarkdownPortable human/agent entry guide with path-free workspace references
AGENTS.md managed sectionProject lens reconciliation in managed modeManaged Markdown blockPreserves user content and routes compatible agents to project/workspace evidence

The project link is validated against the canonical workspace contract and a SHA-256 binding over workspace identity, project identity, portable relative path, machine paths, and relationship. Project context generation rejects absolute paths before writing. managed, local, and off grounding modes control portable project surfaces and converge by removing stale managed sections and ignore rules during transitions; they never make the machine-local link publishable. The context is bounded but not count-only: it includes topology, API/deployment/test surfaces, blockers, portable proofs, and model/graph freshness for the selected project.

agent bootstrap --json and project agent-entry verify --json emit a non-persisted workspai.agent-bootstrap-receipt.v1 payload. The receipt proves the selected host route, contract validity, integrity, persisted and live freshness, and active Goal bindings without exposing the machine-local link.

Naming conventions

PatternMeaningExamples
*-last-run.jsonLatest gate/run evidencedoctor-last-run.json, pipeline-last-run.json
*.latest.jsonRolling alias + timestamped siblingsbootstrap-compliance.latest.json, mirror-ops.latest.json
Static stateCurrent model/state (not a single run)workspace-model.json, workspace.contract.json

Governance evidence loop

CommandPrimary artifactSchema versionJSON Schema
doctor workspace.workspai/reports/doctor-last-run.jsondoctor-workspace-evidence-v1contracts/doctor-workspace-evidence.v1.json
doctor project.workspai/reports/doctor-project-last-run.jsondoctor-project-evidence-v1contracts/doctor-project-evidence.v1.json
project coverage.workspai/reports/project-test-coverage-last-run.jsonworkspai.project-test-coverage.v1contracts/project-test-coverage.v1.json
doctor * --plan.workspai/reports/doctor-remediation-plan-last-run.jsondoctor-remediation-plan-v2contracts/doctor-remediation-plan.v2.json
doctor * --fix/--apply.workspai/reports/doctor-fix-result-last-run.jsonrapidkit-doctor-fix-result-v1contracts/workspace-intelligence/doctor-fix-result.v1.json
workspace remediation-plan --write.workspai/reports/artifact-remediation-plan-last-run.jsonartifact-remediation-plan-v1contracts/artifact-remediation-plan.v1.json
workspace repair *.workspai/reports/workspace-repair-last-run.jsonworkspai.workspace-repair-transaction.v1contracts/workspace-intelligence/workspace-repair-transaction.v1.json
workspace repair capabilitiesCLI capability outputworkspai.workspace-repair-capabilities.v1contracts/workspace-repair-capabilities.v1.json
goal <intent>.workspai/reports/goal-pack-last-run.jsonworkspai.goal-pack.v1contracts/workspace-intelligence/goal-pack.v1.json
goal <intent> / lifecycle options.workspai/goals/index.jsonworkspai.goal-index.v1contracts/workspace-intelligence/goal-index.v1.json
goal --status/--list/... --jsonstdoutworkspai.goal-lifecycle-result.v1contracts/workspace-intelligence/goal-lifecycle-result.v1.json
analyze.workspai/reports/analyze-last-run.jsonrapidkit-analyze-v1contracts/analyze-last-run.v1.json
readiness.workspai/reports/release-readiness-last-run.jsonrelease-readiness-v1contracts/release-readiness.v1.json
pipeline.workspai/reports/pipeline-last-run.jsonrapidkit-pipeline-v1contracts/pipeline-last-run.v1.json
autopilot release.workspai/reports/autopilot-release-last-run.jsonautopilot-release-v1contracts/autopilot-release.v1.json
.workspai/reports/autopilot-release.json(alias, same payload)contracts/autopilot-release.v1.json

Side/cache (not gates): .workspai/reports/doctor-workspace-cache.json (doctor-workspace-cache-v2).

Every Goal Pack also has an immutable-instance directory under .workspai/goals/<goal-id>/ containing goal-pack.json and agent-handoff.json. These are portable planning/projection artifacts, not verification gates. Only CLI-owned verified-goal and Repair Engine evidence may authorize mutation or claim completion. The sibling .workspai/goals/index.json is the canonical active-goal discovery and lifecycle registry; consumers must not infer activity from directory order.

Doctor Studio handoff: doctor-remediation-plan-v2 (contracts/doctor-remediation-plan.v2.json) is emitted in JSON responses and persisted to .workspai/reports/doctor-remediation-plan-last-run.json by doctor workspace|project --plan, --fix, and --apply so IDEs can render approved commands, typed file edits, diff previews, ordered phases, step dependencies, rollback, and verification steps without inferring them. doctor-fix-result-last-run.json records the approved execution outcome, and fix/apply runs append a kind: doctor-fix entry to workspace-intelligence-history.json.

Artifact remediation handoff: artifact-remediation-plan-v1 (contracts/artifact-remediation-plan.v1.json) is emitted by workspace remediation-plan --json and persisted with --write. Add --ci to produce CI-oriented verify commands where the underlying command supports stricter gates. It is the cross-card Studio handoff for governance artifacts outside Doctor: Bootstrap compliance, Analyze, Readiness, Pipeline, Workspace Run, Workspace Verify, and Doctor plan bridging. Consumers should ask npm for this plan before inventing per-card repair logic. The plan carries ordered actions, safe file operations where deterministic, refresh/verify commands, risk, approval state, and rollback strategy.

When doctor project runs inside a workspace, the project-local report is written beside the project and the workspace receives both a latest alias and a collision-safe project copy under .workspai/reports/projects/<project-slug>--<identity-hash>/. Coverage evidence follows the same three-location rule. The hash is derived from workspace-relative identity, so projects with the same folder name cannot overwrite each other. Remediation plans and fix results are also mirrored into the scoped project. Studio, CI, and project-local tools can therefore use the same evidence without guessing which project produced a latest alias.

Workspace intelligence

Bare artifact names in this table are relative to .workspai/reports/. Entries beginning with reports/ are relative to .workspai/; paths such as AGENTS.md are relative to the workspace root.

CommandArtifactSchemaContract file
workspace model --writeworkspace-model.jsonworkspace-model.v1contracts/workspace-intelligence/workspace-model.v1.json
workspace model --writeworkspace-knowledge-graph.jsonworkspace-knowledge-graph.v1contracts/workspace-intelligence/workspace-knowledge-graph.v1.json
workspace snapshotworkspace-model-snapshot.jsonworkspace-model-snapshot.v1contracts/workspace-intelligence/workspace-model-snapshot.v1.json
workspace diffworkspace-model-diff-last-run.jsonworkspace-model-diff.v1contracts/workspace-intelligence/workspace-model-diff.v1.json
workspace impact --from <diff>workspace-impact-last-run.jsonworkspace-impact.v1contracts/workspace-intelligence/workspace-impact.v1.json
analyze --jsonanalyze-last-run.jsonrapidkit-analyze-v1contracts/analyze-last-run.v1.json
workspace verifyworkspace-verify-last-run.jsonworkspace-verify.v1contracts/workspace-intelligence/workspace-verify.v1.json
workspace context --writeworkspace-context-agent.jsonworkspace-context.v1contracts/workspace-intelligence/workspace-context.v1.json
workspace agent-sync --writereports/agent-customization-pack.jsonrapidkit-agent-customization-pack.v1contracts/workspace-intelligence/agent-customization-pack-report.v1.json
workspace agent-sync --writereports/INDEX.jsonrapidkit-agent-reports-index.v1contracts/workspace-intelligence/agent-reports-index.v1.json
workspace agent-sync --writereports/workspace-skills-index.jsonworkspace-skills-index.v1contracts/workspace-intelligence/workspace-skills-index.v1.json
workspace agent-sync --writereports/workspai-mcp-design.json, .workspai/skills/*.md, .workspai/AGENT-GROUNDING.md, AGENTS.md, IDE agent surfacesMixed generated surfacesSee customization pack output inventory
workspace explain --writeworkspace-explain-last-run.jsonworkspace-explain.v1contracts/workspace-intelligence/workspace-explain.v1.json
workspace why --writeworkspace-why-last-run.jsonworkspace-explain.v1contracts/workspace-intelligence/workspace-explain.v1.json
workspace trace --writeworkspace-trace-last-run.jsonworkspace-explain.v1contracts/workspace-intelligence/workspace-explain.v1.json
workspace intelligence runworkspace-intelligence-run-last-run.jsonworkspace-intelligence-run.v1contracts/workspace-intelligence/workspace-intelligence-run.v1.json
workspace feedback record / doctor * --fixworkspace-intelligence-history.json (kind: agent-action, doctor-fix)workspace-intelligence-history.v1contracts/workspace-intelligence/workspace-intelligence-history.v1.json
workspace eval init / workspace eval recordworkspace-intelligence-evaluation-live.jsonworkspace-intelligence-evaluation.v1contracts/workspace-intelligence/workspace-intelligence-evaluation.v1.json
workspace eval reportworkspace-intelligence-evaluation-last-run.jsonworkspace-intelligence-evaluation.v1contracts/workspace-intelligence/workspace-intelligence-evaluation.v1.json

The unified runner report separates its execution envelope from the canonical intelligence chain. preflight always contains exactly sync and baseline; baseline resolution runs after model and before diff, recording created or reused. stages always contains exactly the 11 ordered steps declared by workspace-intelligence-chain.v1. JSON Schema enforces the transport shape and the runtime semantic validator additionally enforces artifact parity, status/exit coherence, hard-failure skip propagation, and the aggregate verdict. See Unified Workspace Intelligence Runner for the normative user and integration semantics.

workspace-model.json and workspace-knowledge-graph.json are published under one workspace lock as a rollback-capable artifact transaction. Individual file replacement is atomic, and a partial set failure restores both preimages. The model is canonical; the graph is derived and cannot mutate it during the run. The graph contract fixes source.kind to workspace-model, source.artifact to .workspai/reports/workspace-model.json, and source.hash to the model's stable structural SHA-256. Current-state consumers must reject a graph whose binding does not match the current model.

workspace graph jsonld|graphml|gexf --output <path> creates explicit interchange projections from that bound graph. These files are portable exports, not competing canonical or last-run artifacts: JSON-LD preserves semantic identifiers, GraphML targets general graph tooling, and GEXF targets exploration and visualization tools. workspace graph dot|mermaid --output <path> writes the bounded project-topology projections used by docs and diagrams. For DOT and Mermaid, --output --json returns a cli-operation-result-v1 receipt containing the resolved output path; omitting --output keeps raw graph text on stdout.

CLI semantics: workspace diff --from expects a model, snapshot, or explicit Git (git[:ref]) baseline. workspace impact --from expects a diff report. Persisted artifacts retain their artifact schema. JSON command projections that add operation metadata such as outputPath, status, or structured errors use contracts/cli-operation-result.v1.json; the canonical artifact is nested under artifact.

Dependency graph (workspace-dependency-graph.v1)

The dependency graph is the first-class structure that promotes inter-project relationships out of workspace run's private logic into one versioned source of truth consumed by impact (transitive blast radius), verify (subgraph-scoped gating), run --blast-radius, and risk weighting.

FieldMeaning
nodesProjects in the workspace (id, workspace-relative path).
edgesDirected from → to relationships (from depends on to). Each edge carries a typed kind, a source (provenance), a confidence bucket, and evidence (the files that justify it).
statsCounts (nodeCount, edgeCount, per-source edge counts) and hasCycle for the integrity gate.

Edge kindcode-import, package-dep, event-pub-sub, service-dependsOn, shared-resource. Edge sourceinferred, contract, manual (manual/contract are authoritative and override an inferred edge of the same kind between the same nodes). Canonical source: src/contracts/workspace-dependency-graph-contract.ts; JSON Schema: contracts/workspace-intelligence/workspace-dependency-graph.v1.json.

Inference engine. The graph is derived deterministically by src/workspace-dependency-graph.ts (inferWorkspaceDependencyGraph) from multiple sources: package manifests (package.json deps, pyproject.toml path deps, go.mod replace → package-dep), cross-boundary JS/TS source imports (code-import), the workspace contract (dependsOnservice-dependsOn, matched publishes/consumesevent-pub-sub, env↔port references → shared-resource), and an optional manual override file. Node/edge ordering and hashDependencyGraph are stable, so the compact topology is embedded as the canonical workspace-model.v1.projectTopology field on every buildWorkspaceModel run. hashWorkspaceModel normalizes projectTopology.generatedAt, so the structural topology participates in the model hash without causing timestamp drift. During the v1 migration window the CLI also emits the deprecated graph compatibility alias. Consumers must read projectTopology; when both fields exist, validation requires them to be structurally identical.

Manual overrides. .workspai/workspace-graph.overrides.json ({ "edges": [{ "from", "to", "kind", "evidence" }] }) declares authoritative edges that win over inference for the same (from, to, kind).

Graph-aware impact. workspace impact consumes the graph for a true transitive blast radius: alongside affectedProjects (directly changed) it emits transitiveImpact[] — projects reached only through the graph, each with origin: 'transitive', distance, the shortest dependency path, and via (edge kind). summary.blastRadius (directlyAffected, transitivelyAffected, maxDistance, graphEdges) summarizes the reach. Both arrays feed the verificationPlan.

Graph-aware verify. workspace verify gates the whole affected subgraph, not just the changed node. affectedSubgraph (directlyChanged, transitiveDependents, covered, uncovered, unverifiable) records coverage per project: a dependent with failed or missing-required verification evidence becomes a graph.subgraph.<project> blocking reason; missing non-required evidence escalates the verdict to needs-attention; a dependent with no applicable verification command is unverifiable (informational, never blocking).

Centrality-weighted risk. workspace impact computes graph centrality (fanIn/fanOut/reach/betweenness) per project; each impact item carries centrality, a directly-changed critical-path hotspot escalates its risk one level, and the report lists criticalPathHotspots[] (ranked by reach then betweenness). Canonical source: src/workspace-graph-centrality.ts (computeGraphCentrality).

Graph integrity gate. workspace verify emits graphIntegrity (ok, cycles, danglingEdges, orphans, stats). Cycles and dangling edges are blocking (graph.integrity.cycle / graph.integrity.dangling reasons); orphans are informational. Canonical source: src/workspace-graph-integrity.ts (checkGraphIntegrity).

Watch / daemon mode. workspace watch [--json] [--once] keeps the model + graph in memory and streams workspace-watch-event.v1 records (ready/changed/unchanged/error) on each settled change, driven by graph-aware incremental rebuilds. Events carry changed/added/ removed projects, graph edge deltas, structural modelHash, and mode/durationMs. Canonical source: src/workspace-watch.ts.

Use workspace watch --graph-stream --json for the transport-neutral workspace-graph-stream.v1 feed consumed by IDEs. The first line is an authoritative snapshot; subsequent lines are hash-linked, revisioned deltas. Consumers must request a new snapshot after any revision, identity, generation, schema, validation, or hash-continuity failure.

Health/impact history. Each workspace verify run appends a compact record to .workspai/reports/workspace-intelligence-history.json (workspace-intelligence-history.v1), a ring buffer capped at the 50 most-recent entries (verdict, risk, freshness, gate, counts). Canonical source: src/workspace-history.ts.

Verify gate + policy violations. workspace verify --json emits a gate object (passed, mode, exitCode, reasons) from evaluateWorkspaceVerifyGate — the definitive pre-action gate (default fails on blocked; --strict also fails on needs-attention and stale freshness). It also emits policyMode + policyViolations[] (model validation issues + contract violations); in enforce mode error-severity violations block, in warn mode they escalate to needs-attention.

Graph-aware freshness. workspace verify emits a freshness block (verdict: fresh|stale|unknown, changed/added/removed, projectHashes). Each project's transitiveInputsHash chains its own content hash with its transitive dependencies' hashes, so a dependency change makes every dependent stale deterministically. The verdict compares against the previously written verify report. Canonical source: src/workspace-graph-freshness.ts.

Graph command surface. workspace graph emits the dependency graph plus integrity and hotspots. explain <project> returns centrality and direct/transitive relationships. search, entities, evidence, and path return bounded Knowledge Graph projections with proof references; benchmark measures corpus-versus-retrieval payload; overlay --from compares a proposed or earlier graph with the current graph; emit returns the complete interchange graph; and dot|mermaid render deterministic dependency views. Read-oriented modes accept a persisted graph only after model binding, proof freshness, canonical project scopes, and the live hybrid-git-content-v2 fingerprint pass. --refresh-graph bypasses that snapshot. Search and benchmark accept --scope project:<name> and the agent projection reports explicit omission budgets instead of silently expanding its payload. Canonical sources are src/workspace-graph.ts, src/workspace-knowledge-graph-query.ts, src/workspace-knowledge-graph-change-overlay.ts, and src/workspace-graph-token-efficiency.ts. These command surfaces are published through runtime-command-surface.v1 for IDE/CI capability detection.

Model cache (workspace-model-cache.v1)

On-disk path: .workspai/cache/workspace-model.v1.json. Opt-in (workspace model --cache) cache keyed by inputsHash — a deterministic fingerprint of the project set, per-project manifest contents, workspace files (contract/workspace.json/policies), build flags, and CLI version. On a hit the stored model is returned byte-for-byte; on a miss it is rebuilt and rewritten. Canonical source: src/workspace-model-cache.ts (computeModelInputsHash, buildWorkspaceModelCached). Granularity is manifest/project-set level, not per-source-file.

The envelope also stores per-project signatures (computeProjectSignatures: manifest hashes + a source fingerprint of path:size:mtime) and workspace-file signatures, powering workspace model --incremental (buildWorkspaceModelIncremental): unchanged project models are reused and the dependency graph re-infers only edges incident to changed projects (inferWorkspaceDependencyGraphIncremental). It falls back to a full rebuild on workspace-file changes or project renames, and rescans code-imports fully when the node set changes. Reported modes: full / incremental / unchanged.

The model command adds a non-structural build object to its JSON output and, when --write is used, to the persisted model result. mode, outcome, and engineStatus tell IDE/CI consumers whether the result was rebuilt, partially reused, or fully reused. This provenance is deliberately excluded from the canonical workspace-model hash, so switching between full, cached, and incremental execution cannot make the paired knowledge graph appear stale.

Freshness metadata (rapidkit-freshness-metadata-v1)

Intelligence reports carry a shared freshness envelope so any consumer (CLI workspace verify, Workspai, CI) can detect staleness without re-running the whole chain:

FieldMeaning
generatedAtISO-8601 timestamp the report was produced.
inputsHashStable sha256 of the inputs that produced the report. If a freshly recomputed inputs hash differs, the report is stale.

Canonical source: src/contracts/freshness-metadata-contract.ts (computeInputsHash, buildFreshnessMetadata, assessFreshness). Verdicts: fresh (hashes match), stale (hashes differ), unknown (either side missing, e.g. legacy reports).

Fact freshness (rapidkit-fact-freshness-v1)

Artifact-level freshness answers "is this report still valid?" Fact-level freshness answers "may an agent safely remember this specific claim?" workspace model and workspace context --for-agent --write now emit facts[] plus a factFreshness summary so agents, Workspai, and CI can distinguish durable structure from perishable evidence.

KindMeaning
durableStructural configuration such as workspace identity or policy mode
derivedInferred structure such as project count, runtime, framework, commands
evidence-backedA fact backed by a report that can expire or become stale
liveRuntime state that must be re-observed quickly
verify-before-useMissing, stale, or release-sensitive fact that must be regenerated first

Every fact carries category (structure, verification, state), generatedAt, ttlSeconds, status, verifyBeforeUse, sourceArtifact, optional sourcePath, and a stable inputsHash for the fact value. Consumers must treat verifyBeforeUse: true as a hard refresh boundary before advice, edits, or release decisions. Canonical source: src/contracts/fact-freshness-contract.ts; JSON Schema: contracts/workspace-intelligence/fact-freshness.v1.json.

Run correlation (runId)

When a command runs through the CLI with the structured log stream active, the persisted intelligence artifacts (workspace-model.json, workspace-model-snapshot.json, workspace-model-diff-last-run.json, workspace-impact*.json, workspace-context-agent.json) carry a top-level runId. It matches the runId on the cli-log-event.v1 stream (run.started/progress/run.completed), so a consumer can tie an on-disk report to the exact run that produced it. runId is added at write time only and is ignored by modelHash/diff comparisons, so deterministic hashing is unaffected. Canonical source: src/observability/run-correlation.ts (attachRunCorrelation).

Operational / platform

CommandArtifactNotesContract
workspace runworkspace-run-last.jsonworkspace-run-v1 (multi-stage: stages.test, stages.build, …)contracts/workspace-run-last.v1.json
autopilot release (run stages)same workspace-run-last.jsonAutopilot publishes test/build into aggregate (no separate autopilot-workspace-run-*.json)
bootstrapbootstrap-compliance-{ts}.json, bootstrap-compliance.latest.jsonbootstrap-compliance.v1contracts/bootstrap-compliance.v1.json
mirror statusmirror-ops-{ts}.json, mirror-ops.latest.jsonmirror-ops.v1contracts/mirror-ops.v1.json
mirror (transparency)transparency-evidence-{ts}.json, transparency-evidence.latest.jsontransparency-evidence.v1contracts/transparency-evidence.v1.json
infra planinfra-plan.jsonrapidkit.infra-plan.v1
workspace archive.workspai/archive-manifest.json inside ZIP/ZIP64Streaming handoff; workspace payload is unlimited by default and safety budgets are opt-incontracts/workspace-archive-manifest.v1.json
workspace sharereports/share-bundle.json (default)Aggregation bundle (1.1)contracts/workspace-share-bundle.v1.json
import{project}/.workspai/import.json, {project}/.workspai/import-readiness.jsonCopied/cloned project metadata and readiness
adopt{project}/.workspai/adopt.json, {project}/.workspai/adopt-readiness.jsonIn-place project metadata and readiness
workspace contract verifyworkspace-contract-verify-last-run.jsonCLI verify cachecontracts/workspace-intelligence/workspace-contract-verify.v1.json

Static capability contracts

ContractSchema versionConsumer purpose
contracts/runtime-command-surface.v1.jsonrapidkit-runtime-command-surface-v1Runtime commands, scaffold kits, and create planner summary
contracts/cli-operation-result.v1.jsonworkspai-cli-operation-result-v1Stable success/error envelope for JSON command projections
contracts/command-capabilities.v1.jsonrapidkit-command-capabilities-v1Effective command ownership and workspace command discovery
contracts/version.v1.jsonrapidkit-version-v1Version and published-contract discovery response
contracts/published-contract-catalog.v1.jsonworkspai-published-contract-catalog-v1Schema versions plus resolvable contract paths
contracts/project-entry-capability.v1.jsonworkspai-project-entry-capability-v1Open-ended adopt/import capability boundaries for readable projects
contracts/create-planner-capabilities.v1.jsonrapidkit-create-planner-capabilities-v1Native create, official, and existing lanes for CLI, CI, VS Code, and AI planners
contracts/workspace-archive-capabilities.v1.jsonworkspai-workspace-archive-capabilities-v1ZIP64, streaming, compression, limits, commands, flags, and linked archive schemas
contracts/workspace-archive-manifest.v1.jsonworkspai-workspace-archive-manifest-v1Runtime-validated archive manifest, file inventory, checksums, and security policy
contracts/workspace-archive-operation-result.v1.jsonworkspai-workspace-archive-operation-result-v1Stable JSON results for export, inspect, verify, doctor, hydrate, and failures

Observability stream (not on-disk)

Separate from the on-disk artifacts above, Workspai CLI emits a structured NDJSON log stream on stderr when --log-format json (or RAPIDKIT_LOG_FORMAT=json) is set. This is the deterministic progress/outcome channel for IDEs and CI.

StreamSchema versionContract fileDoc
CLI log events (stderr)cli-log-event-v1contracts/cli-log-event.v1.jsonCLI_LOG_EVENT_STREAM.md

Channel rule: command results go to stdout (--json); progress/lifecycle events go to stderr (--log-format json). The two never mix.

Registry commands

CommandOutput
workspace sync [--json]Updates contract + workspace-registry.v1.json; JSON includes registrySummary
workspace registry status [--refresh] [--json]Reads or publishes registry summary

workspace-registry.v1.json, adoption records, and verification reports can contain machine-local absolute paths. Regenerate them after cloning; do not use them as portable repository contracts. The portable source is .workspai/workspace.contract.json plus canonical workspace/project metadata.

Project-scoped reports

Under {project}/.workspai/reports/ when commands run at project scope (e.g. project doctor). Workspace-level reports stay under {workspace}/.workspai/reports/.

After a Python Core bridge creates a project, Workspai validates and mirrors legacy .rapidkit/project.json, context.json, and file-hashes.json into the canonical project .workspai/ directory without overwriting an existing canonical file. Legacy files remain readable during the compatibility window.

Consumer rules

  1. Project count: read workspace-registry.v1.json (or run workspace registry status --json).
  2. Workspace Intelligence chain: run workspace intelligence run --for-agent generic --strict --json to preserve Model → Diff → Impact → Doctor + Contract Verify + Analyze → Readiness → Verify → Context → Agent Sync → Explain. pipeline is the broader governance/release orchestrator and autopilot is a separate release surface; neither redefines the canonical chain. Use pipeline-last-run.json only for the pipeline orchestration summary.
  3. Do not use workspace.json.projects (removed in schema 1.0).
  4. Prefer schemaVersion constants in each artifact; legacy v1 on readiness is accepted when reading old reports.
  5. Agent retrieval: start with AGENTS.md and .workspai/reports/INDEX.json, then use workspace graph search <query> --limit <n> --json or MCP searchWorkspaceGraph for question-sized facts. Use --scope project:<name> when the task has one registered project boundary, inspect budget.omitted before assuming the result is complete, and follow returned proof paths to source evidence. Read the full context, model, or graph only when the bounded result is insufficient.
  6. Agent customization state: use .workspai/reports/agent-customization-pack.json to inspect generated surfaces and drift; regenerate with workspace agent-sync --write --refresh-context --preset enterprise.

Agent customization files (repo hooks)

Written by workspace agent-sync --write --refresh-context --preset enterprise (and by default after workspace context --for-agent --write):

The generated output inventory is committed as one journaled transaction. On failure, all touched files are restored; an interrupted transaction is recovered before the next agent-sync. agent-customization-pack.json is written last and serves as the completed-generation marker.

PathConsumer
AGENTS.mdCopilot, Cursor, Claude Code, Codex, Grok (open standard)
.github/copilot-instructions.mdGitHub Copilot / VS Code Chat
.github/instructions/workspai-workspace.instructions.mdCopilot workspace scope and command discipline
.github/instructions/workspai-evidence.instructions.mdCopilot scoped .workspai/** and compatibility evidence rules
.github/prompts/workspai-diagnose.prompt.mdCopilot prompt library
.github/prompts/workspai-repair.prompt.mdCopilot repair workflow prompt
.github/prompts/workspai-release-readiness.prompt.mdCopilot release readiness workflow prompt
.github/prompts/workspai-project-onboard.prompt.mdCopilot project onboarding workflow prompt
.github/prompts/workspai-adopt-project.prompt.mdCopilot adopt/import workflow prompt
.github/skills/workspai-grounding/SKILL.mdCopilot skills
.github/skills/workspai-workspace-intelligence/SKILL.mdEnterprise Workspace Intelligence skill
.github/skills/workspai-workspace-intelligence/resources/mcp-tools.mdMCP tool and evidence-retrieval reference
.github/agents/workspai-advisor.agent.mdRead-only workspace advisor agent
.github/agents/workspai-repair.agent.mdBlocker repair agent
.github/agents/workspai-release.agent.mdRelease safety agent
.github/agents/workspai-project-onboarder.agent.mdProject onboarding agent
.cursor/rules/workspai-grounding.mdcCursor always-on rule
CLAUDE.mdClaude Code (imports @AGENTS.md)
.claude/rules/workspai-evidence.mdClaude Code scoped evidence rule
.claude/rules/rapidkit-evidence.mdLegacy compatibility alias pointing to the canonical rule
.workspai/AGENT-GROUNDING.mdTool-agnostic operator doc
.workspai/reports/agent-customization-pack.jsonVersioned output inventory, target matrix, drift state
.workspai/reports/workspai-mcp-design.jsonRead-mostly MCP-ready design manifest
.vscode/workspai-agent-hooks.jsonOptional advisory VS Code agent hooks (--experimental-hooks)

Some rapidkit-* prompt, skill, Cursor, MCP-design, and hook paths remain available for older consumers during the rebrand window. New consumers should use the workspai-* paths first.

See also