elliot-stack 1.0.28 → 1.0.29

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/README.md CHANGED
@@ -20,7 +20,7 @@ This installs skills to `~/.agents/skills/` and symlinks them into `~/.claude/sk
20
20
  | **Active Learning Tutor** | `/estack-active-learning-tutor` | Tutors a student through exam preparation using active learning — questioning, gap diagnosis, and concept mastery tracking |
21
21
  | **Better Title** | `/estack-better-title` | Renames Claude Code chat sessions with descriptive titles |
22
22
  | **Chris Voss** | `/estack-chris-voss` | Applies negotiation principles from *Never Split the Difference* |
23
- | **CLAUDE.md Optimizer** | `/estack-claude-md-optimizer` | Creates, refines, and maintains CLAUDE.md / AGENTS.md files as short hand-authored letters of intent |
23
+ | **CLAUDE.md Optimizer** | `/estack-claude-md-optimizer` | Creates, refines, and maintains CLAUDE.md / AGENTS.md files as short hand-authored letters of intent — welcomes first-time users with the why behind the format and coaches through pushback instead of enforcing rules |
24
24
  | **Customer Discovery** | `/estack-customer-discovery` | Guides through customer discovery — validating ideas, outreach, interviews, and analysis |
25
25
  | **Flight Planner** | `/estack-flight-planner` | Finds and ranks flights between two airports with config-driven preferences and optional ground-shuttle pairing |
26
26
  | **GitHub Issue Tracker** | `/estack-github-issue-tracker` | Tracks and manages GitHub issues across repos |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elliot-stack",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "description": "Elliot's skill stack for Claude Code — install via npx elliot-stack@latest",
5
5
  "bin": {
6
6
  "elliot-stack": "bin/install.cjs"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: estack-claude-md-optimizer
3
- version: 1.0.1
3
+ version: 1.2.0
4
4
  description: >-
5
5
  (claude-md-optimizer) Create, refine, and maintain CLAUDE.md / AGENTS.md files
6
6
  as short hand-authored letters of intent. Use whenever the user asks to create,
@@ -18,33 +18,82 @@ their intent, mental model, and the "why" — not a spec, not a rulebook, not an
18
18
  encyclopedia. This skill helps them write and keep that letter. It is a router:
19
19
  triage below, then read exactly one route file and follow it.
20
20
 
21
- ## Opening message — buy the user in first
21
+ ## Opening message — welcome and teach first
22
22
 
23
- Your first message of any run, before the triage announcement, briefly explains
24
- the skill so the user knows what's happening and why (3–5 sentences, plain
25
- language, then move on):
23
+ Assume the user has never used this skill before. Your first message is a
24
+ letter addressed directly to the user warm, second-person, personal not
25
+ a doc page, not a feature list. It teaches the same core ideas but reads like
26
+ someone explaining something they care about, not a manual. After the letter,
27
+ a routing table shows exactly what's happening in this session.
26
28
 
27
- - **What it is:** a tool for writing and maintaining a CLAUDE.md as a short
28
- letterprose that transfers your intent and "why" to the agent.
29
- - **Why it works that way:** bloated context files measurably make models worse
30
- — the model isn't dumb, it's drowning. Intent transfers better than rules,
31
- which is also why the human authors the letter and the skill only transcribes:
32
- the file's job is to carry *your* thinking, and every line is earned by your
33
- stated intent or a mistake that actually recurred — never padded.
34
- - **How this run works:** diagnose the file's state → name the route(s) →
35
- interview or proposals → nothing touches disk without your approval.
29
+ Structure the opening exactly like this (fill in the session plan table based
30
+ on your triage see the Triage section below for how to pick routes):
36
31
 
37
- This intro exists so the process (interviews, proposed deletions, refusing to
38
- add lines) reads as the method working, not as friction. Don't lecture; one
39
- tight paragraph, then the triage announcement.
32
+ ---
33
+
34
+ Hey welcome to the CLAUDE.md Optimizer.
35
+
36
+ Before we start, here's what you should know about how this works and why.
37
+
38
+ **Your `CLAUDE.md` is a letter, not a rulebook.** When you hand an agent
39
+ the *why* behind your decisions, it can generalize to situations no rule
40
+ anticipated. When you hand it a rulebook, it follows the rules off a cliff.
41
+ The file's only job is to carry your thinking — so you author it, and I
42
+ transcribe.
43
+
44
+ **It has to stay short.** Every line in that file competes with your actual
45
+ task for the model's attention. Bloated context files measurably make models
46
+ worse — not because the model is dumb, but because it's drowning. Every line
47
+ has to be earned: either by something you've told me you care about, or by a
48
+ mistake that actually recurred. Never padded.
49
+
50
+ **You start with a letter. Routing comes later, only if it's earned.** Most
51
+ projects don't need a routing section — a tight letter plus model intelligence
52
+ gets there. Structure added before the project demands it is just bloat with
53
+ good posture.
54
+
55
+ **No commands, paths, or stack details in the file.** The agent finds those
56
+ itself, faster and more accurately than a file can stay current. Stale paths
57
+ don't just not help — they actively mislead.
58
+
59
+ Here's what we're doing today:
60
+
61
+ | Step | What's happening | Why |
62
+ |------|-----------------|-----|
63
+ | **Diagnose** | I read your current file (or confirm there isn't one) | Can't plan without knowing where we're starting |
64
+ | **Route** | I name which flow(s) apply and tell you why | So you can correct me before anything starts |
65
+ | **[Route-specific steps]** | Interview, proposals, line-by-line review — depends on the route | See below |
66
+ | **Approve & write** | Nothing touches disk until you've signed off on every line | The file is yours |
67
+
68
+ *(I'll replace [Route-specific steps] with the actual steps once I've triaged
69
+ the file and named the route — usually 2–3 more rows.)*
70
+
71
+ ---
72
+
73
+ Two exceptions skip the full welcome: quick capture (triage #3) skips the
74
+ opening entirely, and a mid-session "add X to my CLAUDE.md" gets a one-line
75
+ greeting at most — they're in the middle of work, not onboarding.
76
+
77
+ After writing the letter and table above, immediately move into the triage
78
+ announcement — one or two sentences naming which route(s) you're entering and
79
+ why, then pause for them to correct you.
40
80
 
41
81
  ## Progress header — every message, every step
42
82
 
43
- After the opening message, start every subsequent output with a one-line header:
44
- where we are in the flow, roughly what's left, and — most important — whether
45
- the flow is DONE or NOT DONE. Format:
83
+ After the opening message, start every subsequent output with a one-line status
84
+ header: where we are in the flow, roughly what's left, and — most important —
85
+ whether the flow is DONE or NOT DONE. Render it inside a fenced code block
86
+ drawn as a box, so it reads as a status instrument visually separate from the
87
+ message itself, verbatim format:
46
88
 
47
- > **Create · step 2 of 4 (interview) · ~2 steps left · NOT DONE — next: draft**
89
+ ```
90
+ ┌──────────────────────────────────────────────────────────────
91
+ │ Create · step 2 of 4 (interview) · ~2 steps left · NOT DONE — next: draft
92
+ └──────────────────────────────────────────────────────────────
93
+ ```
94
+
95
+ (The right edge stays open — never fiddle with padding to close the box. Keep
96
+ the border lines exactly that width regardless of the status text's length.)
48
97
 
49
98
  Estimates are allowed to be rough (an incomplete answer can keep a step alive an
50
99
  extra turn — fine, don't apologize, just keep the count honest). What is not
@@ -148,6 +197,31 @@ session-capture first.
148
197
  and won't follow a pointer into AGENTS.md, so that direction is the only one
149
198
  that works for every tool.
150
199
 
200
+ ## Coaching on pushback — teach, don't enforce
201
+
202
+ When the user pushes back at any point — questioning a deletion, wanting to
203
+ keep commands or file paths, arguing the cap is arbitrary, wanting routing
204
+ structure up front — treat it as a coaching moment, never a rule violation.
205
+ Read the relevant reference in `references/` and explain the why behind the
206
+ principle in plain language, grounded in the source mentality, not just
207
+ restated as the rule. Then genuinely weigh their point — they might be right:
208
+
209
+ 1. **Their point is about their file** and they state a live reason after
210
+ hearing the why (e.g. a path the agent genuinely can't find, a rule earned
211
+ by real recurring pain): that stated reason *is* a trace under hard rule 3.
212
+ Their call wins — note the trace and apply it. The user authors; you
213
+ transcribe.
214
+ 2. **Their point indicts the skill itself** — a principle that seems wrong, a
215
+ flow that fights them, a missing capability: say so plainly ("that's
216
+ feedback on the skill, and it's worth filing") and run the Skill Feedback
217
+ flow at the bottom of this file to capture it, then continue the run.
218
+ 3. **The pushback dissolves once the why lands** — most do. Explain once, then
219
+ defer to their decision. Never lecture twice on the same point.
220
+
221
+ The hard rules still hold their shape — the cap, approval before disk, the
222
+ footer — but the path through them is persuasion and traced exceptions, not
223
+ refusal.
224
+
151
225
  ## References — the source mentalities
152
226
 
153
227
  The full syntheses this skill is built from live in `references/`. Read them on