@docyrus/docyrus 0.0.20 → 0.0.22

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.
Files changed (76) hide show
  1. package/agent-loader.js +32 -1
  2. package/agent-loader.js.map +2 -2
  3. package/main.js +325 -71
  4. package/main.js.map +4 -4
  5. package/package.json +16 -3
  6. package/resources/chrome-tools/browser-content.js +103 -0
  7. package/resources/chrome-tools/browser-cookies.js +35 -0
  8. package/resources/chrome-tools/browser-eval.js +53 -0
  9. package/resources/chrome-tools/browser-hn-scraper.js +108 -0
  10. package/resources/chrome-tools/browser-nav.js +44 -0
  11. package/resources/chrome-tools/browser-pick.js +162 -0
  12. package/resources/chrome-tools/browser-screenshot.js +34 -0
  13. package/resources/chrome-tools/browser-start.js +86 -0
  14. package/resources/pi-agent/extensions/answer.ts +532 -0
  15. package/resources/pi-agent/extensions/context.ts +578 -0
  16. package/resources/pi-agent/extensions/control.ts +1779 -0
  17. package/resources/pi-agent/extensions/diff.ts +218 -0
  18. package/resources/pi-agent/extensions/files.ts +199 -0
  19. package/resources/pi-agent/extensions/loop.ts +446 -0
  20. package/resources/pi-agent/extensions/multi-edit.ts +835 -0
  21. package/resources/pi-agent/extensions/notify.ts +88 -0
  22. package/resources/pi-agent/extensions/pi-bash-live-view/LICENSE +21 -0
  23. package/resources/pi-agent/extensions/pi-bash-live-view/README.md +19 -0
  24. package/resources/pi-agent/extensions/pi-bash-live-view/index.ts +52 -0
  25. package/resources/pi-agent/extensions/pi-bash-live-view/package.json +61 -0
  26. package/resources/pi-agent/extensions/pi-bash-live-view/pty-execute.ts +97 -0
  27. package/resources/pi-agent/extensions/pi-bash-live-view/pty-kill.ts +25 -0
  28. package/resources/pi-agent/extensions/pi-bash-live-view/pty-session.ts +143 -0
  29. package/resources/pi-agent/extensions/pi-bash-live-view/spawn-helper.ts +31 -0
  30. package/resources/pi-agent/extensions/pi-bash-live-view/terminal-emulator.ts +439 -0
  31. package/resources/pi-agent/extensions/pi-bash-live-view/truncate.ts +68 -0
  32. package/resources/pi-agent/extensions/pi-bash-live-view/widget.ts +114 -0
  33. package/resources/pi-agent/extensions/pi-mcp-adapter/CHANGELOG.md +192 -0
  34. package/resources/pi-agent/extensions/pi-mcp-adapter/LICENSE +21 -0
  35. package/resources/pi-agent/extensions/pi-mcp-adapter/README.md +296 -0
  36. package/resources/pi-agent/extensions/pi-mcp-adapter/app-bridge.bundle.js +67 -0
  37. package/resources/pi-agent/extensions/pi-mcp-adapter/cli.js +108 -0
  38. package/resources/pi-agent/extensions/pi-mcp-adapter/commands.ts +211 -0
  39. package/resources/pi-agent/extensions/pi-mcp-adapter/config.ts +227 -0
  40. package/resources/pi-agent/extensions/pi-mcp-adapter/consent-manager.ts +64 -0
  41. package/resources/pi-agent/extensions/pi-mcp-adapter/direct-tools.ts +301 -0
  42. package/resources/pi-agent/extensions/pi-mcp-adapter/errors.ts +219 -0
  43. package/resources/pi-agent/extensions/pi-mcp-adapter/glimpse-ui.ts +80 -0
  44. package/resources/pi-agent/extensions/pi-mcp-adapter/host-html-template.ts +427 -0
  45. package/resources/pi-agent/extensions/pi-mcp-adapter/index.ts +232 -0
  46. package/resources/pi-agent/extensions/pi-mcp-adapter/init.ts +319 -0
  47. package/resources/pi-agent/extensions/pi-mcp-adapter/lifecycle.ts +93 -0
  48. package/resources/pi-agent/extensions/pi-mcp-adapter/logger.ts +169 -0
  49. package/resources/pi-agent/extensions/pi-mcp-adapter/mcp-panel.ts +713 -0
  50. package/resources/pi-agent/extensions/pi-mcp-adapter/metadata-cache.ts +191 -0
  51. package/resources/pi-agent/extensions/pi-mcp-adapter/npx-resolver.ts +419 -0
  52. package/resources/pi-agent/extensions/pi-mcp-adapter/oauth-handler.ts +56 -0
  53. package/resources/pi-agent/extensions/pi-mcp-adapter/package.json +85 -0
  54. package/resources/pi-agent/extensions/pi-mcp-adapter/paths.ts +29 -0
  55. package/resources/pi-agent/extensions/pi-mcp-adapter/proxy-modes.ts +635 -0
  56. package/resources/pi-agent/extensions/pi-mcp-adapter/resource-tools.ts +17 -0
  57. package/resources/pi-agent/extensions/pi-mcp-adapter/server-manager.ts +330 -0
  58. package/resources/pi-agent/extensions/pi-mcp-adapter/state.ts +41 -0
  59. package/resources/pi-agent/extensions/pi-mcp-adapter/tool-metadata.ts +144 -0
  60. package/resources/pi-agent/extensions/pi-mcp-adapter/tool-registrar.ts +46 -0
  61. package/resources/pi-agent/extensions/pi-mcp-adapter/types.ts +367 -0
  62. package/resources/pi-agent/extensions/pi-mcp-adapter/ui-resource-handler.ts +145 -0
  63. package/resources/pi-agent/extensions/pi-mcp-adapter/ui-server.ts +623 -0
  64. package/resources/pi-agent/extensions/pi-mcp-adapter/ui-session.ts +384 -0
  65. package/resources/pi-agent/extensions/pi-mcp-adapter/ui-stream-types.ts +89 -0
  66. package/resources/pi-agent/extensions/pi-mcp-adapter/utils.ts +75 -0
  67. package/resources/pi-agent/extensions/prompt-editor.ts +1315 -0
  68. package/resources/pi-agent/extensions/prompt-url-widget.ts +158 -0
  69. package/resources/pi-agent/extensions/redraws.ts +24 -0
  70. package/resources/pi-agent/extensions/review.ts +2160 -0
  71. package/resources/pi-agent/extensions/todos.ts +2076 -0
  72. package/resources/pi-agent/extensions/tps.ts +47 -0
  73. package/resources/pi-agent/extensions/whimsical.ts +474 -0
  74. package/resources/pi-agent/skills/changelog-generator/SKILL.md +425 -0
  75. package/resources/pi-agent/skills/docyrus-chrome-devtools-cli/SKILL.md +80 -0
  76. package/resources/pi-agent/skills/docyrus-platform/references/docyrus-cli-usage.md +51 -0
