@hasna/assistants 1.1.99 → 1.1.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -1
- package/dist/.assistants/ASSISTANTS.md +0 -7
- package/dist/.assistants/commands/reflect.md +0 -13
- package/dist/.assistants/skills/calendar/SKILL.md +0 -40
- package/dist/.assistants/skills/email/SKILL.md +0 -41
- package/dist/.assistants/skills/notes/SKILL.md +0 -44
- package/dist/.assistants/skills/search/SKILL.md +0 -23
- package/dist/.assistants/skills/skill-brainstorm/SKILL.md +0 -30
- package/dist/.assistants/skills/skill-codereview/SKILL.md +0 -46
- package/dist/.assistants/skills/skill-commitmsg/SKILL.md +0 -41
- package/dist/.assistants/skills/skill-debug/SKILL.md +0 -59
- package/dist/.assistants/skills/skill-draft/SKILL.md +0 -30
- package/dist/.assistants/skills/skill-research/SKILL.md +0 -27
- package/dist/.assistants/skills/skill-summarize/SKILL.md +0 -25
- package/dist/.assistants/skills/skill-video/SKILL.md +0 -113
- package/dist/.assistants/workflows/code-review.yml +0 -23
- package/dist/.assistants/workflows/content-creation.yml +0 -22
- package/dist/.assistants/workflows/daily-standup.yml +0 -24
- package/dist/.assistants/workflows/research.yml +0 -23
- package/dist/config/hooks.json +0 -15
- package/dist/config/settings.json +0 -38
- package/dist/config/templates/coding.json +0 -5
- package/dist/config/templates/research.json +0 -5
- package/dist/config/templates/writing.json +0 -5
- package/dist/index.js +0 -6077
- package/dist/index.js.map +0 -2057
package/package.json
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
You are an AI assistant running in the terminal.
|
|
2
|
-
|
|
3
|
-
Rules:
|
|
4
|
-
- Use connector tools for external systems when available.
|
|
5
|
-
- Prefer read-only tools (read, glob, grep) for inspection.
|
|
6
|
-
- Only write helper scripts in `.assistants/scripts/<session-id>/`.
|
|
7
|
-
- Avoid destructive commands, installs, or environment changes unless explicitly asked.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: reflect
|
|
3
|
-
description: Reflect on the conversation and suggest next steps
|
|
4
|
-
tags: [reflection, next-steps]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Reflection
|
|
8
|
-
|
|
9
|
-
Please summarize the last interaction and suggest 2-3 next steps.
|
|
10
|
-
|
|
11
|
-
- Keep it concise
|
|
12
|
-
- Focus on clarity
|
|
13
|
-
- Ask a follow-up question if needed
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: calendar
|
|
3
|
-
description: View and manage Google Calendar events
|
|
4
|
-
argument-hint: [today|tomorrow|week|add "event"]
|
|
5
|
-
allowed-tools: bash, googlecalendar
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Manage calendar events based on the command: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Commands
|
|
13
|
-
|
|
14
|
-
**View today's events:**
|
|
15
|
-
```bash
|
|
16
|
-
connect-googlecalendar events list --today
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**View tomorrow's events:**
|
|
20
|
-
```bash
|
|
21
|
-
connect-googlecalendar events list --tomorrow
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**View this week's events:**
|
|
25
|
-
```bash
|
|
26
|
-
connect-googlecalendar events list --week
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Add an event:**
|
|
30
|
-
Parse the event details from the arguments and create the event:
|
|
31
|
-
```bash
|
|
32
|
-
connect-googlecalendar events create "Event Title" --start "2025-01-31T10:00:00" --end "2025-01-31T11:00:00"
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Output Format
|
|
36
|
-
|
|
37
|
-
Present events in a clean list:
|
|
38
|
-
- **Time** - Event Title (Location if available)
|
|
39
|
-
|
|
40
|
-
For conflicts or busy periods, highlight them.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: email
|
|
3
|
-
description: Check and manage Gmail inbox
|
|
4
|
-
argument-hint: [inbox|unread|send "to" "subject" "body"]
|
|
5
|
-
allowed-tools: bash, gmail
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Manage email based on the command: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Commands
|
|
13
|
-
|
|
14
|
-
**View inbox:**
|
|
15
|
-
```bash
|
|
16
|
-
connect-gmail messages list --max 10
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**View unread:**
|
|
20
|
-
```bash
|
|
21
|
-
connect-gmail messages list --unread --max 10
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**Send email:**
|
|
25
|
-
Parse the recipient, subject, and body from arguments:
|
|
26
|
-
```bash
|
|
27
|
-
connect-gmail messages send --to "recipient@example.com" --subject "Subject" --body "Body text"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Search emails:**
|
|
31
|
-
```bash
|
|
32
|
-
connect-gmail messages search "query" --max 10
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Output Format
|
|
36
|
-
|
|
37
|
-
Present emails as:
|
|
38
|
-
- **From** | Subject | Date
|
|
39
|
-
Preview of body (first 100 chars)
|
|
40
|
-
|
|
41
|
-
Flag important or urgent emails.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: notes
|
|
3
|
-
description: Create and manage notes in Notion
|
|
4
|
-
argument-hint: [list|create "title"|search "query"]
|
|
5
|
-
allowed-tools: bash, notion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Manage notes in Notion based on the command: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Commands
|
|
13
|
-
|
|
14
|
-
**List recent notes:**
|
|
15
|
-
```bash
|
|
16
|
-
connect-notion pages list --max 10
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Create a note:**
|
|
20
|
-
Parse the title and optional content from arguments:
|
|
21
|
-
```bash
|
|
22
|
-
connect-notion pages create "PARENT_PAGE_ID" "Note Title" --content "Note content here"
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Note: You'll need to know the parent page ID. List pages first to find it.
|
|
26
|
-
|
|
27
|
-
**Search notes:**
|
|
28
|
-
```bash
|
|
29
|
-
connect-notion search "query" --pages
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**Get note content:**
|
|
33
|
-
```bash
|
|
34
|
-
connect-notion blocks children "PAGE_ID"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Output Format
|
|
38
|
-
|
|
39
|
-
Present notes with:
|
|
40
|
-
- Title
|
|
41
|
-
- Last edited date
|
|
42
|
-
- Preview of content
|
|
43
|
-
|
|
44
|
-
For search results, show relevance highlights.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: search
|
|
3
|
-
description: Search the web for information using Exa
|
|
4
|
-
argument-hint: [query]
|
|
5
|
-
allowed-tools: bash, exa
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Search the web for information about: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
Use the `connect-exa` CLI to perform the search:
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
connect-exa search "$ARGUMENTS" --max 5
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Summarize the results in a clear, concise format with:
|
|
19
|
-
1. Key findings
|
|
20
|
-
2. Relevant links
|
|
21
|
-
3. Any important caveats
|
|
22
|
-
|
|
23
|
-
If no results are found, suggest alternative search queries.
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: brainstorm
|
|
3
|
-
description: Generate ideas and explore possibilities. Use when the user needs creative thinking or problem solving.
|
|
4
|
-
argument-hint: [topic or problem]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Instructions
|
|
8
|
-
|
|
9
|
-
Brainstorm ideas for: $ARGUMENTS
|
|
10
|
-
|
|
11
|
-
### Approach
|
|
12
|
-
|
|
13
|
-
1. **Divergent thinking**: Generate many ideas without judgment
|
|
14
|
-
2. **Different angles**: Consider the topic from multiple perspectives
|
|
15
|
-
3. **Build on ideas**: Create variations and combinations
|
|
16
|
-
4. **Organize**: Group related ideas together
|
|
17
|
-
|
|
18
|
-
### Output Format
|
|
19
|
-
|
|
20
|
-
- **Quick Ideas** (5-10): Rapid-fire suggestions
|
|
21
|
-
- **Deep Dives** (2-3): More developed concepts with brief explanations
|
|
22
|
-
- **Wild Cards** (1-2): Unconventional or unexpected approaches
|
|
23
|
-
- **Next Steps**: How to explore or refine the best ideas
|
|
24
|
-
|
|
25
|
-
### Guidelines
|
|
26
|
-
|
|
27
|
-
- Quantity over quality initially
|
|
28
|
-
- No idea is too simple or too ambitious
|
|
29
|
-
- Consider practical and creative options
|
|
30
|
-
- Build on context the user provides
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: codereview
|
|
3
|
-
description: Review code for bugs, security issues, performance problems, and style. Accepts a file path, diff, or inline code snippet.
|
|
4
|
-
argument-hint: [file-path-or-diff]
|
|
5
|
-
allowed-tools: Read, Bash
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Code Review
|
|
9
|
-
|
|
10
|
-
Review the following for: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### What to look for
|
|
13
|
-
|
|
14
|
-
1. **Bugs & correctness** — logic errors, off-by-one, null/undefined handling, edge cases, incorrect assumptions
|
|
15
|
-
2. **Security** — injection risks (SQL, shell, XSS), hardcoded secrets, insecure defaults, improper input validation, path traversal
|
|
16
|
-
3. **Performance** — N+1 queries, unnecessary re-renders, blocking operations, missing indexes, large allocations
|
|
17
|
-
4. **Readability** — unclear naming, overly complex logic that could be simplified, missing or misleading comments
|
|
18
|
-
5. **Error handling** — swallowed errors, missing error boundaries, unclear error messages
|
|
19
|
-
6. **Type safety** — `any` types, unsafe casts, missing nullability checks
|
|
20
|
-
|
|
21
|
-
### Process
|
|
22
|
-
|
|
23
|
-
1. If `$ARGUMENTS` is a file path, read the file first with the Read tool
|
|
24
|
-
2. If it's a glob or directory, read the relevant files
|
|
25
|
-
3. If it's inline code, review it directly
|
|
26
|
-
4. For each issue found, state: **location** → **severity** (critical/high/medium/low) → **problem** → **fix**
|
|
27
|
-
|
|
28
|
-
### Output format
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
## Code Review: <file or description>
|
|
32
|
-
|
|
33
|
-
### Critical
|
|
34
|
-
- [line X] <issue> → <fix>
|
|
35
|
-
|
|
36
|
-
### High
|
|
37
|
-
- [line X] <issue> → <fix>
|
|
38
|
-
|
|
39
|
-
### Medium / Low
|
|
40
|
-
- <issue> → <fix>
|
|
41
|
-
|
|
42
|
-
### Summary
|
|
43
|
-
<1-2 sentence overall assessment>
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
If no issues are found, say so explicitly — don't pad with non-issues.
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: commitmsg
|
|
3
|
-
description: Generate a conventional commit message from staged changes or a diff. Follows Conventional Commits spec (feat/fix/chore/refactor/docs/test/perf/ci).
|
|
4
|
-
argument-hint: [optional: file paths or description]
|
|
5
|
-
allowed-tools: Bash
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Generate Commit Message
|
|
9
|
-
|
|
10
|
-
$ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Process
|
|
13
|
-
|
|
14
|
-
1. Run `git diff --staged` to see staged changes (or `git diff HEAD` if nothing staged)
|
|
15
|
-
2. If `$ARGUMENTS` mentions specific files, focus on those
|
|
16
|
-
3. Analyse what changed — what was added, removed, modified, and why
|
|
17
|
-
4. Generate a commit message following Conventional Commits
|
|
18
|
-
|
|
19
|
-
### Conventional Commits format
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
<type>(<scope>): <short summary>
|
|
23
|
-
|
|
24
|
-
<optional body: what changed and why, wrapped at 72 chars>
|
|
25
|
-
|
|
26
|
-
<optional footer: BREAKING CHANGE: ..., Closes #123>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Types:** `feat` (new feature), `fix` (bug fix), `perf` (performance), `refactor` (no behaviour change), `docs` (documentation only), `test` (tests only), `chore` (tooling/deps), `ci` (CI/CD), `style` (formatting)
|
|
30
|
-
|
|
31
|
-
**Rules:**
|
|
32
|
-
- Subject line ≤ 72 characters, imperative mood ("add X" not "added X")
|
|
33
|
-
- Scope is optional but useful (e.g. `feat(auth):`, `fix(cli):`)
|
|
34
|
-
- Body explains *why*, not *what* (the diff shows what)
|
|
35
|
-
- Mark breaking changes with `BREAKING CHANGE:` in footer
|
|
36
|
-
- Reference issues with `Closes #N` or `Fixes #N`
|
|
37
|
-
|
|
38
|
-
### Output
|
|
39
|
-
|
|
40
|
-
Print the ready-to-use commit message in a code block so it can be copied directly.
|
|
41
|
-
If the changes span multiple unrelated concerns, suggest splitting into separate commits.
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: debug
|
|
3
|
-
description: Structured debugging session. Accepts an error message, stack trace, or description of unexpected behaviour. Works through reproduce → isolate → hypothesize → verify → fix.
|
|
4
|
-
argument-hint: [error message or description]
|
|
5
|
-
allowed-tools: Bash, Read, Grep
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Debug Session
|
|
9
|
-
|
|
10
|
-
**Problem:** $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Step 1 — Understand the error
|
|
13
|
-
|
|
14
|
-
- Parse the error message and stack trace
|
|
15
|
-
- Identify the failing file, line, and function
|
|
16
|
-
- Note what was expected vs. what actually happened
|
|
17
|
-
|
|
18
|
-
### Step 2 — Reproduce
|
|
19
|
-
|
|
20
|
-
- Find the minimal steps or input that trigger the issue
|
|
21
|
-
- Run the failing command / test to confirm the error is present
|
|
22
|
-
- Note exact error output
|
|
23
|
-
|
|
24
|
-
### Step 3 — Isolate
|
|
25
|
-
|
|
26
|
-
- Narrow down to the smallest code path involved
|
|
27
|
-
- Check recent changes (`git log --oneline -10`, `git diff HEAD~1`) — did something recently break this?
|
|
28
|
-
- Search for related error messages or similar patterns in the codebase
|
|
29
|
-
|
|
30
|
-
### Step 4 — Hypothesize
|
|
31
|
-
|
|
32
|
-
- List 2–3 plausible root causes, ranked by likelihood
|
|
33
|
-
- For each hypothesis, state what evidence would confirm or rule it out
|
|
34
|
-
|
|
35
|
-
### Step 5 — Verify
|
|
36
|
-
|
|
37
|
-
- Test each hypothesis by reading relevant code, adding debug output, or running targeted commands
|
|
38
|
-
- Eliminate hypotheses one by one until the root cause is confirmed
|
|
39
|
-
|
|
40
|
-
### Step 6 — Fix
|
|
41
|
-
|
|
42
|
-
- Implement the minimal correct fix
|
|
43
|
-
- Verify the fix resolves the original error
|
|
44
|
-
- Check for related issues the fix might cause
|
|
45
|
-
- Add a regression note if useful
|
|
46
|
-
|
|
47
|
-
### Output format
|
|
48
|
-
|
|
49
|
-
Work through each step out loud. Show commands run and their output. End with:
|
|
50
|
-
```
|
|
51
|
-
## Root cause
|
|
52
|
-
<one sentence>
|
|
53
|
-
|
|
54
|
-
## Fix applied
|
|
55
|
-
<what was changed>
|
|
56
|
-
|
|
57
|
-
## Verified by
|
|
58
|
-
<how you confirmed it works>
|
|
59
|
-
```
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: draft
|
|
3
|
-
description: Draft emails, messages, or documents. Use when the user needs help writing something.
|
|
4
|
-
argument-hint: [type] [context]
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Instructions
|
|
8
|
-
|
|
9
|
-
Draft content based on: $ARGUMENTS
|
|
10
|
-
|
|
11
|
-
### Guidelines
|
|
12
|
-
|
|
13
|
-
1. **Identify the type**: Email, message, letter, document, post, etc.
|
|
14
|
-
2. **Understand the context**: Who is the audience? What's the purpose?
|
|
15
|
-
3. **Match the tone**: Professional, casual, formal, friendly, etc.
|
|
16
|
-
4. **Be concise**: Get to the point while remaining polite
|
|
17
|
-
|
|
18
|
-
### Output Format
|
|
19
|
-
|
|
20
|
-
Provide the draft with:
|
|
21
|
-
- The complete text ready to use
|
|
22
|
-
- Any placeholders marked with [BRACKETS] for info you need
|
|
23
|
-
- Optional: Alternative versions if tone/approach is ambiguous
|
|
24
|
-
|
|
25
|
-
### Tips
|
|
26
|
-
|
|
27
|
-
- For emails: Include a clear subject line suggestion
|
|
28
|
-
- For messages: Keep it appropriately brief
|
|
29
|
-
- For documents: Structure with headers if lengthy
|
|
30
|
-
- Always proofread for clarity and grammar
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research
|
|
3
|
-
description: Research a topic thoroughly using web search and multiple sources. Use when the user needs comprehensive information on a topic.
|
|
4
|
-
argument-hint: [topic]
|
|
5
|
-
allowed-tools: web_search, web_fetch, curl
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Research the following topic: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Steps
|
|
13
|
-
|
|
14
|
-
1. Search the web for relevant information using web_search
|
|
15
|
-
2. Fetch the top 3-5 most relevant results using web_fetch
|
|
16
|
-
3. Cross-reference information from multiple sources
|
|
17
|
-
4. Synthesize findings into a comprehensive overview
|
|
18
|
-
|
|
19
|
-
### Output Format
|
|
20
|
-
|
|
21
|
-
- **Overview**: Brief introduction to the topic
|
|
22
|
-
- **Key Findings**: Main discoveries from research
|
|
23
|
-
- **Different Perspectives**: Any varying viewpoints found
|
|
24
|
-
- **Sources**: List the URLs used with brief descriptions
|
|
25
|
-
- **Recommendations**: Suggested next steps or additional resources
|
|
26
|
-
|
|
27
|
-
Be thorough but focused. Prioritize accuracy and cite sources.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: summarize
|
|
3
|
-
description: Summarize content from URLs, documents, or text. Use when the user wants a quick summary of something.
|
|
4
|
-
argument-hint: [url or text]
|
|
5
|
-
allowed-tools: web_fetch, read
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Summarize the following content: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Steps
|
|
13
|
-
|
|
14
|
-
1. If the input is a URL, fetch the content using web_fetch
|
|
15
|
-
2. If the input is a file path, read the file
|
|
16
|
-
3. Otherwise, treat the input as text to summarize
|
|
17
|
-
|
|
18
|
-
### Output Format
|
|
19
|
-
|
|
20
|
-
Provide a summary with:
|
|
21
|
-
- **TL;DR**: One sentence summary
|
|
22
|
-
- **Key Points**: 3-5 bullet points of the main ideas
|
|
23
|
-
- **Notable Details**: Any important specifics worth highlighting
|
|
24
|
-
|
|
25
|
-
Keep the summary concise but comprehensive. Adapt the length based on the source content.
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: video
|
|
3
|
-
description: Analyze video content — transcribe audio, extract key frames, answer questions about video. Supports local files and YouTube URLs.
|
|
4
|
-
argument-hint: [video path or YouTube URL]
|
|
5
|
-
allowed-tools: bash, read_audio, read
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
|
-
Analyze the video specified by: $ARGUMENTS
|
|
11
|
-
|
|
12
|
-
### Step 1: Detect Input Type and Check Dependencies
|
|
13
|
-
|
|
14
|
-
First, check if ffmpeg is available:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
which ffmpeg || echo "MISSING: ffmpeg is required for video analysis. Install with: brew install ffmpeg"
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Determine if the input is a YouTube URL or local file:
|
|
21
|
-
- **YouTube URL** (contains youtube.com or youtu.be): Download with yt-dlp
|
|
22
|
-
- **Local file**: Verify it exists
|
|
23
|
-
|
|
24
|
-
For YouTube URLs, check yt-dlp is available:
|
|
25
|
-
```bash
|
|
26
|
-
which yt-dlp || echo "MISSING: yt-dlp is required for YouTube downloads. Install with: brew install yt-dlp"
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Step 2: Download (YouTube only)
|
|
30
|
-
|
|
31
|
-
If the input is a YouTube URL, download the video:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
mkdir -p /tmp/assistants-video
|
|
35
|
-
yt-dlp -f "bestvideo[height<=720]+bestaudio/best[height<=720]" --merge-output-format mp4 -o "/tmp/assistants-video/%(id)s.%(ext)s" "URL_HERE"
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Note the output filename for subsequent steps.
|
|
39
|
-
|
|
40
|
-
### Step 3: Get Video Info
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
ffprobe -v quiet -print_format json -show_format -show_streams "/path/to/video" 2>/dev/null | head -100
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
This gives you duration, resolution, codec info.
|
|
47
|
-
|
|
48
|
-
### Step 4: Extract and Transcribe Audio
|
|
49
|
-
|
|
50
|
-
Extract audio from the video:
|
|
51
|
-
```bash
|
|
52
|
-
ffmpeg -i "/path/to/video" -vn -acodec pcm_s16le -ar 16000 -ac 1 "/tmp/assistants-video/audio.wav" -y 2>/dev/null
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Then transcribe using the read_audio tool:
|
|
56
|
-
- Use `read_audio` with path `/tmp/assistants-video/audio.wav`
|
|
57
|
-
|
|
58
|
-
If the audio file is too large (>25MB), split it first:
|
|
59
|
-
```bash
|
|
60
|
-
ffmpeg -i "/tmp/assistants-video/audio.wav" -f segment -segment_time 300 -c copy "/tmp/assistants-video/audio_%03d.wav" -y 2>/dev/null
|
|
61
|
-
```
|
|
62
|
-
Then transcribe each segment separately.
|
|
63
|
-
|
|
64
|
-
### Step 5: Extract Key Frames
|
|
65
|
-
|
|
66
|
-
Extract frames at regular intervals (every 10 seconds, or every 300 frames):
|
|
67
|
-
```bash
|
|
68
|
-
ffmpeg -i "/path/to/video" -vf "fps=1/10" -frames:v 20 "/tmp/assistants-video/frame_%04d.jpg" -y 2>/dev/null
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Adjust the fps and frame count based on video length:
|
|
72
|
-
- Short video (<1 min): fps=1/5, max 12 frames
|
|
73
|
-
- Medium video (1-10 min): fps=1/10, max 20 frames
|
|
74
|
-
- Long video (>10 min): fps=1/30, max 20 frames
|
|
75
|
-
|
|
76
|
-
### Step 6: Analyze Key Frames
|
|
77
|
-
|
|
78
|
-
Use the `read` tool to view each extracted frame image. This sends the image to Claude's vision capability for analysis.
|
|
79
|
-
|
|
80
|
-
For each frame, note:
|
|
81
|
-
- What's visible in the frame
|
|
82
|
-
- Any text, diagrams, or slides shown
|
|
83
|
-
- Scene changes or transitions
|
|
84
|
-
|
|
85
|
-
### Step 7: Synthesize Analysis
|
|
86
|
-
|
|
87
|
-
Combine the transcription and visual analysis into a comprehensive report:
|
|
88
|
-
|
|
89
|
-
**Output Format:**
|
|
90
|
-
|
|
91
|
-
- **Video Info**: Duration, resolution, source
|
|
92
|
-
- **Summary**: Overall summary of the video content
|
|
93
|
-
- **Timeline**: Key moments with timestamps
|
|
94
|
-
- [0:00] - Description of opening
|
|
95
|
-
- [1:30] - Key point discussed
|
|
96
|
-
- etc.
|
|
97
|
-
- **Transcript**: Full or summarized transcript
|
|
98
|
-
- **Visual Elements**: Notable visual content (slides, diagrams, demonstrations)
|
|
99
|
-
- **Key Takeaways**: Main points from the video
|
|
100
|
-
|
|
101
|
-
### Step 8: Cleanup
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
rm -rf /tmp/assistants-video/
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Error Handling
|
|
108
|
-
|
|
109
|
-
- If ffmpeg is not installed, inform the user: "ffmpeg is required for video analysis. Install with: brew install ffmpeg"
|
|
110
|
-
- If yt-dlp is not installed (for YouTube): "yt-dlp is required for YouTube video downloads. Install with: brew install yt-dlp"
|
|
111
|
-
- If the video file doesn't exist, inform the user with the correct path
|
|
112
|
-
- If transcription fails (no ELEVENLABS_API_KEY), still proceed with visual analysis only
|
|
113
|
-
- If the video is very long (>1 hour), suggest analyzing a specific time range
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
name: code-review
|
|
2
|
-
description: Review staged or recent code changes for quality, bugs, and improvements
|
|
3
|
-
version: "1.0"
|
|
4
|
-
tags: [dev, review, quality]
|
|
5
|
-
|
|
6
|
-
steps:
|
|
7
|
-
- name: Get diff
|
|
8
|
-
prompt: "Run 'git diff --staged' to see staged changes. If nothing is staged, run 'git diff' for unstaged changes. If still nothing, run 'git log -1 --format=%H' and 'git diff HEAD~1' to review the last commit."
|
|
9
|
-
allowed_tools: [bash]
|
|
10
|
-
output_variable: diff_output
|
|
11
|
-
|
|
12
|
-
- name: Identify changed files
|
|
13
|
-
prompt: "From the diff, list all changed files and categorize them: source code, tests, config, docs. Note the number of additions and deletions."
|
|
14
|
-
output_variable: file_summary
|
|
15
|
-
|
|
16
|
-
- name: Review for issues
|
|
17
|
-
prompt: "Review the code changes for: 1) Bugs or logic errors, 2) Security vulnerabilities (injection, auth issues), 3) Performance concerns, 4) Missing error handling, 5) Code style consistency. Be specific about line numbers and files."
|
|
18
|
-
allowed_tools: [read, grep]
|
|
19
|
-
output_variable: issues
|
|
20
|
-
|
|
21
|
-
- name: Suggest improvements
|
|
22
|
-
prompt: "Based on the review findings (${issues}), provide: 1) Critical issues that must be fixed, 2) Recommended improvements, 3) Optional nice-to-haves. For each suggestion, explain why and provide a code example if helpful."
|
|
23
|
-
output_variable: suggestions
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
name: content-creation
|
|
2
|
-
description: Create polished content through a structured outline, draft, and review process
|
|
3
|
-
version: "1.0"
|
|
4
|
-
tags: [writing, content]
|
|
5
|
-
|
|
6
|
-
steps:
|
|
7
|
-
- name: Research and outline
|
|
8
|
-
prompt: "For the content topic '${topic}', create a detailed outline. Consider the target audience '${audience}' and format '${format}'. Research relevant information if needed. The outline should include main sections, key points, and supporting details."
|
|
9
|
-
allowed_tools: [web_search, web_fetch]
|
|
10
|
-
output_variable: outline
|
|
11
|
-
|
|
12
|
-
- name: Write first draft
|
|
13
|
-
prompt: "Using the outline (${outline}), write a complete first draft. Follow the specified format '${format}'. Write in a clear, engaging style appropriate for the audience '${audience}'. Include all sections from the outline with full content."
|
|
14
|
-
output_variable: draft
|
|
15
|
-
|
|
16
|
-
- name: Review and improve
|
|
17
|
-
prompt: "Review the draft (${draft}) for: 1) Clarity and flow, 2) Grammar and style, 3) Accuracy of information, 4) Engagement and readability, 5) Structure and organization. Provide specific revision suggestions."
|
|
18
|
-
output_variable: review
|
|
19
|
-
|
|
20
|
-
- name: Final polish
|
|
21
|
-
prompt: "Apply the review feedback (${review}) to create a final, polished version of the content. Ensure smooth transitions, strong opening and closing, consistent tone, and professional quality throughout."
|
|
22
|
-
output_variable: final_content
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
name: daily-standup
|
|
2
|
-
description: Review recent git activity, summarize progress, and plan today's tasks
|
|
3
|
-
version: "1.0"
|
|
4
|
-
tags: [dev, daily, planning]
|
|
5
|
-
|
|
6
|
-
steps:
|
|
7
|
-
- name: Review git history
|
|
8
|
-
prompt: "Run 'git log --oneline --since=yesterday --all' to see recent commits. Summarize what was worked on."
|
|
9
|
-
allowed_tools: [bash]
|
|
10
|
-
output_variable: git_summary
|
|
11
|
-
|
|
12
|
-
- name: Check current status
|
|
13
|
-
prompt: "Run 'git status' and 'git diff --stat' to see current changes in progress. What's the current state of the codebase?"
|
|
14
|
-
allowed_tools: [bash]
|
|
15
|
-
output_variable: current_status
|
|
16
|
-
|
|
17
|
-
- name: Review open tasks
|
|
18
|
-
prompt: "Check for any TODO comments, open issues, or pending tasks. Look at any task files or issue trackers available."
|
|
19
|
-
allowed_tools: [bash, read, glob, grep]
|
|
20
|
-
output_variable: open_tasks
|
|
21
|
-
|
|
22
|
-
- name: Generate standup report
|
|
23
|
-
prompt: "Based on the previous steps, generate a standup report with: 1) What was done yesterday (${git_summary}), 2) Current state (${current_status}), 3) Plan for today based on open items (${open_tasks}). Format as a clear, concise standup update."
|
|
24
|
-
output_variable: report
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
name: research
|
|
2
|
-
description: Research a topic thoroughly by searching, gathering sources, and synthesizing findings
|
|
3
|
-
version: "1.0"
|
|
4
|
-
tags: [research, knowledge]
|
|
5
|
-
|
|
6
|
-
steps:
|
|
7
|
-
- name: Initial search
|
|
8
|
-
prompt: "Search the web for '${topic}' using web_search. Find 5-10 relevant sources covering different aspects of the topic."
|
|
9
|
-
allowed_tools: [web_search]
|
|
10
|
-
output_variable: search_results
|
|
11
|
-
|
|
12
|
-
- name: Deep dive
|
|
13
|
-
prompt: "From the search results (${search_results}), fetch and read the top 3-5 most relevant sources using web_fetch. Extract key information, data points, and expert opinions."
|
|
14
|
-
allowed_tools: [web_fetch]
|
|
15
|
-
output_variable: source_content
|
|
16
|
-
|
|
17
|
-
- name: Cross-reference
|
|
18
|
-
prompt: "Compare information across the sources (${source_content}). Identify: 1) Points of agreement, 2) Conflicting information, 3) Unique insights from specific sources. Note which sources are most authoritative."
|
|
19
|
-
output_variable: analysis
|
|
20
|
-
|
|
21
|
-
- name: Synthesize report
|
|
22
|
-
prompt: "Create a comprehensive research report on '${topic}' based on the analysis (${analysis}). Include: Overview, Key Findings (with citations), Different Perspectives, Data/Statistics, Conclusions, and Source list with URLs. Be thorough but clear."
|
|
23
|
-
output_variable: report
|
package/dist/config/hooks.json
DELETED