CLI-first verification lab for pccx NPU trace profiling, workflow descriptors, proposal previews, disabled runner pilots, and bounded GUI inspection.
Public alpha — v0.1.0-alpha is published as a prerelease. Core
crates and the Tauri shell are in active development; APIs and .pccx
schema may shift before v0.2.0. Feedback and issues are welcome.
| Entry point | Link |
|---|---|
| Documentation | https://pccx.pages.dev/en/lab/ |
| Releases | https://github.com/pccxai/pccx-lab/releases |
v0.1.0-alpha notes |
docs/releases/v0.1.0-alpha.md |
| Roadmap (project board) | https://github.com/orgs/pccxai/projects/1 |
| Contributing | https://github.com/pccxai/.github/blob/main/CONTRIBUTING.md |
| How to cite | CITATION.cff |
| Tooling status | rust-check + frontend-check required on main; cargo fmt --check enforced |
| Discussions | https://github.com/pccxai/pccx-lab/discussions |
| Good first issues |
good first issue
|
Documentation is available in both English and Korean:
- English: https://pccx.pages.dev/en/lab/
- Korean: https://pccx.pages.dev/ko/lab/
Read our design rationale on why we use a single monorepo to maintain strong module boundaries.
Phase 1 split the original monolithic core into nine focused crates under crates/ plus a top-level ui/. pccx-core is the single sink of the dependency graph; no crate depends on pccx-ide or pccx-remote (both are terminal binaries).
crates/core/(pccx-core) — pure Rust core:.pccxformat, trace parsing, hardware model, roofline, bottleneck, VCD / chrome-trace, Vivado timing.crates/reports/— Markdown / HTML / PDF rendering.crates/verification/— golden-diff + robust-reader gates for CI.crates/authoring/— ISA / API TOML compilers.crates/evolve/— EAGLE-family speculative-decoding primitives; future home of the Phase 5 DSE loop.crates/lsp/— Phase 2 IntelliSense façade (sync + async provider traits, multiplexers, subprocess spawner).crates/remote/— Phase 3 backend-daemon scaffold.crates/uvm_bridge/— SystemVerilog/UVM DPI-C boundary.crates/workflow_facade/— workflow-boundary helper scaffolds; provider runtime integration is outside the CLI/core boundary.ui/src-tauri/(pccx-ide) — Tauri shell consuming the core / reports crates through IPC.ui/— React + Vite frontend; talks topccx-idevia Tauri IPC.
See docs/design/phase1_crate_split.md for the full dependency graph and per-crate rationale.
Read the open specification for our .pccx binary session format.
pccx-lab is CLI-first. GUI, editor-adjacent, launcher-adjacent, and future plugin-facing workflows sit on top of the same controlled boundary. There is no private back channel into lab internals. See docs/CLI_CORE_BOUNDARY.md.
pccx-lab status --format jsonreturns deterministic lab status for headless tools and the GUI status panel.pccx-lab theme --format jsonreturns the early theme-token contract for a theme-neutral presentation layer.pccx-lab workflows --format jsonreturns descriptor-only workflow metadata for GUI, CI/headless, and future tool consumers.pccx-lab workflow-proposals --format jsonreturns proposal-only previews for future approved workflow runs.pccx-lab workflow-results --format jsonreturns summary-only workflow result metadata without full logs.docs/examples/sail-adoption-plan.example.jsonrecords a descriptor-only adoption plan for future Sail reference-model review; it is not a Sail source reader, parser, compiler, model execution path, refinement check, proof path, report writer, artifact writer, or hardware path.docs/examples/sail-interface-boundary.example.jsonrecords a descriptor-only Sail interface handoff boundary over approved summaries; it is not a Sail source reader, parser, compiler, AST reader, model execution path, refinement check, proof path, report reader/writer, artifact reader/writer, or hardware path.docs/examples/sail-review-packet.example.jsonrecords a summary-only Sail review packet over approved adoption, interface, workflow, verification, and report-gate summaries; it is not a Sail source reader, RTL source reader, AST reader, parser, compiler, model generator, model execution path, refinement check, proof path, report/artifact reader or writer, or hardware path.docs/examples/sail-evidence-manifest.example.jsonrecords a summary-only Sail evidence manifest over approved adoption, interface, review, workflow, and verification-gate summaries; it is not a Sail source reader, RTL source reader, AST reader, parser, compiler, model generator, model execution path, refinement check, proof path, report/artifact reader or writer, command runner, repository reader, or hardware path.docs/examples/sail-evidence-detail.example.jsonrecords a descriptor-only detail view for one selected approved Sail evidence summary reference; it is not a Sail source reader, RTL source reader, AST reader, generated-model reader, parser, compiler, model generator, model execution path, refinement check, proof path, verification run, report/artifact reader or writer, command runner, repository reader, marketplace flow, or hardware path.docs/examples/sail-model-readiness.example.jsonrecords a descriptor-only readiness gate for future Sail model work over approved Sail boundary summaries; it is not a Sail source reader, RTL source reader, AST reader, generated-model reader, parser, compiler, model generator, model execution path, refinement check, proof path, verification run, report/artifact reader or writer, command runner, repository reader, marketplace flow, or hardware path.docs/examples/sail-implementation-gap-matrix.example.jsonrecords a descriptor-only gap matrix for future Sail implementation work over approved Sail boundary summaries; it is not a Sail source reader, RTL source reader, AST reader, generated-model reader, parser, compiler, model generator, model execution path, refinement check, proof path, verification run, report/artifact reader or writer, command runner, repository reader, release flow, marketplace flow, or hardware path.docs/examples/sail-source-intake-boundary.example.jsonrecords a descriptor-only source-intake boundary for future Sail and RTL source handoff planning over approved Sail boundary summaries; it is not a Sail source reader, RTL source reader, source path reader, source content reader, source hash reader, source metadata reader, manifest reader, AST reader, generated-model reader, parser, compiler, model generator, model execution path, refinement check, proof path, verification run, report/artifact reader or writer, command runner, repository reader, release flow, marketplace flow, or hardware path.docs/examples/sail-source-intake-approval.example.jsonrecords a descriptor-only approval gate for future Sail source-intake planning over approved Sail boundary summaries; it does not request, record, or grant approval and is not a Sail source reader, RTL source reader, source path reader, source content reader, source hash reader, source metadata reader, manifest reader, AST reader, generated-model reader, parser, compiler, model generator, model execution path, refinement check, proof path, verification run, report/artifact reader or writer, command runner, repository reader, release flow, marketplace flow, or hardware path.docs/examples/sail-source-intake-result.example.jsonrecords a descriptor-only blocked result boundary for future Sail source-intake outcomes over approved Sail boundary summaries; it does not request, record, or grant approval, attempt or complete source intake, materialize result payloads, read Sail sources, read RTL sources, read source paths, read source content, read source hashes, read source metadata, read manifests, read ASTs, read generated models, run parsers, run compilers, generate or execute models, run refinement checks, run proofs, run simulators, run verification, read or write reports or artifacts, execute commands, read repositories, run a release flow, run a marketplace flow, or control hardware.docs/examples/sail-source-intake-handoff.example.jsonrecords a descriptor-only blocked handoff summary for future Sail source-intake result review over approved Sail boundary summaries; it does not request, record, or grant approval, attempt or complete source intake, materialize result payloads, generate public text, publish a handoff, read Sail sources, read RTL sources, read source paths, read source content, read source hashes, read source metadata, read manifests, read ASTs, read generated models, run parsers, run compilers, generate or execute models, run refinement checks, run proofs, run simulators, run verification, read or write reports or artifacts, execute commands, read repositories, run a release flow, run a marketplace flow, or control hardware.docs/examples/sail-source-intake-status-summary.example.jsonrecords a descriptor-only status summary for future Sail source-intake display over approved Sail source-intake boundary, approval, result, handoff, gap-matrix, and evidence-detail summaries; it does not execute approval, dispatch source intake, read Sail sources, read RTL sources, read source paths, read source content, read source hashes, read source metadata, read manifests, read ASTs, read generated models, run parsers, run compilers, generate or execute models, run refinement checks, run proofs, run simulators, run verification, read or write reports or artifacts, execute commands, read repositories, publish handoffs, run a release flow, run a marketplace flow, or control hardware.docs/examples/hybrid-strategy-plan.example.jsonrecords a descriptor-only hybrid strategy plan for future C++/SystemVerilog and custom-script control tracks; it is not a source reader, grammar reader, parser, compiler, runtime, simulator runner, verification run, report writer, artifact writer, or hardware-control path.docs/examples/hybrid-interface-boundary.example.jsonrecords a descriptor-only hybrid interface handoff boundary over approved summaries; it is not a C++/SystemVerilog/custom-script source reader, grammar reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, or hardware-control path.docs/examples/hybrid-review-packet.example.jsonrecords a summary-only hybrid review packet over approved strategy, interface, workflow, verification, and report-gate summaries; it is not a source reader, grammar reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, or hardware-control path.docs/examples/hybrid-evidence-manifest.example.jsonrecords a summary-only hybrid evidence manifest over approved strategy, interface, review, workflow, and verification-gate summaries; it is not a source reader, grammar reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, command runner, repository reader, or hardware-control path.docs/examples/hybrid-evidence-detail.example.jsonrecords a descriptor-only detail view for one selected approved hybrid evidence summary reference; it is not a source reader, grammar reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, command runner, repository reader, marketplace flow, or hardware-control path.docs/examples/hybrid-implementation-readiness.example.jsonrecords a descriptor-only readiness gate for future hybrid C++/SystemVerilog and custom-script work over approved hybrid boundary summaries; it is not a source reader, grammar reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, command runner, repository reader, marketplace flow, or hardware-control path.docs/examples/hybrid-implementation-gap-matrix.example.jsonrecords a descriptor-only gap matrix for future hybrid C++/SystemVerilog and custom-script implementation work over approved hybrid boundary summaries; it is not a source reader, grammar reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, command runner, repository reader, release flow, marketplace flow, or hardware-control path.docs/examples/hybrid-source-intake-boundary.example.jsonrecords a descriptor-only source-intake boundary for future C++/SystemVerilog, custom-script, and grammar handoff planning over approved hybrid boundary summaries; it is not a source reader, grammar reader, source path reader, source content reader, source hash reader, source metadata reader, manifest reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, command runner, repository reader, release flow, marketplace flow, or hardware-control path.docs/examples/hybrid-source-intake-approval.example.jsonrecords a descriptor-only approval gate for future hybrid source-intake planning over approved hybrid boundary summaries; it does not request, record, or grant approval and is not a source reader, grammar reader, source path reader, source content reader, source hash reader, source metadata reader, manifest reader, parser, compiler, runtime, script execution path, simulator runner, verification run, report/artifact reader or writer, command runner, repository reader, release flow, marketplace flow, or hardware-control path.docs/examples/hybrid-source-intake-result.example.jsonrecords a descriptor-only blocked result boundary for future hybrid source-intake outcomes over approved hybrid boundary summaries; it does not request, record, or grant approval, attempt or complete source intake, materialize result payloads, read sources, read grammar, read source paths, read source content, read source hashes, read source metadata, read manifests, run parsers, run compilers, execute runtimes or scripts, run simulators, run verification, read or write reports or artifacts, execute commands, read repositories, run a release flow, run a marketplace flow, or control hardware.docs/examples/hybrid-source-intake-handoff.example.jsonrecords a descriptor-only blocked handoff summary for future hybrid source-intake result review over approved hybrid boundary summaries; it does not request, record, or grant approval, attempt or complete source intake, materialize result payloads, generate public text, publish a handoff, read sources, read grammar, read source paths, read source content, read source hashes, read source metadata, read manifests, run parsers, run compilers, execute runtimes or scripts, run simulators, run verification, read or write reports or artifacts, execute commands, read repositories, run a release flow, run a marketplace flow, or control hardware.docs/examples/hybrid-source-intake-status-summary.example.jsonrecords a descriptor-only status summary for future hybrid source-intake display over approved hybrid source-intake boundary, approval, result, handoff, gap-matrix, and evidence-detail summaries; it does not execute approval, dispatch source intake, read C++ sources, read SystemVerilog sources, read custom-script sources, read grammar input, read source paths, read source content, read source hashes, read source metadata, read manifests, run parsers, run compilers, execute runtimes or scripts, run simulators, run verification, read or write reports or artifacts, execute commands, read repositories, publish handoffs, run a release flow, run a marketplace flow, or control hardware.docs/examples/mcp-read-only-tool-plan.example.jsonmaps a future MCP/tool adapter to read-only CLI/core commands; it is a checked plan, not a runtime implementation.docs/examples/mcp-tool-list.example.jsonrecords a descriptor-only MCP tool listing over approved boundary summaries; it is not an MCP server, client, runtime, transport, command executor, tool invocation path, file reader, report writer, audit logger, or write path.docs/examples/mcp-tool-detail.example.jsonrecords a descriptor-only MCP tool detail view for one selected listed tool; it is not an MCP server, client, runtime, transport, command executor, tool invocation path, input reader, output payload reader, report writer, audit logger, or write path.docs/examples/mcp-sample-result.example.jsonrecords descriptor-only result metadata for a planned read-only MCP status sample; it is not an MCP server, client, runtime, transport, command executor, result payload reader, report reader/writer, artifact reader/writer, audit logger, or tool invocation path.docs/examples/mcp-sample-catalog.example.jsonrecords a descriptor-only catalog for planned read-only MCP samples; it is not sample discovery, an MCP server/client/runtime/transport, command executor, result payload reader, report reader/writer, artifact reader/writer, audit logger, or tool invocation path.docs/examples/mcp-sample-detail.example.jsonrecords descriptor-only detail metadata for one planned read-only MCP sample; it is not sample discovery, an MCP server/client/runtime/transport, command executor, payload reader, report/artifact reader or writer, audit logger, tool invocation path, marketplace flow, or compatibility claim.docs/examples/mcp-sample-status-summary.example.jsonrecords a descriptor-only status summary over the checked MCP sample plan, result, catalog, detail, tool-detail, and permission summaries; it is not sample discovery, an MCP server/client/runtime/transport, command executor, payload reader, report/artifact reader or writer, audit logger, tool invocation path, marketplace flow, or compatibility claim.docs/examples/mcp-read-only-analysis-flow.example.jsonrecords a checked dry-run flow contract for composing existing CLI/core summaries into a future read-only report path; it is not a command executor or report writer.docs/examples/mcp-read-only-report-contract.example.jsonrecords the summary-only report output shape for a future read-only tool adapter; it is not an MCP runtime, command executor, artifact writer, or report writer.docs/examples/mcp-verification-run-comparison.example.jsonrecords a summary-only comparison shape for approved workflow-result summaries; it is not an MCP runtime, command executor, file reader, trace reader, report writer, artifact writer, or repository mutation path.docs/examples/mcp-pr-summary-handoff.example.jsonrecords the summary-only PR handoff shape for approved issue, change, and validation summaries; it is not an MCP runtime, command executor, file reader, repository reader, PR creator, comment writer, or repository mutation path.docs/examples/mcp-evidence-manifest.example.jsonrecords the summary-only evidence manifest shape for approved evidence summary references; it is not an MCP runtime, command executor, file reader, artifact reader, report writer, hardware probe, audit logger, or repository mutation path.docs/examples/mcp-evidence-detail.example.jsonrecords a descriptor-only detail view for one selected approved evidence reference; it is not an MCP runtime, command executor, file reader, artifact reader, report reader, report writer, hardware probe, audit logger, or repository mutation path.docs/examples/mcp-permission-model.example.jsonrecords the descriptor-only permission profiles and approval gates for a future MCP/tool adapter; it is not a permission runtime or command executor.docs/examples/mcp-approval-request.example.jsonrecords the approval-request and repository-mutation gate for a future MCP/tool adapter; it is not an MCP runtime, permission executor, command executor, audit logger, or write path.docs/examples/mcp-approval-decision.example.jsonrecords a denied approval-decision gate for a future MCP/tool adapter; it is not an MCP runtime, approval executor, permission executor, command executor, audit logger, tool invocation path, or write path.docs/examples/mcp-invocation-request.example.jsonrecords a blocked invocation-request gate for a future MCP/tool adapter; it is not an MCP server, client, runtime, approval executor, permission executor, command executor, tool invocation path, file reader, or write path.docs/examples/mcp-client-session-state.example.jsonrecords a blocked client/session state for a future MCP/tool adapter; it is not an MCP server, client, runtime, transport, command executor, tool invocation path, audit logger, file reader, or write path.docs/examples/mcp-blocked-invocation-result.example.jsonrecords a blocked, non-executed invocation result for a future MCP/tool adapter; it is not an MCP runtime, command executor, tool invocation path, file reader, artifact writer, or write path.docs/examples/mcp-audit-event.example.jsonrecords the redacted audit-event shape for a future read-only MCP/tool adapter; it is not an audit logger or runtime implementation.docs/examples/plugin-boundary-plan.example.jsonrecords the plugin manifest and host API planning boundary; it is not a plugin loader or package distribution flow.docs/examples/plugin-sample-result.example.jsonrecords descriptor-only result metadata for a planned diagnostics summary plugin sample; it is not a plugin loader, runtime, sandbox, host API binding, capability dispatcher, invocation path, result payload reader, report reader/writer, or artifact reader/writer.docs/examples/plugin-sample-catalog.example.jsonrecords a descriptor-only catalog for planned plugin samples; it is not sample discovery, a manifest/package/source reader, plugin loader, runtime, sandbox, capability dispatcher, invocation path, result payload reader, report reader/writer, or artifact reader/writer.docs/examples/plugin-sample-detail.example.jsonrecords descriptor-only detail metadata for one planned plugin sample; it is not sample discovery, a manifest/package/source reader, payload reader, report/artifact reader or writer, plugin loader, runtime, sandbox, capability dispatcher, invocation path, package distribution, marketplace flow, or compatibility claim.docs/examples/plugin-sample-status-summary.example.jsonrecords a descriptor-only status summary over the checked plugin sample plan, result, catalog, detail, capability-detail, and permission summaries; it is not sample discovery, a manifest/package/source reader, payload reader, report/artifact reader or writer, plugin loader, runtime, sandbox, capability dispatcher, invocation path, package distribution, marketplace flow, or compatibility claim.docs/examples/plugin-manifest-validation-result.example.jsonrecords the summary-only result shape for a future approved plugin manifest validation request; it is not a manifest reader, validator command, plugin loader, runtime, sandbox, or package distribution flow.docs/examples/plugin-capability-list.example.jsonrecords a descriptor-only capability listing for future CLI/core and GUI consumers; it is not a manifest reader, package reader, plugin loader, runtime, capability dispatcher, compatibility promise, or marketplace flow.docs/examples/plugin-capability-detail.example.jsonrecords a descriptor-only capability detail view for one selected listed capability; it is not a manifest reader, package reader, plugin loader, runtime, sandbox, capability dispatcher, compatibility promise, or marketplace flow.docs/examples/plugin-load-request.example.jsonrecords a blocked load-request gate for a future reviewed plugin loader path; it is not a plugin loader, runtime, sandbox, manifest reader, package installer, dynamic code loader, or compatibility promise.docs/examples/plugin-host-session-state.example.jsonrecords a blocked host/session state for a future reviewed plugin loader path; it is not a plugin loader, runtime, sandbox, host API binding, capability dispatcher, command executor, or compatibility promise.docs/examples/plugin-invocation-request.example.jsonrecords a blocked invocation-request gate for a future reviewed plugin capability dispatch path; it is not a plugin loader, runtime, sandbox, host API binding, command executor, or compatibility promise.docs/examples/plugin-dry-run-flow.example.jsonrecords a checked dry-run flow contract for future approved plugin manifest, capability, diagnostics, and report-panel summaries; it is not a plugin loader, runtime, sandbox, command executor, or report writer.docs/examples/plugin-input-contract.example.jsonrecords the summary-only input shape for future approved plugin diagnostics and report previews; it is not a plugin loader, runtime, input reader, command executor, artifact reader, or compatibility promise.docs/examples/plugin-trace-summary-input.example.jsonrecords the summary-only trace metadata input gate for future plugin trace review; it is not a plugin loader, runtime, input reader, trace importer, raw trace reader, command executor, artifact reader, or ABI promise.docs/examples/plugin-output-contract.example.jsonrecords the summary-only output shape for future plugin diagnostic, report-panel, and report item previews; it is not a plugin loader, runtime, command executor, artifact writer, or compatibility promise.docs/examples/plugin-blocked-invocation-result.example.jsonrecords a blocked, non-executed invocation result for a future plugin path; it is not a plugin loader, runtime, sandbox, permission executor, input reader, report writer, artifact reader, or ABI promise.docs/examples/plugin-permission-model.example.jsonrecords the descriptor-only permission profiles, sandbox requirements, and approval gates for future plugin capabilities; it is not a plugin runtime, sandbox, or permission executor.docs/examples/plugin-audit-event.example.jsonrecords the redacted audit-event shape for future approved plugin metadata review; it is not an audit logger, plugin loader, runtime, sandbox, or command executor.pccx-lab run-approved-workflow <proposal-id> --format jsonreturns a blocked result by default; the pilot only runs fixed allowlisted pccx-lab commands when explicitly enabled for local validation.pccx-lab analyze <file> --format jsonreturns file-shape diagnostics through the reusable CLI/core boundary.pccx-lab diagnostics-handoff validate --file <path> --format jsonvalidates a launcher diagnostics handoff JSON file as a read-only future-consumer boundary.
The GUI is a CLI-backed GUI surface, not a separate logic island. Theme work is experimental. Workflow descriptors, proposals, and result summaries do not execute anything, and the runner pilot is disabled by default. No plugin compatibility promise is made. No MCP runtime, provider runtime, launcher runtime, or editor runtime integration is implemented by this foundation.
The diagnostics handoff validator does not execute pccx-llm-launcher, load plugins, call providers, touch hardware, upload telemetry, write files, or start GUI workflows. It reads a local JSON document and emits a deterministic summary. See docs/DIAGNOSTICS_HANDOFF_CONSUMER.md.
- pccx (docs) — NPU architecture reference
- pccx-FPGA-NPU-LLM-kv260 (RTL) — v002 LLM RTL repository
- pccx-LLM-v003 — active LLM RTL track in a separate repository
- pccx-vision-v001 — active vision track for related KV260-oriented work
- pccx-lab (this) — CLI-first verification lab and GUI inspector
Apache 2.0 License.
PCCX™ is a mark used by the PCCX project. Korean trademark
applications are pending for PCCX in Classes 09 and 42. Registration
has not been granted; do not use PCCX® until the central trademark
policy is updated. See
pccx/TRADEMARKS.md.