Skip to content

feat: adopt unified ctl presentation - #55

Merged
any-victor merged 3 commits into
mainfrom
feat/unified-presentation
Aug 24, 2026
Merged

feat: adopt unified ctl presentation#55
any-victor merged 3 commits into
mainfrom
feat/unified-presentation

Conversation

@any-victor

Copy link
Copy Markdown
Contributor

Why

Qctl still printed from domain handlers and had no shared JSON, colorless, quiet, stream, or error policy. That left the third ctl consumer outside the typed ctl-core presentation kernel.

What

  • Pin released ctl-core 0.4.2 and run the CLI through App, mounted as q.
  • Preserve qctl's -f/--file with ctl-core FormatLong plus ColorLong; add global --format, --color, --no-color, and --quiet.
  • Replace direct printing in ledger, check, mutation, format, hook, and schema modules with serializable typed reports.
  • Map those reports once onto semantic Document, Fields, Table, Section, Notice, and verbatim primitives.
  • Expose complete ledger state from status --format json and the complete problem array from check --format json.
  • Preserve mutation bytes, installed instructions, schema generation, hook ownership, and established compact mutation acknowledgements.
  • Add architecture enforcement, output-mode regressions, bundled-skill version pinning, docs, instructions, skill guidance, and a minor changeset.

Evidence

  • mise run verify: 158 tests, rustfmt, and denied-warning all-target/all-feature Clippy.
  • mise run build: optimized release binary compiles.
  • cargo package --allow-dirty --locked: packaged crate compiles from its tarball.
  • verctl prepare --dry-run: qctl 0.3.1 → 0.4.0, with README, skill, served catalog, and Cargo.lock updates declared.
  • JSON regressions prove ANSI-free stdout, failure exit semantics, problem arrays, quiet behavior, and colorless equivalence.
  • Architecture regression rejects print macros and direct terminal-engine dependencies.

@kodus-hostinger

kodus-hostinger Bot commented Aug 24, 2026

Copy link
Copy Markdown

Review

Incremental · 0 open

@kody review after new commits. @kody full re-reads the whole PR.

Ledger and documentation updates

tasks.yaml

  • Moves three completed items out of queue and into archive, each stamped with completed: 2026-08-24, disposition: completed, and PR feat: adopt unified ctl presentation #55 as evidence:
    • QCTL-008 (Adopt ctl-core in qctl and forkctl) — the archived entry rewrites the outcome and notes to reflect what actually shipped: typed reports returned through ctl-core App/Present, forkctl on ctl-core 0.4.1, and a new FormatLong composition added in ctl-core 0.4.2 to accommodate qctl's existing -f/--file flag before qctl pinned it and removed its own print paths.
    • QCTL-022 (bundled skill declares its release version).
    • QCTL-029 (status and check emit JSON).
  • Updates active from QCTL-008 to QCTL-014, making the blank-separated-rows ledger item the current focus.
  • Archived entries drop the now-irrelevant blocked_by/acceptance fields, consistent with the archive format used by other completed items.

AGENTS.md

  • Revises the served-files guidance: the bundled skill's version: line is now documented as a patterns entry in .ctl/ver.yaml (referencing QCTL-022 alongside QCTL-009), and the count of rewritten sites is generalized from "all five sites" to "every site" to accommodate the added pin.

Note that these are ledger/doc-only changes in this pass — no source changes accompany them here, so the claims about App/Present adoption and JSON output can't be verified from these patches alone.

Files

File Status +
AGENTS.md modified +4 −4
tasks.yaml modified +55 −60

Open

No open findings.

History

When Pass Open
24 Aug 03:59 UTC Incremental 0
24 Aug 03:57 UTC Incremental 0

Inspect this review

@any-victor
any-victor merged commit 73724b5 into main Aug 24, 2026
2 checks passed
@any-victor
any-victor deleted the feat/unified-presentation branch August 24, 2026 03:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant