elliot-stack 1.0.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.
- package/bin/install.cjs +410 -0
- package/package.json +24 -0
- package/skills/better-title/SKILL.md +45 -0
- package/skills/better-title/scripts/rename.sh +55 -0
- package/skills/chris-voss/SKILL.md +78 -0
- package/skills/chris-voss/references/elliot-notes.md +120 -0
- package/skills/chris-voss/references/voss-principles.md +210 -0
- package/skills/github-issue-tracker/SKILL.md +320 -0
- package/skills/github-issue-tracker/bin/tracker-tools.cjs +1358 -0
- package/skills/github-issue-tracker/references/gh-cli-patterns.md +124 -0
- package/skills/github-issue-tracker/references/result-file-schema.md +156 -0
- package/skills/github-issue-tracker/references/tracker-schema.md +96 -0
- package/skills/github-issue-tracker/tracker-template.md +58 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# gh CLI Patterns
|
|
2
|
+
|
|
3
|
+
Reusable command templates for all GitHub API calls in this skill. Replace CAPS placeholders
|
|
4
|
+
with actual values.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Issue Metadata
|
|
9
|
+
|
|
10
|
+
Fetch state, labels, comment count, timestamps:
|
|
11
|
+
```bash
|
|
12
|
+
gh api repos/OWNER/REPO/issues/NUMBER --jq '{state: .state, labels: [.labels[].name], comments: .comments, updated: .updated_at, created: .created_at}'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Issue Comments
|
|
16
|
+
|
|
17
|
+
Last 3 comments with author, date, full body:
|
|
18
|
+
```bash
|
|
19
|
+
gh api repos/OWNER/REPO/issues/NUMBER/comments --jq '.[-3:] | .[] | {author: .user.login, date: (.created_at | split("T")[0]), body: .body}'
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
All comments (for drafting — verify claims before posting):
|
|
23
|
+
```bash
|
|
24
|
+
gh api repos/OWNER/REPO/issues/NUMBER/comments --jq '.[] | {author: .user.login, date: .created_at, body: .body}'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Comments since a date:
|
|
28
|
+
```bash
|
|
29
|
+
gh api repos/OWNER/REPO/issues/NUMBER/comments --jq '[.[] | select(.created_at > "DATE")] | .[] | {author: .user.login, date: (.created_at | split("T")[0]), body: .body}'
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Truncation rules:** Never truncate comments on the primary issue being reviewed — technical
|
|
33
|
+
details (addresses, error codes, test counts) get lost. For secondary fetches (known
|
|
34
|
+
duplicates, upstream), `[0:1500]` is acceptable to manage context size.
|
|
35
|
+
|
|
36
|
+
## Issue Body
|
|
37
|
+
|
|
38
|
+
Full issue body (read before commenting on unfamiliar issues):
|
|
39
|
+
```bash
|
|
40
|
+
gh api repos/OWNER/REPO/issues/NUMBER --jq '.body'
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Search: Issues Involving User
|
|
44
|
+
|
|
45
|
+
Open issues with recent activity:
|
|
46
|
+
```bash
|
|
47
|
+
gh api "search/issues?q=involves:USERNAME+updated:>DATE+is:open" --jq '.items[] | "#\(.number) \(.repository_url | split("/") | .[-2:] | join("/")) — \(.title) [updated: \(.updated_at)]"'
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Search: Issues by Author
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
gh api "search/issues?q=author:USERNAME+is:open&per_page=100&sort=updated" --jq '.items[] | "#\(.number) \(.repository_url | split("/") | .[-2:] | join("/")) — \(.title) [updated: \(.updated_at | split("T")[0])]"'
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Search: Issues by Commenter (excluding authored)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
gh api "search/issues?q=commenter:USERNAME+is:open+-author:USERNAME&per_page=100&sort=updated" --jq '.items[] | "#\(.number) \(.repository_url | split("/") | .[-2:] | join("/")) — \(.title) [updated: \(.updated_at | split("T")[0])]"'
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Search: Keyword Search for Duplicates
|
|
63
|
+
|
|
64
|
+
Search for issues matching keywords, created after a specific date:
|
|
65
|
+
```bash
|
|
66
|
+
gh api "search/issues?q=repo:OWNER/REPO+is:open+created:>DATE+KEYWORD1+KEYWORD2&per_page=10" --jq '.items[] | "#\(.number) — \(.title) [\(.created_at | split("T")[0])] @\(.user.login)"'
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Use multiple keyword variations per search to catch different phrasings. Example for an OAuth issue:
|
|
70
|
+
- Search 1: `OAuth redirect MCP`
|
|
71
|
+
- Search 2: `clientId mcp add`
|
|
72
|
+
- Search 3: `Slack plugin authentication`
|
|
73
|
+
|
|
74
|
+
## Search: Recently Closed Issues
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
gh api "search/issues?q=involves:USERNAME+is:closed+closed:>DATE&per_page=50&sort=updated" --jq '.items[] | "#\(.number) \(.repository_url | split("/") | .[-2:] | join("/")) — \(.title) [closed: \(.closed_at | split("T")[0])]"'
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Post Comment
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
gh issue comment NUMBER --repo OWNER/REPO --body "$(cat <<'EOF'
|
|
84
|
+
Comment body here.
|
|
85
|
+
Supports **markdown**.
|
|
86
|
+
EOF
|
|
87
|
+
)"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Always use heredoc (`<<'EOF'`) for comment bodies to handle special characters and newlines.
|
|
91
|
+
|
|
92
|
+
## Quick State Check
|
|
93
|
+
|
|
94
|
+
Check if an issue is still open (fast, minimal data):
|
|
95
|
+
```bash
|
|
96
|
+
gh api repos/OWNER/REPO/issues/NUMBER --jq '.state'
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## PR Status Check
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
gh api repos/OWNER/REPO/pulls/NUMBER --jq '{state: .state, merged: .merged, title: .title, updated: .updated_at}'
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Rate Limiting
|
|
108
|
+
|
|
109
|
+
GitHub API has rate limits. If running many parallel requests:
|
|
110
|
+
- Authenticated requests: 5000/hour
|
|
111
|
+
- Search API: 30 requests/minute
|
|
112
|
+
- If you hit limits, batch searches and add short delays between search batches
|
|
113
|
+
- Metadata fetches (repos/OWNER/REPO/issues/NUMBER) don't count against search limits
|
|
114
|
+
|
|
115
|
+
## Parallel Execution Strategy
|
|
116
|
+
|
|
117
|
+
To maximize speed, batch API calls by type:
|
|
118
|
+
|
|
119
|
+
**Batch 1 (parallel):** All active issue metadata + comments (these are REST calls, not search)
|
|
120
|
+
**Batch 2 (parallel):** All known duplicate/related issue checks (REST calls)
|
|
121
|
+
**Batch 3 (parallel):** All keyword searches for new duplicates (search API — respect 30/min limit)
|
|
122
|
+
**Batch 4 (parallel):** User involvement search + closed issue checks + upstream checks
|
|
123
|
+
|
|
124
|
+
Batches 1 and 2 can run simultaneously. Batch 3 should start after a brief pause if Batch 1+2 included many calls. Batch 4 can run with Batch 1.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Result File Schema
|
|
2
|
+
|
|
3
|
+
> Written by analysis agents, consumed by `compile-report`, `build-tracker`, and `update-tracker`.
|
|
4
|
+
|
|
5
|
+
One file per issue: `issue-OWNER-REPO-NUMBER.md` in the temp directory.
|
|
6
|
+
Raw API data lives in `raw-OWNER-REPO-NUMBER.json` (written by `fetch-issues`).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Frontmatter
|
|
11
|
+
|
|
12
|
+
```yaml
|
|
13
|
+
---
|
|
14
|
+
type: issue
|
|
15
|
+
owner: OWNER
|
|
16
|
+
repo: REPO
|
|
17
|
+
number: NUMBER
|
|
18
|
+
title: "Issue title"
|
|
19
|
+
state: open
|
|
20
|
+
state_changed: false # true if state changed since last check
|
|
21
|
+
labels: label1, label2
|
|
22
|
+
has_activity: false # true if new comments since last check
|
|
23
|
+
role: "SEE GUIDANCE BELOW"
|
|
24
|
+
filed: YYYY-MM-DD
|
|
25
|
+
last_check_date: null # date of previous check, null for first analysis
|
|
26
|
+
last_commenter: "@username"
|
|
27
|
+
last_comment_date: YYYY-MM-DD
|
|
28
|
+
comment_count: N
|
|
29
|
+
---
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Role Field
|
|
33
|
+
|
|
34
|
+
The role MUST describe what the user **did**, not just a label.
|
|
35
|
+
|
|
36
|
+
Bad: `"Author"`, `"Commenter"`
|
|
37
|
+
Good: `"Author (filed with 3 crash instances, posted workaround)"`,
|
|
38
|
+
`"Commenter (confirmed bug + shared exact callbackPort: 3118 fix)"`
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Body Sections
|
|
43
|
+
|
|
44
|
+
### ## Status Summary
|
|
45
|
+
|
|
46
|
+
Plain English: where does this issue stand and why does it matter? Write as if briefing
|
|
47
|
+
someone who hasn't looked at the issue in a week. Include dates, names, numbers.
|
|
48
|
+
|
|
49
|
+
Bad: "Issue is about a bug that causes crashes."
|
|
50
|
+
Good: "You filed this on Jan 15 about a crash when renaming MCP servers. Root cause is
|
|
51
|
+
tracked upstream in bun#28175. Workaround: name servers differently."
|
|
52
|
+
|
|
53
|
+
### ## Activity
|
|
54
|
+
|
|
55
|
+
What happened since last check (or full history if first analysis).
|
|
56
|
+
|
|
57
|
+
Format:
|
|
58
|
+
```
|
|
59
|
+
- @username (YYYY-MM-DD): What they said WITH specifics.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### ## Duplicates and Related
|
|
63
|
+
|
|
64
|
+
Two subsections:
|
|
65
|
+
|
|
66
|
+
#### ### Known — updates
|
|
67
|
+
Status changes on previously known duplicates/adjacent issues. Or "No changes."
|
|
68
|
+
|
|
69
|
+
#### ### New finds
|
|
70
|
+
Newly discovered duplicates or related issues. Or "None found."
|
|
71
|
+
|
|
72
|
+
For each entry, explain whether it shares a **root cause** (duplicate) or just
|
|
73
|
+
**symptoms** (adjacent). Don't just list titles — explain WHY it's related.
|
|
74
|
+
|
|
75
|
+
Bad: `"#40693 — related rename issue"`
|
|
76
|
+
Good: `"#40693 — VS Code UI blocking during rename. Same symptom (rename fails) but
|
|
77
|
+
different root cause: UI thread blocking vs JSONL write. Adjacent, not duplicate."`
|
|
78
|
+
|
|
79
|
+
### ## Upstream
|
|
80
|
+
|
|
81
|
+
Upstream dependency status — is this issue blocked on or related to an upstream fix?
|
|
82
|
+
Write "N/A" if there are no upstream dependencies.
|
|
83
|
+
|
|
84
|
+
Bad: `"There's an upstream issue."`
|
|
85
|
+
Good: `"Blocked on bun#28175 (open, no activity since Mar 2). Fix landed in Node 22.4 but
|
|
86
|
+
Bun hasn't ported it. No workaround available upstream."`
|
|
87
|
+
|
|
88
|
+
### ## Cross-References
|
|
89
|
+
|
|
90
|
+
All issue numbers mentioned in the issue body and comments. Helps the tracker build
|
|
91
|
+
a cross-reference map. List each with a one-line explanation of why it was mentioned.
|
|
92
|
+
|
|
93
|
+
Bad: `"#100, #200, #300"`
|
|
94
|
+
Good:
|
|
95
|
+
```
|
|
96
|
+
- #28175 — upstream Bun issue causing the root crash
|
|
97
|
+
- #40693 — adjacent rename bug (different root cause, shared symptom)
|
|
98
|
+
- #41022 — PR that attempted a fix but was reverted
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### ## Next Steps
|
|
102
|
+
|
|
103
|
+
Specific, actionable items driven by the user's **Goal** for this issue (from the tracker).
|
|
104
|
+
If the goal is "get my fix merged", focus on what's blocking the merge.
|
|
105
|
+
If "get maintainer to respond", suggest ways to increase visibility.
|
|
106
|
+
If "monitor for upstream fix", focus on upstream signals.
|
|
107
|
+
|
|
108
|
+
Bad: `"Monitor for updates"`, `"Follow up"`
|
|
109
|
+
Good: `"Respond to @maintainer's request for memory profiling data"`,
|
|
110
|
+
`"Test fix in PR #4521 against your reproduction case"`,
|
|
111
|
+
`"Nothing to do — waiting on maintainer review. Check back next week."`
|
|
112
|
+
|
|
113
|
+
### ## Watch For
|
|
114
|
+
|
|
115
|
+
Specific, concrete signals to monitor for this issue. These drive what gets checked
|
|
116
|
+
on the next run. Avoid generic statements — name exact PRs, labels, or events.
|
|
117
|
+
|
|
118
|
+
Bad: `"Watch for updates"`, `"Monitor the repo"`
|
|
119
|
+
Good:
|
|
120
|
+
```
|
|
121
|
+
- PR #4521 merging (would fix root cause)
|
|
122
|
+
- `p0` label being added (escalation signal)
|
|
123
|
+
- @core-dev responding to the reproduction request from Mar 28
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### ## Key Context
|
|
127
|
+
|
|
128
|
+
Workarounds (exact commands, not paraphrases), severity signals, technical details
|
|
129
|
+
someone would need to discuss this issue knowledgeably.
|
|
130
|
+
|
|
131
|
+
Bad: `"Use different server names"`
|
|
132
|
+
Good: `"Workaround: set MIMALLOC_ARENA_EAGER_COMMIT=0 before starting. Reduces peak
|
|
133
|
+
RSS from 2.4GB to 1.1GB but doesn't eliminate growth."`
|
|
134
|
+
|
|
135
|
+
### ## Tracker Updates
|
|
136
|
+
|
|
137
|
+
Machine-readable lines consumed by `update-tracker` and `build-tracker`:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
goal: Get my fix merged | Get maintainer response | Monitor for upstream fix | etc.
|
|
141
|
+
status_summary: Open. Labels: bug, p1. JSONL crash on rename. 12 comments total.
|
|
142
|
+
what_to_check: PRs modifying renameSession; JSONL title write logic changes.
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Optional:
|
|
146
|
+
```
|
|
147
|
+
new_duplicate: #NUMBER — @author, "Title" (date). Why related. [duplicate|adjacent]
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
History entries (one per notable event):
|
|
151
|
+
```
|
|
152
|
+
history_entry: YYYY-MM-DD | Description of action or event
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
What to log: actions taken ("Posted comment"), external events ("Maintainer replied"),
|
|
156
|
+
state changes ("Closed via PR #123"). Don't log "no activity" — only real events.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Tracker File Schema
|
|
2
|
+
|
|
3
|
+
Defines the format and fields for `github-tracker.md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## File Header
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# GitHub Issue Tracker
|
|
11
|
+
|
|
12
|
+
GitHub username: **USERNAME**
|
|
13
|
+
|
|
14
|
+
## Config
|
|
15
|
+
|
|
16
|
+
Tracked repos: all repos where I'm involved
|
|
17
|
+
Excluded repos: none
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Config Section
|
|
23
|
+
|
|
24
|
+
Plain English directives that control what the skill tracks and how it reports.
|
|
25
|
+
The skill reads these on every run and respects them when filtering issues.
|
|
26
|
+
|
|
27
|
+
Common directives:
|
|
28
|
+
- `Tracked repos:` — which repos to include (default: all involving user)
|
|
29
|
+
- `Excluded repos:` — repos to skip entirely (e.g., `ElliotDrel/*` to skip own repos)
|
|
30
|
+
- Any other plain English instructions (e.g., "Don't show bot comments", "Focus on bugs only")
|
|
31
|
+
|
|
32
|
+
The skill treats these as soft rules — it reads them and applies judgment. No rigid parsing.
|
|
33
|
+
|
|
34
|
+
## Active Issues Section
|
|
35
|
+
|
|
36
|
+
Each issue entry under `## Active Issues (watching for updates)`:
|
|
37
|
+
|
|
38
|
+
```markdown
|
|
39
|
+
### owner/repo#NUMBER — Title
|
|
40
|
+
- **Goal:** What the user wants from this issue (e.g., "Get my fix merged", "Get maintainer to respond", "Monitor for upstream fix"). Drives next-step recommendations.
|
|
41
|
+
- **Role:** Author | Commenter | Mentioned (brief description of involvement)
|
|
42
|
+
- **Filed:** YYYY-MM-DD (only if authored by user)
|
|
43
|
+
- **Status as of YYYY-MM-DD:** Open/Closed. Labels: label1, label2. Summary of current state. N comments total.
|
|
44
|
+
- **What to check:** Specific signals to watch for (e.g., "Any Anthropic response?")
|
|
45
|
+
- **Related:** #other, #issues (cross-references found in comments)
|
|
46
|
+
- **Upstream:** owner/repo#NUMBER (if tracking an upstream dependency)
|
|
47
|
+
- **Crash instances:** (optional, for bug reports with multiple data points)
|
|
48
|
+
1. Description of instance
|
|
49
|
+
2. Description of instance
|
|
50
|
+
- **Workaround:** Description of workaround (if applicable)
|
|
51
|
+
- **Duplicates found (YYYY-MM-DD):**
|
|
52
|
+
- **#NUMBER** — @author, "Title" (date). Why it's related/duplicate.
|
|
53
|
+
- **Adjacent issues found (YYYY-MM-DD):**
|
|
54
|
+
- **#NUMBER** — @author, "Title" (date). Why it's adjacent (same space, different problem).
|
|
55
|
+
- **Next steps (now):** Immediate actions for this check-in.
|
|
56
|
+
- **Future:** Things to monitor or do later.
|
|
57
|
+
- **History:**
|
|
58
|
+
- **YYYY-MM-DD:** Filed issue with 3 crash instances, upstream tracking in bun#28175
|
|
59
|
+
- **YYYY-MM-DD:** Posted workaround (callbackPort: 3118 fix)
|
|
60
|
+
- **YYYY-MM-DD:** Maintainer @user replied with fix proposal
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Field Rules
|
|
64
|
+
|
|
65
|
+
- **"Status as of" date:** Always update to today's date during Phase 4.
|
|
66
|
+
- **"Duplicates found" date:** Date when the duplicate was first identified. Don't change on subsequent check-ins.
|
|
67
|
+
- **"Next steps (now)":** Clear after execution. If not executed, carry forward.
|
|
68
|
+
- **"Future":** Accumulates over time. Remove items that become "Next steps (now)" or are no longer relevant.
|
|
69
|
+
- **"Goal":** Set on first add, update if the user's intent changes. Use this to drive next-step recommendations — if the goal is "get merged" the next steps focus on what's blocking the merge; if "monitor for fix" the next steps focus on upstream signals.
|
|
70
|
+
- **Role descriptions:** Keep brief. Examples: "confirmed bug + posted workaround", "shared skill + reported 64KB bug", "proposed configurable keybindings".
|
|
71
|
+
- **"History:"** Append-only timestamped log. Format: `- **YYYY-MM-DD:** Action or event description`. Newest entries go last (chronological). Logs both our actions (filing, commenting, posting workarounds) and detected external events (maintainer replies, state changes, PRs merged). On initial filing, first entry must be: `- **YYYY-MM-DD:** Filed issue` (or `Added to tracker` if not authored by user).
|
|
72
|
+
|
|
73
|
+
## Closed / Resolved Section
|
|
74
|
+
|
|
75
|
+
Each entry under `## Closed / Resolved`:
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
### owner/repo#NUMBER — Title
|
|
79
|
+
- Brief resolution note (merged, auto-closed as duplicate of #X, fixed in vX.Y.Z, etc.)
|
|
80
|
+
- Date closed if notable.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Morning Check-In Procedure Section
|
|
84
|
+
|
|
85
|
+
Static section with reusable `gh` CLI commands. Update USERNAME if it changes. Otherwise don't modify.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Update Rules
|
|
90
|
+
|
|
91
|
+
1. **Only update the tracker file in Phase 4, after user confirmation.**
|
|
92
|
+
2. **Preserve manually added content.** If the user added custom notes, crash data, workarounds, or other content not generated by this skill, keep it intact.
|
|
93
|
+
3. **Move issues between sections** when state changes (Active → Closed, or Closed → Active if reopened).
|
|
94
|
+
4. **Don't remove duplicate entries** — they're historical. Only add new ones.
|
|
95
|
+
5. **Keep "What to check" relevant.** Update if the situation changed (e.g., if Anthropic responded, change from "Any Anthropic response?" to "Follow up on Anthropic's suggestion?").
|
|
96
|
+
6. **Append new history entries. Never remove or edit existing history entries.**
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# GitHub Issue Tracker
|
|
2
|
+
|
|
3
|
+
GitHub username: **USERNAME_HERE**
|
|
4
|
+
|
|
5
|
+
## Config
|
|
6
|
+
|
|
7
|
+
<!-- Directives for the check-in skill. Write in plain English. Examples:
|
|
8
|
+
- "Skip issues on my own repos (ElliotDrel/*)"
|
|
9
|
+
- "Only track issues on anthropics/claude-code and oven-sh/bun"
|
|
10
|
+
- "Don't show me bot comments or auto-close spam"
|
|
11
|
+
-->
|
|
12
|
+
|
|
13
|
+
Tracked repos: all repos where I'm involved
|
|
14
|
+
Excluded repos: none
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Active Issues (watching for updates)
|
|
19
|
+
|
|
20
|
+
<!-- For each issue you're tracking, use this format:
|
|
21
|
+
|
|
22
|
+
### owner/repo#NUMBER — Title
|
|
23
|
+
- **Role:** Author | Commenter | Mentioned (brief description of involvement)
|
|
24
|
+
- **Filed:** YYYY-MM-DD (if authored by you)
|
|
25
|
+
- **Status as of YYYY-MM-DD:** Open/Closed. Labels: ... . Summary of current state.
|
|
26
|
+
- **What to check:** What signals matter for this issue?
|
|
27
|
+
- **Related:** #other, #issues (if any)
|
|
28
|
+
- **Upstream:** owner/repo#NUMBER (if tracking an upstream dependency)
|
|
29
|
+
- **Duplicates found (YYYY-MM-DD):**
|
|
30
|
+
- **#NUMBER** — @author, "Title" (date). Why it's related.
|
|
31
|
+
- **Next steps (now):** Immediate actions to take this check-in.
|
|
32
|
+
- **Future:** Things to monitor or do later.
|
|
33
|
+
- **History:**
|
|
34
|
+
- **YYYY-MM-DD:** Filed issue (or "Added to tracker for monitoring")
|
|
35
|
+
-->
|
|
36
|
+
|
|
37
|
+
## Closed / Resolved
|
|
38
|
+
|
|
39
|
+
<!-- For each resolved issue:
|
|
40
|
+
|
|
41
|
+
### owner/repo#NUMBER — Title
|
|
42
|
+
- Brief resolution note (merged, auto-closed as duplicate, etc.)
|
|
43
|
+
-->
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Morning Check-In Procedure
|
|
48
|
+
|
|
49
|
+
Run this to get a quick status update on all active issues:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gh api search/issues?q=involves:USERNAME_HERE+updated:>$(python3 -c "import datetime; print((datetime.datetime.now()-datetime.timedelta(days=7)).strftime('%Y-%m-%d'))")+is:open --jq '.items[] | "#\(.number) \(.repository_url | split("/") | .[-2:] | join("/")) — \(.title) [updated: \(.updated_at)]"'
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Then for each issue, check recent comments:
|
|
56
|
+
```bash
|
|
57
|
+
gh api repos/OWNER/REPO/issues/NUMBER/comments --jq '.[-3:] | .[] | "[\(.created_at)] @\(.user.login): \(.body[0:200])"'
|
|
58
|
+
```
|