@forwardimpact/outpost 3.3.4 → 3.4.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/LICENSE +21 -201
- package/config/skill-postures.json +28 -0
- package/package.json +1 -1
- package/src/agent-runner.js +52 -1
- package/src/kb-manager.js +5 -7
- package/src/outpost.js +42 -0
- package/src/posture.js +77 -0
- package/src/socket-server.js +1 -5
- package/templates/.claude/agents/chief-of-staff.md +24 -9
- package/templates/.claude/agents/concierge.md +14 -0
- package/templates/.claude/agents/head-hunter.md +14 -0
- package/templates/.claude/agents/librarian.md +19 -7
- package/templates/.claude/agents/postman.md +14 -0
- package/templates/.claude/agents/recruiter.md +21 -12
- package/templates/.claude/skills/anarlog-follow/SKILL.md +7 -7
- package/templates/.claude/skills/anarlog-process/SKILL.md +15 -16
- package/templates/.claude/skills/anarlog-process/references/extraction.md +5 -5
- package/templates/.claude/skills/candidate-report/SKILL.md +9 -9
- package/templates/.claude/skills/deck-create/SKILL.md +2 -2
- package/templates/.claude/skills/deck-summarize/SKILL.md +2 -2
- package/templates/.claude/skills/deck-summarize/references/brief-template.md +1 -1
- package/templates/.claude/skills/doc-collab/SKILL.md +8 -8
- package/templates/.claude/skills/doc-create/SKILL.md +3 -3
- package/templates/.claude/skills/draft-emails/SKILL.md +19 -19
- package/templates/.claude/skills/draft-emails/references/template.md +1 -1
- package/templates/.claude/skills/draft-emails/scripts/scan-emails.mjs +4 -4
- package/templates/.claude/skills/draft-emails/scripts/send-email.mjs +2 -2
- package/templates/.claude/skills/extract-entities/SKILL.md +16 -17
- package/templates/.claude/skills/extract-entities/references/TEMPLATES.md +2 -2
- package/templates/.claude/skills/extract-entities/references/conditions.md +4 -4
- package/templates/.claude/skills/extract-entities/references/links.md +3 -18
- package/templates/.claude/skills/extract-entities/references/recruitment.md +8 -8
- package/templates/.claude/skills/extract-entities/references/resolution.md +3 -5
- package/templates/.claude/skills/extract-entities/references/sources.md +1 -1
- package/templates/.claude/skills/extract-entities/references/templates-conditions.md +2 -2
- package/templates/.claude/skills/extract-entities/references/templates-priorities.md +32 -0
- package/templates/.claude/skills/extract-entities/references/templates-projects-topics.md +2 -2
- package/templates/.claude/skills/meeting-prep/SKILL.md +18 -19
- package/templates/.claude/skills/req-assess/SKILL.md +11 -11
- package/templates/.claude/skills/req-assess/references/interview-template.md +1 -1
- package/templates/.claude/skills/req-assess/references/panel-template.md +1 -1
- package/templates/.claude/skills/req-decide/SKILL.md +17 -17
- package/templates/.claude/skills/req-decide/references/template.md +1 -1
- package/templates/.claude/skills/req-forget/SKILL.md +8 -8
- package/templates/.claude/skills/req-forget/references/classify.md +4 -4
- package/templates/.claude/skills/req-forget/references/locations.md +10 -10
- package/templates/.claude/skills/req-forget/references/report-template.md +8 -8
- package/templates/.claude/skills/req-scan/SKILL.md +3 -3
- package/templates/.claude/skills/req-scan/references/template.md +1 -1
- package/templates/.claude/skills/req-screen/SKILL.md +9 -9
- package/templates/.claude/skills/req-screen/references/template.md +1 -1
- package/templates/.claude/skills/req-track/SKILL.md +17 -17
- package/templates/.claude/skills/req-track/references/fields.md +8 -8
- package/templates/.claude/skills/req-track/references/signals.md +2 -2
- package/templates/.claude/skills/req-track/references/templates.md +1 -1
- package/templates/.claude/skills/req-workday/SKILL.md +12 -12
- package/templates/.claude/skills/req-workday/references/templates.md +3 -3
- package/templates/.claude/skills/send-chat/SKILL.md +4 -4
- package/templates/.claude/skills/upstream-instructions/SKILL.md +154 -0
- package/templates/.claude/skills/upstream-instructions/references/examples.md +97 -0
- package/templates/CLAUDE.md +47 -53
- package/templates/.claude/skills/extract-entities/references/templates-goals-priorities.md +0 -63
- package/templates/.claude/skills/upstream-skill/SKILL.md +0 -130
- package/templates/.claude/skills/upstream-skill/references/examples.md +0 -80
- package/templates/knowledge/Briefings/.gitkeep +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Changelog Examples
|
|
2
|
+
|
|
3
|
+
Reference output for `upstream-instructions` Step 5. There is **one** root
|
|
4
|
+
`CHANGELOG.md` with reverse-chronological entries. Each entry's **Scope** names
|
|
5
|
+
the surface(s) it touched — `CLAUDE.md`, `agent:<name>`, `skill:<name>` — and a
|
|
6
|
+
single entry may span several.
|
|
7
|
+
|
|
8
|
+
## Cross-surface change (one change, many files)
|
|
9
|
+
|
|
10
|
+
```markdown
|
|
11
|
+
## 2026-06-18
|
|
12
|
+
|
|
13
|
+
**Scope:** KB structure; CLAUDE.md; agents: librarian, chief-of-staff, recruiter; skills: extract-entities, anarlog-process, meeting-prep, req-decide
|
|
14
|
+
**Type:** removed
|
|
15
|
+
|
|
16
|
+
**What:** Dropped the Goals entity type; Priorities is now the only user-set
|
|
17
|
+
strategic layer.
|
|
18
|
+
|
|
19
|
+
**Why:** One strategic layer is simpler than two — time-bound targets fold into
|
|
20
|
+
Priorities, removing the Project↔Goal↔Priority coupling that earned nothing.
|
|
21
|
+
|
|
22
|
+
**Details:**
|
|
23
|
+
- Deleted `Knowledge/Goals/`; repointed live backlinks to `Priorities/C - Onboarding`.
|
|
24
|
+
- CLAUDE.md workspace-layout tree no longer lists `Goals/`.
|
|
25
|
+
- Agents: dropped Goals from the librarian index/triage, chief-of-staff state
|
|
26
|
+
sources, and recruiter strategic links.
|
|
27
|
+
- extract-entities: removed Goals from resolution/index; renamed
|
|
28
|
+
`templates-goals-priorities.md` → `templates-priorities.md`; deleted Goal link
|
|
29
|
+
rules. anarlog-process / meeting-prep / req-decide: dropped Goals inputs.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Modified skill
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
## 2026-03-01
|
|
38
|
+
|
|
39
|
+
**Scope:** skill: req-track
|
|
40
|
+
**Type:** modified
|
|
41
|
+
|
|
42
|
+
**What:** Added gender field extraction for diversity tracking.
|
|
43
|
+
|
|
44
|
+
**Why:** The recruitment pipeline lacked diversity metrics — pool composition was
|
|
45
|
+
invisible without structured gender data.
|
|
46
|
+
|
|
47
|
+
**Details:**
|
|
48
|
+
- Added a Gender field to the candidate brief template (Woman / Man / —).
|
|
49
|
+
- Added extraction rules (pronouns, gendered titles) and a note that the field
|
|
50
|
+
has no bearing on hiring decisions.
|
|
51
|
+
- Updated the quality checklist to verify the field.
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Modified agent
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
## 2026-06-19
|
|
60
|
+
|
|
61
|
+
**Scope:** agents: all six profiles
|
|
62
|
+
**Type:** modified
|
|
63
|
+
|
|
64
|
+
**What:** Agents now read `Knowledge/Priorities/` at the start of every wake and
|
|
65
|
+
flag anything that threatens a priority.
|
|
66
|
+
|
|
67
|
+
**Why:** Sync, triage, and drafting were ignoring strategic context; signals that
|
|
68
|
+
could block a priority passed silently.
|
|
69
|
+
|
|
70
|
+
**Details:**
|
|
71
|
+
- Added a uniform `## Priorities` section and a `Priority Watch` output line to
|
|
72
|
+
the five worker agents.
|
|
73
|
+
- The chief-of-staff consolidates each agent's `Priority Watch` flags into a
|
|
74
|
+
dedicated section of the daily briefing.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## New skill
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## 2026-03-01
|
|
83
|
+
|
|
84
|
+
**Scope:** skill: anarlog-process
|
|
85
|
+
**Type:** added
|
|
86
|
+
|
|
87
|
+
**What:** New skill for processing Anarlog meeting recordings.
|
|
88
|
+
|
|
89
|
+
**Why:** Meeting notes were being lost — Anarlog captures transcriptions but they
|
|
90
|
+
weren't integrated into the knowledge base.
|
|
91
|
+
|
|
92
|
+
**Details:**
|
|
93
|
+
- Reads transcription files, extracts people/decisions/action items, and links
|
|
94
|
+
attendees to `Knowledge/People/`.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
```
|
package/templates/CLAUDE.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
You are the user's personal knowledge assistant. You help draft emails, prep for
|
|
4
4
|
meetings, track projects, and answer questions, backed by a live knowledge graph
|
|
5
|
-
built from their emails, calendar, and meeting notes, all stored
|
|
5
|
+
built from their emails, calendar, and meeting notes, all stored as plain files on
|
|
6
|
+
the user's machine.
|
|
6
7
|
|
|
7
8
|
## Ethics & Integrity — NON-NEGOTIABLE
|
|
8
9
|
|
|
@@ -27,26 +28,31 @@ When in doubt, err toward discretion.
|
|
|
27
28
|
|
|
28
29
|
## Voice
|
|
29
30
|
|
|
30
|
-
Be supportive
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
destructive actions.
|
|
31
|
+
Be supportive and direct. Explain complex things clearly without hedging. When
|
|
32
|
+
the next step is obvious, take it. Ask at most one clarifying question, at the
|
|
33
|
+
start. Reference files by full path. Confirm before destructive actions.
|
|
34
34
|
|
|
35
35
|
## Dependencies
|
|
36
36
|
|
|
37
37
|
- **ripgrep** (`rg`) for fast knowledge graph searches — `brew install ripgrep`.
|
|
38
38
|
|
|
39
|
-
## Workspace Layout
|
|
39
|
+
## Workspace Layout & Sharing
|
|
40
|
+
|
|
41
|
+
The **root is personal and local — never shared.** Only `Knowledge/` is shared
|
|
42
|
+
with the team over a synced filesystem; each member keeps their own root,
|
|
43
|
+
`Drafts/`, and `Briefings/`. KBs are **not** Git repositories — they sync as
|
|
44
|
+
plain files. `CLAUDE.md` and `.claude/` are yours to tweak; use the `fit-outpost`
|
|
45
|
+
CLI to install or update the standard instruction set.
|
|
40
46
|
|
|
41
47
|
```
|
|
42
|
-
./
|
|
43
|
-
├──
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
├──
|
|
48
|
-
├──
|
|
49
|
-
└── .mcp.json
|
|
48
|
+
./ # Personal root — never shared
|
|
49
|
+
├── CLAUDE.md # This file
|
|
50
|
+
├── .claude/ # Agent profiles + auto-discovered skills
|
|
51
|
+
├── Knowledge/ # Knowledge graph — SHARED (Obsidian-compatible)
|
|
52
|
+
│ └── People/ Organizations/ Projects/ Topics/ Candidates/ Priorities/ Conditions/ Roles/
|
|
53
|
+
├── Drafts/ # Email/chat drafts (personal)
|
|
54
|
+
├── Briefings/ # Daily briefings (personal)
|
|
55
|
+
└── .mcp.json # MCP config (optional)
|
|
50
56
|
```
|
|
51
57
|
|
|
52
58
|
## Agents
|
|
@@ -54,29 +60,29 @@ destructive actions.
|
|
|
54
60
|
Agents in `.claude/agents/` maintain this KB, woken on a schedule by the Outpost
|
|
55
61
|
scheduler. Each wake: observe state, decide the most valuable action, execute.
|
|
56
62
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
| **
|
|
62
|
-
| **
|
|
63
|
-
| **
|
|
64
|
-
| **
|
|
63
|
+
Each agent's skills are declared in its own profile under `.claude/agents/`.
|
|
64
|
+
|
|
65
|
+
| Agent | Domain | Schedule |
|
|
66
|
+
| ------------------ | ------------------------------- | --------------- |
|
|
67
|
+
| **postman** | Communication triage and drafts | Every 5 min |
|
|
68
|
+
| **concierge** | Meeting prep and transcripts | Every 10 min |
|
|
69
|
+
| **librarian** | Knowledge graph maintenance | Every 15 min |
|
|
70
|
+
| **recruiter** | Engineering recruitment | Every 30 min |
|
|
71
|
+
| **head-hunter** | Passive talent scouting | Every 60 min |
|
|
72
|
+
| **chief-of-staff** | Daily briefings and priorities | 7am, Mon 7:30am |
|
|
65
73
|
|
|
66
74
|
Each agent writes `~/.cache/fit/outpost/state/{agent}_triage.md` per wake. The
|
|
67
|
-
**chief-of-staff** reads all
|
|
68
|
-
`knowledge/Briefings/`.
|
|
75
|
+
**chief-of-staff** reads all of them to write daily briefings in `Briefings/`.
|
|
69
76
|
|
|
70
77
|
## Cache Directory (`~/.cache/fit/outpost/`)
|
|
71
78
|
|
|
72
|
-
Synced data and runtime state live outside the KB; only notes
|
|
73
|
-
inside it.
|
|
79
|
+
Synced data and runtime state live outside the KB; only notes, drafts, and
|
|
80
|
+
briefings live inside it.
|
|
74
81
|
|
|
75
|
-
**Resolve `~` before passing a path to a tool.**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
the full `$HOME/...` path.
|
|
82
|
+
**Resolve `~` before passing a path to a tool.** Shell commands expand `~`, but
|
|
83
|
+
the Write and Edit tools do not — a literal `~/...` creates a stray `.cache/`
|
|
84
|
+
inside the KB. Read `$HOME` at runtime and pass the full `$HOME/...` path. Read
|
|
85
|
+
meetings, emails, and messages directly from the source dirs below.
|
|
80
86
|
|
|
81
87
|
- `apple_mail/` — Mail threads as `.md` (plus `attachments/`)
|
|
82
88
|
- `apple_calendar/` — Calendar events as `.json`
|
|
@@ -90,38 +96,26 @@ the full `$HOME/...` path.
|
|
|
90
96
|
Plain markdown with Obsidian-style `[[backlinks]]`.
|
|
91
97
|
|
|
92
98
|
```bash
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
cat "knowledge/People/Sarah Chen.md" # Read a note
|
|
99
|
+
rg "Sarah Chen" Knowledge/ # Search by name
|
|
100
|
+
cat "Knowledge/People/Sarah Chen.md" # Read a note
|
|
96
101
|
```
|
|
97
102
|
|
|
98
103
|
**Always search broadly first.** When the user mentions any person, org, project,
|
|
99
|
-
or topic, run `rg "keyword"
|
|
100
|
-
|
|
101
|
-
meetings, emails, or calendar data; skip general knowledge and brainstorming.
|
|
102
|
-
|
|
103
|
-
## Synced Sources
|
|
104
|
-
|
|
105
|
-
Read upcoming meetings, recent emails, and messages directly from:
|
|
106
|
-
|
|
107
|
-
- `~/.cache/fit/outpost/apple_mail/`
|
|
108
|
-
- `~/.cache/fit/outpost/apple_calendar/`
|
|
109
|
-
- `~/.cache/fit/outpost/teams_chat/`
|
|
104
|
+
or topic, run `rg "keyword" Knowledge/` to surface every note — one note is never
|
|
105
|
+
the full story. Skip it only for general knowledge and brainstorming.
|
|
110
106
|
|
|
111
107
|
## Skills
|
|
112
108
|
|
|
113
|
-
Skills auto-discover from `.claude/skills/` and load by context
|
|
114
|
-
|
|
115
|
-
pipeline), and communication (draft-emails, send-chat, meeting-prep, decks, docs).
|
|
109
|
+
Skills auto-discover from `.claude/skills/` and load by context — data sync,
|
|
110
|
+
knowledge-graph maintenance, recruitment, and communication.
|
|
116
111
|
|
|
117
112
|
## User Identity
|
|
118
113
|
|
|
119
114
|
The current user's identity is cached at
|
|
120
|
-
`~/.cache/fit/outpost/state/identity.md` — read it directly. If
|
|
121
|
-
|
|
115
|
+
`~/.cache/fit/outpost/state/identity.md` — read it directly. If missing or stale,
|
|
116
|
+
run the `identify-user` skill to refresh it from the corporate directory.
|
|
122
117
|
|
|
123
118
|
## Working Outside This Directory
|
|
124
119
|
|
|
125
|
-
You have full filesystem access (macOS). For tasks outside this KB
|
|
126
|
-
|
|
127
|
-
directly.
|
|
120
|
+
You have full filesystem access (macOS). For tasks outside this KB, use shell
|
|
121
|
+
commands directly.
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Goal and Priority Templates
|
|
2
|
-
|
|
3
|
-
Goals and Priorities are **never auto-created** by `extract-entities`. They are
|
|
4
|
-
set deliberately by the user. These templates are for manual creation only —
|
|
5
|
-
`extract-entities` and `anarlog-process` only **link to** and **update progress
|
|
6
|
-
on** existing notes.
|
|
7
|
-
|
|
8
|
-
## Priorities
|
|
9
|
-
|
|
10
|
-
```markdown
|
|
11
|
-
# {Priority Name}
|
|
12
|
-
|
|
13
|
-
## About
|
|
14
|
-
{2-3 sentences: what this strategic direction means and why it matters}
|
|
15
|
-
|
|
16
|
-
**Status:** {active|paused|retired}
|
|
17
|
-
**Owner:** [[People/{Person}]]
|
|
18
|
-
**Set:** {YYYY-MM-DD}
|
|
19
|
-
|
|
20
|
-
## What this means
|
|
21
|
-
{Bullet list of concrete implications — what does pursuing this priority look like?}
|
|
22
|
-
|
|
23
|
-
## Goals
|
|
24
|
-
{Time-bound targets that ladder to this priority — backlinks to knowledge/Goals/}
|
|
25
|
-
|
|
26
|
-
## Projects
|
|
27
|
-
- [[Projects/{Project}]] — {relationship}
|
|
28
|
-
|
|
29
|
-
## Key facts
|
|
30
|
-
{substantive facts only — leave empty if none}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Goals
|
|
34
|
-
|
|
35
|
-
```markdown
|
|
36
|
-
# {Goal Name}
|
|
37
|
-
|
|
38
|
-
## Info
|
|
39
|
-
**Priority:** [[Priorities/{Priority}]]
|
|
40
|
-
**Status:** {on track|at risk|off track|achieved|abandoned}
|
|
41
|
-
**Owner:** [[People/{Person}]]
|
|
42
|
-
**Target date:** {YYYY-MM-DD}
|
|
43
|
-
**Set:** {YYYY-MM-DD}
|
|
44
|
-
|
|
45
|
-
## Outcome
|
|
46
|
-
{1-2 sentences: what measurable success looks like}
|
|
47
|
-
|
|
48
|
-
## Blockers
|
|
49
|
-
{Active Conditions that impede this goal — link to knowledge/Conditions/}
|
|
50
|
-
- [[Conditions/{Condition}]] — {impact on this goal}
|
|
51
|
-
|
|
52
|
-
## Projects
|
|
53
|
-
- [[Projects/{Project}]] — {how it contributes}
|
|
54
|
-
|
|
55
|
-
## Progress
|
|
56
|
-
- **{YYYY-MM-DD}**: {Update on progress toward the outcome}
|
|
57
|
-
|
|
58
|
-
## Key facts
|
|
59
|
-
{substantive facts only — leave empty if none}
|
|
60
|
-
|
|
61
|
-
## Risks
|
|
62
|
-
{known risks to achieving this goal — leave empty if none}
|
|
63
|
-
```
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: upstream-skill
|
|
3
|
-
description: Track changes made to skills in this installation and produce a changelog that can be included upstream. Use when skills have been modified, added, or removed locally and those changes should be contributed back to the monorepo.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Upstream
|
|
7
|
-
|
|
8
|
-
Track changes to skills in this installation and produce a structured changelog
|
|
9
|
-
so improvements can be contributed back to the upstream monorepo.
|
|
10
|
-
|
|
11
|
-
## Trigger
|
|
12
|
-
|
|
13
|
-
- The user asks to prepare local skill changes for upstream contribution.
|
|
14
|
-
- Skills in `.claude/skills/` have been modified, added, or removed.
|
|
15
|
-
- The user wants to document what changed locally before syncing upstream.
|
|
16
|
-
|
|
17
|
-
## Prerequisites
|
|
18
|
-
|
|
19
|
-
- A working Outpost installation with `.claude/skills/`.
|
|
20
|
-
- Git available for change detection.
|
|
21
|
-
|
|
22
|
-
## Inputs
|
|
23
|
-
|
|
24
|
-
- `.claude/skills/*/SKILL.md` — current skill files.
|
|
25
|
-
- Git history — change detection.
|
|
26
|
-
|
|
27
|
-
## Outputs
|
|
28
|
-
|
|
29
|
-
- `.claude/skills/<skill>/CHANGELOG.md` — one per modified skill,
|
|
30
|
-
reverse-chronological.
|
|
31
|
-
|
|
32
|
-
<do_confirm_checklist goal="Verify changelogs are upstream-ready">
|
|
33
|
-
|
|
34
|
-
- [ ] Every changed skill has a `CHANGELOG.md` in its directory.
|
|
35
|
-
- [ ] Each entry has **What**, **Why**, and **Details** sections.
|
|
36
|
-
- [ ] Descriptions are specific enough for an upstream maintainer to act on (not
|
|
37
|
-
"updated SKILL.md" / "fixed stuff").
|
|
38
|
-
- [ ] New skills include a brief description of their purpose.
|
|
39
|
-
- [ ] Removed skills explain why they were removed.
|
|
40
|
-
- [ ] Dates come from git history, not guessed.
|
|
41
|
-
- [ ] No duplicate entries for the same change.
|
|
42
|
-
|
|
43
|
-
</do_confirm_checklist>
|
|
44
|
-
|
|
45
|
-
## Procedure
|
|
46
|
-
|
|
47
|
-
### 1. Identify changed skills
|
|
48
|
-
|
|
49
|
-
Use git to find skills added, modified, or deleted since the last changelog
|
|
50
|
-
entry (or since initial commit if no changelog exists):
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
# Latest changelog date for a skill (if any)
|
|
54
|
-
head -20 .claude/skills/<skill>/CHANGELOG.md 2>/dev/null
|
|
55
|
-
|
|
56
|
-
# All changes touching skills
|
|
57
|
-
git log --oneline --name-status -- '.claude/skills/'
|
|
58
|
-
|
|
59
|
-
# Changes since last documented date for one skill
|
|
60
|
-
git log --after="<last-entry-date>" --name-status -- '.claude/skills/<skill>/'
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
If no changelog exists for a skill, consider all commits that touched that
|
|
64
|
-
skill's directory.
|
|
65
|
-
|
|
66
|
-
### 2. Classify each change
|
|
67
|
-
|
|
68
|
-
| Type | Description |
|
|
69
|
-
| ---------- | ---------------------------------------------------- |
|
|
70
|
-
| `added` | New skill that doesn't exist upstream |
|
|
71
|
-
| `modified` | Existing skill updated (workflow, checklists, tools) |
|
|
72
|
-
| `removed` | Skill deleted from the installation |
|
|
73
|
-
| `renamed` | Skill directory or file renamed |
|
|
74
|
-
|
|
75
|
-
For modifications, diff the current file against the prior version:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
git diff HEAD~N -- '.claude/skills/<skill>/SKILL.md'
|
|
79
|
-
git diff <commit> -- '.claude/skills/<skill>/SKILL.md'
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 3. Describe each change
|
|
83
|
-
|
|
84
|
-
Every entry must answer:
|
|
85
|
-
|
|
86
|
-
1. **What changed?** — the specific section or behaviour modified.
|
|
87
|
-
2. **Why?** — the problem encountered or improvement discovered in use.
|
|
88
|
-
3. **How?** — a summary of the actual change (not a full diff).
|
|
89
|
-
|
|
90
|
-
Good: "Added a safety check to Step 3 — agents were skipping validation when the
|
|
91
|
-
source directory was empty, causing silent failures."
|
|
92
|
-
|
|
93
|
-
Bad: "Updated SKILL.md" / "Fixed stuff" / "Changed line 42".
|
|
94
|
-
|
|
95
|
-
### 4. Write the changelog
|
|
96
|
-
|
|
97
|
-
For each changed skill, create or update `.claude/skills/<skill>/CHANGELOG.md`
|
|
98
|
-
using this format (newest first):
|
|
99
|
-
|
|
100
|
-
```markdown
|
|
101
|
-
# <skill> Changelog
|
|
102
|
-
|
|
103
|
-
Changes to this skill that should be considered for upstream inclusion in
|
|
104
|
-
the Forward Impact monorepo.
|
|
105
|
-
|
|
106
|
-
## <YYYY-MM-DD>
|
|
107
|
-
|
|
108
|
-
**What:** <one-line summary>
|
|
109
|
-
|
|
110
|
-
**Why:** <problem or improvement that motivated it>
|
|
111
|
-
|
|
112
|
-
**Details:**
|
|
113
|
-
<2–5 lines describing the specific changes>
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
For **new** skills, write a single `added` entry describing the skill's purpose.
|
|
119
|
-
For **removed** skills, the changelog is the last file remaining in the
|
|
120
|
-
directory and explains the removal.
|
|
121
|
-
|
|
122
|
-
Worked examples in [references/examples.md](references/examples.md).
|
|
123
|
-
|
|
124
|
-
## Notes
|
|
125
|
-
|
|
126
|
-
- This skill **documents only** — it does not push or merge anything.
|
|
127
|
-
- Per-skill changelogs are consumed by the **downstream** skill in the upstream
|
|
128
|
-
monorepo.
|
|
129
|
-
- When in doubt about whether a change is upstream-worthy, include it; the
|
|
130
|
-
upstream maintainer decides what to incorporate.
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Changelog Examples
|
|
2
|
-
|
|
3
|
-
Reference output for `upstream-skill` Step 4. Each modified skill has its own
|
|
4
|
-
`CHANGELOG.md` with reverse-chronological entries.
|
|
5
|
-
|
|
6
|
-
## Modified skill
|
|
7
|
-
|
|
8
|
-
`.claude/skills/req-track/CHANGELOG.md`:
|
|
9
|
-
|
|
10
|
-
```markdown
|
|
11
|
-
# req-track Changelog
|
|
12
|
-
|
|
13
|
-
Changes to this skill that should be considered for upstream inclusion in
|
|
14
|
-
the Forward Impact monorepo.
|
|
15
|
-
|
|
16
|
-
## 2026-03-01
|
|
17
|
-
|
|
18
|
-
**What:** Added gender field extraction for diversity tracking
|
|
19
|
-
|
|
20
|
-
**Why:** Recruitment pipeline lacked diversity metrics — pool composition
|
|
21
|
-
was invisible without structured gender data.
|
|
22
|
-
|
|
23
|
-
**Details:**
|
|
24
|
-
- Added Gender field to candidate brief template (Woman / Man / —)
|
|
25
|
-
- Added extraction rules: pronouns, gendered titles
|
|
26
|
-
- Added explicit note that the field has no bearing on hiring decisions
|
|
27
|
-
- Updated quality checklist to verify the gender field
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## New skill
|
|
33
|
-
|
|
34
|
-
`.claude/skills/anarlog-process/CHANGELOG.md`:
|
|
35
|
-
|
|
36
|
-
```markdown
|
|
37
|
-
# anarlog-process Changelog
|
|
38
|
-
|
|
39
|
-
Changes to this skill that should be considered for upstream inclusion in
|
|
40
|
-
the Forward Impact monorepo.
|
|
41
|
-
|
|
42
|
-
## 2026-03-01
|
|
43
|
-
|
|
44
|
-
**What:** New skill for processing Anarlog meeting recordings
|
|
45
|
-
|
|
46
|
-
**Why:** Meeting notes were being lost — Anarlog captures transcriptions
|
|
47
|
-
but they weren't being integrated into the knowledge base.
|
|
48
|
-
|
|
49
|
-
**Details:**
|
|
50
|
-
- Reads transcription files from `~/.cache/fit/outpost/anarlog/`
|
|
51
|
-
- Extracts people, decisions, and action items
|
|
52
|
-
- Creates meeting notes in `knowledge/Meetings/`
|
|
53
|
-
- Links attendees to `knowledge/People/` entries
|
|
54
|
-
|
|
55
|
-
---
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Tweak to existing skill
|
|
59
|
-
|
|
60
|
-
`.claude/skills/extract-entities/CHANGELOG.md`:
|
|
61
|
-
|
|
62
|
-
```markdown
|
|
63
|
-
# extract-entities Changelog
|
|
64
|
-
|
|
65
|
-
Changes to this skill that should be considered for upstream inclusion in
|
|
66
|
-
the Forward Impact monorepo.
|
|
67
|
-
|
|
68
|
-
## 2026-02-15
|
|
69
|
-
|
|
70
|
-
**What:** Increased batch size from 5 to 10 files per run
|
|
71
|
-
|
|
72
|
-
**Why:** Processing was too slow for large inboxes — 5 files per batch
|
|
73
|
-
meant dozens of runs to catch up after a week of email.
|
|
74
|
-
|
|
75
|
-
**Details:**
|
|
76
|
-
- Changed batch size constant from 5 to 10 in Step 1
|
|
77
|
-
- Added a note about context window limits for batches > 15
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
```
|
|
File without changes
|