Kernel → vendor instruction projection
Last Verified: 2026-08-31
Status: Active debt / MVP in progress
Tracked: [REDACTED-ID]
Related: POL-ARCH-AGENT-STATE-EXPORT, POL-AGENT-001 (Kernel-First), POL-WORKFLOW-VDS
Problem
Updating Cursor .mdc (or other IDE rule files) by hand when kernel intent changes makes the vendor surface look like the authoring plane. That violates Knowledge Kernel primacy: ephemeral agents are clients; durable rules live as kernel objects (policy, glossary_term, etc.).
Contract
| Role | What |
|---|---|
| SSOT | Kernel objects (+ portable profiles such as VDS spine YAML) |
| Export | Vendor instruction packs (.cursor/rules/*.mdc, future Claude/Agy packs) |
| Drift gate | Regenerated content must match on-disk export, or CI/agent check fails |
| Forbidden | Inventing policy prose only in .mdc without a kernel object |
Inputs (examples)
POL-WORKFLOW-VDS(and peer policies)- Glossary by durable title (e.g.
Verifiable Decomposition Spine (VDS)), not hardcodedGLS-* - Spine / customization profiles under
docs/quality/
Outputs
- Generated files with an explicit header: do not hand-edit body; re-run projector
- Optional fingerprint / check mode for pre-commit or agents
MVP (first slice)
CLI (vendor-agnostic): zqk workflow vds project --provider <id> --write|--check
(--all, --list; default provider from config)
Config: docs/quality/verifiable_decomposition_customization.yaml → vendor_providers:
vendor_providers:
default: cursor
providers:
- id: cursor
format: cursor_mdc
out: .cursor/rules/verifiable-decomposition-spine.mdc
# - id: claude
# format: claude_md # when renderer exists
# out: .claude/rules/vds.md
Do not add project-cursor / project-claude subcommands — only new format renderers in pkg/vds plus config rows.
Drift gate: scripts/check-vds-vendor-project.sh (zqk workflow vds project --all --check), wired into scripts/pre-commit-lint.sh. Skip: ZQK_SKIP_VDS_VENDOR_PROJECT=1.
Later slices: more formats, multi-policy packs, integrate with validate-agent-rules / context refresh.
Partial existing pieces
scripts/agent-protocol-context-refresh.sh→AGENT_CONTEXT_REFRESH.md(checklist, not full.mdcbodies)zqk system validate-agent-rules(manifest file list, not content from POL)
Agent habit until complete
Prefer updating kernel objects + re-running the projector. If you must touch .mdc for non-projected rules, leave a TRACK: pointing at this BLI or a child item.