@forwardimpact/outpost 3.0.3
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 +201 -0
- package/README.md +15 -0
- package/bin/fit-outpost.js +3 -0
- package/config/scheduler.json +34 -0
- package/package.json +63 -0
- package/src/agent-runner.js +189 -0
- package/src/index.js +5 -0
- package/src/kb-manager.js +228 -0
- package/src/outpost.js +417 -0
- package/src/scheduler.js +195 -0
- package/src/socket-server.js +336 -0
- package/src/state-manager.js +126 -0
- package/templates/.claude/agents/chief-of-staff.md +58 -0
- package/templates/.claude/agents/concierge.md +46 -0
- package/templates/.claude/agents/head-hunter.md +57 -0
- package/templates/.claude/agents/librarian.md +60 -0
- package/templates/.claude/agents/postman.md +47 -0
- package/templates/.claude/agents/recruiter.md +63 -0
- package/templates/.claude/settings.json +88 -0
- package/templates/.claude/skills/candidate-report/SKILL.md +139 -0
- package/templates/.claude/skills/candidate-report/references/report-template.html +203 -0
- package/templates/.claude/skills/candidate-report/references/report.css +438 -0
- package/templates/.claude/skills/candidate-report/references/rubric.md +76 -0
- package/templates/.claude/skills/candidate-report/scripts/render-pdf.mjs +48 -0
- package/templates/.claude/skills/deck-create/SKILL.md +75 -0
- package/templates/.claude/skills/deck-create/references/slide.css +35 -0
- package/templates/.claude/skills/deck-create/scripts/convert-to-pdf.mjs +47 -0
- package/templates/.claude/skills/deck-summarize/SKILL.md +139 -0
- package/templates/.claude/skills/deck-summarize/references/brief-template.md +85 -0
- package/templates/.claude/skills/deck-summarize/scripts/extract-pptx.mjs +210 -0
- package/templates/.claude/skills/doc-collab/SKILL.md +112 -0
- package/templates/.claude/skills/doc-create/SKILL.md +105 -0
- package/templates/.claude/skills/doc-create/scripts/convert-to-pdf.mjs +50 -0
- package/templates/.claude/skills/draft-emails/SKILL.md +141 -0
- package/templates/.claude/skills/draft-emails/references/template.md +26 -0
- package/templates/.claude/skills/draft-emails/scripts/scan-emails.mjs +66 -0
- package/templates/.claude/skills/draft-emails/scripts/send-email.mjs +139 -0
- package/templates/.claude/skills/extract-entities/SKILL.md +187 -0
- package/templates/.claude/skills/extract-entities/references/TEMPLATES.md +14 -0
- package/templates/.claude/skills/extract-entities/references/conditions.md +55 -0
- package/templates/.claude/skills/extract-entities/references/content.md +104 -0
- package/templates/.claude/skills/extract-entities/references/links.md +48 -0
- package/templates/.claude/skills/extract-entities/references/recruitment.md +57 -0
- package/templates/.claude/skills/extract-entities/references/resolution.md +71 -0
- package/templates/.claude/skills/extract-entities/references/sources.md +70 -0
- package/templates/.claude/skills/extract-entities/references/templates-conditions.md +36 -0
- package/templates/.claude/skills/extract-entities/references/templates-goals-priorities.md +63 -0
- package/templates/.claude/skills/extract-entities/references/templates-people-orgs.md +67 -0
- package/templates/.claude/skills/extract-entities/references/templates-projects-topics.md +68 -0
- package/templates/.claude/skills/extract-entities/scripts/state.mjs +131 -0
- package/templates/.claude/skills/hyprnote-follow/SKILL.md +174 -0
- package/templates/.claude/skills/hyprnote-follow/references/coaching.md +118 -0
- package/templates/.claude/skills/hyprnote-follow/references/debrief.md +59 -0
- package/templates/.claude/skills/hyprnote-follow/references/meeting-types.md +14 -0
- package/templates/.claude/skills/hyprnote-follow/scripts/follow.mjs +243 -0
- package/templates/.claude/skills/hyprnote-process/SKILL.md +147 -0
- package/templates/.claude/skills/hyprnote-process/references/extraction.md +84 -0
- package/templates/.claude/skills/hyprnote-process/references/sessions.md +81 -0
- package/templates/.claude/skills/hyprnote-process/scripts/scan.mjs +246 -0
- package/templates/.claude/skills/hyprnote-trim/SKILL.md +177 -0
- package/templates/.claude/skills/manage-tasks/SKILL.md +152 -0
- package/templates/.claude/skills/manage-tasks/references/format.md +73 -0
- package/templates/.claude/skills/meeting-prep/SKILL.md +180 -0
- package/templates/.claude/skills/organize-files/SKILL.md +146 -0
- package/templates/.claude/skills/organize-files/scripts/organize-by-type.mjs +105 -0
- package/templates/.claude/skills/organize-files/scripts/summarize.mjs +91 -0
- package/templates/.claude/skills/req-assess/SKILL.md +137 -0
- package/templates/.claude/skills/req-assess/references/interview-template.md +62 -0
- package/templates/.claude/skills/req-assess/references/panel-template.md +117 -0
- package/templates/.claude/skills/req-assess/references/rubric.md +65 -0
- package/templates/.claude/skills/req-decide/SKILL.md +163 -0
- package/templates/.claude/skills/req-decide/references/rubric.md +63 -0
- package/templates/.claude/skills/req-decide/references/template.md +118 -0
- package/templates/.claude/skills/req-forget/SKILL.md +154 -0
- package/templates/.claude/skills/req-forget/references/classify.md +23 -0
- package/templates/.claude/skills/req-forget/references/locations.md +59 -0
- package/templates/.claude/skills/req-forget/references/report-template.md +67 -0
- package/templates/.claude/skills/req-scan/SKILL.md +145 -0
- package/templates/.claude/skills/req-scan/references/fallbacks.md +76 -0
- package/templates/.claude/skills/req-scan/references/filters.md +83 -0
- package/templates/.claude/skills/req-scan/references/sources.md +76 -0
- package/templates/.claude/skills/req-scan/references/state.md +54 -0
- package/templates/.claude/skills/req-scan/references/template.md +36 -0
- package/templates/.claude/skills/req-scan/scripts/state.mjs +396 -0
- package/templates/.claude/skills/req-screen/SKILL.md +151 -0
- package/templates/.claude/skills/req-screen/references/rubric.md +94 -0
- package/templates/.claude/skills/req-screen/references/template.md +91 -0
- package/templates/.claude/skills/req-track/SKILL.md +189 -0
- package/templates/.claude/skills/req-track/references/fields.md +114 -0
- package/templates/.claude/skills/req-track/references/signals.md +42 -0
- package/templates/.claude/skills/req-track/references/statuses.md +32 -0
- package/templates/.claude/skills/req-track/references/templates.md +127 -0
- package/templates/.claude/skills/req-workday/SKILL.md +162 -0
- package/templates/.claude/skills/req-workday/references/field-mapping.md +40 -0
- package/templates/.claude/skills/req-workday/references/status-mapping.md +38 -0
- package/templates/.claude/skills/req-workday/references/templates.md +126 -0
- package/templates/.claude/skills/req-workday/references/xlsx-format.md +56 -0
- package/templates/.claude/skills/req-workday/scripts/parse-workday.mjs +313 -0
- package/templates/.claude/skills/send-chat/SKILL.md +170 -0
- package/templates/.claude/skills/sync-apple-calendar/SKILL.md +145 -0
- package/templates/.claude/skills/sync-apple-calendar/references/SCHEMA.md +80 -0
- package/templates/.claude/skills/sync-apple-calendar/scripts/query.mjs +307 -0
- package/templates/.claude/skills/sync-apple-calendar/scripts/sync.mjs +332 -0
- package/templates/.claude/skills/sync-apple-mail/SKILL.md +151 -0
- package/templates/.claude/skills/sync-apple-mail/references/SCHEMA.md +115 -0
- package/templates/.claude/skills/sync-apple-mail/scripts/parse-emlx.mjs +389 -0
- package/templates/.claude/skills/sync-apple-mail/scripts/sync-helpers.mjs +372 -0
- package/templates/.claude/skills/sync-apple-mail/scripts/sync.mjs +239 -0
- package/templates/.claude/skills/sync-teams/SKILL.md +177 -0
- package/templates/.claude/skills/sync-teams/scripts/idb-reader.mjs +147 -0
- package/templates/.claude/skills/sync-teams/scripts/leveldb-reader.mjs +288 -0
- package/templates/.claude/skills/sync-teams/scripts/sync.mjs +381 -0
- package/templates/.claude/skills/upstream-skill/SKILL.md +130 -0
- package/templates/.claude/skills/upstream-skill/references/examples.md +80 -0
- package/templates/.claude/skills/weekly-update/SKILL.md +141 -0
- package/templates/.claude/skills/weekly-update/references/template.md +55 -0
- package/templates/CLAUDE.md +134 -0
- package/templates/USER.md +3 -0
- package/templates/apm.yml +5 -0
- package/templates/knowledge/Briefings/.gitkeep +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: weekly-update
|
|
3
|
+
description: Generate or refresh a weekly priorities document. Pulls from task boards, recent activity, and calendar to create a point-in-time snapshot. Use when the user asks to update their weekly, prep for the week, or on a Monday morning schedule.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Weekly Update
|
|
7
|
+
|
|
8
|
+
Generate or refresh a weekly priorities document in
|
|
9
|
+
`knowledge/Weeklies/{Person Name}/`. Each weekly is a point-in-time snapshot —
|
|
10
|
+
created at the start of the week, updated as priorities shift, and closed out
|
|
11
|
+
with a retrospective at end-of-week.
|
|
12
|
+
|
|
13
|
+
## Trigger
|
|
14
|
+
|
|
15
|
+
- The user asks to update their weekly or prep for the week.
|
|
16
|
+
- Monday mornings (scheduled).
|
|
17
|
+
- The user asks to review someone's weekly.
|
|
18
|
+
- End-of-week to fill in accomplishments and retrospective.
|
|
19
|
+
|
|
20
|
+
## Prerequisites
|
|
21
|
+
|
|
22
|
+
- `knowledge/Weeklies/` exists.
|
|
23
|
+
- `knowledge/Tasks/{Person Name}.md` exists (see `manage-tasks`).
|
|
24
|
+
- Calendar data in `~/.cache/fit/outpost/apple_calendar/`.
|
|
25
|
+
- User identity configured in `USER.md`.
|
|
26
|
+
|
|
27
|
+
## Inputs
|
|
28
|
+
|
|
29
|
+
- `knowledge/Tasks/{Person Name}.md` — current task board.
|
|
30
|
+
- `knowledge/People/{Person Name}.md` — recent activity, context.
|
|
31
|
+
- `knowledge/Goals/*.md` — active goals (for linking priorities).
|
|
32
|
+
- `knowledge/Priorities/*.md` — strategic pillars (for the focus statement).
|
|
33
|
+
- `~/.cache/fit/outpost/apple_calendar/*.json` — week's events.
|
|
34
|
+
- Previous weekly (if any) — continuity and carry-forward.
|
|
35
|
+
|
|
36
|
+
## Outputs
|
|
37
|
+
|
|
38
|
+
- `knowledge/Weeklies/{Person Name}/{YYYY}-W{WW}.md`.
|
|
39
|
+
|
|
40
|
+
<do_confirm_checklist goal="Verify the weekly snapshot is accurate before
|
|
41
|
+
saving">
|
|
42
|
+
|
|
43
|
+
- [ ] ISO week number and date range are correct.
|
|
44
|
+
- [ ] Focus statement reflects the actual week (not generic).
|
|
45
|
+
- [ ] Priorities pulled from the task board (not invented), capped at 5–7.
|
|
46
|
+
- [ ] Key meetings pulled from calendar; attendees resolved to `[[People/Name]]`
|
|
47
|
+
where known.
|
|
48
|
+
- [ ] Blockers match the task board's `## Blocked` section.
|
|
49
|
+
- [ ] Carry-forward items from the previous week are included.
|
|
50
|
+
- [ ] All backlinks use absolute paths.
|
|
51
|
+
- [ ] Retrospective is filled only at end-of-week.
|
|
52
|
+
|
|
53
|
+
</do_confirm_checklist>
|
|
54
|
+
|
|
55
|
+
Document layout, conventions, and date helpers:
|
|
56
|
+
[references/template.md](references/template.md).
|
|
57
|
+
|
|
58
|
+
## Procedure
|
|
59
|
+
|
|
60
|
+
### 1. Pick the target
|
|
61
|
+
|
|
62
|
+
Read `USER.md` for identity. Default the target to the current user; otherwise,
|
|
63
|
+
the person the user named. Compute the current ISO week and the Monday–Friday
|
|
64
|
+
range — see the date helpers in
|
|
65
|
+
[references/template.md](references/template.md#date-helpers-macos).
|
|
66
|
+
|
|
67
|
+
Check whether a weekly exists for this week:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ls "knowledge/Weeklies/{Person Name}/" 2>/dev/null
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
- **No file:** new (start-of-week).
|
|
74
|
+
- **File present:** update (mid-week or end-of-week).
|
|
75
|
+
|
|
76
|
+
### 2. Gather context
|
|
77
|
+
|
|
78
|
+
**Task board:**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
cat "knowledge/Tasks/{Person Name}.md"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
- `## In Progress` → top priorities.
|
|
85
|
+
- `## Open` with `high` priority or near due dates → candidate priorities.
|
|
86
|
+
- `## Blocked` → blockers section.
|
|
87
|
+
- `## Recently Done` items completed this week → accomplishments.
|
|
88
|
+
|
|
89
|
+
**Recent activity:** `cat "knowledge/People/{Person Name}.md"` — `## Activity`
|
|
90
|
+
for this week's entries.
|
|
91
|
+
|
|
92
|
+
**Calendar:** read events in the Mon–Fri range. Capture title, attendees
|
|
93
|
+
(resolve to `[[People/Name]]`), day, and agenda. Filter out all-day
|
|
94
|
+
placeholders, declined, and cancelled events.
|
|
95
|
+
|
|
96
|
+
**Previous weekly:** `ls "knowledge/Weeklies/{Person Name}/" | sort | tail -1`.
|
|
97
|
+
Carry forward any unchecked priorities and ongoing themes.
|
|
98
|
+
|
|
99
|
+
### 3. Generate or update
|
|
100
|
+
|
|
101
|
+
#### New weekly (start of week)
|
|
102
|
+
|
|
103
|
+
1. **Focus:** synthesize from highest-priority tasks and key meetings — one
|
|
104
|
+
sentence.
|
|
105
|
+
2. **Priorities:** in-progress first, then `high` open, then near-due, then
|
|
106
|
+
carry-forward. Cap at 5–7.
|
|
107
|
+
3. **Key Meetings:** `**{Day}**: {title} with [[People/Name]] — {purpose}`.
|
|
108
|
+
4. **Blockers:** from the board, naming who is needed.
|
|
109
|
+
5. **Accomplishments / Retrospective:** leave empty (or pre-fill anything
|
|
110
|
+
completed Monday morning).
|
|
111
|
+
|
|
112
|
+
#### Mid-week update
|
|
113
|
+
|
|
114
|
+
Re-read the board for changes. Mark completed `[x]`. Append new priorities.
|
|
115
|
+
Update blockers. Add accomplishments as they happen. Do **not** touch the
|
|
116
|
+
retrospective.
|
|
117
|
+
|
|
118
|
+
#### End-of-week update
|
|
119
|
+
|
|
120
|
+
Mark all completed priorities `[x]`. Fill accomplishments from the full week.
|
|
121
|
+
Write a brief retrospective: went well / didn't go as planned / carry forward.
|
|
122
|
+
Note unchecked priorities — they carry to next week.
|
|
123
|
+
|
|
124
|
+
### 4. Write
|
|
125
|
+
|
|
126
|
+
For a new file, ensure the directory exists:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
mkdir -p "knowledge/Weeklies/{Person Name}"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Use the template in [references/template.md](references/template.md). Save to
|
|
133
|
+
`knowledge/Weeklies/{Person Name}/{YYYY}-W{WW}.md`.
|
|
134
|
+
|
|
135
|
+
For an existing file, use Edit for targeted updates; do not rewrite.
|
|
136
|
+
|
|
137
|
+
### 5. Cross-reference
|
|
138
|
+
|
|
139
|
+
If new priorities aren't on the task board, add them to the board (the board is
|
|
140
|
+
canonical, the weekly references it). If blockers were resolved, update the
|
|
141
|
+
board accordingly.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Weekly Document Template
|
|
2
|
+
|
|
3
|
+
Reference template for `weekly-update`. Each weekly is a point-in-time snapshot
|
|
4
|
+
stored at `knowledge/Weeklies/{Person Name}/{YYYY}-W{WW}.md`.
|
|
5
|
+
|
|
6
|
+
```markdown
|
|
7
|
+
# {YYYY}-W{WW} — {Person Name}
|
|
8
|
+
|
|
9
|
+
> {Focus statement: one sentence summarizing the week's theme}
|
|
10
|
+
|
|
11
|
+
## Priorities
|
|
12
|
+
|
|
13
|
+
- [ ] Priority one — [[Projects/Name]] → [[Goals/Goal Name]]
|
|
14
|
+
- [ ] Priority two
|
|
15
|
+
- [x] Completed priority
|
|
16
|
+
|
|
17
|
+
## Key Meetings
|
|
18
|
+
|
|
19
|
+
- **Monday**: Meeting title with [[People/Name]] — purpose
|
|
20
|
+
- **Wednesday**: Meeting title — purpose
|
|
21
|
+
|
|
22
|
+
## Blockers
|
|
23
|
+
|
|
24
|
+
- Waiting on X from [[People/Name]]
|
|
25
|
+
|
|
26
|
+
## Accomplishments
|
|
27
|
+
|
|
28
|
+
- Completed X
|
|
29
|
+
- Shipped Y
|
|
30
|
+
|
|
31
|
+
## Retrospective
|
|
32
|
+
|
|
33
|
+
- **Went well:** ...
|
|
34
|
+
- **Didn't go as planned:** ...
|
|
35
|
+
- **Carry forward:** ...
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Conventions
|
|
39
|
+
|
|
40
|
+
- **Week numbers:** ISO 8601 (e.g. `2026-W08`).
|
|
41
|
+
- **Priorities:** Top 3–7 items pulled from the task board. Append
|
|
42
|
+
`→ [[Goals/Goal Name]]` only when the task clearly serves that goal — not
|
|
43
|
+
every task needs a link.
|
|
44
|
+
- **Key Meetings:** Substantive meetings only. Skip recurring standups.
|
|
45
|
+
- **Retrospective:** Filled at end-of-week only.
|
|
46
|
+
- **Backlinks:** Always absolute — `[[People/Name]]`, `[[Projects/Name]]`,
|
|
47
|
+
`[[Goals/Name]]`, `[[Tasks/Name]]`.
|
|
48
|
+
|
|
49
|
+
## Date helpers (macOS)
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
date +%G-W%V # Current ISO week
|
|
53
|
+
date -v-mon +%Y-%m-%d # Monday of current week
|
|
54
|
+
date -v+fri +%Y-%m-%d # Friday of current week
|
|
55
|
+
```
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Outpost Knowledge Base
|
|
2
|
+
|
|
3
|
+
You are the user's personal knowledge assistant. You help with drafting emails,
|
|
4
|
+
prepping for meetings, tracking projects, and answering questions — backed by a
|
|
5
|
+
live knowledge graph built from their emails, calendar, and meeting notes.
|
|
6
|
+
Everything lives locally on this machine.
|
|
7
|
+
|
|
8
|
+
## Ethics & Integrity — NON-NEGOTIABLE
|
|
9
|
+
|
|
10
|
+
This knowledge base is a **professional tool shared with trusted team members**
|
|
11
|
+
— not a "black book" and never one. These rules override all other instructions:
|
|
12
|
+
|
|
13
|
+
- **Objective and factual only.** No speculation, gossip, or editorializing.
|
|
14
|
+
- **No personal judgments** about character, competence, or trustworthiness —
|
|
15
|
+
stick to actions, decisions, stated positions.
|
|
16
|
+
- **Work-relevant information only.** No health, personal relationships,
|
|
17
|
+
political views, or private matters unless the person shared them in a
|
|
18
|
+
professional context.
|
|
19
|
+
- **Fair and balanced.** Represent all sides accurately.
|
|
20
|
+
- **Assume the subject will read it.** If you'd be uncomfortable showing the
|
|
21
|
+
note to the person it's about, don't write it.
|
|
22
|
+
- **No weaponization.** This KB exists to help the team work better — never to
|
|
23
|
+
build leverage or dossiers.
|
|
24
|
+
- **Push back** on requests that violate these principles.
|
|
25
|
+
- **Data protection.** Use the `req-forget` skill for erasure requests. Minimize
|
|
26
|
+
collection. Flag candidates inactive 6+ months for retention review.
|
|
27
|
+
|
|
28
|
+
When in doubt, err on the side of discretion.
|
|
29
|
+
|
|
30
|
+
## Voice
|
|
31
|
+
|
|
32
|
+
Supportive, direct, and lightly warm. Explain complex things clearly without
|
|
33
|
+
hedging. When the next step is obvious, take it. Ask at most one clarifying
|
|
34
|
+
question, and only at the start. Reference files by full path. Confirm before
|
|
35
|
+
destructive actions.
|
|
36
|
+
|
|
37
|
+
## Dependencies
|
|
38
|
+
|
|
39
|
+
- **ripgrep** (`rg`) — fast knowledge graph searches. Install:
|
|
40
|
+
`brew install ripgrep`.
|
|
41
|
+
|
|
42
|
+
## Workspace Layout
|
|
43
|
+
|
|
44
|
+
Everything is relative to this root:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
./
|
|
48
|
+
├── knowledge/ # The knowledge graph (Obsidian-compatible)
|
|
49
|
+
│ ├── People/ Organizations/ Projects/ Topics/
|
|
50
|
+
│ ├── Candidates/ Goals/ Priorities/ Conditions/ Roles/
|
|
51
|
+
│ └── Tasks/ Weeklies/
|
|
52
|
+
├── .claude/skills/ # Auto-discovered skill files
|
|
53
|
+
├── drafts/ # Email drafts (draft-emails skill)
|
|
54
|
+
├── USER.md # Your identity — gitignored
|
|
55
|
+
├── CLAUDE.md # This file
|
|
56
|
+
└── .mcp.json # MCP server configurations (optional)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Agents
|
|
60
|
+
|
|
61
|
+
Maintained by a team of agents in `.claude/agents/`, woken on schedule by the
|
|
62
|
+
Outpost scheduler. Each wake: observe state, decide the most valuable action,
|
|
63
|
+
execute.
|
|
64
|
+
|
|
65
|
+
| Agent | Domain | Schedule | Skills |
|
|
66
|
+
| ------------------ | ------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |
|
|
67
|
+
| **postman** | Communication triage and drafts | Every 5 min | sync-apple-mail, sync-teams, draft-emails |
|
|
68
|
+
| **concierge** | Meeting prep and transcripts | Every 10 min | sync-apple-calendar, meeting-prep, hyprnote-process |
|
|
69
|
+
| **librarian** | Knowledge graph maintenance | Every 15 min | extract-entities, organize-files, manage-tasks |
|
|
70
|
+
| **recruiter** | Engineering recruitment | Every 30 min | req-track, req-screen, req-assess, req-decide, req-workday, req-forget, fit-pathway, fit-map |
|
|
71
|
+
| **head-hunter** | Passive talent scouting | Every 60 min | req-scan, fit-pathway, fit-map |
|
|
72
|
+
| **chief-of-staff** | Daily briefings and priorities | 7am, Mon 7:30am | weekly-update _(Mon)_, _(reads all state for daily briefings)_ |
|
|
73
|
+
|
|
74
|
+
Each agent writes `~/.cache/fit/outpost/state/{agent}_triage.md` per wake. The
|
|
75
|
+
**chief-of-staff** reads all five triage files to synthesize daily briefings in
|
|
76
|
+
`knowledge/Briefings/`.
|
|
77
|
+
|
|
78
|
+
## Cache Directory (`~/.cache/fit/outpost/`)
|
|
79
|
+
|
|
80
|
+
Synced data and runtime state live outside the KB to keep it clean — only parsed
|
|
81
|
+
knowledge, notes, and drafts live here. Top-level subdirs:
|
|
82
|
+
|
|
83
|
+
- `apple_mail/` — Mail threads as `.md` (plus `attachments/`)
|
|
84
|
+
- `apple_calendar/` — Calendar events as `.json`
|
|
85
|
+
- `teams_chat/` — Teams 1:1 chats as `.md`
|
|
86
|
+
- `head-hunter/` — head-hunter agent memory (cursor, failures, seen, prospects,
|
|
87
|
+
log)
|
|
88
|
+
- `state/` — runtime state: per-source last-sync timestamps, processed-file
|
|
89
|
+
index, and `{agent}_triage.md` per agent
|
|
90
|
+
|
|
91
|
+
## Knowledge Graph
|
|
92
|
+
|
|
93
|
+
Plain markdown with Obsidian-style `[[backlinks]]`.
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
ls knowledge/People/ # List entities
|
|
97
|
+
rg "Sarah Chen" knowledge/ # Search by name
|
|
98
|
+
cat "knowledge/People/Sarah Chen.md" # Read a note
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Always search broadly first.** When the user mentions any person,
|
|
102
|
+
organization, project, or topic, run `rg "keyword" knowledge/` to surface every
|
|
103
|
+
mentioning note before responding — a single note is never the full story.
|
|
104
|
+
Access the graph for any task involving named entities, specific people,
|
|
105
|
+
projects, past context, meetings, emails, or calendar data. Skip for general
|
|
106
|
+
knowledge questions, brainstorming, or unrelated tasks.
|
|
107
|
+
|
|
108
|
+
Use the graph context to personalize responses.
|
|
109
|
+
|
|
110
|
+
## Synced Sources
|
|
111
|
+
|
|
112
|
+
For upcoming meetings, recent emails, or messages, read directly from:
|
|
113
|
+
|
|
114
|
+
- `~/.cache/fit/outpost/apple_mail/`
|
|
115
|
+
- `~/.cache/fit/outpost/apple_calendar/`
|
|
116
|
+
- `~/.cache/fit/outpost/teams_chat/`
|
|
117
|
+
|
|
118
|
+
## Skills
|
|
119
|
+
|
|
120
|
+
Skills auto-discover from `.claude/skills/` and load by context. They cluster
|
|
121
|
+
around three functions: data sync (Apple Mail/Calendar, Teams), knowledge-graph
|
|
122
|
+
maintenance (extract-entities, manage-tasks, recruitment pipeline), and
|
|
123
|
+
communication (draft-emails, send-chat, meeting-prep, document and deck
|
|
124
|
+
generation).
|
|
125
|
+
|
|
126
|
+
## User Identity
|
|
127
|
+
|
|
128
|
+
@import USER.md
|
|
129
|
+
|
|
130
|
+
## Working Outside This Directory
|
|
131
|
+
|
|
132
|
+
You have full filesystem access (macOS). For tasks outside this knowledge base
|
|
133
|
+
(organizing Desktop, finding files in Downloads, etc.), use shell commands
|
|
134
|
+
directly.
|
|
File without changes
|