claude-code-modes 0.4.1 → 0.6.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.
Files changed (44) hide show
  1. package/README.md +24 -5
  2. package/package.json +1 -1
  3. package/prompts/base/base.json +2 -0
  4. package/prompts/base/context-management.md +4 -0
  5. package/prompts/base/env.md +2 -2
  6. package/prompts/base/pronouns.md +1 -0
  7. package/prompts/chill/base.json +2 -0
  8. package/prompts/chill/context-management.md +5 -0
  9. package/prompts/chill/env.md +2 -2
  10. package/prompts/chill/pronouns.md +1 -0
  11. package/prompts/flow/base.json +2 -0
  12. package/prompts/flow/context-management.md +5 -0
  13. package/prompts/flow/env.md +2 -2
  14. package/prompts/flow/pronouns.md +1 -0
  15. package/prompts/lean/actions.md +1 -0
  16. package/prompts/lean/base.json +10 -0
  17. package/prompts/lean/context-management.md +4 -0
  18. package/prompts/lean/core.md +11 -0
  19. package/prompts/lean/env.md +16 -0
  20. package/prompts/lean/pronouns.md +1 -0
  21. package/prompts/lean/session-guidance.md +4 -0
  22. package/prompts/modifiers/corrections.md +7 -0
  23. package/prompts/modifiers/delivering-work.md +7 -0
  24. package/prompts/modifiers/tool-restraint.md +6 -0
  25. package/prompts/straight/actions.md +1 -0
  26. package/prompts/straight/base.json +10 -0
  27. package/prompts/straight/context-management.md +4 -0
  28. package/prompts/straight/core.md +58 -0
  29. package/prompts/straight/env.md +16 -0
  30. package/prompts/straight/pronouns.md +1 -0
  31. package/prompts/straight/session-guidance.md +4 -0
  32. package/prompts/style/declaudified.md +12 -0
  33. package/prompts/style/straight.md +25 -0
  34. package/src/build-info.ts +1 -1
  35. package/src/build-prompt.ts +6 -3
  36. package/src/cli.ts +6 -3
  37. package/src/config.ts +7 -2
  38. package/src/embedded-prompts.ts +251 -6
  39. package/src/env.ts +31 -11
  40. package/src/inspect.ts +4 -3
  41. package/src/presets.ts +7 -0
  42. package/src/resolve.ts +41 -13
  43. package/src/types.ts +19 -4
  44. package/src/usage.ts +8 -2
package/src/types.ts CHANGED
@@ -8,7 +8,7 @@ export const SCOPE_VALUES = ["unrestricted", "adjacent", "narrow"] as const;
8
8
  export type Scope = (typeof SCOPE_VALUES)[number];
9
9
 
10
10
  // Built-in style names — writing styles applied on top of any base/axes
11
- export const STYLE_VALUES = ["declaudified"] as const;
11
+ export const STYLE_VALUES = ["declaudified", "straight"] as const;
12
12
  export type Style = (typeof STYLE_VALUES)[number];
13
13
  export function isBuiltinStyle(value: string): value is Style {
14
14
  return (STYLE_VALUES as readonly string[]).includes(value);
@@ -29,6 +29,7 @@ export const PRESET_NAMES = [
29
29
  "flow",
30
30
  "tinker",
31
31
  "spark",
32
+ "straight",
32
33
  ] as const;
33
34
  export type PresetName = (typeof PRESET_NAMES)[number];
34
35
  export function isPresetName(value: string): value is PresetName {
@@ -36,19 +37,23 @@ export function isPresetName(value: string): value is PresetName {
36
37
  }
37
38
 
38
39
  // Built-in modifier names — used for collision checking in config validation
39
- export const BUILTIN_MODIFIER_NAMES = ["readonly", "context-pacing", "debug", "methodical", "director", "bold", "speak-plain", "tdd", "muse", "flow", "playful"] as const;
40
+ export const BUILTIN_MODIFIER_NAMES = ["readonly", "context-pacing", "debug", "methodical", "director", "bold", "speak-plain", "tdd", "muse", "flow", "playful", "delivering-work", "corrections", "tool-restraint"] as const;
40
41
  export type BuiltinModifier = (typeof BUILTIN_MODIFIER_NAMES)[number];
41
42
  export function isBuiltinModifier(value: string): value is BuiltinModifier {
42
43
  return (BUILTIN_MODIFIER_NAMES as readonly string[]).includes(value);
43
44
  }
44
45
 
45
- // Built-in base names — "standard" (upstream-derived), "chill" (calm), "flow" (calm + engaged)
46
- export const BUILTIN_BASE_NAMES = ["standard", "chill", "flow"] as const;
46
+ // Built-in base names — "standard" (upstream-derived), "chill" (calm), "flow" (calm + engaged),
47
+ // "lean" (upstream's lean assembly), "straight" (direct, anti-sycophantic technical communication)
48
+ export const BUILTIN_BASE_NAMES = ["standard", "chill", "flow", "lean", "straight"] as const;
47
49
  export type BuiltinBaseName = (typeof BUILTIN_BASE_NAMES)[number];
48
50
  export function isBuiltinBase(value: string): value is BuiltinBaseName {
49
51
  return (BUILTIN_BASE_NAMES as readonly string[]).includes(value);
50
52
  }
51
53
 
54
+ // Not a base directory — a selector that picks a base from the session's model
55
+ export const BASE_AUTO = "auto";
56
+
52
57
  // Reserved manifest entries — "axes" and "modifiers" trigger insertion
53
58
  export const MANIFEST_RESERVED = ["axes", "modifiers"] as const;
54
59
  export type ManifestReserved = (typeof MANIFEST_RESERVED)[number];
@@ -81,10 +86,20 @@ export interface ModeConfig {
81
86
  }
82
87
 
83
88
  /** Resolved model metadata for env.md substitution */
89
+ /**
90
+ * Prompt-shaping capabilities Claude Code reads off the session model.
91
+ * - "lean-prompt": upstream sends the lean assembly instead of the standard one
92
+ * - "prompt-bundle": upstream additionally sends the delivering-work, corrections,
93
+ * and tool-restraint sections (the `opus_5_prompt_bundle` capability)
94
+ */
95
+ export const MODEL_CAPABILITIES = ["lean-prompt", "prompt-bundle"] as const;
96
+ export type ModelCapability = (typeof MODEL_CAPABILITIES)[number];
97
+
84
98
  export interface ModelInfo {
85
99
  name: string;
86
100
  id: string;
87
101
  cutoff: string;
102
+ capabilities?: readonly ModelCapability[];
88
103
  }
89
104
 
90
105
  export interface EnvInfo {
package/src/usage.ts CHANGED
@@ -31,9 +31,13 @@ Presets:
31
31
  flow autonomous / architect / adjacent (flow base, deep focus — depth not sprawl)
32
32
  tinker autonomous / pragmatic / unrestricted (flow base, loose playful prototyping)
33
33
  spark autonomous / architect / unrestricted (chill base, maximalist creative + wit)
34
+ straight autonomous / pragmatic / adjacent (straight base and response style)
34
35
 
35
36
  Base:
36
- --base <name|path> Built-in: standard, chill, flow
37
+ --base <name|path> Built-in: auto (default), standard, chill, flow, lean, straight
38
+ "auto" picks the base Claude Code itself would use for the session model:
39
+ lean for Opus 5 / Opus 4.8 / Fable 5, standard otherwise. On Opus 5 it also
40
+ adds the delivering-work, corrections, and tool-restraint modifiers.
37
41
  Base can also be a config-defined name or a directory path.
38
42
 
39
43
  Axis overrides:
@@ -43,7 +47,7 @@ Axis overrides:
43
47
  Axis values can also be config-defined names or file paths (.md files).
44
48
 
45
49
  Style:
46
- --style <value> Writing style for output. Built-in: declaudified
50
+ --style <value> Writing style for output. Built-in: declaudified, straight
47
51
  Style can also be a config-defined name or a file path (.md file).
48
52
  No style is applied unless set via --style, config defaultStyle, or a preset.
49
53
 
@@ -68,6 +72,8 @@ Examples:
68
72
  claude-mode create --base chill # use the chill base
69
73
  claude-mode create --quality pragmatic
70
74
  claude-mode create --style declaudified # lead-with-the-answer writing, no filler
75
+ claude-mode create --style straight # direct judgment in plain technical English
76
+ claude-mode straight # straight base and response style
71
77
  claude-mode create --modifier ./my-rules.md
72
78
  claude-mode --agency autonomous --quality ./team-quality.md
73
79
  claude-mode team-default # custom preset from config