Agent skill
compact-core:compilation-tooling
Use when working with the Compact compiler (compactc), configuring build settings, understanding zkir/prover/verifier output artifacts, setting up COMPACT_PATH, or integrating VS Code language server support for Midnight smart contract development.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/compilation-tooling
SKILL.md
Compilation Tooling
Complete guide to the Compact compiler (compactc), project organization, build workflows, and understanding compilation output.
Quick Reference
Basic Compilation
# Compile a contract
compactc contract.compact -o output/
# Compile with debug mode (faster, no ZK proofs)
compactc contract.compact -o output/ --skip-zk
# Generate VS Code language server support
compactc contract.compact -o output/ --vscode
Compiler Flags
| Flag | Description | Example |
|---|---|---|
-o, --output |
Output directory | -o build/ |
--skip-zk |
Skip ZK proof generation (dev mode) | --skip-zk |
--vscode |
Generate VS Code language server files | --vscode |
-I, --include |
Add include path | -I ./lib |
--verbose |
Verbose output | --verbose |
--json |
JSON output format | --json |
--no-typescript |
Skip TypeScript generation | --no-typescript |
Environment Variables
| Variable | Purpose | Example |
|---|---|---|
COMPACT_PATH |
Include path resolution | export COMPACT_PATH="/libs:/project/src" |
MIDNIGHT_NETWORK |
Target network | export MIDNIGHT_NETWORK="testnet" |
Output Artifacts
Compilation produces several output files:
output/
├── zkir/ # Zero-knowledge intermediate representation
│ ├── circuit_name.zkir # Circuit IR for each exported circuit
│ └── ...
├── keys/
│ ├── prover/ # Prover keys (for proof generation)
│ │ └── circuit_name.pk
│ └── verifier/ # Verifier keys (for on-chain verification)
│ └── circuit_name.vk
├── contract.ts # TypeScript types and contract interface
├── witnesses.ts # Witness type definitions
└── index.ts # Main export file
Development Workflow
1. Write Compact contract
2. Compile with --skip-zk for fast iteration
3. Run TypeScript tests
4. When ready: Full compile (generates ZK keys)
5. Deploy to testnet
Fast Development Loop
# Fast iteration (no proof generation)
compactc contract.compact -o build/ --skip-zk
# Full build for deployment
compactc contract.compact -o build/
Project Structure
Recommended project layout for Midnight DApps:
my-midnight-project/
├── contracts/
│ ├── main.compact # Main contract entry point
│ ├── types.compact # Shared type definitions
│ └── lib/ # Helper modules
│ └── utils.compact
├── src/ # TypeScript application code
│ ├── index.ts
│ ├── witnesses.ts # Witness implementations
│ └── deploy.ts
├── build/ # Compiled output (gitignored)
│ ├── zkir/
│ ├── keys/
│ └── *.ts
├── tests/
│ └── contract.test.ts
├── package.json
├── tsconfig.json
└── .env # Environment configuration
VS Code Integration
Generate language server support for VS Code:
compactc contract.compact -o build/ --vscode
This creates .vscode/ configuration for:
- Syntax highlighting
- Error diagnostics
- Type checking
- Go to definition
References
For detailed documentation:
- Compiler Usage - All compactc flags and options
- Project Structure - Recommended project layouts
- Output Artifacts - Understanding compiled output
Examples
Working project templates and scripts:
- Project Template - Complete starter project
- Build Scripts - Build, watch, and validation scripts
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?