Help us improve
Share bugs, ideas, or general feedback.
From myna
Scan the entire vault for blockers — explicit blocker callouts and overdue tasks. Separates your blockers from tasks assigned to others. Use for any blockers query: "what's blocked?", "show me blockers", "any blockers?", "what's holding things up?"
npx claudepluginhub bathlasiddharth/myna --plugin mynaHow this skill is triggered — by the user, by Claude, or both
Slash command
/myna:blockers [optional: scope to a specific file or folder][optional: scope to a specific file or folder]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
If vault_path is not in context, read `~/.myna/config.yaml` first. If the file does not exist, tell the user to run `/myna:setup` and stop.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
If vault_path is not in context, read ~/.myna/config.yaml first. If the file does not exist, tell the user to run /myna:setup and stop.
Read user.name from config — needed to separate your tasks from delegated ones.
Scans the entire vault for blockers and surfaces them inline. Read-only — no vault writes. Informational only — no auto-escalation.
Two signal types:
1. Explicit blocker callouts
Grep across {vault_path}/myna/**/*.md:
\[!warning\] Blocker
2. Overdue tasks
Grep across {vault_path}/myna/**/*.md:
- \[ \].*📅 \d{4}-\d{2}-\d{2}
Filter results for dates before today. ISO date format sorts lexicographically — compare string directly against today's date.
Default: Myna-managed files only ({vault_path}/myna/**/*.md).
If the user scopes to a specific file or folder under myna/: limit the grep to that path.
The same blocker or task may appear multiple times — across files, or matching more than one signal type. After collecting all results:
- [ ], stripped of metadata).Projects/ file over meeting files; prefer meeting files over other sources.After deduplication, assign each result to a project:
Projects/{slug}.md — assign to that project.[project:: {name}] field — assign to that project.Within each section (Your Blockers / Delegated), group results under project headings. Tasks with no project association go under Other at the end.
For each task result, check for a [person:: {name}] field. The person value may be a plain name ([person:: Sarah Chen]) or a wiki-linked name ([person:: [[Sarah Chen]]]) — normalize by stripping [[ and ]] before comparing.
person matches user.name from config, or no person field is present: treat as your blocker.person is someone else: treat as delegated blocker (waiting on them).Blocker callouts are always listed under your blockers unless they explicitly name another owner.
For blocker callouts (signal 1), parse the callout body ([date | source] description) and render the source in plain English — e.g., "from 1:1 with Sarah on Apr 10", "from email from James on Mar 28", "from Slack #auth-team on Apr 5".
## Blockers — [date]
### Summary
[N] blockers — [X] yours, [Y] delegated.
[Project A]: [N] blocked
[Project B]: [N] overdue ([X] days)
Other: [N] blocked
---
### Your Blockers
#### [Project Name]
**[description]**
[From 1:1 with Sarah on Apr 10 | file path]
[Due: date | X days overdue]
#### Other
**[description]**
[From email from James on Mar 28 | file path]
[Due: date | X days overdue]
---
### Delegated — Waiting on Others
#### [Project Name]
**[description]**
Owner: [name]
[From Slack #auth-team on Apr 5 | file path]
[Due: date | X days overdue]
#### Other
**[description]**
Owner: [name]
[From Slack #auth-team on Apr 5 | file path]
[Due: date | X days overdue]
If no blockers found:
No open blockers found across the vault.
{vault_path}. Check your config."