openplanr 1.7.0
Minor Changes
feat: artifact integrity + rules generator managed-block markers
Managed-block markers for
rules generate(fixes AGENTS.md clobber bug)openplanr rules generate --scope pipelineno longer overwrites the entire AGENTS.md / CLAUDE.md. Generated content is now wrapped in<!-- ##planr-pipeline:begin## -->/<!-- ##planr-pipeline:end## -->HTML comment markers. On regeneration, only the content between markers is replaced — project headers, agile content, and hand-written sections are preserved. Same treatment for--scope agilevia<!-- ##planr-agile:begin## -->markers.Write-time artifact validation
updateArtifact()now validates structural invariants before writing: frontmatter fences present, YAML parses,id:field unchanged, and checkbox IDs preserved. On violation, throwsArtifactInvariantErrorwith the specific violation. This stops AI-driven corruption fromopenplanr refine/openplanr reviseat the door — the file on disk is never poisoned by malformed AI output.AI contract: structured deltas for
openplanr refineopenplanr refinenow asks the AI for structured deltas (frontmatterChanges+bodyChanges) instead of a whole-fileimprovedMarkdownblob. Our code applies deltas deterministically — the AI never holds a pen on raw bytes. LegacyimprovedMarkdownresponses are validated and rejected if they break structural invariants.Migration
- First run of
openplanr rules generateon an existing project wraps content in markers automatically (non-destructive). openplanr refinechange is transparent to users (AI contract is an implementation detail).- Files previously corrupted by refine must be manually repaired or restored via
git checkout.
- First run of