From pm-os
Fetch, store, and review structured knowledge in data/knowledge/. Manages four knowledge categories — People (stakeholders), Reference (company/product/team docs), Research (domain insights), and Market Landscape (read-only here, written by /market-scan).
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm-os:knowledgeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill manages persistent knowledge in `data/knowledge/` in the
This skill manages persistent knowledge in data/knowledge/ in the
consumer repo. Knowledge is organized into four category subfolders:
data/knowledge/people/) — stakeholder profiles,
communication styles, working preferencesdata/knowledge/reference/) — company info, product
overviews, team structure, OKR historydata/knowledge/research/) — domain research, literature
reviews, one-shot insightsdata/knowledge/market-landscape/) — living
documents of the competitive landscape. Written exclusively by
/market-scan as append-only dated sections. Read by this skill but
not edited directly.Scope boundary: Knowledge stores durable, synthesized
understanding. Time-stamped observations (competitor launched X
yesterday, user said Y, we discovered Z) belong in Signals — use
/log-signal for those. Customer personas have their own location
(data/personas/); use /define-persona. See the DB Routing Rubric
in .claude/context/data-schemas.md.
Each entry is one file per topic. Frontmatter:
---
title: Jane Doe — CEO at Acme
category: people # people | reference | research | market-landscape
tags: [stakeholder, fund]
last_updated: YYYY-MM-DD
status: active # active | archived
---
No index.md per subfolder — glob + frontmatter is the discovery
mechanism.
Triggers: /knowledge people "name", /knowledge research "topic",
/knowledge reference, or just /knowledge "search term"
Steps:
data/knowledge/{category}/*.md (or all categories).status: active, plus any tag or title match
from the search term.For People entries, format the output as:
## {Name} — {Role}
**Quick Facts:** {tenure, background, location}
**Communication Style:**
- Prefers: {preferences}
- Dislikes: {anti-patterns}
- Response times: {by channel}
**How to Work With Them:**
- {decision-making style}
- {meeting preferences}
- {update format preferences}
**What They Care About:** {priorities, metrics, pet topics}
**Personal Notes:** {icebreakers, interests, relationship context}
Triggers: /knowledge add, /knowledge store
Steps:
/market-scan — do not create these manually).data/knowledge/{category}/{slug}.md. If the file exists, ask
whether to overwrite or pick a new slug.title, category, tags,
last_updated: today, status: active) followed by the body.Redirects: If the user tries to store content that is clearly a
time-stamped observation (dated event, recent finding, competitor move),
redirect them: "That sounds like a Signal, not a Knowledge entry.
Want to run /log-signal instead?" If it's a customer persona,
redirect to /define-persona.
Triggers: /knowledge review
Steps:
data/knowledge/**/*.md. Read frontmatter only (not bodies)
for each file.last_updated older than 90 dayslast_updated older than 30 days (market moves
faster)status: archived older than 180
days that could be deleted instead of kept.## Knowledge Review — {date}
**Total entries:** {count} (people: {n}, reference: {n}, research: {n}, market-landscape: {n})
### Stale Entries
- {file path} — Category: {cat}, Last updated: {date}, Threshold: {30d or 90d}
### Gaps
- {category} has no entries
### Suggestions
- Update: {list of stale entries worth refreshing}
- Archive: {list of entries that may no longer be relevant}
- Add: {suggested new entries based on gaps}
- Re-scan: {market-landscape entries past the 30-day threshold — suggest /market-scan}
When storing a new People entry, use this template as the body structure (after the YAML frontmatter):
# {Name} — {Role}
## Quick Facts
- **Role:** {title}
- **Reports to:** {manager}
- **Tenure:** {time at company}
- **Background:** {previous roles, education}
- **Location:** {office/remote, timezone}
## Communication Style
**Prefers:**
- {preference 1}
- {preference 2}
**Dislikes:**
- {anti-pattern 1}
- {anti-pattern 2}
**Response times:**
- {channel}: {typical response time}
## How to Work With Them
### In Meetings
- {meeting preferences}
### Getting Decisions
- {decision-making style and process}
### Giving Updates
- {preferred format and cadence}
## What They Care About
**Top priorities:**
1. {priority}
**Key metrics they track:**
- {metric}
**Pet topics:**
- {topic they're passionate about}
## Personal Notes
- {icebreakers, interests, family, relationship context}
Market Landscape entries are maintained by /market-scan — this skill
reads them but does not edit them. Expect this machine-readable
structure so heading-based parsing works:
---
title: {Product} — Market Landscape — {Market Category}
category: market-landscape
tags: [...]
last_updated: YYYY-MM-DD
status: active
---
# {Product} — Market Landscape — {Market Category}
_Living document. New scans append dated sections below._
## Scan — {YYYY-MM-DD}
### Competitor Radar
### Product & Feature Moves
### Funding & Business Moves
### Customer Sentiment
### Strategic Implications
### What's New vs. Prior Scans
### Sources
## Scan — {YYYY-MM-DD}
...
When surfacing a Market Landscape entry in Fetch mode, show only the
most recent ## Scan — sub-section unless the user asks for
history.
After fetching People knowledge, suggest: "Want me to prep for a meeting with {name}?"
After storing Research knowledge, suggest: "Want me to check how this
connects to your current backlog? Run /fetch-context."
After fetching a Market Landscape entry older than 30 days, suggest:
"This scan is {N} days old. Want to run /market-scan to refresh it?"
After a review, suggest: "Want me to help fill the gaps? I can draft entries for missing categories."
npx claudepluginhub jesperhagg/pm-operating-system --plugin pm-osProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.