chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "productivity",
|
||||
"version": "1.3.0",
|
||||
"description": "Manage tasks, plan your day, and build up memory of important context about your work. Syncs with your calendar, email, and chat to keep everything organized and on track.",
|
||||
"author": {
|
||||
"name": "Anthropic"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"mcpServers": {
|
||||
"slack": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.slack.com/mcp",
|
||||
"oauth": {
|
||||
"clientId": "1601185624273.8899143856786",
|
||||
"callbackPort": 3118
|
||||
}
|
||||
},
|
||||
"notion": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.notion.com/mcp"
|
||||
},
|
||||
"asana": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.asana.com/v2/mcp"
|
||||
},
|
||||
"linear": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.linear.app/mcp"
|
||||
},
|
||||
"atlassian": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.atlassian.com/v1/mcp"
|
||||
},
|
||||
"monday": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.monday.com/mcp"
|
||||
},
|
||||
"clickup": {
|
||||
"type": "http",
|
||||
"url": "https://mcp.clickup.com/mcp"
|
||||
},
|
||||
"google calendar": {
|
||||
"type": "http",
|
||||
"url": ""
|
||||
},
|
||||
"gmail": {
|
||||
"type": "http",
|
||||
"url": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
# Connectors
|
||||
|
||||
## How tool references work
|
||||
|
||||
Plugin files use `~~category` as a placeholder for whatever tool the user connects in that category. For example, `~~project tracker` might mean Asana, Linear, Jira, or any other project tracker with an MCP server.
|
||||
|
||||
Plugins are **tool-agnostic** — they describe workflows in terms of categories (chat, project tracker, knowledge base, etc.) rather than specific products. The `.mcp.json` pre-configures specific MCP servers, but any MCP server in that category works.
|
||||
|
||||
## Connectors for this plugin
|
||||
|
||||
| Category | Placeholder | Included servers | Other options |
|
||||
|----------|-------------|-----------------|---------------|
|
||||
| Chat | `~~chat` | Slack | Microsoft Teams, Discord |
|
||||
| Email | `~~email` | Microsoft 365 | — |
|
||||
| Calendar | `~~calendar` | Microsoft 365 | — |
|
||||
| Knowledge base | `~~knowledge base` | Notion | Confluence, Guru, Coda |
|
||||
| Project tracker | `~~project tracker` | Asana, Linear, Atlassian (Jira/Confluence), monday.com, ClickUp | Shortcut, Basecamp, Wrike |
|
||||
| Office suite | `~~office suite` | Microsoft 365 | — |
|
||||
@@ -0,0 +1,202 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
@@ -0,0 +1,96 @@
|
||||
# Productivity Plugin
|
||||
|
||||
A productivity plugin primarily designed for [Cowork](https://claude.com/product/cowork), Anthropic's agentic desktop application — though it also works in Claude Code. Task management, workplace memory, and a visual dashboard — Claude learns your people, projects, and terminology so it can act like a colleague, not a chatbot.
|
||||
|
||||
## Installation
|
||||
|
||||
```
|
||||
claude plugins add knowledge-work-plugins/productivity
|
||||
```
|
||||
|
||||
## What It Does
|
||||
|
||||
This plugin gives Claude a persistent understanding of your work:
|
||||
|
||||
- **Task management** — A markdown task list (`TASKS.md`) that Claude reads, writes, and executes against. Add tasks naturally, and Claude tracks status, triages stale items, and syncs with external tools.
|
||||
- **Workplace memory** — A two-tier memory system that teaches Claude your shorthand, people, projects, and terminology. Say "ask todd to do the PSR for oracle" and Claude knows exactly who, what, and which deal.
|
||||
- **Visual dashboard** — A local HTML file that gives you a board view of your tasks and a live view of what Claude knows about your workplace. Edit from the board or the file — they stay in sync.
|
||||
|
||||
## Commands
|
||||
|
||||
| Command | What it does |
|
||||
|---------|--------------|
|
||||
| `/start` | Initialize tasks + memory, open the dashboard |
|
||||
| `/update` | Triage stale items, check memory for gaps, sync from external tools if applicable |
|
||||
| `/update --comprehensive` | Deep scan email, calendar, chat — flag missed todos and suggest new memories |
|
||||
|
||||
## Skills
|
||||
|
||||
| Skill | Description |
|
||||
|-------|-------------|
|
||||
| `memory-management` | Two-tier memory system — CLAUDE.md for working memory, memory/ directory for deep storage |
|
||||
| `task-management` | Markdown-based task tracking using a shared TASKS.md file |
|
||||
|
||||
## Example Workflows
|
||||
|
||||
### Getting Started
|
||||
|
||||
```
|
||||
You: /start
|
||||
|
||||
Claude: [Creates TASKS.md, CLAUDE.md, memory/ directory, and dashboard.html]
|
||||
[Opens the dashboard in your browser]
|
||||
[Asks about your role, team, and current priorities to seed memory]
|
||||
```
|
||||
|
||||
### Adding Tasks Naturally
|
||||
|
||||
```
|
||||
You: I need to review the budget proposal for Sarah by Friday,
|
||||
draft the Q2 roadmap after syncing with Greg, and follow up
|
||||
on the API spec from the Platform team
|
||||
|
||||
Claude: [Adds all three tasks to TASKS.md with context]
|
||||
[Dashboard updates automatically]
|
||||
```
|
||||
|
||||
### Morning Sync
|
||||
|
||||
```
|
||||
You: /update --comprehensive
|
||||
|
||||
Claude: [Scans email, calendar, and chat for new action items]
|
||||
[Flags: "Budget proposal review is due tomorrow — still open"]
|
||||
[Suggests: "New person mentioned in 3 threads: Jamie Park,
|
||||
Design Lead — add to memory?"]
|
||||
[Updates stale tasks and fills memory gaps]
|
||||
```
|
||||
|
||||
### Workplace Shorthand
|
||||
|
||||
Once memory is populated, Claude decodes your shorthand instantly:
|
||||
|
||||
```
|
||||
You: ask todd to do the PSR for oracle
|
||||
|
||||
Claude: "Ask Todd Martinez (Finance lead) to prepare the Pipeline
|
||||
Status Report for the Oracle Systems deal ($2.3M, closing Q2)"
|
||||
```
|
||||
|
||||
No clarifying questions. No round trips.
|
||||
|
||||
## Data Sources
|
||||
|
||||
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](CONNECTORS.md).
|
||||
|
||||
Connect your communication and project management tools for the best experience. Without them, manage tasks and memory manually.
|
||||
|
||||
**Included MCP connections:**
|
||||
- Chat (Slack) for team context and message scanning
|
||||
- Email and calendar (Microsoft 365) for action item discovery
|
||||
- Knowledge base (Notion) for reference documents
|
||||
- Project tracker (Asana, Linear, Atlassian, monday.com, ClickUp) for task syncing
|
||||
- Office suite (Microsoft 365) for documents
|
||||
|
||||
**Additional options:**
|
||||
- See [CONNECTORS.md](CONNECTORS.md) for alternative tools in each category
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,323 @@
|
||||
---
|
||||
name: memory-management
|
||||
description: Two-tier memory system that makes Claude a true workplace collaborator. Decodes shorthand, acronyms, nicknames, and internal language so Claude understands requests like a colleague would. CLAUDE.md for working memory, memory/ directory for the full knowledge base.
|
||||
user-invocable: false
|
||||
---
|
||||
|
||||
# Memory Management
|
||||
|
||||
Memory makes Claude your workplace collaborator - someone who speaks your internal language.
|
||||
|
||||
## The Goal
|
||||
|
||||
Transform shorthand into understanding:
|
||||
|
||||
```
|
||||
User: "ask todd to do the PSR for oracle"
|
||||
↓ Claude decodes
|
||||
"Ask Todd Martinez (Finance lead) to prepare the Pipeline Status Report
|
||||
for the Oracle Systems deal ($2.3M, closing Q2)"
|
||||
```
|
||||
|
||||
Without memory, that request is meaningless. With memory, Claude knows:
|
||||
- **todd** → Todd Martinez, Finance lead, prefers Slack
|
||||
- **PSR** → Pipeline Status Report (weekly sales doc)
|
||||
- **oracle** → Oracle Systems deal, not the company
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
CLAUDE.md ← Hot cache (~30 people, common terms)
|
||||
memory/
|
||||
glossary.md ← Full decoder ring (everything)
|
||||
people/ ← Complete profiles
|
||||
projects/ ← Project details
|
||||
context/ ← Company, teams, tools
|
||||
```
|
||||
|
||||
**CLAUDE.md (Hot Cache):**
|
||||
- Top ~30 people you interact with most
|
||||
- ~30 most common acronyms/terms
|
||||
- Active projects (5-15)
|
||||
- Your preferences
|
||||
- **Goal: Cover 90% of daily decoding needs**
|
||||
|
||||
**memory/glossary.md (Full Glossary):**
|
||||
- Complete decoder ring - everyone, every term
|
||||
- Searched when something isn't in CLAUDE.md
|
||||
- Can grow indefinitely
|
||||
|
||||
**memory/people/, projects/, context/:**
|
||||
- Rich detail when needed for execution
|
||||
- Full profiles, history, context
|
||||
|
||||
## Lookup Flow
|
||||
|
||||
```
|
||||
User: "ask todd about the PSR for phoenix"
|
||||
|
||||
1. Check CLAUDE.md (hot cache)
|
||||
→ Todd? ✓ Todd Martinez, Finance
|
||||
→ PSR? ✓ Pipeline Status Report
|
||||
→ Phoenix? ✓ DB migration project
|
||||
|
||||
2. If not found → search memory/glossary.md
|
||||
→ Full glossary has everyone/everything
|
||||
|
||||
3. If still not found → ask user
|
||||
→ "What does X mean? I'll remember it."
|
||||
```
|
||||
|
||||
This tiered approach keeps CLAUDE.md lean (~100 lines) while supporting unlimited scale in memory/.
|
||||
|
||||
## File Locations
|
||||
|
||||
- **Working memory:** `CLAUDE.md` in current working directory
|
||||
- **Deep memory:** `memory/` subdirectory
|
||||
|
||||
## Working Memory Format (CLAUDE.md)
|
||||
|
||||
Use tables for compactness. Target ~50-80 lines total.
|
||||
|
||||
```markdown
|
||||
# Memory
|
||||
|
||||
## Me
|
||||
[Name], [Role] on [Team]. [One sentence about what I do.]
|
||||
|
||||
## People
|
||||
| Who | Role |
|
||||
|-----|------|
|
||||
| **Todd** | Todd Martinez, Finance lead |
|
||||
| **Sarah** | Sarah Chen, Engineering (Platform) |
|
||||
| **Greg** | Greg Wilson, Sales |
|
||||
→ Full list: memory/glossary.md, profiles: memory/people/
|
||||
|
||||
## Terms
|
||||
| Term | Meaning |
|
||||
|------|---------|
|
||||
| PSR | Pipeline Status Report |
|
||||
| P0 | Drop everything priority |
|
||||
| standup | Daily 9am sync |
|
||||
→ Full glossary: memory/glossary.md
|
||||
|
||||
## Projects
|
||||
| Name | What |
|
||||
|------|------|
|
||||
| **Phoenix** | DB migration, Q2 launch |
|
||||
| **Horizon** | Mobile app redesign |
|
||||
→ Details: memory/projects/
|
||||
|
||||
## Preferences
|
||||
- 25-min meetings with buffers
|
||||
- Async-first, Slack over email
|
||||
- No meetings Friday afternoons
|
||||
```
|
||||
|
||||
## Deep Memory Format (memory/)
|
||||
|
||||
**memory/glossary.md** - The decoder ring:
|
||||
```markdown
|
||||
# Glossary
|
||||
|
||||
Workplace shorthand, acronyms, and internal language.
|
||||
|
||||
## Acronyms
|
||||
| Term | Meaning | Context |
|
||||
|------|---------|---------|
|
||||
| PSR | Pipeline Status Report | Weekly sales doc |
|
||||
| OKR | Objectives & Key Results | Quarterly planning |
|
||||
| P0/P1/P2 | Priority levels | P0 = drop everything |
|
||||
|
||||
## Internal Terms
|
||||
| Term | Meaning |
|
||||
|------|---------|
|
||||
| standup | Daily 9am sync in #engineering |
|
||||
| the migration | Project Phoenix database work |
|
||||
| ship it | Deploy to production |
|
||||
| escalate | Loop in leadership |
|
||||
|
||||
## Nicknames → Full Names
|
||||
| Nickname | Person |
|
||||
|----------|--------|
|
||||
| Todd | Todd Martinez (Finance) |
|
||||
| T | Also Todd Martinez |
|
||||
|
||||
## Project Codenames
|
||||
| Codename | Project |
|
||||
|----------|---------|
|
||||
| Phoenix | Database migration |
|
||||
| Horizon | New mobile app |
|
||||
```
|
||||
|
||||
**memory/people/{name}.md:**
|
||||
```markdown
|
||||
# Todd Martinez
|
||||
|
||||
**Also known as:** Todd, T
|
||||
**Role:** Finance Lead
|
||||
**Team:** Finance
|
||||
**Reports to:** CFO (Michael Chen)
|
||||
|
||||
## Communication
|
||||
- Prefers Slack DM
|
||||
- Quick responses, very direct
|
||||
- Best time: mornings
|
||||
|
||||
## Context
|
||||
- Handles all PSRs and financial reporting
|
||||
- Key contact for deal approvals over $500k
|
||||
- Works closely with Sales on forecasting
|
||||
|
||||
## Notes
|
||||
- Cubs fan, likes talking baseball
|
||||
```
|
||||
|
||||
**memory/projects/{name}.md:**
|
||||
```markdown
|
||||
# Project Phoenix
|
||||
|
||||
**Codename:** Phoenix
|
||||
**Also called:** "the migration"
|
||||
**Status:** Active, launching Q2
|
||||
|
||||
## What It Is
|
||||
Database migration from legacy Oracle to PostgreSQL.
|
||||
|
||||
## Key People
|
||||
- Sarah - tech lead
|
||||
- Todd - budget owner
|
||||
- Greg - stakeholder (sales impact)
|
||||
|
||||
## Context
|
||||
$1.2M budget, 6-month timeline. Critical path for Horizon project.
|
||||
```
|
||||
|
||||
**memory/context/company.md:**
|
||||
```markdown
|
||||
# Company Context
|
||||
|
||||
## Tools & Systems
|
||||
| Tool | Used for | Internal name |
|
||||
|------|----------|---------------|
|
||||
| Slack | Communication | - |
|
||||
| Asana | Engineering tasks | - |
|
||||
| Salesforce | CRM | "SF" or "the CRM" |
|
||||
| Notion | Docs/wiki | - |
|
||||
|
||||
## Teams
|
||||
| Team | What they do | Key people |
|
||||
|------|--------------|------------|
|
||||
| Platform | Infrastructure | Sarah (lead) |
|
||||
| Finance | Money stuff | Todd (lead) |
|
||||
| Sales | Revenue | Greg |
|
||||
|
||||
## Processes
|
||||
| Process | What it means |
|
||||
|---------|---------------|
|
||||
| Weekly sync | Monday 10am all-hands |
|
||||
| Ship review | Thursday deploy approval |
|
||||
```
|
||||
|
||||
## How to Interact
|
||||
|
||||
### Decoding User Input (Tiered Lookup)
|
||||
|
||||
**Always** decode shorthand before acting on requests:
|
||||
|
||||
```
|
||||
1. CLAUDE.md (hot cache) → Check first, covers 90% of cases
|
||||
2. memory/glossary.md → Full glossary if not in hot cache
|
||||
3. memory/people/, projects/ → Rich detail when needed
|
||||
4. Ask user → Unknown term? Learn it.
|
||||
```
|
||||
|
||||
Example:
|
||||
```
|
||||
User: "ask todd to do the PSR for oracle"
|
||||
|
||||
CLAUDE.md lookup:
|
||||
"todd" → Todd Martinez, Finance ✓
|
||||
"PSR" → Pipeline Status Report ✓
|
||||
"oracle" → (not in hot cache)
|
||||
|
||||
memory/glossary.md lookup:
|
||||
"oracle" → Oracle Systems deal ($2.3M) ✓
|
||||
|
||||
Now Claude can act with full context.
|
||||
```
|
||||
|
||||
### Adding Memory
|
||||
|
||||
When user says "remember this" or "X means Y":
|
||||
|
||||
1. **Glossary items** (acronyms, terms, shorthand):
|
||||
- Add to memory/glossary.md
|
||||
- If frequently used, add to CLAUDE.md Quick Glossary
|
||||
|
||||
2. **People:**
|
||||
- Create/update memory/people/{name}.md
|
||||
- Add to CLAUDE.md Key People if important
|
||||
- **Capture nicknames** - critical for decoding
|
||||
|
||||
3. **Projects:**
|
||||
- Create/update memory/projects/{name}.md
|
||||
- Add to CLAUDE.md Active Projects if current
|
||||
- **Capture codenames** - "Phoenix", "the migration", etc.
|
||||
|
||||
4. **Preferences:** Add to CLAUDE.md Preferences section
|
||||
|
||||
### Recalling Memory
|
||||
|
||||
When user asks "who is X" or "what does X mean":
|
||||
|
||||
1. Check CLAUDE.md first
|
||||
2. Check memory/ for full detail
|
||||
3. If not found: "I don't know what X means yet. Can you tell me?"
|
||||
|
||||
### Progressive Disclosure
|
||||
|
||||
1. Load CLAUDE.md for quick parsing of any request
|
||||
2. Dive into memory/ when you need full context for execution
|
||||
3. Example: drafting an email to todd about the PSR
|
||||
- CLAUDE.md tells you Todd = Todd Martinez, PSR = Pipeline Status Report
|
||||
- memory/people/todd-martinez.md tells you he prefers Slack, is direct
|
||||
|
||||
## Bootstrapping
|
||||
|
||||
Use `/productivity:start` to initialize by scanning your chat, calendar, email, and documents. Extracts people, projects, and starts building the glossary.
|
||||
|
||||
## Conventions
|
||||
|
||||
- **Bold** terms in CLAUDE.md for scannability
|
||||
- Keep CLAUDE.md under ~100 lines (the "hot 30" rule)
|
||||
- Filenames: lowercase, hyphens (`todd-martinez.md`, `project-phoenix.md`)
|
||||
- Always capture nicknames and alternate names
|
||||
- Glossary tables for easy lookup
|
||||
- When something's used frequently, promote it to CLAUDE.md
|
||||
- When something goes stale, demote it to memory/ only
|
||||
|
||||
## What Goes Where
|
||||
|
||||
| Type | CLAUDE.md (Hot Cache) | memory/ (Full Storage) |
|
||||
|------|----------------------|------------------------|
|
||||
| Person | Top ~30 frequent contacts | glossary.md + people/{name}.md |
|
||||
| Acronym/term | ~30 most common | glossary.md (complete list) |
|
||||
| Project | Active projects only | glossary.md + projects/{name}.md |
|
||||
| Nickname | In Key People if top 30 | glossary.md (all nicknames) |
|
||||
| Company context | Quick reference only | context/company.md |
|
||||
| Preferences | All preferences | - |
|
||||
| Historical/stale | ✗ Remove | ✓ Keep in memory/ |
|
||||
|
||||
## Promotion / Demotion
|
||||
|
||||
**Promote to CLAUDE.md when:**
|
||||
- You use a term/person frequently
|
||||
- It's part of active work
|
||||
|
||||
**Demote to memory/ only when:**
|
||||
- Project completed
|
||||
- Person no longer frequent contact
|
||||
- Term rarely used
|
||||
|
||||
This keeps CLAUDE.md fresh and relevant.
|
||||
@@ -0,0 +1,158 @@
|
||||
---
|
||||
name: start
|
||||
description: Initialize the productivity system and open the dashboard. Use when setting up the plugin for the first time, bootstrapping working memory from your existing task list, or decoding the shorthand (nicknames, acronyms, project codenames) you use in your todos.
|
||||
---
|
||||
|
||||
# Start Command
|
||||
|
||||
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
|
||||
|
||||
Initialize the task and memory systems, then open the unified dashboard.
|
||||
|
||||
## Instructions
|
||||
|
||||
### 1. Check What Exists
|
||||
|
||||
Check the working directory for:
|
||||
- `TASKS.md` — task list
|
||||
- `CLAUDE.md` — working memory
|
||||
- `memory/` — deep memory directory
|
||||
- `dashboard.html` — the visual UI
|
||||
|
||||
### 2. Create What's Missing
|
||||
|
||||
**If `TASKS.md` doesn't exist:** Create it with the standard template (see task-management skill). Place it in the current working directory.
|
||||
|
||||
**If `dashboard.html` doesn't exist:** Copy it from `${CLAUDE_PLUGIN_ROOT}/skills/dashboard.html` to the current working directory.
|
||||
|
||||
**If `CLAUDE.md` and `memory/` don't exist:** This is a fresh setup — after opening the dashboard, begin the memory bootstrap workflow (see below). Place these in the current working directory.
|
||||
|
||||
### 3. Open the Dashboard
|
||||
|
||||
Do NOT use `open` or `xdg-open` — in Cowork, the agent runs in a VM and shell open commands won't reach the user's browser. Instead, tell the user: "Dashboard is ready at `dashboard.html`. Open it from your file browser to get started."
|
||||
|
||||
### 4. Orient the User
|
||||
|
||||
If everything was already initialized:
|
||||
```
|
||||
Dashboard open. Your tasks and memory are both loaded.
|
||||
- /productivity:update to sync tasks and check memory
|
||||
- /productivity:update --comprehensive for a deep scan of all activity
|
||||
```
|
||||
|
||||
If memory hasn't been bootstrapped yet, continue to step 5.
|
||||
|
||||
### 5. Bootstrap Memory (First Run Only)
|
||||
|
||||
Only do this if `CLAUDE.md` and `memory/` don't exist yet.
|
||||
|
||||
The best source of workplace language is the user's actual task list. Real tasks = real shorthand.
|
||||
|
||||
**Ask the user:**
|
||||
```
|
||||
Where do you keep your todos or task list? This could be:
|
||||
- A local file (e.g., TASKS.md, todo.txt)
|
||||
- An app (e.g. Asana, Linear, Jira, Notion, Todoist)
|
||||
- A notes file
|
||||
|
||||
I'll use your tasks to learn your workplace shorthand.
|
||||
```
|
||||
|
||||
**Once you have access to the task list:**
|
||||
|
||||
For each task item, analyze it for potential shorthand:
|
||||
- Names that might be nicknames
|
||||
- Acronyms or abbreviations
|
||||
- Project references or codenames
|
||||
- Internal terms or jargon
|
||||
|
||||
**For each item, decode it interactively:**
|
||||
|
||||
```
|
||||
Task: "Send PSR to Todd re: Phoenix blockers"
|
||||
|
||||
I see some terms I want to make sure I understand:
|
||||
|
||||
1. **PSR** - What does this stand for?
|
||||
2. **Todd** - Who is Todd? (full name, role)
|
||||
3. **Phoenix** - Is this a project codename? What's it about?
|
||||
```
|
||||
|
||||
Continue through each task, asking only about terms you haven't already decoded.
|
||||
|
||||
### 6. Optional Comprehensive Scan
|
||||
|
||||
After task list decoding, offer:
|
||||
```
|
||||
Do you want me to do a comprehensive scan of your messages, emails, and documents?
|
||||
This takes longer but builds much richer context about the people, projects, and terms in your work.
|
||||
|
||||
Or we can stick with what we have and add context later.
|
||||
```
|
||||
|
||||
**If they choose comprehensive scan:**
|
||||
|
||||
Gather data from available MCP sources:
|
||||
- **Chat:** Recent messages, channels, DMs
|
||||
- **Email:** Sent messages, recipients
|
||||
- **Documents:** Recent docs, collaborators
|
||||
- **Calendar:** Meetings, attendees
|
||||
|
||||
Build a braindump of people, projects, and terms found. Present findings grouped by confidence:
|
||||
- **Ready to add** (high confidence) — offer to add directly
|
||||
- **Needs clarification** — ask the user
|
||||
- **Low frequency / unclear** — note for later
|
||||
|
||||
### 7. Write Memory Files
|
||||
|
||||
From everything gathered, create:
|
||||
|
||||
**CLAUDE.md** (working memory, ~50-80 lines):
|
||||
```markdown
|
||||
# Memory
|
||||
|
||||
## Me
|
||||
[Name], [Role] on [Team].
|
||||
|
||||
## People
|
||||
| Who | Role |
|
||||
|-----|------|
|
||||
| **[Nickname]** | [Full Name], [role] |
|
||||
|
||||
## Terms
|
||||
| Term | Meaning |
|
||||
|------|---------|
|
||||
| [acronym] | [expansion] |
|
||||
|
||||
## Projects
|
||||
| Name | What |
|
||||
|------|------|
|
||||
| **[Codename]** | [description] |
|
||||
|
||||
## Preferences
|
||||
- [preferences discovered]
|
||||
```
|
||||
|
||||
**memory/** directory:
|
||||
- `memory/glossary.md` — full decoder ring (acronyms, terms, nicknames, codenames)
|
||||
- `memory/people/{name}.md` — individual profiles
|
||||
- `memory/projects/{name}.md` — project details
|
||||
- `memory/context/company.md` — teams, tools, processes
|
||||
|
||||
### 8. Report Results
|
||||
|
||||
```
|
||||
Productivity system ready:
|
||||
- Tasks: TASKS.md (X items)
|
||||
- Memory: X people, X terms, X projects
|
||||
- Dashboard: open in browser
|
||||
|
||||
Use /productivity:update to keep things current (add --comprehensive for a deep scan).
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- If memory is already initialized, this just opens the dashboard
|
||||
- Nicknames are critical — always capture how people are actually referred to
|
||||
- If a source isn't available, skip it and note the gap
|
||||
- Memory grows organically through natural conversation after bootstrap
|
||||
@@ -0,0 +1,91 @@
|
||||
---
|
||||
name: task-management
|
||||
description: Simple task management using a shared TASKS.md file. Reference this when the user asks about their tasks, wants to add/complete tasks, or needs help tracking commitments.
|
||||
user-invocable: false
|
||||
---
|
||||
|
||||
# Task Management
|
||||
|
||||
Tasks are tracked in a simple `TASKS.md` file that both you and the user can edit.
|
||||
|
||||
## File Location
|
||||
|
||||
**Always use `TASKS.md` in the current working directory.**
|
||||
|
||||
- If it exists, read/write to it
|
||||
- If it doesn't exist, create it with the template below
|
||||
|
||||
## Dashboard Setup (First Run)
|
||||
|
||||
A visual dashboard is available for managing tasks and memory. **On first interaction with tasks:**
|
||||
|
||||
1. Check if `dashboard.html` exists in the current working directory
|
||||
2. If not, copy it from `${CLAUDE_PLUGIN_ROOT}/skills/dashboard.html` to the current working directory
|
||||
3. Inform the user: "I've added the dashboard. Run `/productivity:start` to set up the full system."
|
||||
|
||||
The task board:
|
||||
- Reads and writes to the same `TASKS.md` file
|
||||
- Auto-saves changes
|
||||
- Watches for external changes (syncs when you edit via CLI)
|
||||
- Supports drag-and-drop reordering of tasks and sections
|
||||
|
||||
## Format & Template
|
||||
|
||||
When creating a new TASKS.md, use this exact template (without example tasks):
|
||||
|
||||
```markdown
|
||||
# Tasks
|
||||
|
||||
## Active
|
||||
|
||||
## Waiting On
|
||||
|
||||
## Someday
|
||||
|
||||
## Done
|
||||
```
|
||||
|
||||
Task format:
|
||||
- `- [ ] **Task title** - context, for whom, due date`
|
||||
- Sub-bullets for additional details
|
||||
- Completed: `- [x] ~~Task~~ (date)`
|
||||
|
||||
## How to Interact
|
||||
|
||||
**When user asks "what's on my plate" / "my tasks":**
|
||||
- Read TASKS.md
|
||||
- Summarize Active and Waiting On sections
|
||||
- Highlight anything overdue or urgent
|
||||
|
||||
**When user says "add a task" / "remind me to":**
|
||||
- Add to Active section with `- [ ] **Task**` format
|
||||
- Include context if provided (who it's for, due date)
|
||||
|
||||
**When user says "done with X" / "finished X":**
|
||||
- Find the task
|
||||
- Change `[ ]` to `[x]`
|
||||
- Add strikethrough: `~~task~~`
|
||||
- Add completion date
|
||||
- Move to Done section
|
||||
|
||||
**When user asks "what am I waiting on":**
|
||||
- Read the Waiting On section
|
||||
- Note how long each item has been waiting
|
||||
|
||||
## Conventions
|
||||
|
||||
- **Bold** the task title for scannability
|
||||
- Include "for [person]" when it's a commitment to someone
|
||||
- Include "due [date]" for deadlines
|
||||
- Include "since [date]" for waiting items
|
||||
- Sub-bullets for additional context
|
||||
- Keep Done section for ~1 week, then clear old items
|
||||
|
||||
## Extracting Tasks
|
||||
|
||||
When summarizing meetings or conversations, offer to add extracted tasks:
|
||||
- Commitments the user made ("I'll send that over")
|
||||
- Action items assigned to them
|
||||
- Follow-ups mentioned
|
||||
|
||||
Ask before adding - don't auto-add without confirmation.
|
||||
@@ -0,0 +1,168 @@
|
||||
---
|
||||
name: update
|
||||
description: Sync tasks and refresh memory from your current activity. Use when pulling new assignments from your project tracker into TASKS.md, triaging stale or overdue tasks, filling memory gaps for unknown people or projects, or running a comprehensive scan to catch todos buried in chat and email.
|
||||
argument-hint: "[--comprehensive]"
|
||||
---
|
||||
|
||||
# Update Command
|
||||
|
||||
> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).
|
||||
|
||||
Keep your task list and memory current. Two modes:
|
||||
|
||||
- **Default:** Sync tasks from external tools, triage stale items, check memory for gaps
|
||||
- **`--comprehensive`:** Deep scan chat, email, calendar, docs — flag missed todos and suggest new memories
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
/productivity:update
|
||||
/productivity:update --comprehensive
|
||||
```
|
||||
|
||||
## Default Mode
|
||||
|
||||
### 1. Load Current State
|
||||
|
||||
Read `TASKS.md` and `memory/` directory. If they don't exist, suggest `/productivity:start` first.
|
||||
|
||||
### 2. Sync Tasks from External Sources
|
||||
|
||||
Check for available task sources:
|
||||
- **Project tracker** (e.g. Asana, Linear, Jira) (if MCP available)
|
||||
- **GitHub Issues** (if in a repo): `gh issue list --assignee=@me`
|
||||
|
||||
If no sources are available, skip to Step 3.
|
||||
|
||||
**Fetch tasks assigned to the user** (open/in-progress). Compare against TASKS.md:
|
||||
|
||||
| External task | TASKS.md match? | Action |
|
||||
|---------------|-----------------|--------|
|
||||
| Found, not in TASKS.md | No match | Offer to add |
|
||||
| Found, already in TASKS.md | Match by title (fuzzy) | Skip |
|
||||
| In TASKS.md, not in external | No match | Flag as potentially stale |
|
||||
| Completed externally | In Active section | Offer to mark done |
|
||||
|
||||
Present diff and let user decide what to add/complete.
|
||||
|
||||
### 3. Triage Stale Items
|
||||
|
||||
Review Active tasks in TASKS.md and flag:
|
||||
- Tasks with due dates in the past
|
||||
- Tasks in Active for 30+ days
|
||||
- Tasks with no context (no person, no project)
|
||||
|
||||
Present each for triage: Mark done? Reschedule? Move to Someday?
|
||||
|
||||
### 4. Decode Tasks for Memory Gaps
|
||||
|
||||
For each task, attempt to decode all entities (people, projects, acronyms, tools, links):
|
||||
|
||||
```
|
||||
Task: "Send PSR to Todd re: Phoenix blockers"
|
||||
|
||||
Decode:
|
||||
- PSR → ✓ Pipeline Status Report (in glossary)
|
||||
- Todd → ✓ Todd Martinez (in people/)
|
||||
- Phoenix → ? Not in memory
|
||||
```
|
||||
|
||||
Track what's fully decoded vs. what has gaps.
|
||||
|
||||
### 5. Fill Gaps
|
||||
|
||||
Present unknown terms grouped:
|
||||
```
|
||||
I found terms in your tasks I don't have context for:
|
||||
|
||||
1. "Phoenix" (from: "Send PSR to Todd re: Phoenix blockers")
|
||||
→ What's Phoenix?
|
||||
|
||||
2. "Maya" (from: "sync with Maya on API design")
|
||||
→ Who is Maya?
|
||||
```
|
||||
|
||||
Add answers to the appropriate memory files (people/, projects/, glossary.md).
|
||||
|
||||
### 6. Capture Enrichment
|
||||
|
||||
Tasks often contain richer context than memory. Extract and update:
|
||||
- **Links** from tasks → add to project/people files
|
||||
- **Status changes** ("launch done") → update project status, demote from CLAUDE.md
|
||||
- **Relationships** ("Todd's sign-off on Maya's proposal") → cross-reference people
|
||||
- **Deadlines** → add to project files
|
||||
|
||||
### 7. Report
|
||||
|
||||
```
|
||||
Update complete:
|
||||
- Tasks: +3 from project tracker (e.g. Asana), 1 completed, 2 triaged
|
||||
- Memory: 2 gaps filled, 1 project enriched
|
||||
- All tasks decoded ✓
|
||||
```
|
||||
|
||||
## Comprehensive Mode (`--comprehensive`)
|
||||
|
||||
Everything in Default Mode, plus a deep scan of recent activity.
|
||||
|
||||
### Extra Step: Scan Activity Sources
|
||||
|
||||
Gather data from available MCP sources:
|
||||
- **Chat:** Search recent messages, read active channels
|
||||
- **Email:** Search sent messages
|
||||
- **Documents:** List recently touched docs
|
||||
- **Calendar:** List recent + upcoming events
|
||||
|
||||
### Extra Step: Flag Missed Todos
|
||||
|
||||
Compare activity against TASKS.md. Surface action items that aren't tracked:
|
||||
|
||||
```
|
||||
## Possible Missing Tasks
|
||||
|
||||
From your activity, these look like todos you haven't captured:
|
||||
|
||||
1. From chat (Jan 18):
|
||||
"I'll send the updated mockups by Friday"
|
||||
→ Add to TASKS.md?
|
||||
|
||||
2. From meeting "Phoenix Standup" (Jan 17):
|
||||
You have a recurring meeting but no Phoenix tasks active
|
||||
→ Anything needed here?
|
||||
|
||||
3. From email (Jan 16):
|
||||
"I'll review the API spec this week"
|
||||
→ Add to TASKS.md?
|
||||
```
|
||||
|
||||
Let user pick which to add.
|
||||
|
||||
### Extra Step: Suggest New Memories
|
||||
|
||||
Surface new entities not in memory:
|
||||
|
||||
```
|
||||
## New People (not in memory)
|
||||
| Name | Frequency | Context |
|
||||
|------|-----------|---------|
|
||||
| Maya Rodriguez | 12 mentions | design, UI reviews |
|
||||
| Alex K | 8 mentions | DMs about API |
|
||||
|
||||
## New Projects/Topics
|
||||
| Name | Frequency | Context |
|
||||
|------|-----------|---------|
|
||||
| Starlight | 15 mentions | planning docs, product |
|
||||
|
||||
## Suggested Cleanup
|
||||
- **Horizon project** — No mentions in 30 days. Mark completed?
|
||||
```
|
||||
|
||||
Present grouped by confidence. High-confidence items offered to add directly; low-confidence items asked about.
|
||||
|
||||
## Notes
|
||||
|
||||
- Never auto-add tasks or memories without user confirmation
|
||||
- External source links are preserved when available
|
||||
- Fuzzy matching on task titles handles minor wording differences
|
||||
- Safe to run frequently — only updates when there's new info
|
||||
- `--comprehensive` always runs interactively
|
||||
Reference in New Issue
Block a user