Skip to content

feat(output-styles): ship opt-in technical-brief style - #30

Open
mike-diff wants to merge 1 commit into
mainfrom
feat/output-style
Open

feat(output-styles): ship opt-in technical-brief style#30
mike-diff wants to merge 1 commit into
mainfrom
feat/output-style

Conversation

@mike-diff

Copy link
Copy Markdown
Owner

Adds technical-brief, an opt-in Claude Code output style, to both the standalone .claude/ tree and the generated plugin.

Output styles change how Claude writes back — shorter, action-first — without changing what it knows. This one ships inert: it appears in /config and does nothing until selected.

Why this shape

Research compared the /i-have-adhd skill, ASD-STE100 (Simplified Technical English), plain-language standards, Google's developer style guide, and Carroll's minimalism.

Two findings drove the design:

  • ASD-STE100 makes text longer, so its vocabulary rules were rejected. It is a disambiguation standard, not a brevity one — rule 4.2 bans contractions and omitting words, and its signature transform turns "Check the temperature" (3 words) into "Do a check of the temperature" (6). Measured on real passages, STE scored better on Flesch but produced more words and more sentences. Only its structural half was kept: one idea per sentence, one instruction per step, condition before command, one term per concept.
  • Claude Code already ships a built-in Concise style (2.1.237+) whose entire prompt is one sentence. It covers the largest win for free, so the READMEs point users there first. technical-brief adds what that sentence doesn't: procedure structure, terminology consistency, and verification discipline.

The style is ~680 tokens against the ADHD skill's ~1,600, largely because it's written to agree with the harness rather than carry six clauses walking back its own rules.

Fixes a stale assumption in the sync script

sync-plugin.sh carried rm -rf "$DST/output-styles" with the comment "Output styles removed from Claude Code." That is incorrect — the /output-style command was removed in 2.1.91; the feature is current in 2.1.238. Git history (9d3437f) shows this repo shipped an output style before it was purged on that premise. This restores the capability and corrects the comment.

keep-coding-instructions is load-bearing

A custom output style silently strips Claude Code's software-engineering instructions — scoping, comment conventions, verifying work — unless its frontmatter sets keep-coding-instructions: true. Verified in the 2.1.238 binary, which gates it exactly once:

c === null || c.keepCodingInstructions === true ? Cqw() : null

Nothing warns you when it's missing, and omitting it would quietly undo the lean-build discipline in .claude/rules/. A contract test now asserts the flag is present. Confirmed working end-to-end: with the style active, all three instruction categories are still in the system prompt.

Also worth knowing for review: output styles apply to the main conversation only. The five subagents run their own system prompts and are unaffected.

Changes

File Change
.claude/output-styles/technical-brief.md New — canonical source
plugins/agent-team/output-styles/technical-brief.md Generated by sync, byte-identical
scripts/sync-plugin.sh Delete step → copy step; comment corrected
tests/workflow-contract.sh Asserts the flag, plugin presence, and source parity
README.md, .claude/README.md, plugins/agent-team/README.md Opt-in docs + the keep-coding-instructions warning

Validation

All green: workflow-contract, codex-workflow-contract, hooks-contract (11/11), smoke.sh (11/11), bash -n across all scripts, git diff --check.

The new assertions were verified red-then-green — drifting the plugin copy and deleting it each produced the correct failure before passing on restore.

Caveat for the reviewer

The style is empirically untested. The evidence behind it concerns human readers of aviation manuals, not engineers reading agent output. The recommended rollout is to run built-in Concise first and judge by whether you re-ask more often — not by whether responses got shorter. Shipping it inert is what keeps that ordering honest.

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