@forwardimpact/outpost 3.12.1 → 3.13.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 (85) hide show
  1. package/package.json +3 -2
  2. package/src/kb-manager.js +58 -5
  3. package/src/kb-validator.js +762 -0
  4. package/src/outpost.js +73 -8
  5. package/templates/.claude/agents/chief-of-staff.md +14 -6
  6. package/templates/.claude/agents/concierge.md +9 -2
  7. package/templates/.claude/agents/head-hunter.md +9 -2
  8. package/templates/.claude/agents/librarian.md +11 -4
  9. package/templates/.claude/agents/postman.md +9 -2
  10. package/templates/.claude/agents/recruiter.md +9 -2
  11. package/templates/.claude/skills/anarlog-follow/SKILL.md +53 -29
  12. package/templates/.claude/skills/anarlog-follow/references/sessions.md +52 -0
  13. package/templates/.claude/skills/anarlog-process/SKILL.md +88 -45
  14. package/templates/.claude/skills/anarlog-process/references/extraction.md +19 -11
  15. package/templates/.claude/skills/anarlog-process/references/sessions.md +92 -58
  16. package/templates/.claude/skills/anarlog-process/scripts/scan.mjs +404 -163
  17. package/templates/.claude/skills/candidate-report/SKILL.md +12 -9
  18. package/templates/.claude/skills/changelog/SKILL.md +106 -56
  19. package/templates/.claude/skills/deck-create/SKILL.md +60 -2
  20. package/templates/.claude/skills/deck-review/SKILL.md +4 -1
  21. package/templates/.claude/skills/deck-summarize/SKILL.md +6 -2
  22. package/templates/.claude/skills/deck-summarize/references/brief-template.md +1 -1
  23. package/templates/.claude/skills/doc-collab/SKILL.md +16 -11
  24. package/templates/.claude/skills/doc-create/SKILL.md +6 -3
  25. package/templates/.claude/skills/draft-emails/SKILL.md +31 -25
  26. package/templates/.claude/skills/draft-emails/references/template.md +1 -1
  27. package/templates/.claude/skills/draft-emails/scripts/scan-emails.mjs +14 -8
  28. package/templates/.claude/skills/draft-emails/scripts/send-email.mjs +9 -3
  29. package/templates/.claude/skills/extract-entities/SKILL.md +17 -16
  30. package/templates/.claude/skills/extract-entities/references/TEMPLATES.md +2 -1
  31. package/templates/.claude/skills/extract-entities/references/conditions.md +6 -5
  32. package/templates/.claude/skills/extract-entities/references/links.md +34 -10
  33. package/templates/.claude/skills/extract-entities/references/recruitment.md +15 -10
  34. package/templates/.claude/skills/extract-entities/references/resolution.md +1 -1
  35. package/templates/.claude/skills/extract-entities/references/sources.md +1 -1
  36. package/templates/.claude/skills/extract-entities/references/templates-conditions.md +10 -4
  37. package/templates/.claude/skills/extract-entities/references/templates-people-orgs.md +29 -10
  38. package/templates/.claude/skills/extract-entities/references/templates-priorities.md +8 -2
  39. package/templates/.claude/skills/extract-entities/references/templates-projects-topics.md +19 -7
  40. package/templates/.claude/skills/meeting-prep/SKILL.md +23 -18
  41. package/templates/.claude/skills/organize-files/SKILL.md +3 -0
  42. package/templates/.claude/skills/person-identify/SKILL.md +58 -10
  43. package/templates/.claude/skills/person-identify/scripts/identify.sh +110 -11
  44. package/templates/.claude/skills/person-lookup/SKILL.md +8 -3
  45. package/templates/.claude/skills/person-lookup/scripts/lookup.sh +27 -1
  46. package/templates/.claude/skills/req-assess/SKILL.md +19 -11
  47. package/templates/.claude/skills/req-assess/references/interview-template.md +6 -1
  48. package/templates/.claude/skills/req-assess/references/panel-template.md +5 -1
  49. package/templates/.claude/skills/req-bundle/SKILL.md +164 -0
  50. package/templates/.claude/skills/req-bundle/references/matching.md +70 -0
  51. package/templates/.claude/skills/req-bundle/references/pdf-structure.md +74 -0
  52. package/templates/.claude/skills/req-bundle/scripts/split-bundle.mjs +377 -0
  53. package/templates/.claude/skills/req-decide/SKILL.md +26 -18
  54. package/templates/.claude/skills/req-decide/references/template.md +2 -2
  55. package/templates/.claude/skills/req-forget/SKILL.md +39 -22
  56. package/templates/.claude/skills/req-forget/references/classify.md +12 -10
  57. package/templates/.claude/skills/req-forget/references/locations.md +27 -22
  58. package/templates/.claude/skills/req-forget/references/report-template.md +23 -15
  59. package/templates/.claude/skills/req-scan/SKILL.md +6 -3
  60. package/templates/.claude/skills/req-scan/references/template.md +11 -1
  61. package/templates/.claude/skills/req-screen/SKILL.md +78 -34
  62. package/templates/.claude/skills/req-screen/references/rubric.md +38 -42
  63. package/templates/.claude/skills/req-screen/references/scoring.md +79 -0
  64. package/templates/.claude/skills/req-screen/references/template.md +26 -14
  65. package/templates/.claude/skills/req-track/SKILL.md +44 -44
  66. package/templates/.claude/skills/req-track/references/fields.md +18 -15
  67. package/templates/.claude/skills/req-track/references/overlays.md +42 -0
  68. package/templates/.claude/skills/req-track/references/signals.md +2 -2
  69. package/templates/.claude/skills/req-track/references/templates.md +28 -27
  70. package/templates/.claude/skills/req-workday/SKILL.md +49 -20
  71. package/templates/.claude/skills/req-workday/references/brief.md +81 -0
  72. package/templates/.claude/skills/req-workday/references/templates.md +6 -73
  73. package/templates/.claude/skills/req-workday/references/xlsx-format.md +19 -0
  74. package/templates/.claude/skills/req-workday/scripts/parse-workday.mjs +96 -20
  75. package/templates/.claude/skills/send-chat/SKILL.md +11 -11
  76. package/templates/.claude/skills/sync-apple-calendar/SKILL.md +3 -0
  77. package/templates/.claude/skills/sync-apple-mail/SKILL.md +3 -0
  78. package/templates/.claude/skills/sync-teams/SKILL.md +3 -0
  79. package/templates/.claude/skills/upstream-instructions/SKILL.md +8 -5
  80. package/templates/.claude/skills/upstream-instructions/references/examples.md +3 -3
  81. package/templates/CLAUDE.md +96 -87
  82. package/templates/MIGRATION.md +359 -0
  83. package/templates/registry.yaml +25 -0
  84. package/templates/.claude/skills/anarlog-follow/scripts/follow.mjs +0 -243
  85. package/templates/.claude/skills/anarlog-trim/SKILL.md +0 -186
