Goal
Establish the foundation for the rustmanifest MCP server: a cargo workspace, hardened CI, reproducible signed releases, locked JSON Schemas, and governance documents. No analysis logic in this phase — the skeleton must compile, lint clean, and ship.
Locked decisions
- Crate prefix:
rustmanifest
- URI scheme:
rustmanifest://
- MSRV: 1.95 (current stable on 2026-05-13); policy: stable-3 in every minor
- Org:
github.com/RAprogramm
- Action name:
RAprogramm/rustmanifest-action@v1
- Server response language: English only (independent of request language)
Workspace layout
crates/rustmanifest-schema — JSON Schemas + Rust types (single source of truth for Rule, Finding, Config, MethodologyResource)
crates/rustmanifest-rules-core — rules.json producer + embedded EN docs + fixtures (stub)
crates/rustmanifest-engine — tiered analysis: tier 1 patterns, tier 2 syn AST, tier 3 cargo/rust-analyzer (stub)
crates/rustmanifest-config — rustmanifest.toml parser, profiles, pragma handling (stub)
crates/rustmanifest-report — JSON, SARIF 2.1.0, TTY renderers (stub)
crates/rustmanifest-mcp — rmcp-based server (stub)
crates/rustmanifest-lsp — LSP server reusing the engine (stub)
crates/rustmanifest-cli — rustmanifest binary entry-point (stub)
Deliverables
Workspace
Schemas
CI
Release pipeline
Governance and security
Out of scope (later phases)
- Any analysis logic (tier 1/2/3) — Phase 1
- MCP server implementation — Phase 2
- OAuth/HTTP transport — Phase 3
- Sampling — Phase 4
- GitHub Action, LSP, editor docs — Phase 5
- Rule definitions parsed from markdown — Phase 1
Acceptance criteria
cargo build --release succeeds on all crates on linux/macos/windows
cargo +nightly fmt --check clean
cargo clippy --all-targets --all-features -- -D warnings clean
cargo test --workspace passes (smoke tests only)
- CI green on PR
- Release workflow dry-run produces signed artifacts with SBOM and provenance
gh pr merge --squash --delete-branch after green CI
Risks
- cargo-vet bootstrap requires existing trusted imports — start with empty supply-chain set, document
- coverage threshold 80% may be unreachable on pure-stub crates — initial gate set to 0% with TODO to ramp in Phase 1
- macos/windows aarch64 runners cost — keep matrix tight, scale later
Goal
Establish the foundation for the
rustmanifestMCP server: a cargo workspace, hardened CI, reproducible signed releases, locked JSON Schemas, and governance documents. No analysis logic in this phase — the skeleton must compile, lint clean, and ship.Locked decisions
rustmanifestrustmanifest://github.com/RAprogrammRAprogramm/rustmanifest-action@v1Workspace layout
crates/rustmanifest-schema— JSON Schemas + Rust types (single source of truth for Rule, Finding, Config, MethodologyResource)crates/rustmanifest-rules-core— rules.json producer + embedded EN docs + fixtures (stub)crates/rustmanifest-engine— tiered analysis: tier 1 patterns, tier 2 syn AST, tier 3 cargo/rust-analyzer (stub)crates/rustmanifest-config— rustmanifest.toml parser, profiles, pragma handling (stub)crates/rustmanifest-report— JSON, SARIF 2.1.0, TTY renderers (stub)crates/rustmanifest-mcp— rmcp-based server (stub)crates/rustmanifest-lsp— LSP server reusing the engine (stub)crates/rustmanifest-cli—rustmanifestbinary entry-point (stub)Deliverables
Workspace
Cargo.tomlwith workspace, shared[workspace.lints], shared[workspace.package], MSRV 1.95rust-toolchain.tomlpinning channel and componentslib.rsormain.rs.gitignorefor cargo, IDE, CI artifacts.rustfmt.tomlkept as-isSchemas
Rule,Finding,Config,MethodologyResourceRust types inrustmanifest-schemaschemarsderives, schema export binarycrates/rustmanifest-schema/schemas/CI
.github/workflows/ci.yml: fmt (nightly), clippy-D warnings, test, build, MSRV checkcargo-llvm-cov, threshold 80%Release pipeline
cargo-distconfig for multi-arch binariesrelease-plzconfig for independent per-crate SemVer publishing to crates.ioGovernance and security
docs/THREAT_MODEL.md— initial threats: prompt injection in resources, tool-call abuse, supply chain, sandbox escapedocs/GOVERNANCE.md— RFC process, deprecation policy, SemVer rulesdocs/RFCS/0000-template.md— RFC templateSECURITY.md— private disclosure via GH security advisories, embargo procedureCODEOWNERS— RAprogramm as default owner.github/ISSUE_TEMPLATE/— bug, feature, rule-proposal templates.github/pull_request_template.mdOut of scope (later phases)
Acceptance criteria
cargo build --releasesucceeds on all crates on linux/macos/windowscargo +nightly fmt --checkcleancargo clippy --all-targets --all-features -- -D warningscleancargo test --workspacepasses (smoke tests only)gh pr merge --squash --delete-branchafter green CIRisks