@bossmode/hermes-ai-project-manager
v0.1.63
Published
Standalone Hermes AI Project Manager pack powered by the Close-the-Loop Engine.
Readme
Hermes AI Project Manager
A local project-control pack for Hermes. It tracks projects, commitments, owners, assignment messages, status evidence, reminders, escalations, and daily digests from the work your business creates every day.
Transcript ingestion is optional. You can start projects and tasks directly from Hermes without a meeting transcript. During guided setup, Hermes asks which transcript source the customer uses. Fathom is the native v1 connector; Fireflies/Otter/Granola/Zoom/Read.ai and other sources can still enter through local file-drop, manual paste, Google Drive, or Gmail fallback until their native connectors are added.
Customer experience
The customer talks to Hermes. Hermes runs the CLI behind the scenes.
Use natural prompts like:
Finish PM setup one question at a time.
Start a project called Client Delivery Sprint.
Review approvals, send approved assignments, and open my board.
Run my daily PM check.
Chase anything late and tell me what is blocked.
Update the PM pack.After install, Hermes should treat project/task/goal/follow-up/status language as AI Project Manager work by default. The customer should not have to prefix every prompt with “Use the AI Project Manager.” If the customer says “don’t track this” or “brainstorm only,” Hermes should not create ledger records.
For multi-step work, Hermes runs a Project Detection Gate before executing. Requests such as redesigns, launches, migrations, setup work, refactors, workflows, multi-surface code/UI/test/deploy changes, and ambiguous medium-scope “make this better” work are treated as projects first: Hermes creates/updates the project, proposes phases, asks only high-leverage PM questions, and tells the customer where to view the project before implementation starts. Tiny one-step edits remain quick tasks.
The hermes-pm commands below are the engine interface for Hermes and advanced operators. They are not the default customer workflow.
Install
Recommended buyer handoff:
hermes -z 'Install the Hermes AI Project Manager Pack for me. Run the installer from my receipt, finish setup one question at a time, start my first project when I am ready, and open the board.'Fallback direct install:
npx -y @bossmode/hermes-ai-project-manager@latest install --license <license-from-checkout> --yesIf a customer gives Hermes only the raw pm_live_... token from the email, Hermes should still run the installer internally with --license <token> and should not ask for the token again. The installer also accepts the token as a positional fallback after install, but the explicit --license command remains the clearest support path.
For custom non-interactive install:
npx -y @bossmode/hermes-ai-project-manager@latest install \
--license <license-from-checkout> \
--yes \
--name "My AI Project Manager" \
--timezone "America/New_York" \
--team "Alex Rivera:operations:alex:@alex,Jordan Lee:implementation:jordan:@jordan"The installer creates:
- Hermes skill:
~/.hermes/skills/hermes-ai-project-manager/SKILL.md - Project ledger:
~/.hermes/project-manager/ledger.db - Local config:
~/.hermes/project-manager/config.json - Local license cache:
~/.hermes/project-manager/license.json - Transcript inbox:
~/.hermes/project-manager/inbox - Project board:
~/.hermes/project-manager/board/index.html - Runtime:
~/.hermes/project-manager/runtime - Customer command shim:
~/.local/bin/bossmodeforbossmode pm ... - Advanced CLI wrapper:
~/.local/bin/hermes-pm - Starter workflows:
~/.hermes/project-manager/workflows
After install, stay in Hermes and say:
Finish PM setup. Ask me one question at a time.Then:
Start a project called Client Delivery Sprint.Updates
Future pack improvements are designed to be pulled in by Hermes, not by making the customer manage npm manually. Ask Hermes:
Update the PM pack.Hermes should run bossmode pm update internally. hermes-pm update remains a backward-compatible advanced alias. If the installed runtime is too old to know either command, Hermes should run this fallback internally:
npx -y @bossmode/hermes-ai-project-manager@latest install --yesThe update path preserves the local ledger, license cache, scheduler config, transcript sources, work surface, board data, and setup profile.
To verify a customer's runtime, Hermes can run:
bossmode pm version statusThe hounding/autopilot safety floor is @bossmode/[email protected] with @bossmode/[email protected]. If version status says update_required, the scheduler stops, runs the safe self-update when allowed, and resumes on the next scheduled run from the refreshed runtime. Fresh installs always use @latest.
After fresh install or update, PM Engine also runs a safe Context Radar scan once. It looks for likely local repos/project folders through metadata only and queues supervised project candidates; it does not read full source files or secrets.
License activation
Checkout issues each buyer a unique pm_live_... license token. It is not a shared password: activation sends the token plus this machine's device fingerprint to the license server, stores only a redacted local cache, and lets the server reject expired, revoked, wrong-product, unpaid checkout, or over-activation tokens.
The Stripe path is:
- Checkout session or Payment Link carries product metadata:
product_key=hermes-ai-project-manager. - After payment, the license session endpoint verifies the paid Stripe session plus buyer email.
- The buyer receives a unique Hermes handoff plus a fallback direct installer:
npx -y @bossmode/hermes-ai-project-manager@latest install --license <license-from-checkout> --yesIf the pack is already installed, ask Hermes to activate/check the license. Advanced fallback:
hermes-pm license activate --license <license-from-checkout>
hermes-pm license statusIf the license server is temporarily unreachable after a successful activation, the local cache allows short offline use. Test/offline activations are available only when explicitly enabled for development.
Guided setup
Hermes walks the operator through setup conversationally. Follow-up timing accepts human modes like relaxed, standard, active, aggressive, or weapon PM; the old numeric format still works for advanced operators:
hermes-pm onboarding start
hermes-pm onboarding answer --step workspace_name --value "Acme Delivery Ops"
hermes-pm onboarding answer --step operating_mode --value "team"
hermes-pm onboarding answer --step team_roster --value "Alex Rivera:operations:alex:@alex,Jordan Lee:delivery:jordan:@jordan"
hermes-pm onboarding answer --step work_surface --value "local/manual-copy"
hermes-pm onboarding answer --step transcript_source --value "Fathom"
hermes-pm onboarding answer --step reminder_rules --value "weapon PM"
hermes-pm onboarding answer --step first_project --value "Client Delivery Sprint"
hermes-pm onboarding finishThe setup flow still treats transcripts as optional. The first project can be created directly from the setup conversation.
For a solo operator, answer solo for operating mode. Solo setup does not require a roster, Slack, or transcripts:
hermes-pm onboarding answer --step operating_mode --value "solo"
hermes-pm onboarding answer --step reminder_rules --value "standard"
hermes-pm onboarding answer --step first_project --value "Launch a simple offer page by Friday"
hermes-pm onboarding finishSolo mode creates an execution bench: You, Hermes, Agent/Tool, Contractor TBD, and Parking Lot. Parking Lot work stays visible but does not trigger reminders/escalations.
Project board
For a visual view of active work, ask Hermes:
Open my project board.Advanced fallback:
hermes-pm board openThe default board is an interactive dark BossMode Project Manager Control Center. Team mode uses Needs Approval, To Assign, In Progress, Needs Follow-up, Blocked, and Done. Solo mode uses Ideas, Planned, Do Next, In Progress, Waiting / Blocked, Needs Decision, and Done. It reads from and writes through the local ledger, so it shows projects started from Hermes conversations, board forms, Slack/message evidence, recurring workflows, task imports, scheduled check-ins, and optional transcripts.
The board can create projects/tasks, define scope, record decisions, approve routine assignments, dispatch, run risk scans, generate weekly briefs, create hours-back receipts, and mark work done/blocked with evidence. Ask Hermes:
Open the interactive project board so I can add projects and tasks visually.Hermes will run the local interactive board server. Static snapshots are still available:
hermes-pm board exportThe interactive board writes through the same Close-the-Loop Engine. It does not bypass approvals, assignment, dispatch, reminders, escalations, or evidence-based completion.
What it does
- Captures projects and tasks from direct instructions.
- Supports Solo, Team, and Hybrid operating modes.
- Structures vague solo goals into outcome, scope, smallest useful version, milestones, tasks, risks, decisions, and first next action.
- Asks for PM-grade success criteria when useful: what done means, what benchmark proves progress, when to check in, and what recovery path to use if work slips.
- Creates projects manually without transcripts.
- Creates one-off tasks manually without transcripts.
- Auto-detects project-shaped requests before execution and runs PM intake first.
- Assigns/chases through local/manual-copy or any configured Hermes work surface such as Slack, Telegram, Discord, email, or SMS.
- Sends safe self-hounds to the operator through the configured Hermes work surface automatically when the scheduler runs; third-party delegation stays supervised.
- Establishes a PM kickoff contract for real projects: outcome, success metric/KPI, owner, next milestone, cadence, and kill/park criteria.
- Runs scheduled project-level check-ins against milestones/KPIs so Hermes keeps asking for status instead of waiting for the operator to remember.
- Routes chasing to the responsible bottleneck — task owner, project owner, decision owner, dependency/vendor owner, reviewer/approver, stakeholder, or operator when the safe route is unknown.
- Records completion/blocker evidence before changing task status.
- Scans for risks before deadlines slip: silent owners, stale tasks, blockers, decision backlogs, and due-date compression.
- Drafts chase nudges and promotes safe operator hounds without manual approval; third-party chase nudges stay in review.
- Generates Weekly Operator Briefs, Friday Wraps, Exec One-Pagers, and hours-back receipts from ledger evidence.
- Records decision/rationale memory so “why did we decide X?” has an evidence-backed answer.
- Accepts optional transcript/meeting-note ingestion.
- Watches an optional Super Second Brain PM Radar feed and safe local repo/project metadata for unreported projects, goals, progress, tasks, loose commitments, decisions, risks, duplicates, stale items, and SOP opportunities.
- Polls configured Google Workspace transcript inboxes when available.
- Resolves owners from names, roles, aliases, and Slack handles.
- Queues assignments, reminders, escalations, digests, clarification requests, and operator hounds.
- Keeps a local SQLite ledger as the source of truth.
- Exports local data for migration or backup.
Inputs
The pack can track work from:
- direct Hermes conversations
- manual project starts
- manual task creation
- Slack/message status evidence
- recurring workflow/SOP triggers
- scheduled check-ins
- task-tool imports/status events
- optional transcript paste/file/canonical JSON
- Google Docs/Drive/Gmail transcript inboxes
- optional Super Second Brain PM Radar feed from Obsidian/AI chat memory
- safe local project/repo metadata scan for untracked projects
Transcripts are one input path, not the project model.
Project Detection Gate
Hermes should treat multi-step requests as projects before execution. Examples:
- “Redesign homepage, keep core elements, match other pages, run dev server and show me.” → project.
- “Set up migration, test suite updates, rollout plan, and docs.” → project.
- “Fix typo in one button label.” → quick task.
Advanced fallback:
bossmode pm project classify --text "Redesign homepage, keep core elements, match other pages, run dev server and show me."Context Radar with Super Second Brain
If the customer also installs the Super Second Brain / AI memory pack, AI Project Manager can watch a PM Radar feed that Second Brain writes from Obsidian and AI chat memory. PM Engine also has a safe local Context Radar that looks at repo/project folder metadata to find likely projects not yet in the ledger. This is not blind vault scraping and it does not let notes or files mutate the ledger. It creates supervised findings under Context Radar.
Use it for:
- undefined projects or goals the user brainstormed but never created,
- undocumented progress from Codex/Claude/AI work sessions,
- loose commitments and missing next actions,
- decisions/rationale that should be remembered,
- risks/blockers, duplicate/stale work, and SOP opportunities.
Ask Hermes:
Connect my Super Second Brain radar feed and scan for loose ends.Advanced fallback:
hermes-pm second-brain configure --feed ~/.hermes/second-brain/pm-radar/feed.jsonl
hermes-pm context-radar scan
hermes-pm context-radar listEvery finding is approval-gated. The ledger remains the source of truth; Second Brain and local project metadata are context/evidence only.
First project without a transcript
Customer prompt:
Start a project called Client Delivery Sprint.
Add two tasks:
1. Draft delivery plan — owner Alex — due 2026-05-01
2. Build implementation checklist — owner Jordan — due 2026-05-02
Then review approvals, send approved assignments, and open the board.Solo structuring prompt:
Structure this project: launch a simple offer page by Friday. Give me the smallest useful version and today's first next action.Advanced CLI fallback:
hermes-pm project structure --goal "launch a simple offer page" --just-create --due 2026-05-01Advanced CLI fallback:
hermes-pm project start \
--title "Client Delivery Sprint" \
--task "Draft delivery plan|alex|2026-05-01" \
--task "Build implementation checklist|jordan|2026-05-02"Create a one-off task:
hermes-pm task create \
--title "Prepare weekly project status update" \
--owner alex \
--due 2026-05-03Check status internally:
hermes-pm statusDispatch queued messages internally:
hermes-pm dispatchWork surface / chat chasing
Slack is optional. The pack reuses Hermes messaging targets and never asks you to paste Slack tokens into this pack's config. Self-install should use whatever Hermes already has connected, then fall back safely if no external channel exists:
hermes-pm work-surface setup --surface auto
hermes-pm dispatchIf Slack is already connected in Hermes, auto can select Slack. If Telegram is the only connected Hermes channel, auto can use Telegram. If no channel is connected, the board/local fallback still works.
When Telegram is selected, PM Engine can chase the operator there from projects created in the UI, Hermes conversation, or CLI. Scheduled reminders/escalations are dispatched in the same scheduler pass; the user does not need to manually run dispatch for routine self-check-ins.
Advanced Slack-only setup remains available:
hermes-pm work-surface setup --surface slackEvery assignment/reminder/escalation includes the task ID and accepted status replies:
done
blocked: <reason>
eta: YYYY-MM-DD
need helpReminder/escalation messages also prompt for recovery choices such as do now, reschedule, shrink scope, delegate, block, park, or kill.
If a Slack reply is routed into Hermes, Hermes records it internally with:
hermes-pm ingest message \
--platform slack \
--text "done" \
--from @alex \
--thread THREAD_ID \
--message-id MESSAGE_IDA task is complete only when explicit evidence is recorded. Assigning a task never marks it complete.
Optional transcript ingestion
Save transcript files under the local inbox by default:
cat > ~/.hermes/project-manager/inbox/project-notes.md <<'NOTES'
[Alex Rivera] Prepare onboarding plan by 2026-05-01.
[Jordan Lee] Build delivery checklist by 2026-05-02.
NOTES
hermes-pm ingest transcript --file ~/.hermes/project-manager/inbox/project-notes.md
hermes-pm dispatchTo automate transcript inboxes through Google Workspace, ask Hermes to configure your transcript inbox; advanced fallback:
printf '<fathom-api-key>' | hermes-pm configure transcripts --source fathom-api --api-key-stdin
hermes-pm configure transcripts --source google-drive --folder "AI Project Manager / Transcripts"
hermes-pm configure transcripts --source gmail-label --label "AI Project Manager/Transcripts"
hermes-pm scheduler run transcript-inboxAny transcript provider that can create a Google Doc, send an email to a label, or save a file can feed the same path.
Task-tool evidence
The local ledger stays canonical. Task tools are read-only evidence sources unless an approval policy says otherwise. Linear is the first reference task-tool source:
hermes-pm sources import --adapter linear --external-id LIN-123 --title "External task title" --status "In Progress"This records status evidence from the work floor without letting the external tool silently overwrite the project ledger.
Follow-through jobs
Install the always-on scheduler from Hermes when you want background chasing. It uses Hermes cron when available and a macOS LaunchAgent fallback when needed:
hermes-pm scheduler install
hermes-pm scheduler statushermes-pm scheduler run reminders
hermes-pm scheduler run escalations
hermes-pm scheduler run transcript-inbox
hermes-pm scheduler run digest
hermes-pm scheduler run risk-scan
hermes-pm scheduler run weekly-brief
hermes-pm scheduler run friday-wrap
hermes-pm scheduler run stakeholder-updates
hermes-pm scheduler run hours-receipt
hermes-pm scheduler run patterns
hermes-pm digest
hermes-pm pressureThe daily digest and pressure command use the PM operating format: Shipped, Blocked, No-reply / stale, and Next chase.
Operator artifacts
Use these internally through Hermes:
hermes-pm risk scan
hermes-pm decision record --title "Decision" --rationale "why"
hermes-pm decision ask --query "why did we decide X?"
hermes-pm brief weekly
hermes-pm brief friday
hermes-pm brief exec
hermes-pm stakeholder draft --kind client
hermes-pm receipt generateThese artifacts are evidence-backed by the local ledger. External systems are inputs/projections; they do not overwrite canonical project state without policy and approval.
Supervised Mode
Supervised Mode is on by default. It approval-gates side effects while you build trust in the pack.
If dispatch skips sends because approvals are pending, Hermes should explain them in plain English and ask for an approve/deny decision. Advanced fallback:
hermes-pm approvals review
hermes-pm approvals approve-safe --json
hermes-pm outbox retry-dead-letters --kind reminder,escalation,digest --safe-self-hounds-only --json
hermes-pm dispatch --json
hermes-pm pressure --jsonapprove-safe bulk-approves routine safe assignments and safe self-hounds to the operator. It still skips third-party delegation, unresolved non-operator destinations, destructive actions, and risky external side effects.
For smoke testing only:
hermes-pm install --yes --supervised-mode falseLocal/manual-copy fallback
Local/manual-copy is always available. If Slack or Google Workspace is not configured, the pack still tracks projects and prints assignment/reminder/escalation copy locally.
External tools are projections. The local ledger is the source of truth.
Status and export
hermes-pm setup status
hermes-pm replay
hermes-pm exportRaw transcripts are excluded from exports by default.
Uninstall
Remove runtime, CLI wrapper, and Hermes skill while preserving project data:
hermes-pm uninstallRemove everything, including the local ledger and config:
hermes-pm uninstall --remove-dataSafety rules
- Do not silently choose external destinations.
- Ask for clarification when owner/date/destination is ambiguous.
- Approval-gate client-visible, money/legal/HR, destructive, low-confidence, and high-risk actions.
- Require explicit evidence before marking work complete.
- Do not treat transcripts as required to start or manage projects.