@@ -9,6 +9,9 @@ description: >
9
9
 
10
10
  # Hiring Decision
11
11
 
12
+ Write tier: `2-Confidential`
13
+ Frontmatter: candidate (stamps `status`, `updated`)
14
+
12
15
  Synthesize all available evidence for a candidate into a final hiring
13
16
  recommendation. This is the culmination of the hiring pipeline. Every prior
14
17
  assessment feeds in.
@@ -29,26 +32,28 @@ This is **Stage 3** of the three-stage pipeline:
29
32
  ## Prerequisites
30
33
 
31
34
  - `fit-pathway` CLI installed.
32
- - `Knowledge/Candidates/{Name}/screening.md` exists.
33
- - At least one `Knowledge/Candidates/{Name}/interview-*.md`.
34
- - `Knowledge/Candidates/{Name}/brief.md` exists.
35
+ - `2-Confidential/Candidates/{Name}/screening.md` exists.
36
+ - At least one `2-Confidential/Candidates/{Name}/interview-*.md`.
37
+ - `2-Confidential/Candidates/{Name}/brief.md` exists.
35
38
 
36
39
  ## Inputs
37
40
 
38
- - All artifacts in `Knowledge/Candidates/{Name}/`.
41
+ - All artifacts in `2-Confidential/Candidates/{Name}/`.
39
42
  - Standard data via `fit-pathway`.
