Attach Product Essentials Checklists

Goal

Give each project a CentrMark checklist document plus a progress sidecar so humans and agents can check items off while a viewer weaves the two.

Templates

docs/modules/ROOT/examples/product-essentials/*.cmk in general-knowledge.

Sidecar schema

Checklist sidecar

AsciiDoc printables

App essentials · Auxiliary features

Why a sidecar (not rewriting the .cmk)

  • Checklist identity and labels live in the .cmk ({id="…"} on each row).

  • Checklist progress lives in <file>.cmk.checks/state.json5 — same “never rewrite the doc” spirit as Scriptbook .cmk.runs/, but a different sidecar kind.

  • Templates and working copies stay stable for diffs/upgrades; progress can be committed separately for team sharing.

  • UIs weave document + sidecar for display; they do not persist weave back into markers.

Do not store Product Essentials progress in Scriptbook .cmk.runs/ (that is run stdout/stderr/exit only).

Attach templates

From the project root:

& "$env:CODE_ROOT\github.com\dev-centr\general-knowledge\scripts\attach-product-essentials.ps1" -Classes desktop
nu $env.CODE_ROOT/github.com/dev-centr/general-knowledge/scripts/attach-product-essentials.nu --classes desktop

Flags:

  • --classes / -Classesdesktop, web, mobile (always includes app-essentials)

  • --force / -Force — overwrite the .cmk instance from the template; does not wipe existing .cmk.checks/

Result:

.devcentr/checklists/app-essentials.cmk
.devcentr/checklists/app-essentials.cmk.checks/state.json5
.devcentr/checklists/auxiliary-desktop.cmk
.devcentr/checklists/auxiliary-desktop.cmk.checks/state.json5

Commit both the .cmk and .cmk.checks/ when the team wants shared progress.

Check off (sidecar only)

& "...\scripts\checkoff-product-essentials.ps1" `
  -File .devcentr\checklists\auxiliary-desktop.cmk `
  -Id desktop.a.about -Marker x

& "...\scripts\checkoff-product-essentials.ps1" `
  -File .devcentr\checklists\auxiliary-desktop.cmk `
  -Id desktop.b.tray -Marker "-" -Note "N/A — no tray"

Markers: " " unchecked · / in progress · x done · - blocked/N/A (put reason in -Note).

Weave / status:

& "...\scripts\status-product-essentials.ps1" -File .devcentr\checklists\auxiliary-desktop.cmk

Agent protocol

  1. Detect delivery class(es); attach if .devcentr/checklists/<blueprintId>.cmk is missing.

  2. When implementing an item: write sidecar progress (/ then x, or - + note). Do not edit [ ] markers in the .cmk.

  3. Prefer checkoff scripts or DevCentr setChecklistMarkerById — locate rows by {id=…} declared in the document.

  4. Optional Scriptbook ::: step verification writes .cmk.runs/; that never auto-updates .cmk.checks/ — still call checkoff after accepting the result.

  5. Do not mutate templates under examples/product-essentials/.

DevCentr

Attach/open via hallmark toolbar / VCS Product Essentials, or --mode=product-essentials. View… opens the in-app weave viewer (.cmk + state.json5, mtime poll). Spec: DevCentr features/product-essentials-checklists.adoc.