@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.
Files changed (65) hide show
  1. package/LICENSE +21 -201
  2. package/config/skill-postures.json +28 -0
  3. package/package.json +1 -1
  4. package/src/agent-runner.js +52 -1
  5. package/src/kb-manager.js +5 -7
  6. package/src/outpost.js +42 -0
  7. package/src/posture.js +77 -0
  8. package/src/socket-server.js +1 -5
  9. package/templates/.claude/agents/chief-of-staff.md +24 -9
  10. package/templates/.claude/agents/concierge.md +14 -0
  11. package/templates/.claude/agents/head-hunter.md +14 -0
  12. package/templates/.claude/agents/librarian.md +19 -7
  13. package/templates/.claude/agents/postman.md +14 -0
  14. package/templates/.claude/agents/recruiter.md +21 -12
  15. package/templates/.claude/skills/anarlog-follow/SKILL.md +7 -7
  16. package/templates/.claude/skills/anarlog-process/SKILL.md +15 -16
  17. package/templates/.claude/skills/anarlog-process/references/extraction.md +5 -5
  18. package/templates/.claude/skills/candidate-report/SKILL.md +9 -9
  19. package/templates/.claude/skills/deck-create/SKILL.md +2 -2
  20. package/templates/.claude/skills/deck-summarize/SKILL.md +2 -2
  21. package/templates/.claude/skills/deck-summarize/references/brief-template.md +1 -1
  22. package/templates/.claude/skills/doc-collab/SKILL.md +8 -8
  23. package/templates/.claude/skills/doc-create/SKILL.md +3 -3
  24. package/templates/.claude/skills/draft-emails/SKILL.md +19 -19
  25. package/templates/.claude/skills/draft-emails/references/template.md +1 -1
  26. package/templates/.claude/skills/draft-emails/scripts/scan-emails.mjs +4 -4
  27. package/templates/.claude/skills/draft-emails/scripts/send-email.mjs +2 -2
  28. package/templates/.claude/skills/extract-entities/SKILL.md +16 -17
  29. package/templates/.claude/skills/extract-entities/references/TEMPLATES.md +2 -2
  30. package/templates/.claude/skills/extract-entities/references/conditions.md +4 -4
  31. package/templates/.claude/skills/extract-entities/references/links.md +3 -18
  32. package/templates/.claude/skills/extract-entities/references/recruitment.md +8 -8
  33. package/templates/.claude/skills/extract-entities/references/resolution.md +3 -5
  34. package/templates/.claude/skills/extract-entities/references/sources.md +1 -1
  35. package/templates/.claude/skills/extract-entities/references/templates-conditions.md +2 -2
  36. package/templates/.claude/skills/extract-entities/references/templates-priorities.md +32 -0
  37. package/templates/.claude/skills/extract-entities/references/templates-projects-topics.md +2 -2
  38. package/templates/.claude/skills/meeting-prep/SKILL.md +18 -19
  39. package/templates/.claude/skills/req-assess/SKILL.md +11 -11
  40. package/templates/.claude/skills/req-assess/references/interview-template.md +1 -1
  41. package/templates/.claude/skills/req-assess/references/panel-template.md +1 -1
  42. package/templates/.claude/skills/req-decide/SKILL.md +17 -17
  43. package/templates/.claude/skills/req-decide/references/template.md +1 -1
  44. package/templates/.claude/skills/req-forget/SKILL.md +8 -8
  45. package/templates/.claude/skills/req-forget/references/classify.md +4 -4
  46. package/templates/.claude/skills/req-forget/references/locations.md +10 -10
  47. package/templates/.claude/skills/req-forget/references/report-template.md +8 -8
  48. package/templates/.claude/skills/req-scan/SKILL.md +3 -3
  49. package/templates/.claude/skills/req-scan/references/template.md +1 -1
  50. package/templates/.claude/skills/req-screen/SKILL.md +9 -9
  51. package/templates/.claude/skills/req-screen/references/template.md +1 -1
  52. package/templates/.claude/skills/req-track/SKILL.md +17 -17
  53. package/templates/.claude/skills/req-track/references/fields.md +8 -8
  54. package/templates/.claude/skills/req-track/references/signals.md +2 -2
  55. package/templates/.claude/skills/req-track/references/templates.md +1 -1
  56. package/templates/.claude/skills/req-workday/SKILL.md +12 -12
  57. package/templates/.claude/skills/req-workday/references/templates.md +3 -3
  58. package/templates/.claude/skills/send-chat/SKILL.md +4 -4
  59. package/templates/.claude/skills/upstream-instructions/SKILL.md +154 -0
  60. package/templates/.claude/skills/upstream-instructions/references/examples.md +97 -0
  61. package/templates/CLAUDE.md +47 -53
  62. package/templates/.claude/skills/extract-entities/references/templates-goals-priorities.md +0 -63
  63. package/templates/.claude/skills/upstream-skill/SKILL.md +0 -130
  64. package/templates/.claude/skills/upstream-skill/references/examples.md +0 -80
  65. 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
+ ```
@@ -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 locally.
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, direct, and lightly warm. Explain complex things clearly without
31
- hedging. When the next step is obvious, take it. Ask at most one clarifying
32
- question, and only at the start. Reference files by full path. Confirm before
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
- ├── knowledge/ # The knowledge graph (Obsidian-compatible)
44
- ├── People/ Organizations/ Projects/ Topics/
45
- │ └── Candidates/ Goals/ Priorities/ Conditions/ Roles/
46
- ├── .claude/skills/ # Auto-discovered skill files
47
- ├── drafts/ # Email drafts (draft-emails skill)
48
- ├── CLAUDE.md # This file
49
- └── .mcp.json # MCP server configurations (optional)
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
- | Agent | Domain | Schedule | Skills |
58
- | ------------------ | ------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |
59
- | **postman** | Communication triage and drafts | Every 5 min | sync-apple-mail, sync-teams, draft-emails |
60
- | **concierge** | Meeting prep and transcripts | Every 10 min | sync-apple-calendar, meeting-prep, anarlog-process |
61
- | **librarian** | Knowledge graph maintenance | Every 15 min | extract-entities, organize-files |
62
- | **recruiter** | Engineering recruitment | Every 30 min | req-track, req-screen, req-assess, req-decide, req-workday, req-forget, fit-pathway, fit-map |
63
- | **head-hunter** | Passive talent scouting | Every 60 min | req-scan, fit-pathway, fit-map |
64
- | **chief-of-staff** | Daily briefings and priorities | 7am, Mon 7:30am | _(reads all state for daily briefings)_ |
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 five to write daily briefings in
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 and drafts live
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.** Paths like
76
- `~/.cache/fit/outpost/` are shorthand; read `$HOME` at runtime and never hardcode
77
- it. Shell commands expand `~`, but the Write and Edit tools do not a literal
78
- `~/...` given to those creates a stray `.cache/` inside the KB. Always pass them
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
- ls knowledge/People/ # List entities
94
- rg "Sarah Chen" knowledge/ # Search by name
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" knowledge/` to surface every note first — one note is
100
- never the full story. Use it for tasks involving named entities, people, projects,
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: data sync (Apple
114
- Mail, Calendar, Teams), knowledge-graph maintenance (extract-entities, recruitment
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 it is missing or
121
- stale, run the `identify-user` skill to refresh it from the corporate directory.
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
- (organizing the Desktop, finding files in Downloads), use shell commands
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