Should template/section compliance be linted? #249

Closed
opened 2026-08-04 10:20:58 +00:00 by jared · 1 comment
Owner

Map: #239

Question

Now that the canonical templates (#241) and tiers (#240) are decided: should capture/ticket/spec template compliance be checked by a lint (os-aidd-lint-style deterministic cops, an os-backlog CLI validation, or nothing), and at what moment — at creation, at refine, or at handoff (ready-for-agent)?

Map: #239 ## Question Now that the canonical templates (#241) and tiers (#240) are decided: should capture/ticket/spec template compliance be checked by a lint (os-aidd-lint-style deterministic cops, an os-backlog CLI validation, or nothing), and at what moment — at creation, at refine, or at handoff (ready-for-agent)?
jared self-assigned this 2026-08-04 10:46:09 +00:00
Author
Owner

Resolution

Decided (grilling session 2026-08-04):

  1. Yes — a deterministic validator in os-backlog's own Ruby CLI surface (alongside the decision-sweep CLI from #248): given an issue number, it computes the structural tier (#240) and reports missing/malformed sections against the canonical templates in plugins/os-backlog/references/templates/ (#241). One tested implementation serves both callers that need it — refine's self-check (#242) and the check-out staleness checkpoint (#243). Gate logic in Ruby, not prompts. Rejected: extending os-aidd-lint (file-oriented charter, not tracker bodies) and judgment-only checking (unverifiable, drifts).
  2. Moments: refine-exit + handoff pickup. Refine may not self-apply ready-for-agent until the validator passes — the machine check backing the self-applied label; the check-out checkpoint reruns it at pickup as the staleness guard. Never at creation: capture stays minimal (title + ## Context) and friction-free by design.

CLI implementation itself is post-map sequencing work (with the sweep CLI; related: #186).

## Resolution Decided (grilling session 2026-08-04): 1. **Yes — a deterministic validator in os-backlog's own Ruby CLI surface** (alongside the decision-sweep CLI from #248): given an issue number, it computes the structural tier (#240) and reports missing/malformed sections against the canonical templates in `plugins/os-backlog/references/templates/` (#241). One tested implementation serves both callers that need it — refine's self-check (#242) and the check-out staleness checkpoint (#243). Gate logic in Ruby, not prompts. Rejected: extending os-aidd-lint (file-oriented charter, not tracker bodies) and judgment-only checking (unverifiable, drifts). 2. **Moments: refine-exit + handoff pickup.** Refine may not self-apply `ready-for-agent` until the validator passes — the machine check backing the self-applied label; the check-out checkpoint reruns it at pickup as the staleness guard. Never at creation: capture stays minimal (title + `## Context`) and friction-free by design. CLI implementation itself is post-map sequencing work (with the sweep CLI; related: #186).
jared closed this issue 2026-08-04 10:48:56 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#249
No description provided.