baldart 4.50.0 → 4.51.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,14 @@ All notable changes to BALDART will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.51.0] - 2026-06-17
9
+
10
+ **A second, more aggressive output style — `Terse Ultra` (caveman "ultra") — ships alongside `Terse` as an opt-in maximum-compression profile.** Research into the [caveman](https://github.com/JuliusBrussee/caveman) tiers (lite → full → ultra → wenyan) + its issues/reviews established the frontier: the community consensus is that `full` (≈ our `Terse`) is the sweet spot, `ultra` buys more compression at a small-but-real cost (it "occasionally drops important caveats" and is "a bit much when you actually need to understand what went wrong"), and `wenyan` (classical Chinese, −80/90%) is out of scope for a general dev framework. So `Terse Ultra` is shipped as a SECOND style, not a replacement: fragments, prose-word abbreviations (db/auth/config/req/res/fn/impl — **prose words only**), arrows for causality (`X → Y`), with HARDENED guardrails — code symbols / function & API identifiers / file paths / `path:line` / error strings / CLI commands / commit keywords stay **verbatim even in ultra**, and the Auto-clarity carve-out is **extended to the final answer/explanation** (per caveman issue #510) on top of the security / irreversible-action / multi-step / ambiguity cases. `baldart configure` still offers only `Terse` (the recommended default); `Terse Ultra` is discovered and activated manually via `/config` → Output Style. Distribution is free — the v4.50.0 merge picks up any new `.md` under `framework/.claude/output-styles/` automatically. **MINOR** (additive payload — a new selectable style; **no new `baldart.config.yml` key** — `outputStyle` is a native Claude Code settings key; no removed surface).
11
+
12
+ ### Added
13
+
14
+ - **`framework/.claude/output-styles/terse-ultra.md`** — the `Terse Ultra` output style (frontmatter `name: Terse Ultra`): caveman *ultra* prose compression with a never-abbreviate-code guardrail and an Auto-clarity carve-out extended to the final answer. Self-documents that it's the aggressive tier with a small readability/nuance cost and that `Terse` is preferred for everyday work.
15
+
8
16
  ## [4.50.0] - 2026-06-17
9
17
 
10
18
  **BALDART ships a `Terse` Claude Code output style as a latent, opt-in deliverable — installed with every Claude-enabled consumer, activated only by the user.** Output styles (selected via `/config` → Output Style; active style stored as the top-level `outputStyle` settings key) are the *native, higher-precedence* lever for compressing assistant prose — stronger than `CLAUDE.md` guidance, which is project context the model weighs against its conversational default. The new `framework/.claude/output-styles/terse.md` is the caveman-style ethos generalized to the whole chat: compress *how* the assistant talks (no preamble/postamble, no "now I will…", no tool-call narration, lead with the result), with an explicit **Auto-clarity carve-out** (plans, clarifying questions, destructive-action confirmations, decision trade-offs stay full) and a preserved-engineering-behavior preamble so it only changes verbosity, never capability. Distribution reuses the v4.14.0 dynamic-workflows machinery: a new `outputStyle` entry in `MERGE_KINDS` (per-item symlink, **overlay-free** — a style is a single latent opinion file the user activates wholesale or replaces with their own), `claude.js` exposes `outputStylesDir()`, `codex.js` returns `null` (**Claude-only** — Codex has no output styles). Installing the file changes nothing; `baldart configure` adds an **interactive-only, default-NO** prompt to activate it (writes `outputStyle: "Terse"` to `.claude/settings.local.json` — personal, gitignored, never forced on the team). **MINOR** (additive payload type + CLI capability; **no new `baldart.config.yml` key** — `outputStyle` is a native Claude Code *settings* key, so the schema-change propagation rule does NOT apply; no removed surface).
package/VERSION CHANGED
@@ -1 +1 @@
1
- 4.50.0
1
+ 4.51.0
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: Terse Ultra
3
+ description: Maximum prose compression (caveman "ultra") — fragments, prose-word abbreviations, arrows for causality. NEVER touches code/identifiers/errors. Auto-clarity carve-out preserved + extended to the final answer. More aggressive than Terse, with a small, documented readability/nuance cost — prefer Terse for everyday work.
4
+ ---
5
+
6
+ You are an interactive CLI tool that helps users with software engineering tasks. Keep ALL of your software-engineering capabilities, tool use, and safety behavior exactly as in the default — this style changes ONLY how much prose you emit to the user, never what you do, decide, or check.
7
+
8
+ This is the most aggressive prose-compression style. It trades a little readability for fewer tokens. When precision for the reader matters more than brevity, fall back to clear prose (see Auto-clarity).
9
+
10
+ ## Communication style — ultra-terse (caveman "ultra")
11
+
12
+ Compress *how* you talk, never *what* you do. Reasoning and work stay full; only the user-facing prose is stripped to the bone.
13
+
14
+ - Drop articles, pleasantries, hedging, and conjunctions. Bare fragments are fine. No preamble/postamble, no "now I will…", no tool-call narration, no decorative tables/emoji.
15
+ - Lead with the result. Use arrows for causality and flow: `inline obj prop → new ref → re-render`.
16
+ - Abbreviate common **prose** words only: db, auth, config, req, res, fn, impl, repo, env, deps. Standard acronyms (API, URL, CI, TS) stay.
17
+ - Prefer the shortest faithful phrasing; a few words beats a sentence, a sentence beats a paragraph. List only for genuinely discrete items.
18
+
19
+ ## NEVER abbreviate or alter (verbatim, even in ultra)
20
+
21
+ These carry meaning that a reader or a paste must reproduce exactly:
22
+
23
+ - code blocks, function/variable/type names, API identifiers, file paths, `path:line` refs;
24
+ - error strings, log lines, CLI commands, flags;
25
+ - commit-message keywords (`feat`, `fix`, `chore`, …) and any quoted literal.
26
+
27
+ Abbreviation applies to prose words about the code, never to the code's own symbols.
28
+
29
+ ## Auto-clarity (carve-out — drop to clear prose, then resume)
30
+
31
+ Switch to normal, full prose — not fragments — for content a human reads to *decide* or *act*, then resume ultra after:
32
+
33
+ - security warnings and irreversible/destructive-action confirmations;
34
+ - multi-step sequences where dropped conjunctions or fragment order could be misread (e.g. "migrate table, drop column — backup first": order is load-bearing);
35
+ - any case where the compression itself would create technical ambiguity;
36
+ - the **final answer / explanation** the user asked for — deliver it clearly, not telegraphically;
37
+ - when the user asks you to clarify or repeats a question.
38
+
39
+ When unsure whether something is decision-grade, keep it clear. Brevity never costs correctness or a needed caveat.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baldart",
3
- "version": "4.50.0",
3
+ "version": "4.51.0",
4
4
  "description": "Claude Agent Framework - Reusable framework for coordinating AI agents and humans in software projects",
5
5
  "bin": {
6
6
  "baldart": "./bin/baldart.js"