40
- - `Knowledge/Candidates/Insights.md` — cross-candidate context.
41
- - `Knowledge/Roles/*.md` — the candidate's requisition (positions, hiring
43
+ - `2-Confidential/Candidates/Insights.md` — cross-candidate context.
44
+ - `2-Confidential/Roles/*.md` — the candidate's requisition (positions, hiring
42
45
  manager, domain lead). Check the `**Status:**` field to distinguish active
43
46
  from historical reqs.
44
- - `Knowledge/Priorities/*.md` — strategic context.
47
+ - `3-Team/Priorities/*.md` — strategic context.
45
48
  - Other active candidates at the same level — relative position.
46
49
 
47
50
  ## Outputs
48
51
 
49
- - `Knowledge/Candidates/{Name}/recommendation.md` — final recommendation.
50
- - Updated `Knowledge/Candidates/{Name}/brief.md` — status and link.
51
- - Updated `Knowledge/Candidates/Insights.md` cross-candidate observations.
52
+ - `2-Confidential/Candidates/{Name}/recommendation.md` — final recommendation.
53
+ - Updated `2-Confidential/Candidates/{Name}/brief.md` — status, link, and
54
+ frontmatter `status` and `updated` stamped.
55
+ - Updated `2-Confidential/Candidates/Insights.md` — cross-candidate
56
+ observations.
52
57
 
53
58
  <do_confirm_checklist goal="Verify the recommendation is grounded and
54
59
  audit-ready">
@@ -75,7 +80,7 @@ audit-ready">
75
80
  ### 1. Gather all evidence
76
81
 
77
82
  ```bash
78
- ls Knowledge/Candidates/{Name}/
83
+ ls 2-Confidential/Candidates/{Name}/
79
84
  ```
80
85
 
81
86
  Read in order: `brief.md`, `screening.md`, every `interview-*.md`, relevant
@@ -119,8 +124,8 @@ Apply the level-confirmation criteria in
119
124
  If `brief.md` carries a `Req`:
120
125
 
121
126
  ```bash
122
- ls Knowledge/Roles/ | grep "{req_number}"
123
- cat "Knowledge/Roles/{matching file}"
127
+ ls 2-Confidential/Roles/ | grep "{req_number}"
128
+ cat "2-Confidential/Roles/{matching file}"
124
129
  ```
125
130
 
126
131
  Check the `**Status:**` field. Capture remaining positions, hiring manager,
@@ -130,9 +135,9 @@ domain lead, goal alignment, other candidates on the same req, and channel
130
135
  ### 6. Assess against the active pipeline
131
136
 
132
137
  ```bash
133
- cat Knowledge/Candidates/Insights.md
138
+ cat 2-Confidential/Candidates/Insights.md
134
139
 
135
- for dir in Knowledge/Candidates/*/; do
140
+ for dir in 2-Confidential/Candidates/*/; do
136
141
  if [ -f "$dir/screening.md" ]; then
137
142
  head -5 "$dir/screening.md"
138
143
  fi
@@ -150,8 +155,9 @@ Apply the [decision rules](references/rubric.md#decision-rules) and run the
150
155
  ### 8. Write the recommendation
151
156
 
152
157
  Use the template in [references/template.md](references/template.md). Save to
153
- `Knowledge/Candidates/{Name}/recommendation.md`. Carry the **advisory-only**
154
- banner. Cite specific evidence in skill, behaviour, level, and track sections.
158
+ `2-Confidential/Candidates/{Name}/recommendation.md`. Carry the
159
+ **advisory-only** banner. Cite specific evidence in skill, behaviour, level, and
160
+ track sections.
155
161
 
156
162
  ### 9. Update brief and insights
157
163
 
@@ -160,8 +166,10 @@ Update `brief.md`:
160
166
  - Set `Status` to `recommended` or `not-recommended`.
161
167
  - Append `- [Hiring Recommendation](./recommendation.md)`.
162
168
  - Add the final pipeline entry with date and outcome.
169
+ - Stamp the frontmatter: set `updated` to the decision date and `status` to
170
+ the closest registry value (agents select from `registry.yaml`).
163
171
 
164
- Update `Knowledge/Candidates/Insights.md` only when a cross-candidate
172
+ Update `2-Confidential/Candidates/Insights.md` only when a cross-candidate
165
173
  observation deserves a record (strongest at level, a pattern in the sourcing
166
174
  channel, level-adjustment implications).
167
175
 
@@ -1,7 +1,7 @@
1
1
  # Recommendation Template
2
2
 
3
- Reference template for `req-decide` Step 6. Save to
4
- `Knowledge/Candidates/{Name}/recommendation.md`.
3
+ Reference template for `req-decide` Step 8. Save to
4
+ `2-Confidential/Candidates/{Name}/recommendation.md`.
5
5
 
6
6
  ```markdown
