@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.
- package/package.json +3 -2
- package/src/kb-manager.js +58 -5
- package/src/kb-validator.js +762 -0
- package/src/outpost.js +73 -8
- package/templates/.claude/agents/chief-of-staff.md +14 -6
- package/templates/.claude/agents/concierge.md +9 -2
- package/templates/.claude/agents/head-hunter.md +9 -2
- package/templates/.claude/agents/librarian.md +11 -4
- package/templates/.claude/agents/postman.md +9 -2
- package/templates/.claude/agents/recruiter.md +9 -2
- package/templates/.claude/skills/anarlog-follow/SKILL.md +53 -29
- package/templates/.claude/skills/anarlog-follow/references/sessions.md +52 -0
- package/templates/.claude/skills/anarlog-process/SKILL.md +88 -45
- package/templates/.claude/skills/anarlog-process/references/extraction.md +19 -11
- package/templates/.claude/skills/anarlog-process/references/sessions.md +92 -58
- package/templates/.claude/skills/anarlog-process/scripts/scan.mjs +404 -163
- package/templates/.claude/skills/candidate-report/SKILL.md +12 -9
- package/templates/.claude/skills/changelog/SKILL.md +106 -56
- package/templates/.claude/skills/deck-create/SKILL.md +60 -2
- package/templates/.claude/skills/deck-review/SKILL.md +4 -1
- package/templates/.claude/skills/deck-summarize/SKILL.md +6 -2
- package/templates/.claude/skills/deck-summarize/references/brief-template.md +1 -1
- package/templates/.claude/skills/doc-collab/SKILL.md +16 -11
- package/templates/.claude/skills/doc-create/SKILL.md +6 -3
- package/templates/.claude/skills/draft-emails/SKILL.md +31 -25
- package/templates/.claude/skills/draft-emails/references/template.md +1 -1
- package/templates/.claude/skills/draft-emails/scripts/scan-emails.mjs +14 -8
- package/templates/.claude/skills/draft-emails/scripts/send-email.mjs +9 -3
- package/templates/.claude/skills/extract-entities/SKILL.md +17 -16
- package/templates/.claude/skills/extract-entities/references/TEMPLATES.md +2 -1
- package/templates/.claude/skills/extract-entities/references/conditions.md +6 -5
- package/templates/.claude/skills/extract-entities/references/links.md +34 -10
- package/templates/.claude/skills/extract-entities/references/recruitment.md +15 -10
- package/templates/.claude/skills/extract-entities/references/resolution.md +1 -1
- package/templates/.claude/skills/extract-entities/references/sources.md +1 -1
- package/templates/.claude/skills/extract-entities/references/templates-conditions.md +10 -4
- package/templates/.claude/skills/extract-entities/references/templates-people-orgs.md +29 -10
- package/templates/.claude/skills/extract-entities/references/templates-priorities.md +8 -2
- package/templates/.claude/skills/extract-entities/references/templates-projects-topics.md +19 -7
- package/templates/.claude/skills/meeting-prep/SKILL.md +23 -18
- package/templates/.claude/skills/organize-files/SKILL.md +3 -0
- package/templates/.claude/skills/person-identify/SKILL.md +58 -10
- package/templates/.claude/skills/person-identify/scripts/identify.sh +110 -11
- package/templates/.claude/skills/person-lookup/SKILL.md +8 -3
- package/templates/.claude/skills/person-lookup/scripts/lookup.sh +27 -1
- package/templates/.claude/skills/req-assess/SKILL.md +19 -11
- package/templates/.claude/skills/req-assess/references/interview-template.md +6 -1
- package/templates/.claude/skills/req-assess/references/panel-template.md +5 -1
- package/templates/.claude/skills/req-bundle/SKILL.md +164 -0
- package/templates/.claude/skills/req-bundle/references/matching.md +70 -0
- package/templates/.claude/skills/req-bundle/references/pdf-structure.md +74 -0
- package/templates/.claude/skills/req-bundle/scripts/split-bundle.mjs +377 -0
- package/templates/.claude/skills/req-decide/SKILL.md +26 -18
- package/templates/.claude/skills/req-decide/references/template.md +2 -2
- package/templates/.claude/skills/req-forget/SKILL.md +39 -22
- package/templates/.claude/skills/req-forget/references/classify.md +12 -10
- package/templates/.claude/skills/req-forget/references/locations.md +27 -22
- package/templates/.claude/skills/req-forget/references/report-template.md +23 -15
- package/templates/.claude/skills/req-scan/SKILL.md +6 -3
- package/templates/.claude/skills/req-scan/references/template.md +11 -1
- package/templates/.claude/skills/req-screen/SKILL.md +78 -34
- package/templates/.claude/skills/req-screen/references/rubric.md +38 -42
- package/templates/.claude/skills/req-screen/references/scoring.md +79 -0
- package/templates/.claude/skills/req-screen/references/template.md +26 -14
- package/templates/.claude/skills/req-track/SKILL.md +44 -44
- package/templates/.claude/skills/req-track/references/fields.md +18 -15
- package/templates/.claude/skills/req-track/references/overlays.md +42 -0
- package/templates/.claude/skills/req-track/references/signals.md +2 -2
- package/templates/.claude/skills/req-track/references/templates.md +28 -27
- package/templates/.claude/skills/req-workday/SKILL.md +49 -20
- package/templates/.claude/skills/req-workday/references/brief.md +81 -0
- package/templates/.claude/skills/req-workday/references/templates.md +6 -73
- package/templates/.claude/skills/req-workday/references/xlsx-format.md +19 -0
- package/templates/.claude/skills/req-workday/scripts/parse-workday.mjs +96 -20
- package/templates/.claude/skills/send-chat/SKILL.md +11 -11
- package/templates/.claude/skills/sync-apple-calendar/SKILL.md +3 -0
- package/templates/.claude/skills/sync-apple-mail/SKILL.md +3 -0
- package/templates/.claude/skills/sync-teams/SKILL.md +3 -0
- package/templates/.claude/skills/upstream-instructions/SKILL.md +8 -5
- package/templates/.claude/skills/upstream-instructions/references/examples.md +3 -3
- package/templates/CLAUDE.md +96 -87
- package/templates/MIGRATION.md +359 -0
- package/templates/registry.yaml +25 -0
- package/templates/.claude/skills/anarlog-follow/scripts/follow.mjs +0 -243
- 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
|
-
- `
|
|
33
|
-
- At least one `
|
|
34
|
-
- `
|
|
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 `
|
|
41
|
+
- All artifacts in `2-Confidential/Candidates/{Name}/`.
|
|
39
42
|
- Standard data via `fit-pathway`.
|
|
40
|
-
- `
|
|
41
|
-
- `
|
|
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
|
-
- `
|
|
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
|
-
- `
|
|
50
|
-
- Updated `
|
|
51
|
-
|
|
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
|
|
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
|
|
123
|
-
cat "
|
|
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
|
|
138
|
+
cat 2-Confidential/Candidates/Insights.md
|
|
134
139
|
|
|
135
|
-
for dir in
|
|
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
|
-
`
|
|
154
|
-
banner. Cite specific evidence in skill, behaviour, level, and
|
|
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 `
|
|
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
|
|
4
|
-
`
|
|
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
|
|
16
|
-
the cached synced data, and the agent
|
|
17
|
-
report** that records what you found,
|
|
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
|
-
- `
|
|
42
|
-
- Deleted files and redacted references across
|
|
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
|
|
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
|
-
> -
|
|
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
|
|
81
|
-
|
|
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 "
|
|
97
|
-
rm -f "
|
|
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
|
-
`
|
|
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}"
|
|
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
|
-
- `
|
|
149
|
-
- `
|
|
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 `
|
|
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
|
|
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
|
|
9
|
-
| **
|
|
10
|
-
| **
|
|
11
|
-
| **
|
|
12
|
-
| **
|
|
13
|
-
| **
|
|
14
|
-
| **
|
|
15
|
-
| **
|
|
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
|
|
4
|
-
|
|
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
|
-
##
|
|
7
|
+
## Direct notes, per tier
|
|
7
8
|
|
|
8
9
|
```bash
|
|
9
|
-
ls -d "
|
|
10
|
-
ls "
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
##
|
|
29
|
+
## Personal surfaces
|
|
18
30
|
|
|
19
31
|
```bash
|
|
20
|
-
rg -l "{Name}"
|
|
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/
|
|
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}"
|
|
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
|
-
`
|
|
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
|
-
- `
|
|
26
|
-
- `
|
|
27
|
-
- `
|
|
28
|
-
- `
|
|
29
|
-
- {
|
|
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
|
-
- `
|
|
33
|
-
- `
|
|
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}"
|
|
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
|
|
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
|
-
- `
|
|
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 "
|
|
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 `
|
|
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
|