johns-harness 2026.9.25 → 2026.9.26
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 +5 -0
- package/README.md +5 -5
- package/docs/PATCHES.md +18 -7
- package/package.json +1 -1
- package/scripts/check-packed-artifact.mjs +0 -3
- package/skills/cold-outreach/SKILL.md +0 -99
- package/skills/content-story/SKILL.md +0 -77
- package/skills/dashboard/SKILL.md +0 -129
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026.9.26
|
|
4
|
+
|
|
5
|
+
- Family 73: the `content-story`, `dashboard` and `cold-outreach` skills are removed from the bundled set on request, leaving eight generic bundled skills (`code-ops`, `web-research`, `plan-archival`, `todos`, `arch-viz`, `gcp-logs`, `activity-logging`, `outlook`). They load by description match exactly as before, workspace copies override them, and `enabled: false` and `allowBundled` still apply. Nothing else changes from 2026.9.25.
|
|
6
|
+
- Roll back with `npm i -g johns-harness@2026.9.25`.
|
|
7
|
+
|
|
3
8
|
## 2026.9.25
|
|
4
9
|
|
|
5
10
|
- Family 72: eleven generic skills from the author's workspace ship as bundled skills (`code-ops`, `web-research`, `plan-archival`, `todos`, `dashboard`, `arch-viz`, `content-story`, `cold-outreach`, `gcp-logs`, `activity-logging`, `outlook`), converted to fully generic wording first: no owner names, paths, repos, accounts, or products. They load by description match like every other bundled skill (none is always-on), workspace copies override them, and `enabled: false` and `allowBundled` still apply. `RULES.md` lists all of them.
|
package/README.md
CHANGED
|
@@ -86,7 +86,7 @@ node johnness.mjs --help
|
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
88
|
npm test # 914 tests against the installed dependency tree
|
|
89
|
-
bash scripts/verify-patches.sh #
|
|
89
|
+
bash scripts/verify-patches.sh # 455 checks across every patch family
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
## Launch a swarm with one command
|
|
@@ -132,7 +132,7 @@ Coding agents today run as isolated processes. Two agents on the same repository
|
|
|
132
132
|
- **Memory built for production.** Tiered recall that traces from consolidated reflections down to the verbatim record, surviving compaction and shared across the swarm. Installed and enabled by default.
|
|
133
133
|
- **Production authority per commit.** Promotion is granted to an exact SHA, never to a branch name, so one worker's authorization never covers another worker's commits.
|
|
134
134
|
- **An append-only action log.** Agents record every consequential action to `ACTION_LOG.md` and read it before acting.
|
|
135
|
-
- **A fixed runtime surface.** The core does not grow on a schedule. New mechanisms enter only to solve a demonstrated production failure, one narrow, tested, reversible patch at a time:
|
|
135
|
+
- **A fixed runtime surface.** The core does not grow on a schedule. New mechanisms enter only to solve a demonstrated production failure, one narrow, tested, reversible patch at a time: 73 patch families, each with a regression test and a rollback path.
|
|
136
136
|
- **Reliability with a definition.** Bounded retries, explicit failure states, exact-once continuation, context-pressure recovery, durable delivery, and supervised gateway recovery.
|
|
137
137
|
- **Coding first, phone optional.** Direct the work at a high level from a chat channel while agents plan, implement, test, coordinate, and stage releases unattended.
|
|
138
138
|
- **Local voice.** Optional native Whisper transcription of inbound audio, entirely on your machine. Off by default. [Setup](docs/NATIVE-WHISPER-MUSE.md).
|
|
@@ -199,7 +199,7 @@ The log is a [`RULES.md`](RULES.md) workspace convention enforced through the ac
|
|
|
199
199
|
|
|
200
200
|
## Patch families
|
|
201
201
|
|
|
202
|
-
The runtime carries
|
|
202
|
+
The runtime carries 73 patch families plus the 65.1 safe-update amendment. Each is a production fix applied at the source with a regression test, a durable patch marker, and a rollback path. A verifier runs 455 checks against the package tree and installed dependencies, and 914 tests run against the installed dependency tree.
|
|
203
203
|
|
|
204
204
|
Every family follows the same six steps: reproduce the failure, trace the exact runtime path, make the smallest source-level change that restores the invariant, add a regression test and a patch marker, run the verifier, and retain rollback artifacts. The full index: [`docs/PATCHES.md`](docs/PATCHES.md).
|
|
205
205
|
|
|
@@ -213,12 +213,12 @@ Every family follows the same six steps: reproduce the failure, trace the exact
|
|
|
213
213
|
| `--dev` | Dev profile under `~/.johnness-dev` with its own gateway port and shifted derived ports |
|
|
214
214
|
| Rules | [`RULES.md`](RULES.md) ships 19 operating-policy sections injected on every call. Fill in the placeholders; keep long procedures in skills. |
|
|
215
215
|
| Orchestrator skill | Bundled and loaded implicitly on every install. Decide whether to pass the user's words through or expand them, then keep the briefing brief. Override with a workspace `skills/orchestrator/SKILL.md`. |
|
|
216
|
-
| Bundled generic skills |
|
|
216
|
+
| Bundled generic skills | Eight generic skills ship in `skills/` and load by description match: `code-ops`, `web-research`, `plan-archival`, `todos`, `arch-viz`, `gcp-logs`, `activity-logging`, `outlook`. Workspace copies override; `enabled: false` and `allowBundled` still apply. |
|
|
217
217
|
|
|
218
218
|
## Documentation
|
|
219
219
|
|
|
220
220
|
- [`docs/index.md`](docs/index.md): runtime docs, from gateway and channels to plugins, nodes, and CLI reference.
|
|
221
|
-
- [`docs/PATCHES.md`](docs/PATCHES.md): the
|
|
221
|
+
- [`docs/PATCHES.md`](docs/PATCHES.md): the 73 patch families, one record each.
|
|
222
222
|
- [`docs/NATIVE-WHISPER-MUSE.md`](docs/NATIVE-WHISPER-MUSE.md): local Whisper transcription setup.
|
|
223
223
|
- [`RULES.md`](RULES.md): the default operating rules, including Rule Zero on production authorization.
|
|
224
224
|
|
package/docs/PATCHES.md
CHANGED
|
@@ -97,7 +97,8 @@ Family 01 is retired. Families 02 through 41, 43 through 72, including the 65.1
|
|
|
97
97
|
|
|
98
98
|
71. **71, native-first Jiti standard on latest:** The Family 68 native-first loader option ships on every artifact, the `latest` and `extended` lines converge, and a packed-artifact gate proves the tarball carries it. [Details](#family-71-native-first-jiti-standard-on-latest)
|
|
99
99
|
|
|
100
|
-
72. **72, bundled generic skills:**
|
|
100
|
+
72. **72, bundled generic skills:** Eight workspace skills (code operations, research, todos, planning, logs, and more) ship as generic bundled skills that load by description match, with no owner names or personal paths. [Details](#family-72-bundled-generic-skills)
|
|
101
|
+
73. **73, prune bundled skills:** `content-story`, `dashboard` and `cold-outreach` are removed from the Family 72 bundled set on request after `2026.9.25`; the remaining eight ship unchanged. [Details](#family-73-prune-bundled-skills)
|
|
101
102
|
|
|
102
103
|
---
|
|
103
104
|
|
|
@@ -2627,9 +2628,9 @@ Roll back with `npm i -g johns-harness@2026.9.23` (no native-first Jiti) or `npm
|
|
|
2627
2628
|
|
|
2628
2629
|
**Release:** `johns-harness@2026.9.25`. Published as `latest` and the `extended` dist-tag moves to it (the two lines converged at 2026.9.24).
|
|
2629
2630
|
|
|
2630
|
-
|
|
2631
|
+
Eight skills from the author's personal workspace ship as bundled skills in `skills/<name>/SKILL.md`, made fully generic first: no owner names, no personal paths, repos, accounts, or products. Every one loads by description match like the other bundled skills (none is `always`-on, unlike the Family 70 orchestrator), a workspace or managed copy overrides it, `skills.entries.<name>.enabled: false` turns it off, and an `allowBundled` allowlist that omits it is respected. (Superseded by Family 73: from `2026.9.26` `dashboard`, `content-story` and `cold-outreach` are removed from the bundle.)
|
|
2631
2632
|
|
|
2632
|
-
Shipped skills: `code-ops` (learnings protocol, config tracing, publishing safety), `web-research` (never give up deep research method), `plan-archival` (move finished plans to plans/archive and memory/completed-plans), `todos` (workspace memory/todos protocol), `
|
|
2633
|
+
Shipped skills: `code-ops` (learnings protocol, config tracing, publishing safety), `web-research` (never give up deep research method), `plan-archival` (move finished plans to plans/archive and memory/completed-plans), `todos` (workspace memory/todos protocol), `arch-viz` (sub-agent generated architecture visualization), `gcp-logs` (Cloud Run log debugging via gcloud, placeholder service names), `activity-logging` (log outcomes, not tasks, plus the ACTION_LOG), `outlook` (outlook tool quick reference).
|
|
2633
2634
|
|
|
2634
2635
|
Decision table:
|
|
2635
2636
|
|
|
@@ -2639,10 +2640,10 @@ Decision table:
|
|
|
2639
2640
|
| web-research | ship, converted | generic method, em dashes stripped |
|
|
2640
2641
|
| plan-archival | ship, converted | personal paths replaced with workspace-relative |
|
|
2641
2642
|
| todos | ship, converted | owner name and paths replaced |
|
|
2642
|
-
| dashboard |
|
|
2643
|
+
| dashboard | dropped | removed on request after 2026.9.25 |
|
|
2643
2644
|
| arch-viz | ship, converted | personal paths and projects scrubbed |
|
|
2644
|
-
| content-story |
|
|
2645
|
-
| cold-outreach |
|
|
2645
|
+
| content-story | dropped | removed on request after 2026.9.25 |
|
|
2646
|
+
| cold-outreach | dropped | removed on request after 2026.9.25 |
|
|
2646
2647
|
| gcp-logs | ship, converted | baked-in service names replaced with placeholders |
|
|
2647
2648
|
| activity-logging | ship, converted | log names and paths made workspace-relative |
|
|
2648
2649
|
| outlook | ship, converted | account domain scrubbed |
|
|
@@ -2655,6 +2656,16 @@ Decision table:
|
|
|
2655
2656
|
| hyperframes, hyperframes-cli, hyperframes-media, website-to-hyperframes, impeccable | exclude | third-party vendored skills |
|
|
2656
2657
|
| orchestrator | already shipped | Family 70 |
|
|
2657
2658
|
|
|
2658
|
-
Verifier checks 72.1 through 72.5 cover presence with frontmatter, the generic wording contract (no owner, product or personal names and no `always` flag), no em dashes, the RULES.md skill table, and the packed artifact (the Family 71 gate now also proves all
|
|
2659
|
+
Verifier checks 72.1 through 72.5 cover presence with frontmatter, the generic wording contract (no owner, product or personal names and no `always` flag), no em dashes, the RULES.md skill table, and the packed artifact (the Family 71 gate now also proves all eight skills are inside the tarball). `tests/bundled-skills.test.mjs` proves every skills chunk loads all eight from an empty workspace, a workspace copy overrides, `enabled: false` disables, and the `allowBundled` allowlist still wins. `RULES.md` section 5 lists every bundled skill.
|
|
2659
2660
|
|
|
2660
2661
|
Roll back with `npm i -g johns-harness@2026.9.24`.
|
|
2662
|
+
|
|
2663
|
+
## Family 73: prune bundled skills
|
|
2664
|
+
|
|
2665
|
+
**Release:** `johns-harness@2026.9.26`. Published as `latest` and the `extended` dist-tag moves to it.
|
|
2666
|
+
|
|
2667
|
+
Three of the Family 72 bundled skills are removed from the bundled set on request after `2026.9.25`: `content-story`, `dashboard` and `cold-outreach`. The remaining eight (`activity-logging`, `arch-viz`, `code-ops`, `gcp-logs`, `outlook`, `plan-archival`, `todos`, `web-research`) are unchanged, and a workspace or managed copy of a removed skill still overrides and loads as it always did. Nothing else differs from `2026.9.25`.
|
|
2668
|
+
|
|
2669
|
+
The counters move with the set: the verifier emits one check per remaining skill through the same 72.1 loop (455 checks in total), `tests/bundled-skills.test.mjs` asserts exactly eight bundled skills, `scripts/check-packed-artifact.mjs` fails closed unless a tarball carries all eight with frontmatter, and `README.md` and the pinned copy in `patches/59-migrate-cli.patch` carry the new counts together so check 59c stays green. `RULES.md` section 5 drops the three rows.
|
|
2670
|
+
|
|
2671
|
+
Roll back with `npm i -g johns-harness@2026.9.25`.
|
package/package.json
CHANGED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cold-outreach
|
|
3
|
-
description: Write cold DMs that get responses using the Four Pillars framework. Use when drafting outreach messages, direct messages, or connection requests for the user.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Cold Outreach / DM Skill
|
|
7
|
-
|
|
8
|
-
Write cold DMs that get responses. Uses the Four Pillars framework.
|
|
9
|
-
|
|
10
|
-
## Required Reading
|
|
11
|
-
|
|
12
|
-
Before ANY outreach, read the full playbook if one exists:
|
|
13
|
-
- `memory/outreach-playbook.md` in the workspace
|
|
14
|
-
|
|
15
|
-
## The Four Pillars
|
|
16
|
-
|
|
17
|
-
Every message must hit all 4:
|
|
18
|
-
|
|
19
|
-
1. **PERSONAL**: their thesis/worldview (what they REALLY believe)
|
|
20
|
-
2. **RELEVANT**: their current mission (what they're building NOW)
|
|
21
|
-
3. **TIMELY**: recent content (what's top of mind TODAY)
|
|
22
|
-
4. **POWERFUL**: peer energy (you're a collaborator, not a fan)
|
|
23
|
-
|
|
24
|
-
## The DM Flow
|
|
25
|
-
|
|
26
|
-
| Step | What to Say | Goal |
|
|
27
|
-
|------|-------------|------|
|
|
28
|
-
| 1. Opener | React to THEIR thing + ask question | Start conversation |
|
|
29
|
-
| 2. Listen | Let them share their pain | Understand their words |
|
|
30
|
-
| 3. "Same" | "yeah same, I built something" | Create curiosity |
|
|
31
|
-
| 4. Wait | They ask "what is it?" | Make them pull |
|
|
32
|
-
| 5. Share | Now give them the product | Favor, not pitch |
|
|
33
|
-
|
|
34
|
-
## Opener Formula
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
"[reaction to specific content]. [establish same problem]. [ask what they did about it]"
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**Example:**
|
|
41
|
-
> "yo that piece on agents forgetting everything hit hard. been banging my head on the same problem. curious what you ended up doing about it"
|
|
42
|
-
|
|
43
|
-
## Anti-Patterns (NEVER)
|
|
44
|
-
|
|
45
|
-
- ❌ Product name in opener
|
|
46
|
-
- ❌ Install commands
|
|
47
|
-
- ❌ "Your audience would love..."
|
|
48
|
-
- ❌ Flattery ("love your content!")
|
|
49
|
-
- ❌ Fan energy ("would you check out...")
|
|
50
|
-
- ❌ Offering before they ask
|
|
51
|
-
|
|
52
|
-
## Good vs Bad
|
|
53
|
-
|
|
54
|
-
**Bad (ad energy):**
|
|
55
|
-
> "Hey [name] - been watching your agent coverage. I built [our product], a plugin that gives agents persistent memory. One-liner install. Think your audience would love it."
|
|
56
|
-
|
|
57
|
-
**Good (peer energy):**
|
|
58
|
-
> "yo that piece on agents forgetting everything hit hard. been banging my head on the same problem. curious what you ended up doing about it"
|
|
59
|
-
|
|
60
|
-
## Research Requirements
|
|
61
|
-
|
|
62
|
-
Before writing ANY outreach:
|
|
63
|
-
1. Watch 2-3 recent videos: find their THESIS
|
|
64
|
-
2. Read social presence: what identity are they building?
|
|
65
|
-
3. Find ONE specific thing to react to
|
|
66
|
-
4. Know what they'll likely respond (from research)
|
|
67
|
-
5. Plan your step 3 response
|
|
68
|
-
|
|
69
|
-
## Output Format
|
|
70
|
-
|
|
71
|
-
For each creator, produce:
|
|
72
|
-
|
|
73
|
-
```markdown
|
|
74
|
-
## [Creator Name]
|
|
75
|
-
|
|
76
|
-
### Research
|
|
77
|
-
- **Thesis:** [what they really believe]
|
|
78
|
-
- **Current mission:** [what they're building now]
|
|
79
|
-
- **Recent content:** [specific thing to reference]
|
|
80
|
-
- **Their solution:** [what they're currently doing about the problem]
|
|
81
|
-
|
|
82
|
-
### Opener
|
|
83
|
-
> [the DM]
|
|
84
|
-
|
|
85
|
-
### Expected Response
|
|
86
|
-
> [what they'll likely say]
|
|
87
|
-
|
|
88
|
-
### Step 3 Response
|
|
89
|
-
> [our "same, I built something" response]
|
|
90
|
-
|
|
91
|
-
### Step 5 Share
|
|
92
|
-
> [product share if they ask]
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
## Key Insight
|
|
96
|
-
|
|
97
|
-
**Make them ask. Never offer first.**
|
|
98
|
-
|
|
99
|
-
The goal is to create curiosity so strong that THEY pull the product out of you. Then sharing feels like a favor, not a pitch.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: content-story
|
|
3
|
-
description: Generate content ideas using the Story, Concept, Drop framework. Use when brainstorming short-form video content, social posts, or creative concepts that need a hook and a payoff.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Content Story Skill
|
|
7
|
-
|
|
8
|
-
Generate content ideas using the Story → Concept → Drop framework.
|
|
9
|
-
|
|
10
|
-
## The Framework
|
|
11
|
-
|
|
12
|
-
Every piece of content needs three things:
|
|
13
|
-
|
|
14
|
-
### 1. The Story
|
|
15
|
-
The journey. Beginning → destination. A problem that's relatable and a resolution that's satisfying.
|
|
16
|
-
- The problem doesn't need to be big
|
|
17
|
-
- The resolution doesn't need to be inspiring
|
|
18
|
-
- But there MUST be a journey: something changes from start to finish
|
|
19
|
-
|
|
20
|
-
### 2. The Concept
|
|
21
|
-
The viral component. What's on screen that makes someone WATCH?
|
|
22
|
-
- A beautiful person
|
|
23
|
-
- Something unexpected just happened
|
|
24
|
-
- You need to see what comes next
|
|
25
|
-
- A visual that stops the scroll
|
|
26
|
-
- Curiosity gap: "wait, what?"
|
|
27
|
-
|
|
28
|
-
### 3. The Drop
|
|
29
|
-
The climax. The moment the video makes sense. The payoff.
|
|
30
|
-
- This is what people REWATCH for
|
|
31
|
-
- Rewatches = algorithm fuel
|
|
32
|
-
- The drop should feel earned: the story builds to it
|
|
33
|
-
- Can be visual (reveal), emotional (surprise), or both
|
|
34
|
-
|
|
35
|
-
## Rules
|
|
36
|
-
|
|
37
|
-
- **Would YOU watch it?** If no, don't post it
|
|
38
|
-
- **15-30 seconds max** for reels: tight, no fat
|
|
39
|
-
- **Music matters**: the right song makes or breaks the drop
|
|
40
|
-
- **Film 10x more than you post**: capture everything, curate ruthlessly
|
|
41
|
-
- **No talking heads, no "5 tips", no corporate energy**
|
|
42
|
-
- **Raw + cinematic > polished + corporate**
|
|
43
|
-
- **Not looking at the lens > looking at the lens**: candid energy even when staged
|
|
44
|
-
- **Daily posting beats perfect posting**: consistency wins
|
|
45
|
-
|
|
46
|
-
## How to Use
|
|
47
|
-
|
|
48
|
-
When brainstorming content, fill in:
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
STORY: [the journey: what changes?]
|
|
52
|
-
CONCEPT: [the hook: why do they watch?]
|
|
53
|
-
DROP: [the payoff: what's the climax?]
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Then figure out:
|
|
57
|
-
- What do you need to film?
|
|
58
|
-
- What song fits?
|
|
59
|
-
- What's the edit style? (slow-mo, transition, split screen, etc.)
|
|
60
|
-
|
|
61
|
-
## Content Types That Hit
|
|
62
|
-
|
|
63
|
-
- **Main character POV**: walking, arriving, living. Viewer projects themselves into it
|
|
64
|
-
- **Transitions**: before/after, location swap, outfit change, time shift
|
|
65
|
-
- **Silent storytelling**: music + visuals + text overlay. Works sound on AND off
|
|
66
|
-
- **Candid energy**: looks unplanned but isn't. Natural > posed
|
|
67
|
-
- **Reveals**: camera pulls back or cuts to show something unexpected
|
|
68
|
-
- **Contrast**: old life vs new life, morning vs night, alone vs crowd
|
|
69
|
-
|
|
70
|
-
## The Test
|
|
71
|
-
|
|
72
|
-
Before posting, ask:
|
|
73
|
-
1. Does it have all three? (Story, Concept, Drop)
|
|
74
|
-
2. Would I stop scrolling for this?
|
|
75
|
-
3. Would I rewatch it?
|
|
76
|
-
|
|
77
|
-
If yes to all three → post it.
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dashboard
|
|
3
|
-
description: Maintain the user's command center dashboard in memory/dashboard.md. Update after any action (email sent, reply received, task completed, status change). Use when tracking pending items, project status, or giving the user a view of what's happening. The dashboard is the user's starting point; keep it current and useful.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# The Dashboard
|
|
7
|
-
|
|
8
|
-
The user's command center. Updated constantly. Shows what matters RIGHT NOW.
|
|
9
|
-
|
|
10
|
-
## Location
|
|
11
|
-
|
|
12
|
-
- **File:** `memory/dashboard.md` in the workspace
|
|
13
|
-
- If the workspace is a git repo, commit and push after every update so the user can view it from anywhere.
|
|
14
|
-
|
|
15
|
-
## Philosophy
|
|
16
|
-
|
|
17
|
-
**Dynamic, not rigid.** Include what's relevant today. Sections appear/disappear based on what matters.
|
|
18
|
-
|
|
19
|
-
**Curated, not comprehensive.** This is not a todo list dump. It is the user's "here's what you need to know right now."
|
|
20
|
-
|
|
21
|
-
**Work AND life.** Personal stuff belongs here too if it is on the user's mind.
|
|
22
|
-
|
|
23
|
-
## Sections (Use What's Relevant)
|
|
24
|
-
|
|
25
|
-
```markdown
|
|
26
|
-
# The Dashboard
|
|
27
|
-
**Updated:** [timestamp in the user's timezone]
|
|
28
|
-
|
|
29
|
-
## Right Now
|
|
30
|
-
[Most urgent/relevant thing: meeting in 30 min, decision needed, blocker resolved]
|
|
31
|
-
|
|
32
|
-
## Waiting On
|
|
33
|
-
[People who owe the user something: name, what, how long]
|
|
34
|
-
|
|
35
|
-
## Today
|
|
36
|
-
[What's on deck: meetings, tasks, deadlines]
|
|
37
|
-
|
|
38
|
-
## Hot Projects
|
|
39
|
-
[Active projects with one-liner status + next action]
|
|
40
|
-
|
|
41
|
-
## Notes
|
|
42
|
-
[Context, reminders, thoughts worth capturing]
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Not every section every day. Just what matters.
|
|
46
|
-
|
|
47
|
-
## When to Update
|
|
48
|
-
|
|
49
|
-
| Trigger | Action |
|
|
50
|
-
|---------|--------|
|
|
51
|
-
| Email sent | Add to "Waiting On" with timestamp |
|
|
52
|
-
| Reply received | Update or remove from "Waiting On" |
|
|
53
|
-
| Task completed | Remove from "Today" or note completion |
|
|
54
|
-
| Meeting coming up | Add to "Right Now" if within 1 hour |
|
|
55
|
-
| Status change | Update "Hot Projects" |
|
|
56
|
-
| New blocker | Add to "Right Now" or "Waiting On" |
|
|
57
|
-
| Something resolved | Remove or celebrate in "Notes" |
|
|
58
|
-
|
|
59
|
-
## Prioritization (What Goes in "Right Now")
|
|
60
|
-
|
|
61
|
-
1. **Time-sensitive**: meeting in < 1 hour, deadline today
|
|
62
|
-
2. **Blocking**: something the user needs to unblock others
|
|
63
|
-
3. **Waiting too long**: pending response > 3 days
|
|
64
|
-
4. **Big news**: reply that changes things, win worth noting
|
|
65
|
-
|
|
66
|
-
## Format Rules
|
|
67
|
-
|
|
68
|
-
- **Timestamps:** always in the user's timezone, 12-hour format (e.g., "1:45 PM")
|
|
69
|
-
- **People:** name + company/context (e.g., "Alex (vendor)")
|
|
70
|
-
- **Projects:** link to the project folder if one exists
|
|
71
|
-
- **Keep it scannable:** tables for lists, bullets for notes
|
|
72
|
-
|
|
73
|
-
## After Every Update
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
cd <workspace>
|
|
77
|
-
git add -A && git commit -m "Update dashboard" && git push
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
(If the workspace is not a git repo, skip the push.)
|
|
81
|
-
|
|
82
|
-
## Automated Monitoring
|
|
83
|
-
|
|
84
|
-
A scheduled job can check the user's inbox, compare against "Waiting On" and "Hot Projects", message the user if anything relevant, and stay silent if nothing important. Manual updates still happen after interactions.
|
|
85
|
-
|
|
86
|
-
## Calendar Integration
|
|
87
|
-
|
|
88
|
-
Pull from the calendar tool when relevant. Add meetings to "Today" with times in the user's timezone.
|
|
89
|
-
|
|
90
|
-
## Examples
|
|
91
|
-
|
|
92
|
-
**Busy day with meetings:**
|
|
93
|
-
```markdown
|
|
94
|
-
## Right Now
|
|
95
|
-
📅 Team meeting in 25 min (11:00 AM)
|
|
96
|
-
|
|
97
|
-
## Today
|
|
98
|
-
- 11:00 AM - Team meeting
|
|
99
|
-
- 12:00 PM - Vendor call
|
|
100
|
-
- 2:00 PM - Project check-in
|
|
101
|
-
|
|
102
|
-
## Waiting On
|
|
103
|
-
- Alex (vendor) - server config fix (sent 1:42 PM)
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**Quiet day, project focus:**
|
|
107
|
-
```markdown
|
|
108
|
-
## Right Now
|
|
109
|
-
Nothing urgent. Good day to ship.
|
|
110
|
-
|
|
111
|
-
## Hot Projects
|
|
112
|
-
- **Project A** - building the configurator (from this morning's meeting)
|
|
113
|
-
- **Project B** - blocked on a vendor fix
|
|
114
|
-
|
|
115
|
-
## Notes
|
|
116
|
-
The user should have their password synced by end of day.
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**Personal stuff mixed in:**
|
|
120
|
-
```markdown
|
|
121
|
-
## Today
|
|
122
|
-
- 10:00 AM - Dentist
|
|
123
|
-
- 2:00 PM - Demo with a client
|
|
124
|
-
- Pick up dry cleaning
|
|
125
|
-
|
|
126
|
-
## Waiting On
|
|
127
|
-
- Alex (vendor) - server fix
|
|
128
|
-
- Online order - package arriving today
|
|
129
|
-
```
|