7
7
  # Hiring Recommendation — {Full Name}
@@ -11,11 +11,14 @@ compatibility: Requires macOS filesystem access
11
11
 
12
12
  # Right to Be Forgotten
13
13
 
14
+ Write tier: `2-Confidential` (erasure record; sweep every tier present)
15
+ Frontmatter: erasure
16
+
14
17
  Process data erasure requests under GDPR Article 17. Work from the person's
15
- name. Systematically find and remove all personal data from the knowledge base,
16
- the cached synced data, and the agent state files. Produces an **erasure
17
- report** that records what you found, deleted, and redacted. The report is the
18
- compliance audit trail.
18
+ name and every recorded alias. Sweep every tier present, the owner's personal
19
+ surfaces (`0-Draft/`, `Briefings/`), the cached synced data, and the agent
20
+ state files. Produces an **erasure report** that records what you found,
21
+ deleted, and redacted. The report is the compliance audit trail.
19
22
 
20
23
  ## Trigger
21
24
 
@@ -38,15 +41,15 @@ compliance audit trail.
38
41
 
39
42
  ## Outputs
40
43
 
41
- - `Knowledge/Erasure/{Name}--{YYYY-MM-DD}.md` — erasure report.
42
- - Deleted files and redacted references across the knowledge base.
44
+ - `2-Confidential/Erasure/{Name}--{YYYY-MM-DD}.md` — erasure report.
45
+ - Deleted files and redacted references across every tier.
43
46
 
44
47
  <do_confirm_checklist goal="Verify erasure is complete and the audit trail is
45
48
  sound">
46
49
 
47
50
  - [ ] Get the user's confirmation before any deletion.
48
- - [ ] Run every discovery recipe. Cover knowledge, cache, state, and drafts in
49
- the inventory.
51
+ - [ ] Run every discovery recipe for the name and each alias. Cover every tier
52
+ present, `Briefings/`, cache, and state in the inventory.
50
53
  - [ ] Delete all dedicated files and directories.
51
54
  - [ ] Redact all mentions and backlinks from other notes.
52
55
  - [ ] Handle cached email threads, attachments, and calendar entries.
@@ -54,6 +57,8 @@ sound">
54
57
  - [ ] Save the erasure report. Keep **no** personal data in it beyond the name
55
58
  and the actions taken.
56
59
  - [ ] Run a final `rg` search. Confirm the erasure report is the only match.
60
+ - [ ] Run `npx fit-outpost validate` on the KB root. Fix the dangles the
61
+ removal created.
57
62
 
58
63
  </do_confirm_checklist>
59
64
 
@@ -67,7 +72,8 @@ State to the user:
67
72
  >
68
73
  > This will permanently delete all personal data related to {Name} from:
69
74
  >
70
- > - Knowledge base notes (People, Candidates, Organizations mentions)
75
+ > - Notes in every tier (People, Candidates, Organizations mentions)
76
+ > - Personal surfaces (`0-Draft/`, `Briefings/`)
71
77
  > - Cached email threads and attachments
72
78
  > - Agent state and triage files
73
79
  >
@@ -77,8 +83,10 @@ State to the user:
77
83
 
78
84
  ### 1. Discovery
79
85
 
80
- Run every recipe in [references/locations.md](references/locations.md) and
81
- compile a complete inventory of every file and reference found.
86
+ Read the subject's frontmatter `aliases` first. Run every recipe in
87
+ [references/locations.md](references/locations.md) for the name, each alias,
88
+ and each email. Compile a complete inventory of every file and reference
89
+ found.
82
90
 
83
91
  ### 2. Classify
84
92
 
@@ -90,11 +98,12 @@ where redaction is the action.
90
98
 
91
99
  Process most-specific to most-general.
92
100
 
93
- **3a. Dedicated files and directories:**
101
+ **3a. Dedicated files and directories (repeat per tier present):**
94
102
 
95
103
  ```bash
96
- rm -rf "Knowledge/Candidates/{Name}/"
97
- rm -f "Knowledge/People/{Name}.md"
104
+ rm -rf "2-Confidential/Candidates/{Name}/"
105
+ rm -f "2-Confidential/People/{Name}.md" # overlay note
106
+ rm -f "3-Team/People/{Name}.md"
98
107
  find ~/.cache/fit/outpost/apple_mail/attachments/ -iname "*{Name}*" -delete
99
108
  ```
100
109
 
@@ -129,28 +138,36 @@ rg -v "{deleted_path}" ~/.cache/fit/outpost/state/graph_processed \
129
138
 
130
139
  Use the template in
131
140
  [references/report-template.md](references/report-template.md). Save to
132
- `Knowledge/Erasure/{Name}--{YYYY-MM-DD}.md`. Record **only** what you deleted.
133
- Never record CV content, skills, or assessments.
141
+ `2-Confidential/Erasure/{Name}--{YYYY-MM-DD}.md`. Record **only** what you
142
+ deleted. Never record CV content, skills, or assessments.
134
143
 
135
144
  ### 5. Verify
136
145
 
146
+ Run from the KB root so the search covers every tier and personal surface:
147
+
137
148
  ```bash
138
- rg "{Name}" Knowledge/ ~/.cache/fit/outpost/ Drafts/
149
+ rg "{Name}" . ~/.cache/fit/outpost/
139
150
  ```
140
151
 
141
152
  The only match should be the erasure report. If other matches remain, process
142
- them and update the report.
153
+ them and update the report. Repeat for each alias and email. Then validate the
154
+ graph. The removal creates dangling links. Fix what the validator reports:
155
+
156
+ ```bash
157
+ npx fit-outpost validate {kb-root}
158
+ ```
143
159
 
144
160
  ## Scope variants
145
161
 
146
162
  **`recruitment-only`** limits erasure to:
147
163
 
148
- - `Knowledge/Candidates/{Name}/`
149
- - `Knowledge/Candidates/Insights.md` mentions
164
+ - `2-Confidential/Candidates/{Name}/`
165
+ - `2-Confidential/Candidates/Insights.md` mentions
150
166
  - Recruitment threads (known agency domains)
151
167
  - `recruiter_triage.md`
152
168
 
153
- It leaves `Knowledge/People/{Name}.md` and the wider graph intact. The person
169
+ It leaves `3-Team/People/{Name}.md` and the wider graph intact. The person
154
170
  may be a colleague or a non-recruitment contact.
155
171
 
156
- **`all`** (default): full erasure across knowledge base, cache, and state.
172
+ **`all`** (default): full erasure across every tier, personal surfaces, cache,
173
+ and state.
@@ -3,16 +3,18 @@
3
3
  Reference for `req-forget` Step 2. For every match in the inventory, pick the
4
4
  action below.
5
5
 
6
- | Reference Type | Action | Example |
7
- | ---------------------------------- | ---------------------------------------------- | ----------------------------------------------- |
8
- | **Dedicated note** (sole subject) | Delete the entire file | `Knowledge/People/{Name}.md` |
9
- | **Dedicated directory** | Delete the entire directory | `Knowledge/Candidates/{Name}/` |
10
- | **Mention in another note** | Redact: remove the lines that name the person | Backlink in `Knowledge/Organizations/Agency.md` |
11
- | **Email thread** (sole subject) | Delete the file | `~/.cache/fit/outpost/apple_mail/thread.md` |
12
- | **Email thread** (multiple people) | Redact: remove the paragraphs about the person | A thread about multiple candidates |
13
- | **Attachment** (their CV, etc.) | Delete the file | `attachments/{thread}/CV.pdf` |
14
- | **Triage/state file** | Redact: remove the lines that mention them | `recruiter_triage.md` |
15
- | **Insights file** | Redact: remove the bullets that mention them | `Knowledge/Candidates/Insights.md` |
6
+ | Reference Type | Action | Example |
7
+ | ---------------------------------- | ---------------------------------------------- | ---------------------------------------------------- |
8
+ | **Dedicated note** (sole subject) | Delete the file, in every tier it appears | `3-Team/People/{Name}.md` |
9
+ | **Overlay note** (narrower tier) | Delete the file | `2-Confidential/People/{Name}.md` |
10
+ | **Dedicated directory** | Delete the entire directory | `2-Confidential/Candidates/{Name}/` |
11
+ | **Mention in another note** | Redact: remove the lines that name the person | Backlink in `3-Team/Organizations/Agency.md` |
12
+ | **Personal-surface mention** | Redact, or delete a sole-subject draft/brief | `0-Draft/{file}.md`, `Briefings/{date}.md` |
13
+ | **Email thread** (sole subject) | Delete the file | `~/.cache/fit/outpost/apple_mail/thread.md` |
14
+ | **Email thread** (multiple people) | Redact: remove the paragraphs about the person | A thread about multiple candidates |
15
+ | **Attachment** (their CV, etc.) | Delete the file | `attachments/{thread}/CV.pdf` |
16
+ | **Triage/state file** | Redact: remove the lines that mention them | `recruiter_triage.md` |
17
+ | **Insights file** | Redact: remove the bullets that mention them | `2-Confidential/Candidates/Insights.md` |
16
18
 
17
19
  ## Redaction rules
18
20
 
@@ -1,26 +1,35 @@
1
1
  # Discovery Search Recipes
2
2
 
3
- Reference for `req-forget` Step 1. Run every recipe. Record every match into
4
- the inventory.
3
+ Reference for `req-forget` Step 1. Run every recipe from the KB root. Repeat
4
+ each recipe for every recorded alias and email. Record every match into the
5
+ inventory. The tier glob `[0-9]-*/` covers every tier present.
5
6
 
6
- ## Knowledge base direct notes
7
+ ## Direct notes, per tier
7
8
 
8
9
  ```bash
9
- ls -d "Knowledge/Candidates/{Name}/" 2>/dev/null
10
- ls "Knowledge/People/{Name}.md" 2>/dev/null
10
+ ls -d "2-Confidential/Candidates/{Name}/" 2>/dev/null
11
+ ls "2-Confidential/Prospects/{Name}.md" 2>/dev/null
12
+ ls "2-Confidential/People/{Name}.md" 2>/dev/null # overlay note
13
+ ls "3-Team/People/{Name}.md" 2>/dev/null
14
+
15
+ # Common name variations, in any tier
16
+ ls [0-9]-*/People/"{First} {Last}.md" 2>/dev/null
17
+ ls [0-9]-*/People/"{Last}, {First}.md" 2>/dev/null
18
+ ```
19
+
20
+ ## Backlinks and mentions, every tier
11
21
 
12
- # Common name variations
13
- ls "Knowledge/People/{First} {Last}.md" 2>/dev/null
14
- ls "Knowledge/People/{Last}, {First}.md" 2>/dev/null
22
+ ```bash
23
+ rg -l "{Name}" [0-9]-*/
24
+ rg -l "{First name} {Last name}" [0-9]-*/
25
+ rg -l "\[\[.*{Name}.*\]\]" [0-9]-*/
26
+ rg -l "{email}" [0-9]-*/
15
27
  ```
16
28
 
17
- ## Knowledge base — backlinks and mentions
29
+ ## Personal surfaces
18
30
 
19
31
  ```bash
20
- rg -l "{Name}" Knowledge/
21
- rg -l "{First name} {Last name}" Knowledge/
22
- rg -l "\[\[.*{Name}.*\]\]" Knowledge/
23
- rg -l "{email}" Knowledge/
32
+ rg -l "{Name}" 0-Draft/ Briefings/ 2>/dev/null
24
33
  ```
25
34
 
26
35
  ## Cached email threads
@@ -41,19 +50,15 @@ rg -l "{email}" ~/.cache/fit/outpost/apple_calendar/ 2>/dev/null
41
50
  ## Agent state files
42
51
 
43
52
  ```bash
44
- rg -l "{Name}" ~/.cache/fit/outpost/state/ 2>/dev/null
45
- ```
46
-
47
- ## Drafts
48
-
49
- ```bash
50
- rg -l "{Name}" Drafts/ 2>/dev/null
53
+ rg -l "{Name}" ~/.cache/fit/outpost/ 2>/dev/null
51
54
  ```
52
55
 
53
56
  ## Final verification
54
57
 
58
+ Run from the KB root so the search covers every tier and personal surface:
59
+
55
60
  ```bash
56
- rg "{Name}" Knowledge/ ~/.cache/fit/outpost/ Drafts/
61
+ rg "{Name}" . ~/.cache/fit/outpost/
57
62
  ```
58
63
 
59
- Expected: only the erasure report matches.
64
+ Expected: only the erasure report matches. Repeat per alias and email.
@@ -1,13 +1,19 @@
1
1
  # Erasure Report Template
2
2
 
3
3
  Audit trail for `req-forget` Step 4. Save to
4
- `Knowledge/Erasure/{Name}--{YYYY-MM-DD}.md`.
4
+ `2-Confidential/Erasure/{Name}--{YYYY-MM-DD}.md`.
5
5
 
6
6
  **The report itself must not contain personal data** beyond the subject's name
7
7
  and the actions taken. Do not copy CV content, skills, or assessments into the
8
8
  report. Record only what you deleted. Do not record what it contained.
9
9
 
10
10
  ````markdown
11
+ ---
12
+ type: erasure
13
+ created: {YYYY-MM-DD}
14
+ updated: {YYYY-MM-DD}
15
+ ---
16
+
11
17
  # Data Erasure Report — {Full Name}
12
18
 
13
19
  **Date:** {YYYY-MM-DD HH:MM}
@@ -22,15 +28,17 @@ report. Record only what you deleted. Do not record what it contained.
22
28
  ## Actions Taken
23
29
 
24
30
  ### Deleted Files
25
- - `Knowledge/Candidates/{Name}/brief.md`
26
- - `Knowledge/Candidates/{Name}/CV.pdf`
27
- - `Knowledge/Candidates/{Name}/screening.md`
28
- - `Knowledge/People/{Name}.md`
29
- - {list all deleted files}
31
+ - `2-Confidential/Candidates/{Name}/brief.md`
32
+ - `2-Confidential/Candidates/{Name}/CV.pdf`
33
+ - `2-Confidential/Candidates/{Name}/screening.md`
34
+ - `2-Confidential/People/{Name}.md` (overlay)
35
+ - `3-Team/People/{Name}.md`
36
+ - {list all deleted files, per tier}
30
37
 
31
38
  ### Redacted References
32
- - `Knowledge/Organizations/{Agency}.md` — removed backlink
33
- - `Knowledge/Candidates/Insights.md` — removed {N} bullet(s)
39
+ - `3-Team/Organizations/{Agency}.md` — removed backlink
40
+ - `2-Confidential/Candidates/Insights.md` — removed {N} bullet(s)
41
+ - `Briefings/{date}.md` — removed {N} line(s)
34
42
  - {list all redacted files and what was removed}
35
43
 
36
44
  ### Cached Data Removed
@@ -49,6 +57,8 @@ The following are outside this tool's reach:
49
57
  - **Apple Mail** — original emails remain in the user's mailbox. Search
50
58
  Mail.app for "{Name}" and delete threads manually.
51
59
  - **Apple Calendar** — events remain in Calendar.app.
60
+ - **Synced tier copies** — teammates who receive a shared tier hold their own
61
+ copies. Notify them of the deletion.
52
62
  - **Recruitment agencies** — notify {Agency} of the deletion and request
53
63
  they do the same.
54
64
  - **Interview notes** — check physical notebooks and external apps.
@@ -57,11 +67,9 @@ The following are outside this tool's reach:
57
67
  ## Verification
58
68
 
59
69
  ```bash
60
- rg "{Name}" Knowledge/ ~/.cache/fit/outpost/
61
- ````
62
-
63
- Expected: no matches except this erasure report.
64
-
65
- ```text
66
-
70
+ rg "{Name}" . ~/.cache/fit/outpost/
71
+ npx fit-outpost validate {kb-root}
67
72
  ```
73
+
74
+ Expected: no matches except this erasure report, and a clean validator run.
75
+ ````
@@ -3,13 +3,16 @@ name: req-scan
3
3
  description: >
4
4
  Scan publicly available sources for candidates who indicate they are open for
5
5
  hire. Uses WebFetch to read public APIs (HN Algolia, GitHub, dev.to).
6
- Writes prospect notes to Knowledge/Prospects/. Maintains
6
+ Writes prospect notes to 2-Confidential/Prospects/. Maintains
7
7
  cursor/dedup state in ~/.cache/fit/outpost/head-hunter/. Use when the
8
8
  head-hunter agent wakes or when the user asks to scan for open candidates.
9
9
  ---
10
10
 
11
11
  # Scan Open Candidates
12
12
 
13
+ Write tier: `2-Confidential`
14
+ Frontmatter: prospect
15
+
13
16
  Fetch and filter publicly available candidate posts from platforms where people
14
17
  **explicitly indicate** they are open for hire. This skill fetches, filters,
15
18
  deduplicates, benchmarks, writes prospect notes, and updates memory.
@@ -33,7 +36,7 @@ deduplicates, benchmarks, writes prospect notes, and updates memory.
33
36
 
34
37
  ## Outputs
35
38
 
36
- - `Knowledge/Prospects/{Name}.md`.
39
+ - `2-Confidential/Prospects/{Name}.md`.
37
40
  - Updated `cursor.tsv`, `seen.tsv`, `prospects.tsv`, and `log.md`.
38
41
  - `~/.cache/fit/outpost/state/head_hunter_triage.md`.
39
42
 
@@ -102,7 +105,7 @@ Write notes for **strong** and **moderate** matches only. Use the template in
102
105
  [references/template.md](references/template.md).
103
106
 
104
107
  ```bash
105
- mkdir -p "Knowledge/Prospects"
108
+ mkdir -p "2-Confidential/Prospects"
106
109
  ```
107
110
 
108
111
  ### 5. Update state
@@ -1,8 +1,18 @@
1
1
  # Prospect Note Template
2
2
 
3
- Reference for `req-scan` Step 4. Save to `Knowledge/Prospects/{Name}.md`.
3
+ Reference for `req-scan` Step 4. Save to `2-Confidential/Prospects/{Name}.md`.
4
+ The note opens with the frontmatter block. Select `status` from the registry
5
+ vocabulary (`registry.yaml`).
4
6
 
5
7
  ```markdown
8
+ ---
9
+ type: prospect
10
+ created: {YYYY-MM-DD}
11
+ updated: {YYYY-MM-DD}
12
+ aliases: [{username or display-name variants, or an empty list}]
13
+ status: {registry status: identified / contacted / responded / converted / closed}
14
+ ---
15
+
6
16
  # {Name}
7
17
 
8
18
  ## Info