elliot-stack 1.0.25 → 1.0.28
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/LICENSE +21 -0
- package/README.md +4 -0
- package/package.json +1 -1
- package/skills/estack-active-learning-tutor/SKILL.md +1 -66
- package/skills/estack-better-title/SKILL.md +2 -96
- package/skills/estack-chris-voss/SKILL.md +1 -95
- package/skills/estack-claude-md-optimizer/SKILL.md +200 -0
- package/skills/estack-claude-md-optimizer/references/gary_tan_router_claude_md_mentality.md +247 -0
- package/skills/estack-claude-md-optimizer/references/theo_claude_md_mentality.md +113 -0
- package/skills/estack-claude-md-optimizer/routes/create.md +84 -0
- package/skills/estack-claude-md-optimizer/routes/refine.md +69 -0
- package/skills/estack-claude-md-optimizer/routes/scale-check.md +56 -0
- package/skills/estack-claude-md-optimizer/routes/session-capture.md +70 -0
- package/skills/estack-customer-discovery/SKILL.md +1 -95
- package/skills/estack-flight-planner/SKILL.md +2 -101
- package/skills/estack-flight-planner/scripts/fetch_flights.py +1 -1
- package/skills/estack-flight-planner/scripts/filter_flights.py +4 -4
- package/skills/estack-github-issue-tracker/SKILL.md +1 -84
- package/skills/estack-github-issue-tracker/bin/tracker-tools.cjs +1 -1
- package/skills/estack-prompt-builder-coach/SKILL.md +1 -2
- package/skills/estack-read-claude-session-history/SKILL.md +2 -3
- package/skills/estack-read-claude-session-history/references/recipes.md +1 -1
- package/skills/estack-repo-search/SKILL.md +1 -30
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: estack-customer-discovery
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.2
|
|
4
4
|
description: (customer-discovery) Guide users through customer discovery — validating business ideas, identifying target customers, crafting outreach, preparing interview questions, and analyzing interview results. Use this skill whenever the user mentions customer discovery, customer interviews, validating an idea, market research, finding product-market fit, talking to customers, outreach messages, interview guides, or analyzing customer feedback. Also use when someone says they have a business idea and want to test it, or when they're preparing to talk to potential customers.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -73,100 +73,6 @@ gh issue create \
|
|
|
73
73
|
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
**If `gh` is not installed**, build a pre-filled URL and share it so the user can click, review, and submit:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
python3 -c "
|
|
80
|
-
import urllib.parse
|
|
81
|
-
title = 'estack-customer-discovery: <concise summary>'
|
|
82
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
83
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
84
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
85
|
-
"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Share the printed URL with the user. They click it, review the pre-filled title and body, then click **Submit new issue**.
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## Skill Feedback
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Skill Feedback
|
|
96
|
-
|
|
97
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
98
|
-
|
|
99
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
gh issue create \
|
|
103
|
-
--repo ElliotDrel/e-stack \
|
|
104
|
-
--title "estack-customer-discovery: <concise summary>" \
|
|
105
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**If `gh` is not installed**, build a pre-filled URL:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
python3 -c "
|
|
112
|
-
import urllib.parse
|
|
113
|
-
title = 'estack-customer-discovery: <concise summary>'
|
|
114
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
115
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
116
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
117
|
-
"
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
Share the printed URL with the user and offer to open it in their browser.
|
|
121
|
-
|
|
122
|
-
They can also click it directly, review the pre-filled title and body, and click **Submit new issue**.
|
|
123
|
-
|
|
124
|
-
---
|
|
125
|
-
|
|
126
|
-
## Skill Feedback
|
|
127
|
-
|
|
128
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
129
|
-
|
|
130
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
gh issue create \
|
|
134
|
-
--repo ElliotDrel/e-stack \
|
|
135
|
-
--title "estack-customer-discovery: <concise summary>" \
|
|
136
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
**If `gh` is not installed**, build a pre-filled URL:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
python3 -c "
|
|
143
|
-
import urllib.parse
|
|
144
|
-
title = 'estack-customer-discovery: <concise summary>'
|
|
145
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
146
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
147
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
148
|
-
"
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Share the printed URL with the user and offer to open it in their browser.
|
|
152
|
-
|
|
153
|
-
They can also click it directly, review the pre-filled title and body, and click **Submit new issue**.
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## Skill Feedback
|
|
158
|
-
|
|
159
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
160
|
-
|
|
161
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
gh issue create \
|
|
165
|
-
--repo ElliotDrel/e-stack \
|
|
166
|
-
--title "estack-customer-discovery: <concise summary>" \
|
|
167
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
168
|
-
```
|
|
169
|
-
|
|
170
76
|
**If `gh` is not installed**, build a pre-filled URL:
|
|
171
77
|
|
|
172
78
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: estack-flight-planner
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.3
|
|
4
4
|
description: (flight-planner) Find and rank flights between any two airports with config-driven preferences (budget, airlines, nonstop, time-of-day) and optional ground-shuttle pairing. Uses SerpAPI Google Flights (or WebSearch fallback). Saves preferences to `~/.flight-planner/config.json` and logs every search.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
---
|
|
@@ -312,7 +312,7 @@ If the user doesn't have a SerpAPI key and asks for help getting one:
|
|
|
312
312
|
2. Walk them to https://serpapi.com/users/sign_up — sign up with email.
|
|
313
313
|
3. After signup, the API key is at https://serpapi.com/manage-api-key.
|
|
314
314
|
4. To set it permanently, walk them through either:
|
|
315
|
-
- Saving it in their flight-planner
|
|
315
|
+
- Saving it in their `~/.flight-planner/config.json` (`serpapi_key` field), or
|
|
316
316
|
- Setting `SERPAPI_KEY` as an environment variable in their shell profile.
|
|
317
317
|
5. If they don't want a key: confirm they want the WebSearch fallback. Set `serpapi_key: null` in config. Tell them: "I'll use WebSearch each run. Results won't be as complete and prices may be approximations."
|
|
318
318
|
|
|
@@ -334,105 +334,6 @@ If the user doesn't have a SerpAPI key and asks for help getting one:
|
|
|
334
334
|
|
|
335
335
|
## Skill Feedback
|
|
336
336
|
|
|
337
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then build a pre-filled GitHub issue URL and share it so the user can click, review, and submit:
|
|
338
|
-
|
|
339
|
-
```bash
|
|
340
|
-
python3 -c "
|
|
341
|
-
import urllib.parse
|
|
342
|
-
title = 'estack-flight-planner: <concise summary>'
|
|
343
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
344
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
345
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
346
|
-
"
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
Share the printed URL with the user. They click it, review the pre-filled title and body, then click **Submit new issue**.
|
|
350
|
-
|
|
351
|
-
## Adding a shuttle service to your config
|
|
352
|
-
|
|
353
|
-
If you regularly use a shuttle to your airport, add it to your config so the skill pairs flights with shuttle runs automatically:
|
|
354
|
-
|
|
355
|
-
```json
|
|
356
|
-
"shuttle_service": {
|
|
357
|
-
"name": "Your Shuttle Co.",
|
|
358
|
-
"schedule_urls": ["https://yourshuttle.example.com/schedule"],
|
|
359
|
-
"costs": {"ORD": 60, "MDW": 55},
|
|
360
|
-
"home_timezone": "America/New_York",
|
|
361
|
-
"airport_timezones": {"ORD": "America/Chicago", "MDW": "America/Chicago"}
|
|
362
|
-
}
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
See `references/shuttle_schedules.md` for the full schema, JSON format the pairing script expects, and tips on extracting schedule data from a shuttle company's website.
|
|
366
|
-
|
|
367
|
-
---
|
|
368
|
-
|
|
369
|
-
## Skill Feedback
|
|
370
|
-
---
|
|
371
|
-
|
|
372
|
-
## Skill Feedback
|
|
373
|
-
|
|
374
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
375
|
-
|
|
376
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
377
|
-
|
|
378
|
-
```bash
|
|
379
|
-
gh issue create \
|
|
380
|
-
--repo ElliotDrel/e-stack \
|
|
381
|
-
--title "estack-flight-planner: <concise summary>" \
|
|
382
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
**If `gh` is not installed**, build a pre-filled URL:
|
|
386
|
-
|
|
387
|
-
```bash
|
|
388
|
-
python3 -c "
|
|
389
|
-
import urllib.parse
|
|
390
|
-
title = 'estack-flight-planner: <concise summary>'
|
|
391
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
392
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
393
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
394
|
-
"
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
Share the printed URL with the user and offer to open it in their browser.
|
|
398
|
-
|
|
399
|
-
They can also click it directly, review the pre-filled title and body, and click **Submit new issue**.
|
|
400
|
-
|
|
401
|
-
---
|
|
402
|
-
|
|
403
|
-
## Skill Feedback
|
|
404
|
-
|
|
405
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
406
|
-
|
|
407
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
408
|
-
|
|
409
|
-
```bash
|
|
410
|
-
gh issue create \
|
|
411
|
-
--repo ElliotDrel/e-stack \
|
|
412
|
-
--title "estack-flight-planner: <concise summary>" \
|
|
413
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
414
|
-
```
|
|
415
|
-
|
|
416
|
-
**If `gh` is not installed**, build a pre-filled URL:
|
|
417
|
-
|
|
418
|
-
```bash
|
|
419
|
-
python3 -c "
|
|
420
|
-
import urllib.parse
|
|
421
|
-
title = 'estack-flight-planner: <concise summary>'
|
|
422
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
423
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
424
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
425
|
-
"
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
Share the printed URL with the user and offer to open it in their browser.
|
|
429
|
-
|
|
430
|
-
They can also click it directly, review the pre-filled title and body, and click **Submit new issue**.
|
|
431
|
-
|
|
432
|
-
---
|
|
433
|
-
|
|
434
|
-
## Skill Feedback
|
|
435
|
-
|
|
436
337
|
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
437
338
|
|
|
438
339
|
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
@@ -13,10 +13,10 @@ price distribution. The skill uses this to propose specific relaxations when
|
|
|
13
13
|
hard filters return zero results.
|
|
14
14
|
|
|
15
15
|
Usage:
|
|
16
|
-
python filter_flights.py --json-dir /tmp/flight-planner/ --max-price 200 --from IND --to EWR
|
|
17
|
-
python filter_flights.py --json-dir /tmp/flight-planner/ --max-price 200 \\
|
|
16
|
+
python filter_flights.py --json-dir /tmp/estack-flight-planner/ --max-price 200 --from IND --to EWR
|
|
17
|
+
python filter_flights.py --json-dir /tmp/estack-flight-planner/ --max-price 200 \\
|
|
18
18
|
--soft-filters max-price,time-priority
|
|
19
|
-
python filter_flights.py --json-dir /tmp/flight-planner/ --cluster-analysis
|
|
19
|
+
python filter_flights.py --json-dir /tmp/estack-flight-planner/ --cluster-analysis
|
|
20
20
|
|
|
21
21
|
All filter args (--max-price, --time-priority, --from, --to, --airlines, --nonstop)
|
|
22
22
|
are required for normal filter mode (no defaults — caller passes config values).
|
|
@@ -192,7 +192,7 @@ def cluster_analysis(flights, max_price, bands, origins, dests, airlines, nonsto
|
|
|
192
192
|
|
|
193
193
|
def main() -> int:
|
|
194
194
|
p = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
|
|
195
|
-
default_dir = Path(tempfile.gettempdir()) / "flight-planner"
|
|
195
|
+
default_dir = Path(tempfile.gettempdir()) / "estack-flight-planner"
|
|
196
196
|
p.add_argument("--json-dir", default=str(default_dir))
|
|
197
197
|
p.add_argument("--max-price", type=int, default=None,
|
|
198
198
|
help="Max price in USD. Omit for no price filter.")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: estack-github-issue-tracker
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.3
|
|
4
4
|
description: >
|
|
5
5
|
(github-issue-tracker) GitHub issue tracker management. Checks all open issues the user is involved in,
|
|
6
6
|
finds related/duplicate issues, reports what changed, and recommends next steps.
|
|
@@ -324,89 +324,6 @@ $ARGUMENTS
|
|
|
324
324
|
|
|
325
325
|
## Skill Feedback
|
|
326
326
|
|
|
327
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then build a pre-filled GitHub issue URL and share it so the user can click, review, and submit:
|
|
328
|
-
|
|
329
|
-
```bash
|
|
330
|
-
python3 -c "
|
|
331
|
-
import urllib.parse
|
|
332
|
-
title = 'estack-github-issue-tracker: <concise summary>'
|
|
333
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
334
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
335
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
336
|
-
"
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
Share the printed URL with the user. They click it, review the pre-filled title and body, then click **Submit new issue**.
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## Skill Feedback
|
|
344
|
-
---
|
|
345
|
-
|
|
346
|
-
## Skill Feedback
|
|
347
|
-
|
|
348
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
349
|
-
|
|
350
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
351
|
-
|
|
352
|
-
```bash
|
|
353
|
-
gh issue create \
|
|
354
|
-
--repo ElliotDrel/e-stack \
|
|
355
|
-
--title "estack-github-issue-tracker: <concise summary>" \
|
|
356
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
**If `gh` is not installed**, build a pre-filled URL:
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
python3 -c "
|
|
363
|
-
import urllib.parse
|
|
364
|
-
title = 'estack-github-issue-tracker: <concise summary>'
|
|
365
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
366
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
367
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
368
|
-
"
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
Share the printed URL with the user and offer to open it in their browser.
|
|
372
|
-
|
|
373
|
-
They can also click it directly, review the pre-filled title and body, and click **Submit new issue**.
|
|
374
|
-
|
|
375
|
-
---
|
|
376
|
-
|
|
377
|
-
## Skill Feedback
|
|
378
|
-
|
|
379
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
380
|
-
|
|
381
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
382
|
-
|
|
383
|
-
```bash
|
|
384
|
-
gh issue create \
|
|
385
|
-
--repo ElliotDrel/e-stack \
|
|
386
|
-
--title "estack-github-issue-tracker: <concise summary>" \
|
|
387
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
**If `gh` is not installed**, build a pre-filled URL:
|
|
391
|
-
|
|
392
|
-
```bash
|
|
393
|
-
python3 -c "
|
|
394
|
-
import urllib.parse
|
|
395
|
-
title = 'estack-github-issue-tracker: <concise summary>'
|
|
396
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
397
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
398
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
399
|
-
"
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
Share the printed URL with the user and offer to open it in their browser.
|
|
403
|
-
|
|
404
|
-
They can also click it directly, review the pre-filled title and body, and click **Submit new issue**.
|
|
405
|
-
|
|
406
|
-
---
|
|
407
|
-
|
|
408
|
-
## Skill Feedback
|
|
409
|
-
|
|
410
327
|
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
411
328
|
|
|
412
329
|
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* tracker-tools.cjs — Data service layer for github-issue-tracker skill.
|
|
4
|
+
* tracker-tools.cjs — Data service layer for estack-github-issue-tracker skill.
|
|
5
5
|
*
|
|
6
6
|
* Commands:
|
|
7
7
|
* startup --tracker <path> Auth, parse tracker + config, create temp dir, discover issues
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: estack-prompt-builder-coach
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.2
|
|
4
4
|
description: (prompt-builder-coach) Use whenever you or the user need to write, sharpen, audit, or scope a prompt or work request for an AI agent or model. This is a four-part kit covering shaping a fuzzy idea into a decided goal, building a prompt from scratch, auditing a draft request that feels vague, and defining what "done" looks like when the task is fuzzy. Trigger when the user says "help me write a prompt", "build me a prompt", "audit this prompt", "make this request better", "why is the AI giving me generic output", "I don't know what I want", "I have a rough idea", "what should done look like", or when handing a task to another agent and wanting it to land. Use it even when the user did not say the word "prompt" but is clearly trying to get an AI to do consequential work. Do not use for quick factual lookups or for executing an already well-defined task.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -79,7 +79,6 @@ Every finished prompt or brief gets saved to a markdown file with a descriptive
|
|
|
79
79
|
- Do not run a part from memory. Always read its file on entry, per Rule 1.
|
|
80
80
|
- Do not over-apply the kit. A quick ask gets a quick prompt, not a six-field brief.
|
|
81
81
|
</guardrails>
|
|
82
|
-
|
|
83
82
|
---
|
|
84
83
|
|
|
85
84
|
## Skill Feedback
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: estack-read-claude-session-history
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.3
|
|
4
4
|
description: (read-claude-session-history) Invoke for ANY task involving Claude Code session history, transcripts, or .jsonl files — this is the only way to read, parse, or search them; do not attempt to use Bash or Read on .jsonl directly. Use for: recovering context after /compact ("what were we doing before compact"), advisor response retrieval ("what did the advisor say"), subagent output collection ("get all subagent finals"), cross-project session search by keyword, session listing and triage, UUID and title lookup, resume-command generation, file-edit and tool-call forensics, session diff between two sessions or subagents, weekly work journal, day timeline of activity blocks and idle gaps, engagement/attention-time accounting (active vs elapsed time, break detection, parallel-chat-safe totals), recovering from .claude-backups after data loss, session count queries, and reading the last agent message before a crash or interrupt. Trigger phrases: "session history", "before compact", "what did claude do", "what did I work on", "search my sessions", "find that session", "what did the advisor say", "what did the agent edit", "from the backup", "list my sessions", "subagent outputs", "session journal", "resume previous", "which files did claude touch", "go back and look", "what did I do yesterday", "where did my day go", "timeline of my day", "how much time on", "how long did that actually take", "how much did I actually work", "active time", "time I spent".
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ Sessions are stored as `.jsonl` files. Reading them raw is hopeless: 1,000–5,0
|
|
|
13
13
|
## Quick start
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
PY="
|
|
16
|
+
PY="$HOME/.claude/skills/estack-read-claude-session-history/scripts/read_transcript.py"
|
|
17
17
|
|
|
18
18
|
# What was the last thing the agent said in this session?
|
|
19
19
|
python "$PY" --file <current-session.jsonl> --mode last
|
|
@@ -202,7 +202,6 @@ See `references/recipes.md` for fuller multi-step workflows.
|
|
|
202
202
|
## When the modes return empty
|
|
203
203
|
|
|
204
204
|
If a mode returns empty/unexpected output, run `--mode debug` first. It prints the entry-type distribution, content-block types, and probes for advisor + compact markers — useful when the transcript schema has drifted or when a session was truncated.
|
|
205
|
-
|
|
206
205
|
---
|
|
207
206
|
|
|
208
207
|
## Skill Feedback
|
|
@@ -4,7 +4,7 @@ Multi-step workflows. For per-mode flag reference, see `modes.md`. For schema, s
|
|
|
4
4
|
|
|
5
5
|
In all examples, `$PY` refers to:
|
|
6
6
|
```
|
|
7
|
-
|
|
7
|
+
~/.claude/skills/estack-read-claude-session-history/scripts/read_transcript.py
|
|
8
8
|
```
|
|
9
9
|
|
|
10
10
|
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: estack-repo-search
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.2
|
|
4
4
|
description: >-
|
|
5
5
|
(repo-search) Clone and search external GitHub repositories to answer questions about their
|
|
6
6
|
code. Use this skill whenever the user references a repo you don't have local
|
|
@@ -78,35 +78,6 @@ gh issue create \
|
|
|
78
78
|
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
**If `gh` is not installed**, build a pre-filled URL and share it so the user can click, review, and submit:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
python3 -c "
|
|
85
|
-
import urllib.parse
|
|
86
|
-
title = 'estack-repo-search: <concise summary>'
|
|
87
|
-
body = '<description from user feedback — expected vs. actual behavior and context>'
|
|
88
|
-
base = 'https://github.com/ElliotDrel/e-stack/issues/new'
|
|
89
|
-
print(base + '?title=' + urllib.parse.quote(title) + '&body=' + urllib.parse.quote(body))
|
|
90
|
-
"
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
Share the printed URL with the user. They click it, review the pre-filled title and body, then click **Submit new issue**.
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Skill Feedback
|
|
98
|
-
|
|
99
|
-
If the user shares feedback about this skill — a bug, something confusing, a missing feature, or a suggestion — ask them to describe it in a bit more detail (what they expected, what happened, and any relevant context). Then file the issue using whichever method is available:
|
|
100
|
-
|
|
101
|
-
**If `gh` is installed** (`gh --version` succeeds), create the issue directly:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
gh issue create \
|
|
105
|
-
--repo ElliotDrel/e-stack \
|
|
106
|
-
--title "estack-repo-search: <concise summary>" \
|
|
107
|
-
--body "<description from user feedback — expected vs. actual behavior and context>"
|
|
108
|
-
```
|
|
109
|
-
|
|
110
81
|
**If `gh` is not installed**, build a pre-filled URL:
|
|
111
82
|
|
|
112
83
|
```bash
|