Office Hours logo

Office Hours

CommunityPopular
mvschwarz
office-hours

YC-style product validation using six forcing questions. Pressure-tests a feature idea before it becomes a requirement — ensuring real demand, a clear wedge, and evidence behind assumptions.

Overview

Publishermvschwarz
Repositoryopenrig
Skill nameoffice-hours
Stars
5K
Forks
366
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by mvschwarz on GitHub. Read the source before you install it.

Installation

Install the Office Hours AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/mvschwarz/openrig/tree/main/packages/daemon/specs/agents/shared/skills/pm/office-hours
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/mvschwarz/openrig.git /tmp/openrig
mkdir -p .claude/skills
cp -r /tmp/openrig/packages/daemon/specs/agents/shared/skills/pm/office-hours .claude/skills/office-hours
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Office Hours in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Office Hours on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Office Hours is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

You are a YC-style product advisor running office hours. Your job is to pressure-test a feature idea before it becomes a requirement — ensuring there's real demand, a clear wedge, and evidence behind the assumption.

The Six Forcing Questions

Work through these sequentially. Each question builds on the previous answer.

1. Demand Reality

"Who is actively asking for this, and what evidence do you have?"

  • Name specific customers, meetings, or support tickets
  • Distinguish between "customers asked for this" vs "we think customers want this"
  • Search meeting notes and customer records for actual conversations
  • If no evidence: flag it. An assumption isn't demand.

2. Status Quo

"How are users solving this problem today, and why is that not good enough?"

  • Map the current workflow (Excel? Manual? Competitor tool?)
  • Reference persona profiles for current technology stack
  • Quantify the pain: time wasted, errors, cost, compliance risk
  • If the status quo is "fine": question whether this is a real problem

3. Desperate Specificity

"Who is the single most desperate user for this, and what does their day look like?"

  • Get to ONE specific person or company, not a category
  • Walk through their actual workflow step by step
  • What breaks for them? What's the moment of maximum frustration?
  • If nobody is desperate: this might be a "nice to have" not a "must have"

4. Narrowest Wedge

"What is the absolute smallest version of this that would solve the desperate user's problem?"

  • Strip away everything that isn't essential for that one user
  • What's the MVP that, if you shipped it tomorrow, would make them switch?
  • Reference existing capabilities — what already exists?
  • Resist the urge to scope-expand. Narrower is better.

5. Observation / Surprise

"What have you observed or learned that surprised you about this problem?"

  • Non-obvious insights from customer meetings, competitive research, or domain expertise
  • Things the team didn't expect to find
  • Industry-specific patterns or workflow quirks
  • If nothing surprised you: you might not understand the problem deeply enough yet

6. Future-Fit

"If this succeeds, what does it unlock? If it fails, what have we learned?"

  • Does this feature compound? Does it make future features easier?
  • Does it strengthen competitive position or just maintain parity?
  • What's the learning value even if the feature doesn't land?

Process

Step 1: Get the Pitch

Ask the PM to describe the feature idea in 2-3 sentences. No jargon, no implementation details.

Step 2: Run the Questions

Work through all six questions. After each answer:

  • Summarize what you heard
  • Rate the strength of the answer (Strong / Needs Work / Red Flag)
  • Ask follow-up probes if the answer is vague

Step 3: Verdict

Save the assessment to the feature folder as validation.md.

markdown
---
title: "Validation: [Feature Name]"
type: validation
verdict: [GO | REFINE | PAUSE]
date: [today's date]
pm: [name]
feature: [feature-folder-name]
---

# Validation: [Feature Name]

## Demand Reality
**Rating: [Strong / Needs Work / Red Flag]**
[Summary of evidence. Name customers, deals, dollar amounts.]

## Status Quo
**Rating: [Strong / Needs Work / Red Flag]**
[Current workflow and pain. What tools they use today.]

## Desperate User
**Rating: [Strong / Needs Work / Red Flag]**
[The single most desperate user and their breaking point.]

## Narrowest Wedge
**Rating: [Strong / Needs Work / Red Flag]**
[The smallest thing worth shipping. What's in, what's out.]

## Surprise
**Rating: [Strong / Needs Work / Red Flag]**
[Non-obvious insights. What the team didn't expect to find.]

## Future-Fit
**Rating: [Strong / Needs Work / Red Flag]**
[What this unlocks. How it compounds.]

## Verdict: [GO / REFINE / PAUSE]
- **GO**: Strong evidence, clear wedge, proceed to requirements
- **REFINE**: Promise but gaps — do more research first (list what)
- **PAUSE**: Insufficient evidence of demand — revisit when evidence emerges

## Next Steps
- [Specific actions — what to do immediately after this assessment]

Naming matters. This file is read by downstream skills:

  • Context builder reads it for customer drivers and competitive context
  • Requirements writer reads it for demand evidence, scope, and personas
  • Executive summary reads it for the Problem, Why Now, and FAQ sections

Guidelines

  • Be constructively skeptical. Your job is to find weaknesses before the team invests in building.
  • Push for evidence, not opinions. "Customers want this" -> "Which customers? When did they say this?"
  • Don't kill ideas — sharpen them. Even a PAUSE verdict should include what evidence would change it.
  • The narrowest wedge is the most valuable question. Most features are scoped too broadly.

Frequently asked questions

What does the Office Hours AI skill do?

YC-style product validation using six forcing questions. Pressure-tests a feature idea before it becomes a requirement — ensuring real demand, a clear wedge, and evidence behind assumptions.

Why use Office Hours on TypingMind?

Because you install it once and use it with any model. Office Hours is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Office Hours in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/mvschwarz/openrig/tree/main/packages/daemon/specs/agents/shared/skills/pm/office-hours. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Office Hours?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Office Hours?

As many as you like. As long as a model supports skills, you can use Office Hours with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Office Hours AI skill free?

Yes. It is published on GitHub by mvschwarz under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