@@ -0,0 +1,425 @@
1
+ ---
2
+ name: changelog-generator
3
+ description: >
4
+ Parse git history and produce or update a CHANGELOG.md following the Keep a Changelog convention. Supports Conventional Commits, basic prefix conventions, and unstructured commit messages. Intelligently categorizes changes, detects breaking changes, links to PRs/issues, and handles both initial generation and incremental updates.
5
+
6
+ **Triggers — use this skill when:**
7
+ - User asks to "generate", "create", "update", or "write" a changelog
8
+ - User mentions "CHANGELOG", "changelog", "release notes"
9
+ - User says "document changes", "what changed since last release"
10
+ - User wants to "prepare a release" and needs a changelog entry
11
+ - User asks to "clean up" or "reformat" an existing changelog
12
+
13
+ **Covers:** Any git-based project.
14
+
15
+ Handles Conventional Commits (feat/fix/chore), Angular convention, basic prefixes (Add/Fix/Remove), and freeform commit messages. Outputs Keep a Changelog format with optional Common Changelog enhancements.
16
+ ---
17
+
18
+ # Changelog Generator
19
+
20
+ Parse a project's git history and produce a high-quality CHANGELOG.md following the [Keep a Changelog](https://keepachangelog.com/) convention.
21
+
22
+ ## Philosophy
23
+
24
+ A changelog is for **humans**, not machines.
25
+
26
+ It answers: "What meaningful changes happened between version X and version Y?"
27
+
28
+ Raw commit logs fail at this because they contain noise — typo fixes, merge commits, CI tweaks, and refactors that don't affect users. This skill filters signal from noise and writes entries that a user or contributor can actually understand.
29
+
30
+ ---
31
+
32
+ ## Workflow
33
+
34
+ ### Phase 1 — Repository Analysis
35
+
36
+ Before generating anything, understand the project's commit and versioning patterns.
37
+
38
+ ```bash
39
+ # 1. Check if we're in a git repo
40
+ git rev-parse --is-inside-work-tree 2>/dev/null
41
+
42
+ # 2. Get all tags (versions) sorted by date
43
+ git tag --sort=-creatordate | head -30
44
+
45
+ # 3. Detect versioning scheme
46
+ # SemVer: v1.2.3 or 1.2.3
47
+ # CalVer: 2025.01, 2025-01-15
48
+ # Other: named releases, build numbers
49
+ git tag --sort=-creatordate | head -10
50
+
51
+ # 4. Detect commit convention
52
+ # Sample recent commits to identify the pattern
53
+ git log --oneline -30
54
+
55
+ # 5. Check for existing changelog
56
+ cat CHANGELOG.md 2>/dev/null
57
+ cat HISTORY.md 2>/dev/null
58
+ cat CHANGES.md 2>/dev/null
59
+
60
+ # 6. Check for existing config that hints at convention
61
+ cat .commitlintrc* commitlint.config.* 2>/dev/null # Commitlint
62
+ cat .czrc .cz.toml 2>/dev/null # Commitizen
63
+ cat cliff.toml 2>/dev/null # git-cliff
64
+ cat .versionrc* 2>/dev/null # standard-version
65
+
66
+ # 7. Get remote URL for PR/issue links
67
+ git remote get-url origin 2>/dev/null
68
+
69
+ # 8. Package manifest for current version
70
+ cat package.json 2>/dev/null | grep '"version"'
71
+ cat pyproject.toml 2>/dev/null | grep 'version'
72
+ cat Cargo.toml 2>/dev/null | grep '^version'
73
+ ```
74
+
75
+ **Extract from the analysis:**
76
+
77
+ | Fact | How to determine |
78
+ |------|-----------------|
79
+ | Commit convention | Pattern match on recent commits (see detection rules below) |
80
+ | Versioning scheme | Tag format analysis |
81
+ | Latest version/tag | Most recent tag |
82
+ | Remote URL | `git remote get-url origin` — needed for PR/issue links |
83
+ | Existing changelog | Check for CHANGELOG.md or variants |
84
+ | Unreleased commits | Commits since the latest tag |
85
+
86
+ ### Phase 2 — Commit Convention Detection
87
+
88
+ Analyze the last 30–50 commits to detect which convention is in use.
89
+
90
+ Apply these rules in order:
91
+
92
+ **Conventional Commits / Angular**
93
+
94
+ ```
95
+ Pattern: ^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?:
96
+ Example: feat(auth): add OAuth2 support
97
+ Example: fix!: resolve race condition in queue
98
+ ```
99
+
100
+ → If >50% of commits match this pattern, use Conventional Commits parsing.
101
+
102
+ **Basic Prefix**
103
+
104
+ ```
105
+ Pattern: ^(Add|Fix|Remove|Update|Change|Deprecate|Security)[: ]
106
+ Example: Add user export feature
107
+ Example: Fix login redirect loop
108
+ ```
109
+
110
+ → If >50% of commits match this pattern, use basic prefix parsing.
111
+
112
+ **Freeform / No Convention**
113
+
114
+ → If neither pattern dominates, use AI-assisted categorization (see Phase 3).
115
+
116
+ Report the detected convention to the user before proceeding.
117
+
118
+ ### Phase 3 — Commit Extraction & Categorization
119
+
120
+ Extract commits for the target range and categorize them.
121
+
122
+ ```bash
123
+ # All commits since last tag (for Unreleased section)
124
+ git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD \
125
+ --pretty=format:"%H|%s|%b|%an|%ae|%aI" 2>/dev/null
126
+
127
+ # Commits between two tags (for a specific version)
128
+ git log v1.1.0..v1.2.0 \
129
+ --pretty=format:"%H|%s|%b|%an|%ae|%aI"
130
+
131
+ # If no tags exist, get all commits
132
+ git log --pretty=format:"%H|%s|%b|%an|%ae|%aI"
133
+
134
+ # Get PR/merge info if available
135
+ git log --merges --oneline -20
136
+ ```
137
+
138
+ #### Category Mapping
139
+
140
+ Map commits to Keep a Changelog categories:
141
+
142
+ | Keep a Changelog Category | Conventional Commits types | Basic prefixes | Description |
143
+ |---------------------------|---------------------------|----------------|-------------|
144
+ | **Added** | `feat` | Add, Create, Implement | New features |
145
+ | **Changed** | `refactor`, `perf`, `style` | Change, Update, Refactor, Improve | Changes to existing functionality |
146
+ | **Deprecated** | — (detect from message) | Deprecate | Soon-to-be removed features |
147
+ | **Removed** | — (detect from message) | Remove, Delete, Drop | Removed features |
148
+ | **Fixed** | `fix` | Fix, Resolve, Correct | Bug fixes |
149
+ | **Security** | — (detect from message) | Security | Vulnerability fixes |
150
+
151
+ #### Entries to SKIP (noise filtering)
152
+
153
+ Do NOT include these in the changelog unless they have user-facing impact:
154
+
155
+ - Merge commits (`Merge branch...`, `Merge pull request...`) — extract the PR title instead
156
+ - CI/CD changes (`ci:`, `build:`, changes only to `.github/workflows/`)
157
+ - Chore commits (`chore:`, dependency bumps without breaking changes)
158
+ - Typo fixes in code comments
159
+ - Formatting/linting-only changes (`style:` that don't affect behavior)
160
+ - Version bump commits (`chore: bump version to...`)
161
+ - Commits that only touch test files (unless adding test coverage is noteworthy)
162
+
163
+ #### Freeform Commit Categorization
164
+
165
+ When commits don't follow a convention, categorize by analyzing the message content:
166
+
167
+ - Contains "add", "new", "create", "implement", "introduce" → **Added**
168
+ - Contains "fix", "resolve", "correct", "patch", "bug" → **Fixed**
169
+ - Contains "remove", "delete", "drop" → **Removed**
170
+ - Contains "deprecate" → **Deprecated**
171
+ - Contains "security", "vulnerability", "CVE" → **Security**
172
+ - Contains "update", "change", "refactor", "improve", "optimize" → **Changed**
173
+ - If unclear, use the diff to determine: new files = Added, deleted files = Removed, modified = Changed
174
+
175
+ #### Breaking Change Detection
176
+
177
+ Flag breaking changes regardless of convention:
178
+
179
+ - Conventional: `!` after type/scope, or `BREAKING CHANGE:` in footer
180
+ - Message content: "breaking", "incompatible", "migration required"
181
+ - SemVer major bump between tags
182
+ - Removal of public API functions/endpoints
183
+
184
+ Mark breaking entries with **BREAKING:** prefix in the changelog.
185
+
186
+ ### Phase 4 — Entry Writing
187
+
188
+ Transform raw commit data into human-readable changelog entries.
189
+
190
+ #### Writing Rules
191
+
192
+ 1. **Write for the user, not the developer.**
193
+ "Add dark mode support" not "feat(ui): implement dark-mode toggle via CSS custom properties in ThemeProvider"
194
+ 2. **Use imperative mood.**
195
+ "Add", "Fix", "Remove" — not "Added", "Fixed", "Removed"
196
+ 3. **One entry per meaningful change.**
197
+ Squash related commits into a single entry
198
+ 4. **Include references.**
199
+ Link to PR numbers and issues: `(#123)`, `([#123](url))`
200
+ 5. **Credit authors for external contributions.**
201
+ `(@username)` for non-core contributors
202
+ 6. **Lead with impact.**
203
+ Put the most important changes first within each category
204
+ 7. **Be specific.**
205
+ "Fix crash when uploading files larger than 10MB" not "Fix upload bug"
206
+ 8. **Keep entries to one line.**
207
+ If you need more, the change probably needs multiple entries or a migration guide
208
+
209
+ #### Entry Format
210
+
211
+ ```markdown
212
+ - Add dark mode support with automatic system preference detection (#142)
213
+ - **BREAKING:** Remove deprecated `v1/users` endpoint; use `v2/users` instead (#138)
214
+ - Fix memory leak in WebSocket connection handler (#145)
215
+ ```
216
+
217
+ ### Phase 5 — Assemble the Changelog
218
+
219
+ #### File Format (Keep a Changelog)
220
+
221
+ ```markdown
222
+ # Changelog
223
+
224
+ All notable changes to this project will be documented in this file.
225
+
226
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
227
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
228
+
229
+ ## [Unreleased]
230
+
231
+ ### Added
232
+ - Description of new feature (#PR)
233
+
234
+ ### Fixed
235
+ - Description of bug fix (#PR)
236
+
237
+ ## [1.2.0] - 2025-09-15
238
+
239
+ ### Added
240
+ - Add OAuth2 authentication support (#89)
241
+ - Add CSV export for user data (#92)
242
+
243
+ ### Changed
244
+ - Improve query performance for large datasets (#91)
245
+
246
+ ### Fixed
247
+ - Fix timezone handling in scheduled reports (#88)
248
+ - Fix incorrect pagination count on filtered results (#90)
249
+
250
+ ### Removed
251
+ - **BREAKING:** Remove legacy XML API endpoint (#87)
252
+
253
+ ## [1.1.0] - 2025-06-01
254
+
255
+ ### Added
256
+ - ...
257
+
258
+ [Unreleased]: https://github.com/user/repo/compare/v1.2.0...HEAD
259
+ [1.2.0]: https://github.com/user/repo/compare/v1.1.0...v1.2.0
260
+ [1.1.0]: https://github.com/user/repo/compare/v1.0.0...v1.1.0
261
+ ```
262
+
263
+ #### Critical Format Rules
264
+
265
+ 1. **H1 for title.** `# Changelog` — only one H1
266
+ 2. **H2 for versions.** `## [1.2.0] - 2025-09-15` — square brackets around version, ISO date
267
+ 3. **H3 for categories.** `### Added`, `### Changed`, etc. — only use categories that have entries
268
+ 4. **Comparison links at the bottom.** Every version heading must have a corresponding comparison link
269
+ 5. **Unreleased section at top.** Always present, even if empty (remove if the project prefers not to have it)
270
+ 6. **Newest version first.** Reverse chronological order
271
+ 7. **ISO 8601 dates.** `YYYY-MM-DD` — no exceptions
272
+ 8. **Empty categories.** Do NOT include a category heading if there are no entries under it
273
+
274
+ ---
275
+
276
+ ## Operating Modes
277
+
278
+ ### Mode A: Generate from Scratch
279
+
280
+ No existing changelog. Generate the full history.
281
+
282
+ 1. Get all tags sorted chronologically
283
+ 2. For each tag pair (oldest to newest), extract and categorize commits
284
+ 3. Assemble full changelog
285
+ 4. If there are many tags (>10), ask the user if they want all history or just recent versions
286
+
287
+ ```bash
288
+ # Get tags in chronological order
289
+ git tag --sort=creatordate
290
+
291
+ # Get date of a tag
292
+ git log -1 --format=%aI v1.0.0
293
+ ```
294
+
295
+ ### Mode B: Update Existing Changelog
296
+
297
+ A CHANGELOG.md already exists. Add new entries.
298
+
299
+ 1. Parse the existing changelog to find the latest documented version
300
+ 2. Determine the commit range: latest documented version → HEAD (or → new tag)
301
+ 3. Generate entries only for the new range
302
+ 4. Insert the new version section after `## [Unreleased]` (or at the top if no Unreleased)
303
+ 5. Update comparison links at the bottom
304
+ 6. Preserve all existing content exactly as-is
305
+
306
+ **Never modify existing entries** unless the user explicitly asks for a reformat.
307
+
308
+ ### Mode C: Reformat / Clean Up
309
+
310
+ User has a messy or inconsistent changelog. Rewrite to match the standard.
311
+
312
+ 1. Parse all existing entries
313
+ 2. Re-categorize under Keep a Changelog headings
314
+ 3. Fix date formats to ISO 8601
315
+ 4. Add missing comparison links
316
+ 5. Fix heading hierarchy
317
+ 6. Show a diff/summary of changes to the user before writing
318
+
319
+ ### Mode D: Prepare Release
320
+
321
+ User wants to create a changelog entry for an upcoming release.
322
+
323
+ 1. Extract commits since the last tag
324
+ 2. Categorize and write entries
325
+ 3. Ask the user for the new version number (or suggest one based on changes: major if breaking, minor if features, patch if only fixes)
326
+ 4. Move entries from `## [Unreleased]` to the new version section
327
+ 5. Update comparison links
328
+ 6. Optionally suggest a SemVer bump
329
+
330
+ ---
331
+
332
+ ## Handling Edge Cases
333
+
334
+ ### No Tags
335
+
336
+ If the project has no tags, treat all commits as unreleased.
337
+
338
+ Ask the user if they want to:
339
+
340
+ - Generate a single `## [Unreleased]` section
341
+ - Create a `## [0.1.0]` retroactively from the initial commit
342
+
343
+ ### Monorepo
344
+
345
+ If the project is a monorepo with multiple packages:
346
+
347
+ - Ask which package to generate for
348
+ - Filter commits by path: `git log -- packages/package-name/`
349
+ - Consider separate changelogs per package
350
+
351
+ ### Squash Merges
352
+
353
+ If the project uses squash merges, the PR title becomes the commit message. These are often well-written and can be used directly as changelog entries.
354
+
355
+ ### Very Large History
356
+
357
+ If there are >500 commits to process:
358
+
359
+ - Process in batches by tag range
360
+ - Ask the user if they want full history or just the last N versions
361
+ - For initial generation, suggest starting from the latest 3-5 versions
362
+
363
+ ### Pre-1.0 Projects
364
+
365
+ For projects that haven't reached 1.0:
366
+
367
+ - Minor bumps may contain breaking changes (per SemVer spec)
368
+ - Still flag breaking changes but note the pre-1.0 context
369
+
370
+ ---
371
+
372
+ ## Quality Checklist
373
+
374
+ After generating, verify:
375
+
376
+ ### Format
377
+
378
+ - [ ] Single H1 (`# Changelog`)
379
+ - [ ] Each version is H2 with brackets and ISO date: `## [X.Y.Z] - YYYY-MM-DD`
380
+ - [ ] Categories are H3: `### Added`, `### Changed`, etc.
381
+ - [ ] No empty categories (remove heading if no entries)
382
+ - [ ] Comparison links at bottom for every version
383
+ - [ ] Newest version first (reverse chronological)
384
+ - [ ] Unreleased section present at top
385
+
386
+ ### Content
387
+
388
+ - [ ] Every entry starts with imperative verb
389
+ - [ ] PR/issue references included where available
390
+ - [ ] Breaking changes clearly marked with **BREAKING:**
391
+ - [ ] No noise commits (merge commits, version bumps, CI-only changes)
392
+ - [ ] Entries are specific and user-facing
393
+ - [ ] Related commits are squashed into single entries
394
+
395
+ ### Accuracy
396
+
397
+ - [ ] Version numbers match actual git tags
398
+ - [ ] Dates match tag creation dates
399
+ - [ ] Comparison links use correct tag names
400
+ - [ ] No commits are attributed to the wrong version
401
+
402
+ ---
403
+
404
+ ## Anti-Patterns to Avoid
405
+
406
+ 1. **Dump of commit messages** — A changelog is not `git log --oneline`. Curate and rewrite.
407
+ 2. **"Bug fixes and improvements"** — This tells the user nothing. Be specific.
408
+ 3. **Including every single commit** — Filter noise. Only user-facing changes matter.
409
+ 4. **Inconsistent tense** — Always imperative mood: "Add", "Fix", "Remove"
410
+ 5. **Missing links** — Always include comparison links at the bottom
411
+ 6. **Invented version numbers** — Only use versions that correspond to actual tags
412
+ 7. **Reformatting existing entries** — When updating, never touch historical entries unless asked
413
+ 8. **Skipping the preamble** — Always include the "format is based on" reference lines
414
+
415
+ ---
416
+
417
+ ## Output
418
+
419
+ The final output should be:
420
+
421
+ 1. **Convention report**: What commit convention was detected, how many commits processed
422
+ 2. **The CHANGELOG.md file**: Written to the project root, ready to commit
423
+ 3. **Summary**: Number of versions documented, total entries, any commits that were ambiguous or skipped
424
+
425
+ Always write the changelog as a file so the user can review and commit it directly.
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: docyrus-chrome-devtools-cli
3
+ description: Use Docyrus CLI chrome commands for visible browser automation through Chrome DevTools. Use when you need to launch Chrome with remote debugging, navigate pages, inspect DOM state, evaluate JavaScript, capture screenshots, pick elements interactively, inspect cookies, extract readable page content, or scrape Hacker News.
4
+ ---
5
+
6
+ # Docyrus Chrome DevTools CLI
7
+
8
+ Chrome DevTools Protocol workflows exposed through the local `docyrus` CLI.
9
+
10
+ ## Commands
11
+
12
+ Start Chrome with remote debugging on `:9222`:
13
+
14
+ ```bash
15
+ docyrus chrome start
16
+ docyrus chrome start --profile
17
+ ```
18
+
19
+ - `--profile` copies the user's default Chrome profile so cookies and existing logins are available.
20
+
21
+ Navigate tabs:
22
+
23
+ ```bash
24
+ docyrus chrome nav https://example.com
25
+ docyrus chrome nav https://example.com --new
26
+ docyrus chrome nav https://example.com --reload
27
+ ```
28
+
29
+ Run JavaScript in the active tab:
30
+
31
+ ```bash
32
+ docyrus chrome eval 'document.title'
33
+ docyrus chrome eval 'document.querySelectorAll("a").length'
34
+ ```
35
+
36
+ Capture a screenshot of the active tab:
37
+
38
+ ```bash
39
+ docyrus chrome screenshot
40
+ ```
41
+
42
+ Interactively pick DOM elements in the visible browser:
43
+
44
+ ```bash
45
+ docyrus chrome pick "Click the submit button"
46
+ ```
47
+
48
+ Inspect cookies for the active tab:
49
+
50
+ ```bash
51
+ docyrus chrome cookies
52
+ ```
53
+
54
+ Extract readable content as markdown:
55
+
56
+ ```bash
57
+ docyrus chrome content https://example.com
58
+ ```
59
+
60
+ Scrape Hacker News:
61
+
62
+ ```bash
63
+ docyrus chrome hn-scraper
64
+ docyrus chrome hn-scraper --limit 10
65
+ ```
66
+
67
+ ## When To Use
68
+
69
+ - Visible browser automation is required.
70
+ - A page needs JavaScript execution before content is available.
71
+ - You need to inspect DOM state without guessing selectors.
72
+ - You want the user to click elements directly through an interactive picker.
73
+ - You need quick page extraction or screenshot capture from a real browser session.
74
+
75
+ ## Working Style
76
+
77
+ - Start Chrome first with `docyrus chrome start` if the debugger is not already available.
78
+ - Prefer `docyrus chrome eval` for DOM inspection and structured page state.
79
+ - Use `docyrus chrome pick` when element targeting is ambiguous or user choice matters.
80
+ - Use `docyrus chrome content` for readable markdown extraction from article-like pages.
@@ -108,6 +108,57 @@ Send a prompt to a Docyrus AI agent.
108
108
 
109
109
  ---
110
110
 
111
+ ## chrome — Chrome DevTools Browser Automation
112
+
113
+ Docyrus ships Chrome DevTools helper commands for visible browser automation against Chrome running with remote debugging on `:9222`.
114
+
115
+ ### `docyrus chrome start`
116
+
117
+ Launch Chrome with remote debugging enabled.
118
+
119
+ | Option | Type | Description |
120
+ |---|---|---|
121
+ | `--profile` | boolean | Copy the default Chrome profile so existing cookies and logins are available |
122
+
123
+ ### `docyrus chrome nav <url>`
124
+
125
+ Navigate the active tab or open the URL in a new tab.
126
+
127
+ | Option | Type | Description |
128
+ |---|---|---|
129
+ | `--new` | boolean | Open the URL in a new tab |
130
+ | `--reload` | boolean | Force a reload after navigation |
131
+
132
+ ### `docyrus chrome eval <code>`
133
+
134
+ Execute JavaScript in the active tab and print the result.
135
+
136
+ ### `docyrus chrome screenshot`
137
+
138
+ Capture the current viewport and return the temporary screenshot file path.
139
+
140
+ ### `docyrus chrome pick <message>`
141
+
142
+ Open an interactive element picker in the active tab and return information about the selected element or elements.
143
+
144
+ ### `docyrus chrome cookies`
145
+
146
+ Print cookies for the active tab, including domain, path, `httpOnly`, and `secure` flags.
147
+
148
+ ### `docyrus chrome content <url>`
149
+
150
+ Navigate to a URL and extract readable content as markdown.
151
+
152
+ ### `docyrus chrome hn-scraper`
153
+
154
+ Scrape Hacker News front page submissions as JSON.
155
+
156
+ | Option | Type | Description |
157
+ |---|---|---|
158
+ | `--limit` | number | Maximum number of submissions to return |
159
+
160
+ ---
161
+
111
162
  ## ds — Data Source Item Operations
112
163
 
113
164
  ### `docyrus ds get <appSlug> <dataSourceSlug>`