@nklisch/pi-enhanced 0.1.7 → 0.1.8

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
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.1.8
4
+
5
+ ### Changed
6
+
7
+ - Rebundle `@nklisch/pi-model-modes` v0.3.3 with the new independent `straight` behavioral base/preset and `straight` writing style.
8
+
3
9
  ## v0.1.7
4
10
 
5
11
  ### Changed
@@ -120,8 +120,9 @@ session start; command-time writes validate before touching disk.
120
120
  ### Writing styles
121
121
 
122
122
  An optional writing style controls conversational communication independently
123
- of the active mode. Bundled styles are `clear`, `compact`, `explanatory`, and
124
- `expressive`.
123
+ of the active mode. Bundled styles are `clear`, `compact`, `explanatory`,
124
+ `expressive`, and `straight`. `straight` leads with direct technical judgment,
125
+ removes sugarcoating and false balance, and keeps explanations self-contained.
125
126
 
126
127
  | Command | Effect |
127
128
  |---|---|
@@ -143,8 +144,13 @@ For example:
143
144
  /style none # temporarily mask either default
144
145
  /style off # reveal the configured default
145
146
  /style default off # clear project default; reveal global
147
+ /mode straight # direct premise-checking behavior
148
+ /style straight # direct, self-contained prose
146
149
  ```
147
150
 
151
+ The `straight` mode and style are independent. Use either one alone, or select
152
+ both when you want the behavioral base and the writing posture together.
153
+
148
154
  The same durable selection can be edited directly in config:
149
155
 
150
156
  ```json
@@ -182,7 +188,7 @@ take effect immediately.
182
188
  **Base** voice (default `pi` = no overlay, identity only):
183
189
 
184
190
  - `pi` — no voice overlay
185
- - `chill`, `flow`, `pi-direct` — overlay voices (`prompts/base/*.md`)
191
+ - `chill`, `flow`, `pi-direct`, `straight` — overlay voices (`prompts/base/*.md`)
186
192
 
187
193
  **Agency** — `autonomous` · `collaborative` · `surgical` · `partner`
188
194
 
@@ -211,13 +217,16 @@ take effect immediately.
211
217
  | `flow` | flow | autonomous | architect | adjacent | flow |
212
218
  | `tinker` | flow | autonomous | pragmatic | unrestricted | flow, playful |
213
219
  | `spark` | chill | autonomous | architect | unrestricted | muse, playful |
220
+ | `straight` | straight | autonomous | pragmatic | adjacent | — |
214
221
  | `none` | — | — | — | — | virtual no-mode override |
215
222
 
216
223
  Preset definitions live in [`presets.json`](presets.json), except `none`, which
217
224
  is virtual and injects no mode fragments. The fragment text lives in
218
225
  [`prompts/`](prompts) (`base/`, `axis/{agency,quality,scope}/`, `modifiers/`).
219
226
  Fragment files are cached by mtime, so editing one takes effect on the next turn
220
- — no `/reload` needed.
227
+ — no `/reload` needed. The `straight` base was adapted from the intent of
228
+ `claude-code-modes`: correctness over agreement, explicit premise checking, and
229
+ direct criticism of the work without turning abrasiveness into a persona.
221
230
 
222
231
  ## How it works
223
232
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nklisch/pi-model-modes",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "A pi extension that adapts the system prompt per model/mode.",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -76,6 +76,13 @@
76
76
  "scope": "adjacent",
77
77
  "modifiers": ["flow"]
78
78
  },
79
+ "straight": {
80
+ "base": "straight",
81
+ "agency": "autonomous",
82
+ "quality": "pragmatic",
83
+ "scope": "adjacent",
84
+ "modifiers": []
85
+ },
79
86
  "tinker": {
80
87
  "base": "flow",
81
88
  "agency": "autonomous",
@@ -0,0 +1,9 @@
1
+ # Straight base
2
+
3
+ Optimize for the correct result, not agreement with the user's premise.
4
+
5
+ Check requests against the available evidence and the actual system. If a premise is wrong, say so and correct it. If an approach is unsafe, wasteful, unnecessary, contradictory, or unlikely to work, name the problem and recommend the better option. Do not invent work or present weak alternatives as equally sound.
6
+
7
+ Do not manufacture disagreement. Agree when the evidence supports agreement, and distinguish verified facts from inference and judgment.
8
+
9
+ Be direct about the work without being hostile to the person. Correctness and safety outrank conversational smoothness; explicit user intent still controls choices that are genuinely matters of preference.
@@ -1,3 +1,8 @@
1
1
  {
2
- "overlays": ["base/chill.md", "base/flow.md", "base/pi-direct.md"]
2
+ "overlays": [
3
+ "base/chill.md",
4
+ "base/flow.md",
5
+ "base/pi-direct.md",
6
+ "base/straight.md"
7
+ ]
3
8
  }
@@ -0,0 +1,9 @@
1
+ # Straight
2
+
3
+ Write in plain, self-contained technical English.
4
+
5
+ Lead with the answer or judgment, then give the useful reason. Use literal and specific language. Avoid filler, ceremony, praise padding, rhetorical questions, false balance, euphemisms, and cute technical metaphors.
6
+
7
+ Do not sugarcoat technical conclusions. Say when something is broken, weak, unsafe, unnecessary, or overengineered, and explain the concrete reason. Criticize the idea, decision, or implementation—not the person. Do not manufacture disagreement merely to sound independent.
8
+
9
+ Separate verified facts from inference and opinion. The user does not see every tool call, file, or intermediate result, so make the response stand on its own: name the relevant behavior, explain repository-specific terms before relying on them, and do not refer to private shorthand as shared context.
@@ -20,8 +20,8 @@ export const MODE_FOOTER_KEY = "pi-model-modes";
20
20
  * Leading marker glyph per base voice. Echoes pi-catppuccin-tui's ◆ vocabulary
21
21
  * so the mode footer reads as part of the same family as the model/git/context
22
22
  * line rather than a foreign symbol. Glyph choice tracks voice *character*:
23
- * solid for pi-family voices (default `pi` and the more-terse `pi-direct`),
24
- * outline for `chill`'s softer voice, hex for `flow`'s distinct character.
23
+ * solid for direct voices (`pi`, `pi-direct`, and `straight`), outline for
24
+ * `chill`'s softer voice, and hex for `flow`'s distinct character.
25
25
  *
26
26
  * The raw glyphs stay plain Unicode for stable tests and fallback renderers;
27
27
  * the pi seam applies theme-aware color so Catppuccin footers inherit the
@@ -30,6 +30,7 @@ export const MODE_FOOTER_KEY = "pi-model-modes";
30
30
  const BASE_VOICE_GLYPHS: Readonly<Record<string, string>> = {
31
31
  pi: "◆",
32
32
  "pi-direct": "◆",
33
+ straight: "◆",
33
34
  chill: "◇",
34
35
  flow: "⬡",
35
36
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nklisch/pi-enhanced",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "Pi, enhanced — one install for nklisch's full harness: policy-gated command review, plugin marketplace, subagents, background tasks, research tools, search, model modes, and a curated UX set.",
5
5
  "author": {
6
6
  "name": "nklisch"