Implement the next incomplete section from cfgd PLAN.md
/opt/repos/cfgd/.claude/PLAN.md- [ ] items/opt/repos/cfgd/CLAUDE.md — coding standards, hard rules, module map, naming conventions (camelCase serde fields, PascalCase enum values)/opt/repos/cfgd/.claude/PLAN.md — the section you're implementing and its checklist/opt/repos/cfgd/.claude/kubernetes-first-class.md for full design detailThen read all existing source files relevant to the work to understand what's already implemented. Plan your implementation order — implement in dependency order (leaf modules first).
Every module must be production-grade when committed. Do not leave stubs, , placeholder implementations, or partial features. If the section's checklist items aren't fully met, the section isn't done — keep working or report what remains.
todo!()output::Printer. No println!, eprintln!, console::*, indicatif::* anywhere else.unwrap() or expect() in library code. Use ? with proper error types.ProviderRegistry, never concrete impls.thiserror for library errors, anyhow only in main.rs, cli/, and mcp/.config/ only, with serde::Deserialize + serde::Serialize. Use #[serde(rename_all = "camelCase")] on structs; enum variants use PascalCase by default (no rename needed). No rename_all = "kebab-case" anywhere.std::process::Command outside cli/, packages/, secrets/, system/, reconciler/, platform/, sources/, gateway/, output/, and generate/. See CLAUDE.md for what each is allowed to shell out to.#[cfg(test)] mod tests {}.cargo check after each module to catch errors early.#[allow(dead_code)] — if code is unused, delete it.cfgd-core/src/lib.rs and check if a shared version already exists. If you need a function that will be used by more than one module, add it to lib.rs. See the "Shared Utilities" section in CLAUDE.md for the current inventory.cfgd_core::utc_now_iso8601() for timestamps. Do NOT create local wrappers.Sha256::digest() for hashing. Do NOT use Sha256::new() + update() + finalize().cfgd_core::command_available() to check CLI tool availability. Do NOT redefine it.Every gate must pass before the section is considered complete. Do not skip any.
Build and lint
cargo fmtcargo clippy -- -D warningscargo test --workspace (ALL tests, not just the crate you changed)tests/e2e/*/scripts/ if the environment supports it (requires Docker/kind). If not runnable, note which E2E suites exist and what they cover.Quality scripts
bash .claude/scripts/audit.shbash .claude/scripts/completeness-check.shSkill-based review gates — invoke each of these skills:
/detecting-implementation-gaps — verify all new code is reachable from entry points, no dead implementations/deduplicating-code — verify no duplicated logic was introduced, check for DRY violations across the full codebasesuperpowers:requesting-code-review — full code review of the changes against PLAN.md and CLAUDE.md standardssuperpowers:verification-before-completion — run fresh verification commands and confirm every claim with evidenceFix all issues found by each skill before proceeding to the next.
Checklist completion — walk through every checklist item in the section: