@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
|
@@ -8,6 +8,9 @@ description: >
|
|
|
8
8
|
|
|
9
9
|
# Candidate Report
|
|
10
10
|
|
|
11
|
+
Write tier: `0-Draft` (the report is an export artifact)
|
|
12
|
+
Frontmatter: none
|
|
13
|
+
|
|
11
14
|
Generate a polished, single-page A4 HTML report that benchmarks a candidate
|
|
12
15
|
against a specific role in the agent-aligned engineering standard. The report
|
|
13
16
|
serves hiring managers and pod leads. They need a quick visual summary before
|
|
@@ -24,11 +27,11 @@ they decide whether to invest interview time.
|
|
|
24
27
|
- `@forwardimpact/pathway` CLI installed (`bunx fit-pathway --help`).
|
|
25
28
|
- Playwright for PDF output
|
|
26
29
|
(`bun install playwright && bunx playwright install chromium`).
|
|
27
|
-
- The candidate has a `brief.md` in `
|
|
30
|
+
- The candidate has a `brief.md` in `2-Confidential/Candidates/{Name}/`.
|
|
28
31
|
|
|
29
32
|
## Inputs
|
|
30
33
|
|
|
31
|
-
- **Candidate name** — locates `
|
|
34
|
+
- **Candidate name** — locates `2-Confidential/Candidates/{Name}/brief.md`.
|
|
32
35
|
- **Target role** — discipline, level, track (e.g.
|
|
33
36
|
`software-engineering J070 forward-deployed`). If the user does not give it,
|
|
34
37
|
infer it from the candidate's `Req` field → Role file. Ask the user when you
|
|
@@ -38,7 +41,7 @@ they decide whether to invest interview time.
|
|
|
38
41
|
|
|
39
42
|
## Outputs
|
|
40
43
|
|
|
41
|
-
- `
|
|
44
|
+
- `0-Draft/{Recipient}-{CandidateSurname}-Report.html` — the A4 one-pager.
|
|
42
45
|
- Optional PDF with `scripts/render-pdf.mjs`.
|
|
43
46
|
|
|
44
47
|
<do_confirm_checklist goal="Verify the report before delivering it">
|
|
@@ -64,17 +67,17 @@ they decide whether to invest interview time.
|
|
|
64
67
|
Read whatever exists for the candidate:
|
|
65
68
|
|
|
66
69
|
```text
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
70
|
+
2-Confidential/Candidates/{Name}/brief.md # required
|
|
71
|
+
2-Confidential/Candidates/{Name}/screening.md # if produced by req-screen
|
|
72
|
+
2-Confidential/Candidates/{Name}/interview-*.md # if produced by req-assess
|
|
73
|
+
2-Confidential/Candidates/{Name}/CV.pdf|CV.md # raw CV if needed
|
|
71
74
|
```
|
|
72
75
|
|
|
73
76
|
If `screening.md` exists, treat its skill and behaviour ratings as the primary
|
|
74
77
|
source. They are already standard-calibrated. Otherwise map them manually in
|
|
75
78
|
Step 3.
|
|
76
79
|
|
|
77
|
-
Search the graph for surrounding context: `rg "{Candidate Name}"
|
|
80
|
+
Search the graph for surrounding context: `rg "{Candidate Name}" [0-9]-*/`.
|
|
78
81
|
|
|
79
82
|
### 2. Load the standard benchmark
|
|
80
83
|
|
|
@@ -122,7 +125,7 @@ preview overflows, cut content.
|
|
|
122
125
|
Save the completed HTML to:
|
|
123
126
|
|
|
124
127
|
```text
|
|
125
|
-
|
|
128
|
+
0-Draft/{Recipient}-{CandidateSurname}-Report.html
|
|
126
129
|
```
|
|
127
130
|
|
|
128
131
|
`{Recipient}` is the first name of the person the report is for.
|
|
@@ -1,64 +1,79 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: changelog
|
|
3
|
-
description: Record the knowledge-graph changes from the current session into one
|
|
3
|
+
description: Record the knowledge-graph changes from the current session into one CHANGELOG.md per shared tier. The team can then see what changed and why. Use when the user asks to log, record, or write up the changes they just made to the knowledge base. This typically happens at the end of a session of edits.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Changelog
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
first. Teammates who sync the same filesystem can then see what changed and why.
|
|
8
|
+
Write tier: each shared tier (rank 1 and up)
|
|
9
|
+
Frontmatter: changelog
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
Record the changes to the **knowledge graph** (the tier directories) from the
|
|
12
|
+
current working session. Write them into one `CHANGELOG.md` per shared tier
|
|
13
|
+
(`<N>-<Label>/CHANGELOG.md`, ranks 1 and up), newest first. Teammates who
|
|
14
|
+
receive a tier can then see what changed in it and why.
|
|
15
|
+
|
|
16
|
+
The changelog is per tier because its audience is the tier's audience. An
|
|
17
|
+
entry never names a note in a narrower tier: a change to a tier-2 note goes
|
|
18
|
+
to `2-Confidential/CHANGELOG.md` only, never to `3-Team/CHANGELOG.md`.
|
|
19
|
+
`0-Draft/` keeps no changelog. Discover changelogs inside the tier
|
|
20
|
+
directories only.
|
|
21
|
+
|
|
22
|
+
This skill tracks **graph content**: the notes under each tier's entity
|
|
23
|
+
subdirectories (`People/`, `Organizations/`, `Projects/`, `Candidates/`, and
|
|
24
|
+
the rest). It does **not** track changes to instructions (`CLAUDE.md`,
|
|
25
|
+
agents, skills). The `upstream-instructions` skill owns those, and the root
|
|
26
|
+
instruction `CHANGELOG.md` is a personal surface this skill never touches.
|
|
17
27
|
|
|
18
28
|
## Trigger
|
|
19
29
|
|
|
20
30
|
- The user asks to write, update, or record a changelog after they edit the KB.
|
|
21
|
-
- A session added, modified, removed, or renamed notes in
|
|
22
|
-
wants a record of those changes for the team.
|
|
31
|
+
- A session added, modified, removed, or renamed notes in a shared tier. The
|
|
32
|
+
user wants a record of those changes for the team.
|
|
23
33
|
|
|
24
34
|
## Inputs
|
|
25
35
|
|
|
26
|
-
- **The edits made in the current session** — the source of truth.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
- **The edits made in the current session** — the source of truth. A tier may
|
|
37
|
+
sync over a mount with no version control, so never rely on commit history.
|
|
38
|
+
Recall every note that you created, edited, removed, or renamed in a shared
|
|
39
|
+
tier during this conversation.
|
|
30
40
|
- `~/.cache/fit/outpost/state/identity.md` — the current user's identity. Use
|
|
31
|
-
its **Name** as the author on each entry. The
|
|
41
|
+
its **Name** as the author on each entry. The tiers are shared, so every entry
|
|
32
42
|
must name the team member who made the change. Resolve `~` to `$HOME` before
|
|
33
43
|
you read it.
|
|
34
|
-
-
|
|
35
|
-
already recorded and to avoid duplicates.
|
|
44
|
+
- `<N>-<Label>/CHANGELOG.md` per shared tier — the existing changelogs. Read
|
|
45
|
+
them to see what is already recorded and to avoid duplicates.
|
|
36
46
|
|
|
37
47
|
## Outputs
|
|
38
48
|
|
|
39
|
-
- `
|
|
40
|
-
covers
|
|
49
|
+
- One `CHANGELOG.md` per shared tier that had changes: a
|
|
50
|
+
reverse-chronological log that covers that tier's subdirectories. No
|
|
51
|
+
per-folder or per-note changelogs, and none in `0-Draft/`.
|
|
41
52
|
|
|
42
53
|
## Ethics
|
|
43
54
|
|
|
44
|
-
The team shares
|
|
45
|
-
objective and factual, work-relevant, no personal judgments.
|
|
46
|
-
note is about will read its changelog entry. Describe
|
|
55
|
+
The team shares each tier with its own audience. Every entry obeys the KB's
|
|
56
|
+
integrity rules: objective and factual, work-relevant, no personal judgments.
|
|
57
|
+
Assume the person a note is about will read its changelog entry. Describe
|
|
47
58
|
**what changed in the graph**. Do not record opinions about the people in it.
|
|
48
59
|
|
|
49
60
|
<do_confirm_checklist goal="Verify the changelog is accurate and shareable">
|
|
50
61
|
|
|
51
|
-
- [ ] Keep exactly one `
|
|
52
|
-
changelog
|
|
53
|
-
- [ ]
|
|
54
|
-
|
|
55
|
-
- [ ]
|
|
56
|
-
**Why
|
|
57
|
-
- [ ] Make
|
|
58
|
-
notes").
|
|
62
|
+
- [ ] Keep exactly one `CHANGELOG.md` per shared tier, at the tier root.
|
|
63
|
+
Leave no stray per-folder changelog and none in `0-Draft/`.
|
|
64
|
+
- [ ] Route every entry to the changelog of the tier that holds the changed
|
|
65
|
+
note. Never name a narrower tier's note in a wider tier's changelog.
|
|
66
|
+
- [ ] Write every entry as **one line**: type, **Scope** (tier-prefixed
|
|
67
|
+
paths), **Who**, and a short pointer. No `What:`/`Why:` blocks.
|
|
68
|
+
- [ ] Make the pointer specific enough to locate the change (never "updated
|
|
69
|
+
some notes").
|
|
59
70
|
- [ ] Use the real date of each change. Never guess a date.
|
|
60
71
|
- [ ] Add no duplicate entry for a change already in the changelog.
|
|
61
72
|
- [ ] Keep every entry factual and fit for the subject to read.
|
|
73
|
+
- [ ] Stamp the frontmatter core (`type: changelog`, `created`, `updated`) on
|
|
74
|
+
a changelog you create; stamp `updated` on one you edit.
|
|
75
|
+
- [ ] Keep each file short (see Step 5). Compact or drop old entries when it
|
|
76
|
+
grows.
|
|
62
77
|
|
|
63
78
|
</do_confirm_checklist>
|
|
64
79
|
|
|
@@ -67,8 +82,8 @@ note is about will read its changelog entry. Describe
|
|
|
67
82
|
### 1. Find what's already recorded, and who you are
|
|
68
83
|
|
|
69
84
|
```bash
|
|
70
|
-
head -30
|
|
71
|
-
cat "$HOME/.cache/fit/outpost/state/identity.md" # Name → the author
|
|
85
|
+
head -30 3-Team/CHANGELOG.md 2>/dev/null # per tier you changed
|
|
86
|
+
cat "$HOME/.cache/fit/outpost/state/identity.md" # Name → the author
|
|
72
87
|
```
|
|
73
88
|
|
|
74
89
|
If `identity.md` is missing or stale, run the `person-identify` skill to refresh
|
|
@@ -76,22 +91,23 @@ it before you log the changes. Never guess the author.
|
|
|
76
91
|
|
|
77
92
|
### 2. Reconstruct this session's changes
|
|
78
93
|
|
|
79
|
-
Recall every change you made to
|
|
80
|
-
creations, edits, removals, and renames. Group them by note
|
|
81
|
-
that a change landed, confirm it before you
|
|
94
|
+
Recall every change you made to the shared tiers during the current
|
|
95
|
+
conversation: creations, edits, removals, and renames. Group them by note,
|
|
96
|
+
then by tier. If you are unsure that a change landed, confirm it before you
|
|
97
|
+
log it:
|
|
82
98
|
|
|
83
99
|
```bash
|
|
84
|
-
rg --files
|
|
85
|
-
cat "
|
|
100
|
+
rg --files [0-9]-*/ | rg "<note name>" # confirm a note exists
|
|
101
|
+
cat "3-Team/People/Doe, Jane.md" # confirm content landed
|
|
86
102
|
```
|
|
87
103
|
|
|
88
104
|
Optionally, surface anything you edited recently and might have missed:
|
|
89
105
|
|
|
90
106
|
```bash
|
|
91
|
-
find
|
|
107
|
+
find [0-9]-* -name '*.md' -newermt '-1 day' -not -path '*/.*'
|
|
92
108
|
```
|
|
93
109
|
|
|
94
|
-
Use `
|
|
110
|
+
Use each tier's `CHANGELOG.md` only to avoid a duplicate of an entry already
|
|
95
111
|
there.
|
|
96
112
|
|
|
97
113
|
### 3. Classify each change
|
|
@@ -104,38 +120,72 @@ there.
|
|
|
104
120
|
| `renamed` | Note renamed or moved |
|
|
105
121
|
|
|
106
122
|
Some related changes form one logical edit. An example is a new project note
|
|
107
|
-
plus the backlinks to the people it involves. Record these as **one entry
|
|
108
|
-
|
|
123
|
+
plus the backlinks to the people it involves. Record these as **one entry**
|
|
124
|
+
when they live in one tier. Changes that span tiers split into one entry per
|
|
125
|
+
tier, each naming only that tier's notes.
|
|
109
126
|
|
|
110
127
|
### 4. Write the changelog
|
|
111
128
|
|
|
112
|
-
Create or update `
|
|
113
|
-
one heading per day. Write one bullet per logical change
|
|
129
|
+
Create or update the changed tiers' `CHANGELOG.md` files (newest first).
|
|
130
|
+
Group entries under one heading per day. Write one bullet per logical change.
|
|
131
|
+
A new changelog opens with the frontmatter core (`type: changelog`,
|
|
132
|
+
`created`, `updated`); an edited one gets a fresh `updated`.
|
|
114
133
|
|
|
115
134
|
```markdown
|
|
116
|
-
|
|
135
|
+
---
|
|
136
|
+
type: changelog
|
|
137
|
+
created: 2026-01-01
|
|
138
|
+
updated: 2026-01-01
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
# Team Changelog
|
|
117
142
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
143
|
+
Terse, newest-first pointers to changes in this tier. This is a hint for
|
|
144
|
+
teammates who sync the same files, not a precious record. The `changelog`
|
|
145
|
+
skill maintains it, and compacts and drops old entries as the file grows.
|
|
121
146
|
|
|
122
147
|
## <YYYY-MM-DD>
|
|
123
148
|
|
|
124
|
-
- **<added | modified | removed | renamed>** — _<Scope:
|
|
125
|
-
**What:** <one-line summary of the change.>
|
|
126
|
-
**Why:** <the reason — the email, meeting, or request that prompted it.>
|
|
149
|
+
- **<added | modified | removed | renamed>** — _<Scope: tier-prefixed path(s)>_ · <Who> — <short pointer: what changed, and why only if it isn't obvious.>
|
|
127
150
|
```
|
|
128
151
|
|
|
152
|
+
**Keep entries brief — a pointer, not a summary.** One line each. State the
|
|
153
|
+
type, the scope (tier-prefixed paths), the author, and a short clause that
|
|
154
|
+
lets a teammate find the change and grasp its gist. Do **not** reproduce the
|
|
155
|
+
content of the edit. If someone needs the detail, they open the note.
|
|
156
|
+
|
|
129
157
|
Use the real date of the change (today's date is in context). Use the **Name**
|
|
130
158
|
from `identity.md` as `<Who>`. The team shares the file, so the author travels
|
|
131
|
-
on each entry.
|
|
132
|
-
|
|
133
|
-
|
|
159
|
+
on each entry.
|
|
160
|
+
|
|
161
|
+
Collapse related same-tier edits into one line. Several notes touched for one
|
|
162
|
+
purpose, or the same note created-then-reworked in a session, is a single
|
|
163
|
+
entry. Combine the types (e.g. `**added / renamed**`) and name the notes in
|
|
164
|
+
the scope.
|
|
165
|
+
|
|
166
|
+
### 5. Compact each file when it grows
|
|
167
|
+
|
|
168
|
+
A changelog is a **disposable hint file, not an archive**. The notes
|
|
169
|
+
themselves are the record. Keep it short. After you add this session's
|
|
170
|
+
entries, compact the file in the same pass when it has grown large (rough
|
|
171
|
+
guide: **more than ~150 lines, or older than ~2 months of daily headings**):
|
|
172
|
+
|
|
173
|
+
- **Roll up old days.** Fold each day older than ~2 weeks into one or two
|
|
174
|
+
thematic lines per author.
|
|
175
|
+
- **Merge iterative churn.** Collapse a run of edits to the same file or
|
|
176
|
+
topic into a single line that describes the net result.
|
|
177
|
+
- **Drop the stale tail.** Delete day headings older than ~2–3 months
|
|
178
|
+
outright. The change already lives in the notes.
|
|
179
|
+
|
|
180
|
+
Be aggressive: losing granularity here costs nothing. Never rewrite an entry
|
|
181
|
+
to say something the edit did not do. Do not drop a *recent* change just to
|
|
182
|
+
save space.
|
|
134
183
|
|
|
135
184
|
## Notes
|
|
136
185
|
|
|
137
186
|
- This skill **documents only**. It records changes you already made. It does
|
|
138
187
|
not make or undo edits.
|
|
139
|
-
- One `
|
|
188
|
+
- One `CHANGELOG.md` per shared tier, at the tier root, never per-folder.
|
|
140
189
|
- For changes to instructions (`CLAUDE.md`, agents, skills), use
|
|
141
|
-
`upstream-instructions` instead.
|
|
190
|
+
`upstream-instructions` instead; its root `CHANGELOG.md` is a separate
|
|
191
|
+
personal artifact.
|
|
@@ -6,6 +6,9 @@ compatibility: Requires Node.js. The skill installs Playwright on first use.
|
|
|
6
6
|
|
|
7
7
|
# Create Presentations
|
|
8
8
|
|
|
9
|
+
Write tier: `0-Draft`
|
|
10
|
+
Frontmatter: none
|
|
11
|
+
|
|
9
12
|
Generate PDF slide decks from user requests. Playwright renders the HTML slides
|
|
10
13
|
to PDF. This skill can pull context from the knowledge base for company info,
|
|
11
14
|
project details, and people.
|
|
@@ -22,7 +25,7 @@ Run when the user asks to create a presentation, slide deck, or pitch deck.
|
|
|
22
25
|
## Inputs
|
|
23
26
|
|
|
24
27
|
- User's description of the presentation
|
|
25
|
-
- `
|
|
28
|
+
- `3-Team/` — optional context about company, product, team, projects
|
|
26
29
|
|
|
27
30
|
## Outputs
|
|
28
31
|
|
|
@@ -32,7 +35,7 @@ Run when the user asks to create a presentation, slide deck, or pitch deck.
|
|
|
32
35
|
|
|
33
36
|
## Workflow
|
|
34
37
|
|
|
35
|
-
1. Check `
|
|
38
|
+
1. Check `3-Team/` for relevant context about the company, product, team,
|
|
36
39
|
etc.
|
|
37
40
|
2. Make sure Playwright is installed:
|
|
38
41
|
`bun install playwright && bunx playwright install chromium`
|
|
@@ -54,6 +57,59 @@ The conversion script accepts optional arguments:
|
|
|
54
57
|
Defaults: input = `/tmp/outpost-presentation.html`, output =
|
|
55
58
|
`~/Desktop/presentation.pdf`
|
|
56
59
|
|
|
60
|
+
## Source Annotations — REQUIRED
|
|
61
|
+
|
|
62
|
+
Decks are condensed views of source documents (knowledge-base notes, drafts
|
|
63
|
+
under `0-Draft/`, project docs). As a deck is iterated on, improvements get
|
|
64
|
+
**back-ported** to those sources. So every deck must record what maps where.
|
|
65
|
+
Embed the mapping as HTML comments (invisible in the browser and in the PDF).
|
|
66
|
+
A deck with untraceable content is incomplete.
|
|
67
|
+
|
|
68
|
+
### Comment syntax
|
|
69
|
+
|
|
70
|
+
<!-- src: <relative-path>#<heading> -->
|
|
71
|
+
<!-- src-note: <free text> -->
|
|
72
|
+
|
|
73
|
+
- `src:` maps the **next element** (and everything inside it) to a source file
|
|
74
|
+
or section. A nested `src:` overrides its parent for that subtree.
|
|
75
|
+
- The path is **relative to the deck file itself**. The heading is the exact
|
|
76
|
+
markdown heading text without the leading `#`-marks, as in an Obsidian
|
|
77
|
+
`[[file#heading]]` link. Omit `#<heading>` to map to the whole file.
|
|
78
|
+
- `src: #<heading>` (path omitted) inherits the path from the nearest
|
|
79
|
+
**enclosing** `src:`. Use this for repeated sections within one annotated
|
|
80
|
+
slide, so the doc path is stated once per slide.
|
|
81
|
+
- `src-note:` records exceptions and nuances in prose: content synthesized
|
|
82
|
+
from multiple sources, deliberately omitted source fields, or deviations
|
|
83
|
+
from the field conventions.
|
|
84
|
+
|
|
85
|
+
### Placement rules
|
|
86
|
+
|
|
87
|
+
1. **Legend first.** Put one legend comment right after `<body>`. It explains
|
|
88
|
+
the syntax and the deck's field conventions (see below). Never nest a
|
|
89
|
+
literal `<!--` inside it — write the syntax without comment delimiters.
|
|
90
|
+
2. **One `src:` per slide**, mapping it to its primary source document, placed
|
|
91
|
+
immediately before the `<section class="slide">`.
|
|
92
|
+
3. **One `src:` per repeated content block** (a goal, a priority, a feature
|
|
93
|
+
card…), mapping it to the source section heading, placed immediately
|
|
94
|
+
before the block's opening tag.
|
|
95
|
+
4. **Field conventions instead of per-paragraph comments.** When a block's
|
|
96
|
+
inner elements map 1:1 to labelled source fields (e.g. `.card.why p` ↔
|
|
97
|
+
`**Why it matters:**`), declare that mapping **once in the legend**.
|
|
98
|
+
Annotate individual elements only when they deviate — then use `src-note:`.
|
|
99
|
+
5. **Synthesized content** (title pages, summary slides that condense several
|
|
100
|
+
sources) gets a `src-note:` saying what it draws on.
|
|
101
|
+
|
|
102
|
+
### Authoring for back-portability
|
|
103
|
+
|
|
104
|
+
- Keep deck headings **verbatim from the source headings** where possible.
|
|
105
|
+
The anchor then doubles as an integrity check.
|
|
106
|
+
- Keep stable IDs from the sources (A1, B2, goal numbers) visible in the deck
|
|
107
|
+
content, so items self-identify even if comments are stripped.
|
|
108
|
+
- When back-porting: treat the deck text as the edited version of the mapped
|
|
109
|
+
source field. Apply the change to the source file at the given heading.
|
|
110
|
+
Carry the substance back, not the deck's condensed formatting. Find all
|
|
111
|
+
annotations with `rg '<!-- src' <deck>.html`.
|
|
112
|
+
|
|
57
113
|
## PDF Rendering Rules
|
|
58
114
|
|
|
59
115
|
**These rules prevent problems when the PDF renders:**
|
|
@@ -109,6 +165,8 @@ See that skill for the install steps and the sidecar JSON schema.
|
|
|
109
165
|
## Constraints
|
|
110
166
|
|
|
111
167
|
- Always use the knowledge base for context when available
|
|
168
|
+
- Always embed source annotations (`src:` / `src-note:` comments + legend)
|
|
169
|
+
that map deck sections to their source documents — see Source Annotations
|
|
112
170
|
- Output to `~/Desktop/presentation.pdf` unless the user specifies otherwise
|
|
113
171
|
- Keep slides clean and readable (max 5-6 bullet points per slide)
|
|
114
172
|
- Use the same styles throughout
|
|
@@ -6,6 +6,9 @@ compatibility: Standalone HTML deck opened in a Chromium-based browser (Chrome/E
|
|
|
6
6
|
|
|
7
7
|
# Add a Review Overlay to a Deck
|
|
8
8
|
|
|
9
|
+
Write tier: `0-Draft`
|
|
10
|
+
Frontmatter: none
|
|
11
|
+
|
|
9
12
|
Install the self-contained `slide-annotator.js` overlay onto an HTML deck. The
|
|
10
13
|
user can then **highlight text on a slide and save the feedback as a sidecar
|
|
11
14
|
JSON**. Each annotation carries a robust anchor (exact text + the context around
|
|
@@ -26,7 +29,7 @@ reviewable" or asks to set up a feedback loop on slides.
|
|
|
26
29
|
## Inputs
|
|
27
30
|
|
|
28
31
|
- Path to the target deck `.html` file (ask, or default to the most recently
|
|
29
|
-
edited `*.html` in `
|
|
32
|
+
edited `*.html` in `0-Draft/`).
|
|
30
33
|
- The bundled tool at `assets/slide-annotator.js`. This skill's own copy is the
|
|
31
34
|
source of truth. Edit it here, then re-install it to update decks.
|
|
32
35
|
|
|
@@ -6,6 +6,9 @@ compatibility: Node.js only — no external dependencies.
|
|
|
6
6
|
|
|
7
7
|
# Synthesize Deck
|
|
8
8
|
|
|
9
|
+
Write tier: `0-Draft` (promotion is a human act)
|
|
10
|
+
Frontmatter: none
|
|
11
|
+
|
|
9
12
|
Turn messy PowerPoint specification decks into clear, actionable markdown briefs
|
|
10
13
|
that forward deployed engineers can build from. Strip business jargon. Focus on
|
|
11
14
|
what matters: what the team must build, what blocks progress, and what data you
|
|
@@ -31,7 +34,8 @@ Run when the user wants to understand what a project deck really asks for.
|
|
|
31
34
|
## Outputs
|
|
32
35
|
|
|
33
36
|
- One markdown file per deck (or one combined file for related decks) written to
|
|
34
|
-
`
|
|
37
|
+
`0-Draft/{Project Name} - Engineering Brief.md`. The human promotes a
|
|
38
|
+
finished brief into `3-Team/Projects/`.
|
|
35
39
|
|
|
36
40
|
<do_confirm_checklist goal="Verify the brief is engineer-actionable before
|
|
37
41
|
delivering">
|
|
@@ -131,7 +135,7 @@ infrastructure. Call out timeline–scope mismatches.
|
|
|
131
135
|
|
|
132
136
|
Use the structure in
|
|
133
137
|
[references/brief-template.md](references/brief-template.md). Save to
|
|
134
|
-
`
|
|
138
|
+
`0-Draft/{Project Name} - Engineering Brief.md`. For multiple related
|
|
135
139
|
decks, write one combined brief with shared dependencies.
|
|
136
140
|
|
|
137
141
|
### 9. Save and report
|
|
@@ -5,9 +5,13 @@ description: Help the user create, edit, and refine documents in the knowledge b
|
|
|
5
5
|
|
|
6
6
|
# Document Collaboration
|
|
7
7
|
|
|
8
|
+
Write tier: `0-Draft` (working copies; the human promotes)
|
|
9
|
+
Frontmatter: none
|
|
10
|
+
|
|
8
11
|
Help the user create, edit, and refine documents in the knowledge base. This
|
|
9
12
|
skill supports direct edits and approval-based workflows. It always uses context
|
|
10
|
-
from the knowledge base for entity references.
|
|
13
|
+
from the knowledge base for entity references. New documents start in
|
|
14
|
+
`0-Draft/`. The human promotes a finished document into its tier.
|
|
11
15
|
|
|
12
16
|
## Trigger
|
|
13
17
|
|
|
@@ -15,17 +19,18 @@ Run when the user asks to create, edit, review, or collaborate on a document.
|
|
|
15
19
|
|
|
16
20
|
## Prerequisites
|
|
17
21
|
|
|
18
|
-
-
|
|
22
|
+
- The KB root exists with its tier directories
|
|
19
23
|
|
|
20
24
|
## Inputs
|
|
21
25
|
|
|
22
26
|
- The user's edit instructions
|
|
23
|
-
-
|
|
27
|
+
- The tier directories — existing notes and documents
|
|
24
28
|
- Document to edit (user-specified or searched)
|
|
25
29
|
|
|
26
30
|
## Outputs
|
|
27
31
|
|
|
28
|
-
-
|
|
32
|
+
- New documents in `0-Draft/` (or a user-specified location)
|
|
33
|
+
- Modified documents in the tier where the user points
|
|
29
34
|
|
|
30
35
|
---
|
|
31
36
|
|
|
@@ -54,8 +59,8 @@ Follow their choice for the entire session.
|
|
|
54
59
|
Search thoroughly before you say a document doesn't exist:
|
|
55
60
|
|
|
56
61
|
```bash
|
|
57
|
-
rg -l -i "roadmap"
|
|
58
|
-
find
|
|
62
|
+
rg -l -i "roadmap" [0-9]-*/
|
|
63
|
+
find [0-9]-*/ -iname "*roadmap*" 2>/dev/null
|
|
59
64
|
```
|
|
60
65
|
|
|
61
66
|
**If found:** Read it. Then proceed. **If NOT found:** Ask "I couldn't find
|
|
@@ -63,7 +68,7 @@ find Knowledge/ -iname "*roadmap*" 2>/dev/null
|
|
|
63
68
|
|
|
64
69
|
**Create a new document:**
|
|
65
70
|
|
|
66
|
-
1. Ask: "Shall I create
|
|
71
|
+
1. Ask: "Shall I create 0-Draft/[name].md?"
|
|
67
72
|
2. Create it with just a title. Don't pre-populate it with structure
|
|
68
73
|
3. Ask: "What would you like in this?"
|
|
69
74
|
|
|
@@ -92,14 +97,14 @@ reorganize unless the user asks.
|
|
|
92
97
|
- Ask: "What's next?"
|
|
93
98
|
- Don't read back the entire document unless asked
|
|
94
99
|
|
|
95
|
-
## Search
|
|
100
|
+
## Search the Graph for Context
|
|
96
101
|
|
|
97
102
|
When the user mentions people, companies, or projects:
|
|
98
103
|
|
|
99
104
|
```bash
|
|
100
|
-
rg -l "Name"
|
|
101
|
-
cat "
|
|
102
|
-
cat "
|
|
105
|
+
rg -l "Name" [0-9]-*/
|
|
106
|
+
cat "3-Team/People/Person.md"
|
|
107
|
+
cat "3-Team/Organizations/Company.md"
|
|
103
108
|
```
|
|
104
109
|
|
|
105
110
|
Use `[[wiki-links]]` to connect to other notes. Only link to notes that exist.
|
|
@@ -6,6 +6,9 @@ compatibility: Requires Node.js installed. Playwright is installed on first use.
|
|
|
6
6
|
|
|
7
7
|
# Create Documents
|
|
8
8
|
|
|
9
|
+
Write tier: `0-Draft`
|
|
10
|
+
Frontmatter: none
|
|
11
|
+
|
|
9
12
|
Generate multi-page A4 PDF documents from user requests. This skill uses
|
|
10
13
|
Playwright to render self-contained HTML to PDF. It can pull context from the
|
|
11
14
|
knowledge base for company info, project details, and people.
|
|
@@ -23,18 +26,18 @@ submission, brief, or any multi-page PDF that is not a slide deck.
|
|
|
23
26
|
## Inputs
|
|
24
27
|
|
|
25
28
|
- User's description of the document
|
|
26
|
-
- `
|
|
29
|
+
- `3-Team/` — optional context about company, product, team, projects
|
|
27
30
|
|
|
28
31
|
## Outputs
|
|
29
32
|
|
|
30
33
|
- An HTML file and a PDF rendered from it, placed where the user specifies
|
|
31
|
-
(default: `
|
|
34
|
+
(default: `0-Draft/`; the human promotes a finished document into its tier)
|
|
32
35
|
|
|
33
36
|
---
|
|
34
37
|
|
|
35
38
|
## Workflow
|
|
36
39
|
|
|
37
|
-
1. Check `
|
|
40
|
+
1. Check `3-Team/` for relevant context about the company, product, team,
|
|
38
41
|
projects, or people mentioned.
|
|
39
42
|
2. Make sure Playwright is installed:
|
|
40
43
|
`bun install playwright && bunx playwright install chromium`
|