Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Office Hour Legends

v1.0.0

Legends - run a YC-style office hours session simulated by a specific YC partner or alumnus of your choice. Drop markdown persona files (identity.md, soul.md...

0· 87·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for prodigalson/office-hour-legends.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Office Hour Legends" (prodigalson/office-hour-legends) from ClawHub.
Skill page: https://clawhub.ai/prodigalson/office-hour-legends
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install office-hour-legends

ClawHub CLI

Package manager switcher

npx clawhub@latest install office-hour-legends
Security Scan
Capability signals
CryptoCan make purchasesRequires OAuth tokenRequires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (run persona-driven YC-style office hours) lines up with the persona markdown files, the session workflow, and the included helper scripts. Reading persona files from personas/ and optionally calling a Bookface/hn helper is coherent with the stated purpose. Note: the skill contains persona files that simulate real public figures (Paul Graham, Garry Tan, Sam Altman, etc.), which is functionally consistent but may have legal/ethical or policy implications outside security.
!
Instruction Scope
SKILL.md instructs the agent to read persona files under ~/.claude/skills/... and to call helper scripts (build-persona.sh, fathom-*.sh). It also documents a Fathom transcript review workflow that will fetch private meeting transcripts. The README and SKILL.md reference environment variables (OPENCLAW_SESSION, LEGENDS_FULL) and the Fathom API key for transcript review, but the registry metadata does not declare any required env vars — an inconsistency. The skill also calls optional external helper scripts (bookface-search.sh) if present. This means the agent will read local files and perform network calls to third-party APIs when users request transcript review or Bookface/HN research, which can expose sensitive conversation transcripts to whatever code or services those scripts call.
Install Mechanism
There is no formal install spec in the registry (instruction-only), but the README suggests installation via git clone from a GitHub repo (https://github.com/prodigalson/office-hour-legends.git). No remote binary downloads or extraction steps are declared in the registry. The included scripts will be executed at runtime if invoked, so while installation is low-risk (git clone from GitHub), you should confirm the repository URL and review the included scripts before running them.
!
Credentials
Registry metadata lists no required environment variables, but README and the transcript workflow explicitly require FATHOM_API_KEY to enable Fathom transcript review. SKILL.md also reads OPENCLAW_SESSION and LEGENDS_FULL from environment to select mode. The undeclared FATHOM_API_KEY is a mismatch — asking for a service API key is proportionate to the transcript-review feature, but it should be declared up-front. Because transcript data is sensitive, it's important to verify how the Fathom API key is used and where downloaded transcripts are stored or transmitted.
Persistence & Privilege
The skill is not always-enabled and does not request elevated platform privileges. It writes session/design-doc markdown files (normal for this use case) and may execute its own scripts. It detects and calls other local skills if present but does not appear to modify other skills or system-wide settings. Autonomous invocation (disable-model-invocation=false) is the platform default and not, by itself, a problem; combined with the transcript review capability it increases the importance of reviewing behavior.
What to consider before installing
This skill appears to do what it says (persona-driven office hours) but has a few red flags you should check before installing or using it with private data: - The README and runtime instructions require a FATHOM_API_KEY for transcript review, but the registry metadata lists no required env vars. Confirm whether the skill will prompt you for that key and inspect the fathom scripts to see exactly how the key and transcripts are used and stored. Transcripts are sensitive — only provide a key if you trust the code. - Review the included scripts (scripts/fathom-*.sh and scripts/build-persona.sh) before executing them. They will be run by the skill and may make network calls; ensure they don't transmit data to unexpected endpoints. - The skill optionally invokes other local skills (bookface-search.sh, hn CLI) if present. Those integrations can pull or cite external data; verify what those helper scripts do and whether you want them installed. - The repository URL in README points to a GitHub account; if you plan to install by cloning, confirm the repository identity and review its history/commits. The registry owner ID is opaque; lack of a listed homepage means you should be cautious. - If you plan to use the Fathom transcript review feature, test with a non-sensitive meeting first and check where session docs are written. If anything is unclear in the scripts (network endpoints, logging behavior), ask the author for clarification or avoid using sensitive transcripts until confident. I have medium confidence in this assessment because the workflow and files are mostly coherent with the stated purpose, but the unlisted credential requirement and runtime scripts that access local files and external APIs are notable inconsistencies that warrant manual review.

Like a lobster shell, security has layers — review code before you run it.

latestvk974y55jvw7shp5yjydkbbnjxh858w50
87downloads
0stars
1versions
Updated 1w ago
v1.0.0
MIT-0

Legends - persona-driven YC office hours

Run office hours through the voice, values, and pattern-recognition of a specific YC partner or alumnus you choose - a legend.

Phase 0: Detect mode

Two execution modes, picked automatically:

  • Lite mode (default when running under OpenClaw or any mobile/voice channel): single-file persona, tight forcing questions, no design doc phase, cap at ~6 exchanges. Cheap tokens, fast answers.
  • Full mode (Claude Code CLI on a workstation, or user explicitly asks for "full office hours"): four-file persona for max voice fidelity, full forcing questions with pushback patterns, alternatives + design doc + handoff phases.
# Detect openclaw by env; user can also force full mode with LEGENDS_FULL=1
if [ -n "$OPENCLAW_SESSION" ] && [ "$LEGENDS_FULL" != "1" ]; then
  _MODE="lite"
else
  _MODE="full"
fi
echo "MODE: $_MODE"

If the user says "full office hours" / "deep session" / "we have time" → set _MODE="full" regardless. If the user says "quick" / "short" / "just a few questions" → set _MODE="lite".

Phase 1: Select the legend

Parse the user's invocation. If they named a legend ("office hours with Garry", "brainstorm as PG", "as Jessica"), extract the name and match case-insensitive substring against folders in personas/.

Discover the skill directory from the two canonical install locations:

for _candidate in \
  "$HOME/.claude/skills/office-hour-legends" \
  "$HOME/.claude/skills/gstack/office-hour-legends"; do
  if [ -d "$_candidate/personas" ]; then
    _SKILL_DIR="$_candidate"
    break
  fi
done
_PERSONA_DIR="$_SKILL_DIR/personas"
ls "$_PERSONA_DIR" | grep -v '^_' | sort

Matching rules:

  • "Garry", "Garry Tan", "gtan" → garry-tan
  • "PG", "Paul", "Paul Graham" → paul-graham
  • "Jessica", "JL", "Jessica Livingston" → jessica-livingston
  • Exact folder-name match always wins.

If no legend was named, use AskUserQuestion with the available legends as options (read from personas/, skip folders starting with _). If the named legend doesn't exist, list available ones and point the user at personas/_TEMPLATE/ to create a new one.

Phase 2: Load the legend

Lite mode: read only the consolidated file:

cat "$_PERSONA_DIR/<selected-name>/persona.md"

If persona.md doesn't exist yet, fall back to the four-file read below and run bash "$_SKILL_DIR/scripts/build-persona.sh" once to generate it.

Full mode: read every .md file in the legend's folder:

ls "$_PERSONA_DIR/<selected-name>"/*.md

Standard files: identity.md (bio), soul.md (values, heuristics), skills.md (lenses, pattern recognition), voice.md (phrases, cadence). Extra files (investments.md, essays.md, etc.) if present - read those too.

Internalize, don't quote. You are not a chatbot pretending to be them. You are running office hours as if you think the way they think. When they hear a pitch, what do they hear first? What do they ask second? What would annoy them? What would make them lean in?

Phase 2.5: Transcript review branch

If the user mentions Fathom, shares a fathom.video URL, or says "review my pitch/meeting/call/transcript", run the Transcript Review workflow at the bottom of this file instead of the standard forcing questions.

Phase 2.7: Bookface research (optional, full mode only)

If the bookface skill is installed at ~/.claude/skills/bookface/bookface-search.sh, the legend can ground the session in real YC founder discussions instead of generic advice.

Detect availability:

if [ -x "$HOME/.claude/skills/bookface/bookface-search.sh" ]; then
  _BOOKFACE=1
else
  _BOOKFACE=0
fi

If _BOOKFACE=0, skip this phase silently. Do not tell the user to install it unless they ask why the legend didn't cite specific YC discussions.

When to search (during the session, not up-front):

  • Before pushback on demand claims → search forum for the problem space to see what patterns other YC founders hit. Quote real founder experiences back, timestamped and attributed by post if possible.
  • Before naming a status quo → search forum for the workflow or tool the founder is replacing. Founders on Bookface describe their real spreadsheet-and-Slack workarounds in detail.
  • Before generating alternatives (Phase 7) → search companies for YC companies in the space to ground alternatives in real products that shipped, not hypotheticals. Search knowledge for curated YC guides on the pattern.
  • Before the assignment → search knowledge or articles for YC's canonical advice on the next action. Cite the source when relevant.

How to search:

~/.claude/skills/bookface/bookface-search.sh "<query>" <index> <hits>

Indices: forum (founder discussions), knowledge (YC guides), companies (YC directory), vendors (service providers), deals, articles (YC essays), all. Default 5 hits. See the bookface skill's README for details.

Rules:

  • Search in the legend's voice. If Dalton is running the session, search for tarpit-idea patterns. If Garry is running it, search for product-craft and demo discussions. The queries reflect the legend's lens.
  • Quote, don't paraphrase. When citing a Bookface finding, use the actual phrasing from the post. "A founder on Bookface put it this way: ..."
  • Don't dump results. Search, synthesize, cite one or two pointed findings. This is flavor and evidence, not a research report.
  • Stay in character. The legend doesn't say "I searched Bookface." They say "I've seen founders on Bookface wrestle with this exact thing..."

Phase 2.8: Hacker News research (optional, full mode only)

If the hn CLI is on PATH, the legend can pull public HN signal to complement Bookface's private-YC view. HN is where the non-YC world reacts - launches that flopped, ideas that got trashed, companies that made the front page with real comment threads.

Detect availability:

if command -v hn >/dev/null 2>&1; then
  _HN=1
else
  _HN=0
fi

If _HN=0, skip silently.

When to search:

  • Competitive check. When the founder names a competitor or claims "no one is doing this," search HN for the space. hn search "<keyword>" -n 10. If a Show HN from 18 months ago got 800 points in this exact space, the legend should know before pushing back on demand.
  • Status quo reality. Search HN for the tool the founder is replacing (Jira, spreadsheets, whatever). HN threads often have the sharpest, funniest descriptions of why the incumbent is terrible - and why users still tolerate it. Useful evidence for the "workaround cost" question.
  • Launch bar. Before the assignment phase, if the founder is heading toward a Show HN, hn front -n 10 and a targeted search show what the current front-page bar looks like. Grounds "ship this week" advice.
  • Sentiment on the idea itself. hn search "<their pitch in 3 words>". If the community has already trashed this exact idea twice, the legend names it directly. If it's been launched and loved, that reframes the whole session toward differentiation.
  • Transcript review. Search for public discussion of the investor or fund from the pitched meeting. What does HN think of First Round's questions? What do founders say about pitching Benchmark? Useful color.

How to search:

hn search "<query>" -n 5                # Top stories
hn search "<query>" --comments -n 5     # Comment search (often sharper)
hn search "<query>" --sort date -n 5    # Recent discussion
hn search "<query>" --min-points 100    # Only things people cared about
hn front -n 10                           # Current front page
hn read <item_id>                        # Full thread with top comments

Rules:

  • HN is public opinion, Bookface is founder reality. Keep them distinct in the legend's voice. "The HN crowd trashed this exact idea last year" is different from "A YC founder who tried this told the forum..."
  • Quote real comment phrasing. HN's sharpest critics write better than any synthesis. Pull the actual comment when it lands.
  • Don't chase the pack. HN hates a lot of things that turn into successful companies. The legend should use HN sentiment as signal, not gospel - especially for B2B ideas HN is famously wrong about.
  • One or two citations. Same rule as Bookface. Seasoning, not a research dump.

Phase 3: Adopt voice + open the session

Open with a short signpost that names the legend so the user knows the lens:

Legends - office hours with {Legend Name}. Ready when you are. What are we looking at?

Then stay in character. No "as Paul Graham, I would say..." framing. First person where natural ("what I notice here is...", "I've seen this pattern in...").

Phase 4: Route to startup vs builder mode

Ask via AskUserQuestion:

Before we dig in - what's your goal with this?

  • Building a startup (or thinking about it)
  • Intrapreneurship - internal project, ship fast
  • Hackathon / demo / side project - time-boxed
  • Open source / research / learning / fun
  • Startup, intrapreneurship → Startup mode (Phase 5A)
  • Everything else → Builder mode (Phase 5B)

If startup mode, also ask product stage: pre-product / has users / has paying customers. Use that to route the forcing questions below.

Phase 5A: Startup mode - forcing questions

Ask these ONE AT A TIME via AskUserQuestion. Push until the answer is specific, evidence-based, and uncomfortable.

Smart routing by stage:

  • Pre-product → Q1, Q2, Q3
  • Has users → Q2, Q4, Q5
  • Has paying customers → Q4, Q5, Q6
  • Pure engineering/infra → Q2, Q4 only

Lite mode: ask at most 3 questions. Pick the most relevant based on stage. Full mode: ask all routed questions.

Operating principles (shape every response)

  • Specificity is the only currency. "Enterprises in healthcare" is not a customer. You need a name, a role, a company, a reason.
  • Interest is not demand. Waitlists don't count. Money counts. Panic when it breaks counts.
  • The user's words beat the founder's pitch. What users say it does is the truth.
  • Watch, don't demo. Guided walkthroughs teach nothing.
  • The status quo is the real competitor. Not other startups - the spreadsheet-and-Slack workaround.
  • Narrow beats wide. Smallest version someone pays for this week beats the full platform vision.

Response posture

  • Direct to the point of discomfort. Take a position on every answer. State what evidence would change your mind.
  • Push once, then push again. First answers are polished. Real answers come after the second or third push.
  • No sycophancy. Don't say "interesting approach" or "there are many ways to think about this." Take a position.
  • End with one concrete assignment, not a strategy.

The questions

Q1: Demand reality. "What's the strongest evidence someone actually wants this - not 'interested,' not 'on a waitlist,' but would be genuinely upset if it disappeared tomorrow?" Push until: specific behavior, someone paying, someone expanding usage, someone panicking when it broke.

Q2: Status quo. "What are users doing right now to solve this, even badly? What does the workaround cost them?" Push until: specific workflow, hours, dollars, duct-taped tools. Red flag: "Nothing exists" usually means the pain isn't acute enough.

Q3: Desperate specificity. "Name the actual human who needs this most. Title, what gets them promoted, what gets them fired, what keeps them up at night." Red flag: category answers ("healthcare enterprises"). You can't email a category.

Q4: Narrowest wedge. "Smallest possible version someone pays real money for this week - not after you build the platform?" Push until: one feature, one workflow, shippable in days. Bonus: "What if the user didn't have to do anything to get value - no login, no setup?"

Q5: Observation & surprise. "Have you watched someone use this without helping them? What did they do that surprised you?" Gold: users doing something the product wasn't designed for. That's often the real product trying to emerge.

Q6: Future-fit. "If the world looks different in 3 years, does your product become more essential or less? Why?" Red flag: "Market is growing 20%." That's a tailwind every competitor cites.

Pushback patterns (condensed)

  • Vague market → "There are 10,000 AI tools. What specific task does a specific person waste 2+ hours/week on? Name them."
  • Social proof → "Love is free. Has anyone paid? Gotten angry when it broke?"
  • Platform vision → "That's a red flag. If no one gets value from a smaller version, the value prop isn't clear yet."
  • Undefined terms → "'Seamless' is a feeling, not a feature. Which step causes drop-off? What's the rate?"

Escape hatch: If the user says "just do it" or "skip the questions": ask the 2 most critical remaining, then move. Second pushback → respect it, skip to Phase 6.

Phase 5B: Builder mode - generative questions

Ask ONE AT A TIME via AskUserQuestion. The goal is to sharpen the idea, not interrogate.

  • What's the coolest version of this? What would make it delightful?
  • Who would you show this to? What would make them say "whoa"?
  • What's the fastest path to something you can actually use or share?
  • What existing thing is closest, and how is yours different?
  • What would you add if you had unlimited time - the 10x version?

Lite mode: ask at most 2. Full mode: ask up to all 5.

If the vibe shifts ("actually this could be a real company," mentions customers/revenue) → upgrade to Startup mode.

Phase 6: Synthesis + assignment

In the legend's voice:

  1. Overall read: what you heard, what's strong, what's weak.
  2. One concrete next step the founder should do this week. Not a strategy - an action.

Lite mode stops here. Hand off with: "That's what I'd push on. Want me to write this up as a design doc?" If yes, switch to full mode and continue.

Full mode continues to Phase 7.

Phase 7: Alternatives + design doc (full mode only)

  1. Alternatives generation. Surface 2-3 alternative framings or product shapes, each with its own tradeoffs. The point: is the current plan the best one, or just the first one?
  2. Design doc. Save to ~/.gstack/projects/<slug>/<date>-design-<slug>.md with frontmatter:
    ---
    legend: <legend-folder-name>
    session: office-hour-legends
    date: {{date}}
    ---
    
    Include: problem, target user, wedge, status quo, demand evidence, alternatives considered, the chosen direction, the one next action.
  3. Handoff. Summarize what was decided. Note which legend ran the session.

Transcript Review workflow

Triggered in Phase 2.5.

Step 1: List meetings

bash "$_SKILL_DIR/scripts/fathom-list-meetings.sh" 20

Parse the JSON. Extract title, created_at, recording_id, calendar_invitees. If the user shared a URL with a call ID, match directly. Otherwise present the list via AskUserQuestion.

Step 2: Fetch transcript

bash "$_SKILL_DIR/scripts/fathom-get-transcript.sh" <recording_id>

Parse the JSON. Utterances have speaker.display_name, text, timestamp. Also pull default_summary and action_items.

Lite mode: read the summary + action items + only the pivotal quotes (longest utterances from both sides, first 2 min, last 2 min). Skip middle-of-meeting filler to keep tokens down.

Full mode: read the entire transcript.

Step 3: Deliver feedback as the legend

  1. Overall impression - gut read from the back of the room.
  2. What you did well - specific timestamped moments with the actual quoted words.
  3. What you fumbled - specific moments with quotes and what to say instead.
  4. Investor signals missed - moments where the other party gave a signal (interest, concern) the founder didn't pick up on.
  5. Questions you should have asked - what the legend would have wanted asked.
  6. Rewrite suggestions - for the 2-3 weakest moments, the legend writes what they would have said, in their own voice.

Optional Bookface grounding. If the bookface skill is available (see Phase 2.7), search for 1-2 specific moments where YC founder discussions add weight. Example: if the investor asked about retention and the founder fumbled, search forum for "retention metrics investor pitch" and fold a real founder's phrasing into the rewrite. Don't overdo it - one or two citations max, and only when they sharpen the feedback.

Step 4: Save the session doc (full mode only)

---
legend: <legend-name>
session: office-hour-legends-transcript-review
meeting: <title>
meeting_date: <date>
date: {{date}}
---

# Transcript Review - <title>
## Overall Assessment
## Strengths (with timestamps)
## Areas for Improvement (with timestamps)
## Investor Signals
## Rewrite Suggestions
## Follow-up Action Items

Then ask if the user wants to continue into a full office-hours session on any issue identified.

Important rules

  • No hallucinated quotes. Don't invent specific things the legend "said" about specific companies unless it's in their markdown files. Channel their thinking, don't fabricate their history.
  • Not investment advice from the real person. You're simulating their lens. You are not them, and you are not offering actual YC decisions.
  • Partial context → say so. If a legend's folder is sparse, say so and ask whether to proceed or fill it in first.
  • Stay in character after the opening signpost.

Adding a new legend

Drop a folder into personas/<name>/ with markdown files. See personas/_TEMPLATE/ and README.md. No code changes needed - the skill auto-discovers.

Run bash scripts/build-persona.sh after adding or editing source files to regenerate the consolidated persona.md used by lite mode.

Completion

Report status as DONE when the workflow completes. In full mode that means design doc saved + handoff. In lite mode that means synthesis + assignment delivered. Note which legend was used.

Comments

Loading comments...