skills/archive/okr-self-review/SKILL.md
Generate a structured performance self-review. Load when user says "review my performance - [name]", "review my performance", "self-review", "performance review", or "quarter review". Pulls all data from Notion (OKRs, Key Projects, Skills, Core Behaviours) and cross-references with Nexus chat logs, BEO Slack data, and Fathom meetings.
npx skillsauth add beam-ai-team/beam-next-skills okr-self-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Archived skill. Kept for reference only; do not expose as a public active catalog skill without modernizing the Nexus/BEO/Notion dependencies and old Beam Next paths.
Before fetching OKRs/evidence, saving self-review output, or writing back to Notion, show the person, review period, data sources, target Notion page or file path, and fields to update. Require explicit user approval in the current turn before fetching from external systems, writing files, or updating Notion records. Drafting an in-chat self-review from user-provided text does not require approval.
Generate evidence-backed performance self-reviews by pulling OKRs from Notion and cross-referencing with Fathom meetings, Nexus chat logs, BEO Slack data, and workspace artifacts. Produces ratings, progress bullets, and persona feedback — then writes results back to Notion.
Trigger:
review my performance - {name}Output: Performance review report (conversation response)
Required: Notion page with child databases (Functional OKRs, AI Native OKRs, Key Projects, Functional Skills, Core Behaviours)
Enhanced by (optional): BEO progress data, Fathom meeting transcripts, Nexus chat logs
python3 skills/integrations/notion/notion-master/scripts/check_notion_config.py --json
Read 01-memory/user-config.yaml for notion_page_id.
If missing: Ask user for their Notion page URL, extract ID, save to user-config.yaml.
Scan and report:
Data sources for your review:
[x] Notion — {N} databases found
[x] Nexus chat logs — {N} days
[ ] BEO progress data — not configured
[x] Fathom meetings — API key found
Extract name from review my performance - {name}.
Default period: Current quarter (Q1: Jan-Mar, Q2: Apr-Jun, Q3: Jul-Sep, Q4: Oct-Dec).
python3 03-skills/okr-self-review/scripts/fetch_okrs.py \
--page-id <NOTION_PAGE_ID> \
--include-done \
--json
Returns JSON with 5 sections: functional_okrs, ai_native_okrs, key_projects, functional_skills, core_behaviours. Each entry includes: page_id, text, status, self_rating, checkin_6months, checkin_3months, quarter, year, and _prop_map (actual Notion property names/types for write-back).
If Step 1 returns zero OKRs (exit code 2, empty databases, or no Notion page): proceed to Step 1.5.
Triggered when the individual has no active OKRs in Notion. Instead of stopping, the skill reverse-engineers objectives from activity data.
Notify the user:
No active OKRs found in Notion for {name}. Switching to inference mode —
I'll reverse-engineer objectives from your activity data across all available sources.
Proceed to Step 2 (Gather Evidence) as normal — collect all available sources
Analyze evidence to extract work themes:
Cluster themes into 3–6 inferred OKRs:
Flag as inferred: All inferred items are marked [Inferred] in the output so the reviewer knows these were not from Notion
Write-back handling: Since there are no existing Notion rows, skip the normal write-back. Instead, after showing the review, offer:
These OKRs were inferred from your activity data. Would you like me to:
1. Create these as OKRs in your Notion page?
2. Save the review as-is (no Notion changes)?
From all available sources in parallel:
01-memory/chat/*.md within review periodBEO_SHEET_ID in .env): Run fetch_beo_data.pyFATHOM_API_KEY in .env): Fetch meetings via API01-memory/goals.md, core-learnings.md, 04-workspace/ artifactsFor each item from Notion, map evidence from data sources and generate the review using the output template below.
After the review is generated and shown to the user, ask:
Would you like me to push the ratings and progress back to your Notion databases?
If yes: Build a JSON array of updates from the review output:
[
{
"page_id": "<from fetch_okrs.py output>",
"text": "OKR title",
"updates": {
"self_rating": {
"value": "<suggested rating, e.g. 4>",
"prop_name": "<from _prop_map.self_rating.name>",
"prop_type": "<from _prop_map.self_rating.type>"
},
"checkin_6months": {
"value": "<progress bullets as text>",
"prop_name": "<from _prop_map.checkin_6months.name>",
"prop_type": "<from _prop_map.checkin_6months.type>"
}
}
}
]
Save to a temp file and run:
python3 03-skills/okr-self-review/scripts/write_review.py \
--input <temp_file.json>
The script updates each Notion row via PATCH /v1/pages/{page_id}. Supports --dry-run to preview changes without writing.
Write-back fields:
self_rating → Suggested rating (written to Self Rating select property)checkin_6months → Progress bullets (written to Checkin Remarks (6months) rich_text property)self_remarks → Overall remarks if applicableNote: Only write back to databases that have the relevant properties (e.g., Core Behaviours and Functional Skills may not have checkin columns).
| Rating | Meaning | |--------|---------| | 5 | Exceptional — significantly exceeded expectations | | 4 | Strong — exceeded expectations in notable ways | | 3 | Solid — met expectations consistently | | 2 | Developing — partially met, clear gaps | | 1 | Below — did not meet expectations |
Weight evidence: BEO data > workspace artifacts > chat logs > inferred.
Use famous evaluators whose domain matches the work being reviewed. Keep feedback to 2-3 lines max. Direct, specific, no fluff.
| Domain | Personas | |--------|----------| | General / Execution | Keith Rabois, Frank Slootman, Patty McCord | | People / HR / Culture | Laszlo Bock, Patty McCord, Adam Grant | | Product / Customer | Jeff Bezos, Marty Cagan | | Engineering / Technical | Kelsey Hightower, Werner Vogels | | Marketing | Seth Godin, April Dunford | | Strategy / Org Design | Ram Charan, Roger Martin |
Use the standard template when OKRs exist in Notion. When OKRs are inferred (Step 1.5), use the [Inferred] variant below.
# Performance Review Cycle Ph {phase}, {year}
# Self-Review: {name}
**Review Period**: {start_date} to {end_date}
**Data Sources**: {list}
**Mode**: {Standard | Inferred — "Inferred" when no OKRs found in Notion}
---
## Functional OKRs
### OKR {N}: {text}
**Status**: {status} | **Self Rating**: {self_rating or "—"}
**Progress**:
- {bullet 1 — specific evidence with source tag [Chat], [BEO], [Fathom], [Workspace]}
- {bullet 2}
- {bullet 3}
- {bullet 4 — max 4-5 bullets}
**Suggested Rating**: {X}/5
**Feedback** *({Persona Name})*: "{2-3 lines. Direct, specific, actionable.}"
---
## AI Native OKRs
### AI Native OKR {N}: {text}
**Status**: {status} | **Self Rating**: {self_rating or "—"}
**Progress**:
- {4-5 bullets max}
**Suggested Rating**: {X}/5
**Feedback** *({Persona Name})*: "{2-3 lines.}"
---
### [Inferred] OKR Template (used when Step 1.5 is triggered)
### OKR {N}: {text} [Inferred]
**Source**: {Fathom, Chat, BEO, Workspace — primary evidence sources}
**Evidence**:
- {bullet 1 — specific evidence with source tag [Chat], [BEO], [Fathom], [Workspace]}
- {bullet 2}
- {bullet 3}
- {bullet 4 — max 4-5 bullets}
**Suggested Rating**: {X}/5
**Feedback** *({Persona Name})*: "{2-3 lines. Direct, specific, actionable.}"
---
## Key Projects
Use Key Projects from Notion. If the Notion list is incomplete,
supplement with major projects identified from evidence (chat logs,
workspace artifacts, Fathom meetings).
When in inference mode, extract all key projects from evidence.
### Project {N}: {text}
**Related OKRs**: {which OKRs this contributes to}
**Status**: {status} | **Self Rating**: {self_rating or "—"}
**Progress**:
- {4-5 bullets max}
**Suggested Rating**: {X}/5
**Feedback** *({Persona Name})*: "{2-3 lines.}"
---
## Functional Skills
Use Functional Skills from Notion as the base list.
### Skill {N}: {text}
**Self Rating**: {self_rating or "—"}
**Utilised in**: {OKR, project, or activity where demonstrated}
**Suggested Rating**: {X}/5
---
## Core Behaviours
Use Core Behaviours from Notion (the 7 Beam values).
### {N}. {behaviour text}
**Instance Displayed**:
- {bullet 1 — specific evidence}
- {bullet 2}
- {bullet 3 — max 3-4 bullets}
**Suggested Rating**: {X}/5
---
## Overall Feedback
{Crisp, direct. 1 short paragraph. No sugar coating.
What you shipped, where you fell short, what to fix.
Reference actual work. End with one clear action for next period.}
| Scenario | Handling |
|----------|----------|
| No Notion page ID | Ask user; save to user-config.yaml |
| Database names differ | List found databases; ask user |
| All OKRs Done | Include them (--include-done flag) |
| No active OKRs in Notion | Trigger Step 1.5: infer OKRs from evidence sources (Fathom, chat, BEO, workspace). Mark as [Inferred]. Offer to create in Notion. |
| No Notion page at all | Skip Step 1 entirely. Gather evidence from all other sources. Run full inference mode. |
| Missing data sources | Skip gracefully; note in sources list |
| Key Projects list incomplete in Notion | Supplement from evidence |
| Core behaviours not in Notion | Use defaults: Ownership, Execution, Collaboration, Growth, AI-Native, Quality, Experimentation |
| Skill | Relationship |
|-------|-------------|
| notion-connect | Config check, API access |
| fathom-fetch-meetings | Meeting data source |
| google-sheets | BEO progress data source |
| beo-okr-bot | Shares Notion OKR data model |
Version: 2.2 | Updated: 2026-03-05
tools
Build a Palantir-shape, PDF-native use-case proposal document for a sophisticated enterprise account: research-grounded use cases (each with description, challenge, impact, value), an operating-graph ontology page, a recommended PoC with a week-by-week plan, and a closing page that asks for one decision. Load when a client asks us to 'propose high-impact use cases', requests a use-case presentation/catalog for a function (finance, HR, ops), or when a technical evaluation team will review candidates to pick a PoC. NOT for single-account cold outreach (use prospect-brief), full process diagnostics (use operating-diagnostic), or priced proposals (use proposal-creation).
development
Convert Beam Figma slide designs into high-fidelity, editable HTML presentation decks. Use when Codex is asked to audit Figma slides, extract slide templates, rebuild Beam slides as HTML decks, decide whether Figma imagery should be exported or rebuilt in HTML/CSS, create Beam/Prism-compatible deck templates, or improve fidelity of existing Beam HTML slide rebuilds.
development
Use the Beam AI reusable slide library: individual HTML slide templates extracted from Beam Figma rebuilds, kept separate from deck themes and full deck templates. Load when the user asks for a slide library, specific Beam slide patterns, reusable Figma-inspired slides, Prism slide-library items, or slide-level HTML templates.
development
Use Beam AI deck and report design packs, HTML templates, and curated examples to create sales decks, customer intro decks, RPO decks, and DIN A4 use-case proposal reports. Load when the user asks for Beam-branded presentation templates, Prism-compatible deck templates, Beam report templates, customer intro decks, commercial proposals, or reusable HTML deck/report examples.