feat: v9.0.0 — three new agent templates (Discovery, Stakeholder Comms, Launch)

This release adds three new agent templates to the library, bringing the total to four.

New templates:
- PM Discovery Agent: synthesises customer interviews from Notion or Google Drive,
  identifies cross-interview themes, scores assumption confidence, generates follow-up questions
- PM Stakeholder Comms Agent: detects audience type (executive/investor/stakeholder/board),
  pulls activity from Linear/Jira/Drive, drafts in audience-appropriate format
- PM Launch Agent: end-to-end launch coordination with channel-specific content,
  calendar, success metrics, and launch checklist

Each template follows the established pattern: README, AGENT.md, orchestrate.sh,
2 subagents, connectors with example configs, examples, smoke test.

Total file count: 37 new files across 3 templates.

Updated README to position library as 4-template collection.
Bumped marketplace.json from v8.0.0 to v9.0.0.
This commit is contained in:
mohitagw15856
2026-05-07 22:30:34 +01:00
parent 9274b3d378
commit 59c4510055
50 changed files with 4659 additions and 0 deletions
@@ -0,0 +1,65 @@
# Connectors — PM Stakeholder Communications Agent
This agent reads from your team's tracking systems to compile stakeholder communications. Set up at least one ticketing connector (Linear or Jira). Google Drive is optional but recommended.
## Required: Linear OR Jira
The agent needs to know what you've shipped. Set up whichever ticketing system you use.
### Linear setup (5 min)
```bash
cd templates/pm-stakeholder-comms-agent/connectors
cp linear.example.json linear.json
# Get your API key
# Generate at: https://linear.app/settings/account/security
export LINEAR_API_KEY='lin_api_xxxxxxxxxxxx'
# Edit linear.json — update workspace_url and team_id
```
### Jira setup (5 min)
```bash
cd templates/pm-stakeholder-comms-agent/connectors
cp jira.example.json jira.json
# Get your API token
# Generate at: https://id.atlassian.com/manage-profile/security/api-tokens
export JIRA_EMAIL='you@company.com'
export JIRA_API_TOKEN='ATATT3xFfGF0...'
# Edit jira.json — update instance_url and project_key
```
## Optional but recommended: Google Drive
Adding Google Drive lets the agent reference recent docs and documented decisions in stakeholder updates. Without it, the agent only has access to ticketing system activity.
```bash
cd templates/pm-stakeholder-comms-agent/connectors
cp google-drive.example.json google-drive.json
# Set up service account (see pm-discovery-agent/connectors/README.md for detailed steps)
export GOOGLE_APPLICATION_CREDENTIALS='/path/to/service-account.json'
# Edit google-drive.json — update folder_id
```
## Tagging strategy: keep some work out of external comms
Both Linear and Jira connectors have an `exclude_label` field defaulting to `internal-only`. Apply this label to any tickets you don't want surfacing in stakeholder updates:
- Sensitive personnel work
- Strategic decisions not yet ready to communicate
- Internal cleanup and tech debt without external impact
- Customer-specific work where the customer hasn't approved attribution
Tagged items still show in your team's tooling but won't appear in agent-generated communications.
## Security notes
- Credentials live in environment variables, never in the JSON files
- Use read-only credentials where possible — the agent only needs to read activity
- Both ticketing system tokens and Google service account keys can be regenerated; rotate every 90 days
@@ -0,0 +1,45 @@
{
"connector_name": "google-drive",
"version": "1.0.0",
"description": "Optional Google Drive connector for the PM Stakeholder Communications Agent. Pulls recent docs and decisions from a Drive folder for inclusion in stakeholder updates.",
"configuration": {
"folder_id": "FOLDER_ID_HERE",
"include_subfolders": true,
"file_types": ["application/vnd.google-apps.document"],
"default_period_filter": "modifiedTime > '30 days ago'",
"exclude_filename_patterns": ["DRAFT", "WIP", "scratch"],
"rate_limit_requests_per_minute": 60
},
"credentials": {
"auth_method": "service_account",
"service_account_key_path_env_var": "GOOGLE_APPLICATION_CREDENTIALS"
},
"available_operations": [
{
"name": "list_recent_docs",
"description": "Get docs modified in the specified period",
"filters": ["modifiedAfter", "modifiedBefore", "name_contains"],
"max_results": 30
},
{
"name": "get_doc_summary",
"description": "Get a brief summary of a specific doc (title, last modified, brief content extract)",
"required_input": "file_id"
}
],
"_setup_instructions": [
"1. Set up a Google Cloud project and service account (see google-drive.example.json in pm-discovery-agent for full steps)",
"2. Set GOOGLE_APPLICATION_CREDENTIALS environment variable",
"3. Find the folder ID where your team's docs and decisions live",
"4. Share that folder with the service account email (Viewer access)",
"5. Update folder_id in this file",
"6. Save as 'google-drive.json'",
"7. Test: bash orchestrate.sh --audience executive --period 'last 30 days' --dry-run"
],
"_note": "This connector is optional. The agent works fine with just Linear/Jira data. Adding Google Drive enriches communications with recent docs and documented decisions, but isn't required."
}
@@ -0,0 +1,49 @@
{
"connector_name": "jira",
"version": "1.0.0",
"description": "Jira connector for the PM Stakeholder Communications Agent. Provides access to recently completed issues and current sprint progress for inclusion in stakeholder updates.",
"configuration": {
"instance_url": "https://your-domain.atlassian.net",
"project_key": "PROJ",
"default_jql_for_shipped": "project = PROJ AND status = Done AND resolved >= -30d ORDER BY resolved DESC",
"default_jql_for_in_progress": "project = PROJ AND status in (\"In Progress\", \"In Review\") ORDER BY priority DESC",
"exclude_label": "internal-only",
"rate_limit_requests_per_minute": 100
},
"credentials": {
"auth_email_env_var": "JIRA_EMAIL",
"api_token_env_var": "JIRA_API_TOKEN",
"auth_email_placeholder": "your-email@yourcompany.com",
"api_token_placeholder": "ATATT3xFfGF0..."
},
"available_operations": [
{
"name": "search_recently_shipped",
"description": "Get all issues completed in the specified period",
"default_jql": "project = PROJ AND status = Done AND resolved >= -30d ORDER BY resolved DESC",
"max_results": 100
},
{
"name": "search_in_progress",
"description": "Get current in-progress issues for context",
"default_jql": "project = PROJ AND status in (\"In Progress\", \"In Review\") ORDER BY priority DESC"
},
{
"name": "get_issue_summary",
"description": "Get a brief summary of a specific issue",
"required_input": "issue_key"
}
],
"_setup_instructions": [
"1. Generate a Jira API token at https://id.atlassian.com/manage-profile/security/api-tokens",
"2. Set JIRA_EMAIL and JIRA_API_TOKEN environment variables",
"3. Update instance_url and project_key in this file",
"4. Customise the JQL filters if your team uses different statuses",
"5. Save as 'jira.json'",
"6. Test: bash orchestrate.sh --audience executive --period 'last 30 days' --dry-run"
]
}
@@ -0,0 +1,50 @@
{
"connector_name": "linear",
"version": "1.0.0",
"description": "Linear connector for the PM Stakeholder Communications Agent. Provides access to recently shipped issues and current sprint progress for inclusion in stakeholder updates.",
"configuration": {
"workspace_url": "https://linear.app/your-workspace-name",
"team_id": "TEAM_ID_HERE",
"default_period_filter": "last_30_days",
"include_closed_issues": true,
"include_in_progress_issues": true,
"exclude_label": "internal-only",
"rate_limit_requests_per_minute": 60
},
"credentials": {
"api_key_env_var": "LINEAR_API_KEY",
"api_key_placeholder": "lin_api_xxxxxxxxxxxxxxxxxxxxxxxx"
},
"available_operations": [
{
"name": "list_recently_shipped",
"description": "Get all issues completed in the specified period",
"filters": ["completed_after", "completed_before", "team_id", "project", "label", "exclude_label"],
"max_results": 100
},
{
"name": "list_in_progress",
"description": "Get current in-progress and ready issues for context on what's coming next",
"filters": ["team_id", "project", "label"]
},
{
"name": "get_issue_summary",
"description": "Get a brief summary of a specific issue for inclusion in updates",
"required_input": "issue_id"
}
],
"_setup_instructions": [
"1. Generate a Linear API key at https://linear.app/settings/account/security",
"2. Set LINEAR_API_KEY environment variable",
"3. Find your team ID (see linear.example.json in pm-sprint-agent template for command)",
"4. Update team_id and workspace_url in this file",
"5. Save as 'linear.json'",
"6. Test: bash orchestrate.sh --audience executive --period 'last 30 days' --dry-run"
],
"_note_on_internal_only_label": "The exclude_label 'internal-only' lets you tag tickets that should not appear in any external communications. Useful for sensitive work or items not ready to communicate externally."
}