@docyrus/docyrus 0.0.19 → 0.0.21
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/agent-loader.js +37 -3
- package/agent-loader.js.map +2 -2
- package/main.js +498 -93
- package/main.js.map +4 -4
- package/package.json +14 -4
- package/resources/chrome-tools/browser-content.js +103 -0
- package/resources/chrome-tools/browser-cookies.js +35 -0
- package/resources/chrome-tools/browser-eval.js +53 -0
- package/resources/chrome-tools/browser-hn-scraper.js +108 -0
- package/resources/chrome-tools/browser-nav.js +44 -0
- package/resources/chrome-tools/browser-pick.js +162 -0
- package/resources/chrome-tools/browser-screenshot.js +34 -0
- package/resources/chrome-tools/browser-start.js +86 -0
- package/resources/pi-agent/extensions/answer.ts +532 -0
- package/resources/pi-agent/extensions/context.ts +578 -0
- package/resources/pi-agent/extensions/control.ts +1779 -0
- package/resources/pi-agent/extensions/diff.ts +218 -0
- package/resources/pi-agent/extensions/files.ts +199 -0
- package/resources/pi-agent/extensions/loop.ts +446 -0
- package/resources/pi-agent/extensions/multi-edit.ts +835 -0
- package/resources/pi-agent/extensions/notify.ts +88 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/CHANGELOG.md +192 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/LICENSE +21 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/README.md +296 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/app-bridge.bundle.js +67 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/cli.js +108 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/commands.ts +211 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/config.ts +227 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/consent-manager.ts +64 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/direct-tools.ts +301 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/errors.ts +219 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/glimpse-ui.ts +80 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/host-html-template.ts +427 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/index.ts +232 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/init.ts +319 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/lifecycle.ts +93 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/logger.ts +169 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/mcp-panel.ts +713 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/metadata-cache.ts +191 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/npx-resolver.ts +419 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/oauth-handler.ts +56 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/package.json +85 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/paths.ts +29 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/proxy-modes.ts +635 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/resource-tools.ts +17 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/server-manager.ts +330 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/state.ts +41 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/tool-metadata.ts +144 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/tool-registrar.ts +46 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/types.ts +367 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/ui-resource-handler.ts +145 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/ui-server.ts +623 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/ui-session.ts +384 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/ui-stream-types.ts +89 -0
- package/resources/pi-agent/extensions/pi-mcp-adapter/utils.ts +75 -0
- package/resources/pi-agent/extensions/prompt-editor.ts +1315 -0
- package/resources/pi-agent/extensions/prompt-url-widget.ts +158 -0
- package/resources/pi-agent/extensions/redraws.ts +24 -0
- package/resources/pi-agent/extensions/review.ts +2160 -0
- package/resources/pi-agent/extensions/todos.ts +2076 -0
- package/resources/pi-agent/extensions/tps.ts +47 -0
- package/resources/pi-agent/extensions/whimsical.ts +474 -0
- package/resources/pi-agent/prompts/coder-system.md +106 -0
- package/resources/pi-agent/skills/changelog-generator/SKILL.md +425 -0
- package/resources/pi-agent/skills/docyrus-chrome-devtools-cli/SKILL.md +80 -0
- package/resources/pi-agent/skills/docyrus-platform/SKILL.md +71 -0
- package/resources/pi-agent/skills/docyrus-platform/references/ai-capabilities.md +43 -0
- package/resources/pi-agent/skills/docyrus-platform/references/auth-and-multi-tenancy.md +35 -0
- package/resources/pi-agent/skills/docyrus-platform/references/automation-and-workflows.md +30 -0
- package/resources/pi-agent/skills/docyrus-platform/references/core-building-blocks.md +53 -0
- package/resources/pi-agent/skills/{docyrus-api-dev → docyrus-platform}/references/data-source-query-guide.md +32 -28
- package/resources/pi-agent/skills/docyrus-platform/references/developer-tools.md +28 -0
- package/resources/pi-agent/skills/docyrus-platform/references/docyrus-cli-usage.md +554 -0
- package/resources/pi-agent/skills/{docyrus-api-dev → docyrus-platform}/references/formula-design-guide-llm.md +15 -23
- package/resources/pi-agent/skills/docyrus-platform/references/integrations-and-events.md +60 -0
- package/resources/pi-agent/skills/docyrus-platform/references/platform-services.md +58 -0
- package/resources/pi-agent/skills/docyrus-platform/references/querying-and-data-operations.md +27 -0
- package/resources/pi-agent/prompts/coder-append-system.md +0 -19
- package/resources/pi-agent/skills/docyrus-ai/SKILL.md +0 -28
- package/resources/pi-agent/skills/docyrus-api-dev/SKILL.md +0 -161
- package/resources/pi-agent/skills/docyrus-api-dev/references/api-client.md +0 -349
- package/resources/pi-agent/skills/docyrus-api-dev/references/authentication.md +0 -238
- package/resources/pi-agent/skills/docyrus-api-dev/references/query-and-formulas.md +0 -592
- package/resources/pi-agent/skills/docyrus-api-doctor/SKILL.md +0 -70
- package/resources/pi-agent/skills/docyrus-api-doctor/references/checklist-details.md +0 -588
- package/resources/pi-agent/skills/docyrus-app-dev/SKILL.md +0 -159
- package/resources/pi-agent/skills/docyrus-app-dev/references/api-client-and-auth.md +0 -275
- package/resources/pi-agent/skills/docyrus-app-dev/references/collections-and-patterns.md +0 -352
- package/resources/pi-agent/skills/docyrus-app-dev/references/data-source-query-guide.md +0 -2059
- package/resources/pi-agent/skills/docyrus-app-dev/references/formula-design-guide-llm.md +0 -320
- package/resources/pi-agent/skills/docyrus-app-dev/references/query-guide.md +0 -525
- package/resources/pi-agent/skills/docyrus-app-ui-design/SKILL.md +0 -466
- package/resources/pi-agent/skills/docyrus-app-ui-design/references/component-selection-guide.md +0 -602
- package/resources/pi-agent/skills/docyrus-app-ui-design/references/icon-usage-guide.md +0 -463
- package/resources/pi-agent/skills/docyrus-app-ui-design/references/preferred-components-catalog.md +0 -242
- package/resources/pi-agent/skills/docyrus-apps/SKILL.md +0 -54
- package/resources/pi-agent/skills/docyrus-architect/SKILL.md +0 -174
- package/resources/pi-agent/skills/docyrus-architect/references/custom-query-guide.md +0 -410
- package/resources/pi-agent/skills/docyrus-architect/references/data-source-query-guide.md +0 -2059
- package/resources/pi-agent/skills/docyrus-architect/references/formula-design-guide-llm.md +0 -320
- package/resources/pi-agent/skills/docyrus-architect/references/formula-reference.md +0 -145
- package/resources/pi-agent/skills/docyrus-auth/SKILL.md +0 -100
- package/resources/pi-agent/skills/docyrus-cli-app/SKILL.md +0 -279
- package/resources/pi-agent/skills/docyrus-cli-app/references/cli-manifest.md +0 -532
- package/resources/pi-agent/skills/docyrus-cli-app/references/list-query-examples.md +0 -248
- package/resources/pi-agent/skills/docyrus-curl/SKILL.md +0 -32
- package/resources/pi-agent/skills/docyrus-discover/SKILL.md +0 -63
- package/resources/pi-agent/skills/docyrus-ds/SKILL.md +0 -95
- package/resources/pi-agent/skills/docyrus-env/SKILL.md +0 -21
- package/resources/pi-agent/skills/docyrus-studio/SKILL.md +0 -369
- package/resources/pi-agent/skills/docyrus-tui/SKILL.md +0 -15
|
@@ -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.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docyrus-platform
|
|
3
|
+
description: Comprehensive reference for Docyrus platform capabilities, building blocks, features, and API coverage. Use when the user asks about what Docyrus can do, what features are available, how the platform works, or needs context about platform capabilities to design solutions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Docyrus Platform
|
|
7
|
+
|
|
8
|
+
Docyrus is an AI-native Backend Platform as a Service (BPaaS) that enables businesses to build B2B web apps, mobile apps, client portals, internal tools, AI agents, chatbots, and integrations — without building backend infrastructure from scratch.
|
|
9
|
+
|
|
10
|
+
## Core Building Blocks
|
|
11
|
+
|
|
12
|
+
The platform is composed of six core building blocks that work together:
|
|
13
|
+
|
|
14
|
+
- **Apps** — Top-level containers that group data sources, automations, and custom queries into a deployable unit.
|
|
15
|
+
- **Data Sources** — Structured collections of records with defined schemas. Support simple, advanced, external (connected databases/APIs), and system (pre-built) types. Every data source — internal or external — is exposed through a single, unified CRUD endpoint.
|
|
16
|
+
- **Fields** — 45+ field types that define the schema of each data source, covering text, numbers, dates, selections, relations, files, formulas, nested data, and more.
|
|
17
|
+
- **Enumerations** — Reusable option sets for selection fields, with color, icon, and ordering support.
|
|
18
|
+
- **Custom Queries** — SQL-based analytics templates with dynamic variable interpolation, runtime filters, and multi-database targeting.
|
|
19
|
+
- **Automations** — Event-driven workflows with triggers (record changes, time-based, webhooks, buttons) and action chains (email, notifications, HTTP requests, AI prompts, record operations).
|
|
20
|
+
|
|
21
|
+
For detailed specifications of each building block, see [references/core-building-blocks.md](references/core-building-blocks.md).
|
|
22
|
+
|
|
23
|
+
## Key Feature Areas
|
|
24
|
+
|
|
25
|
+
### Querying & Data Operations
|
|
26
|
+
|
|
27
|
+
Unified query engine with column selection, 50+ filter operators, aggregations, formulas, pivots, child queries, and full-text search. Full CRUD with bulk operations.
|
|
28
|
+
|
|
29
|
+
See [references/querying-and-data-operations.md](references/querying-and-data-operations.md).
|
|
30
|
+
|
|
31
|
+
For complete query payload reference with examples, see [references/data-source-query-guide.md](references/data-source-query-guide.md).
|
|
32
|
+
|
|
33
|
+
For block formula design (inline expressions and subqueries), see [references/formula-design-guide-llm.md](references/formula-design-guide-llm.md).
|
|
34
|
+
|
|
35
|
+
### AI Capabilities
|
|
36
|
+
|
|
37
|
+
AI agent builder with tool binding, knowledge bases, MCP servers, 18+ model providers, agent chaining, task scheduling, persistent memory, chat integrations, and evaluation metrics.
|
|
38
|
+
|
|
39
|
+
See [references/ai-capabilities.md](references/ai-capabilities.md).
|
|
40
|
+
|
|
41
|
+
### Automation & Workflows
|
|
42
|
+
|
|
43
|
+
Event-driven automation engine with six trigger types and eleven action types. Supports conditional flows, action chains, and archiving.
|
|
44
|
+
|
|
45
|
+
See [references/automation-and-workflows.md](references/automation-and-workflows.md).
|
|
46
|
+
|
|
47
|
+
### Authentication & Multi-Tenancy
|
|
48
|
+
|
|
49
|
+
OAuth2 flows (PKCE, Client Credentials, Device Code), scope-based permissions, tenant isolation, role-based and record-level ACL, and client portal system.
|
|
50
|
+
|
|
51
|
+
See [references/auth-and-multi-tenancy.md](references/auth-and-multi-tenancy.md).
|
|
52
|
+
|
|
53
|
+
### Integrations & Events
|
|
54
|
+
|
|
55
|
+
Connector framework for HTTP and SQL providers, webhook management, collaborative document editing, in-app messaging, notifications, and email.
|
|
56
|
+
|
|
57
|
+
See [references/integrations-and-events.md](references/integrations-and-events.md).
|
|
58
|
+
|
|
59
|
+
### Platform Services
|
|
60
|
+
|
|
61
|
+
App templates, data import/export, webforms, reporting & analytics, deployment, localization, audit logging, and billing.
|
|
62
|
+
|
|
63
|
+
See [references/platform-services.md](references/platform-services.md).
|
|
64
|
+
|
|
65
|
+
### Developer Tools
|
|
66
|
+
|
|
67
|
+
Auto-generated OpenAPI specs, MCP server, full-featured CLI, REST API client libraries, React auth provider, and auto-generated collection hooks.
|
|
68
|
+
|
|
69
|
+
See [references/developer-tools.md](references/developer-tools.md).
|
|
70
|
+
|
|
71
|
+
For full CLI command reference (all commands, options, and flags), see [references/docyrus-cli-usage.md](references/docyrus-cli-usage.md).
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# AI Capabilities
|
|
2
|
+
|
|
3
|
+
## AI Agent Builder
|
|
4
|
+
|
|
5
|
+
Create and manage AI agents with:
|
|
6
|
+
|
|
7
|
+
- **Tool binding** — Attach external functions and APIs as agent tools
|
|
8
|
+
- **Data source access** — Grant agents read/write access to specific data sources
|
|
9
|
+
- **Knowledge base** — Upload documents for RAG-powered context
|
|
10
|
+
- **MCP servers** — Connect Model Context Protocol servers for extended tool discovery
|
|
11
|
+
- **Multi-model support** — Choose from 18+ AI providers: OpenAI, Anthropic, Google (AI Studio & Vertex), AWS Bedrock, Groq, Replicate, Together, Mistral, Cohere, Azure, Fireworks, xAI, Portkey, Alibaba, DeepSeek, HuggingFace, OpenRouter, Nebius, Perplexity, Cerebras
|
|
12
|
+
- **Agent connections** — Chain agents as sub-agents or forward requests between agents
|
|
13
|
+
- **Workflow steps** — Define multi-step agent workflows with conditional logic
|
|
14
|
+
|
|
15
|
+
## AI Task Scheduling
|
|
16
|
+
|
|
17
|
+
- Immediate, scheduled, and recurring (cron-based) agent task execution
|
|
18
|
+
- Task status tracking and result persistence
|
|
19
|
+
|
|
20
|
+
## AI Memory
|
|
21
|
+
|
|
22
|
+
Persistent memory system with scoping levels: user, thread, agent, workspace, and global. Vector embeddings for semantic retrieval.
|
|
23
|
+
|
|
24
|
+
## AI Chat Integrations
|
|
25
|
+
|
|
26
|
+
- Microsoft Teams and Google Chat installation and message mapping
|
|
27
|
+
- Thread-level conversation tracking across platforms
|
|
28
|
+
|
|
29
|
+
## Generative Features
|
|
30
|
+
|
|
31
|
+
- Content enhancement and completion
|
|
32
|
+
- Design generation (logos, banners)
|
|
33
|
+
- Audio transcription (speech-to-text)
|
|
34
|
+
- Semantic search across records and documents
|
|
35
|
+
- AI-powered data import and field recommendations
|
|
36
|
+
|
|
37
|
+
## AI Evaluation
|
|
38
|
+
|
|
39
|
+
17 evaluation metrics including toxicity, hallucination, and faithfulness tracking for agent quality monitoring.
|
|
40
|
+
|
|
41
|
+
## AI Usage Tracking
|
|
42
|
+
|
|
43
|
+
Per-model token usage and cost tracking for billing and optimization.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Authentication & Multi-Tenancy
|
|
2
|
+
|
|
3
|
+
## Authentication Methods
|
|
4
|
+
|
|
5
|
+
- **OAuth2 Authorization Code (PKCE)** — Browser-based apps
|
|
6
|
+
- **OAuth2 Client Credentials** — Server-to-server
|
|
7
|
+
- **OAuth2 Device Code** — CLI and headless environments
|
|
8
|
+
- **Automatic token refresh** — Transparent renewal with refresh tokens
|
|
9
|
+
|
|
10
|
+
## Access Control
|
|
11
|
+
|
|
12
|
+
- **Scope-based permissions** — ReadWrite.All, User.Read, Architect.ReadWrite.All, AI.ReadWrite.All, MCP.Connect, and more
|
|
13
|
+
- **Tenant isolation** — Enforced data separation between tenants on every query
|
|
14
|
+
- **Role-based access** — Roles with granular permission sets
|
|
15
|
+
- **Record-level ACL** — Per-record ownership and sharing rules (private, read-only, read/update, full access)
|
|
16
|
+
- **Field-level ACL** — Restrict visibility or editability of individual fields per role
|
|
17
|
+
|
|
18
|
+
## User Management
|
|
19
|
+
|
|
20
|
+
- User signup with email verification, profile management, avatar, preferences
|
|
21
|
+
- Password change/reset, email change workflows
|
|
22
|
+
- Multi-device support with device registration for push notifications
|
|
23
|
+
- Per-user AI feature access control
|
|
24
|
+
|
|
25
|
+
## Multi-Tenancy
|
|
26
|
+
|
|
27
|
+
- Fully isolated data per tenant
|
|
28
|
+
- Multiple apps per tenant, each with scoped data sources
|
|
29
|
+
- Tenant-specific configurations, branding, and translations
|
|
30
|
+
- Organizational hierarchy with teams, roles, and user scoping
|
|
31
|
+
|
|
32
|
+
## Portal System
|
|
33
|
+
|
|
34
|
+
- Client portal configuration with dedicated portal users, organizations, roles, and sessions
|
|
35
|
+
- Separate authentication and access control for external users
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Automation & Workflows
|
|
2
|
+
|
|
3
|
+
## Automation Engine
|
|
4
|
+
|
|
5
|
+
Define event-driven workflows with triggers and action chains:
|
|
6
|
+
|
|
7
|
+
**Triggers:**
|
|
8
|
+
|
|
9
|
+
- Record created, modified, or deleted
|
|
10
|
+
- Time-based (after a period, recurring interval)
|
|
11
|
+
- Webhook (external event)
|
|
12
|
+
- Button activation (user action)
|
|
13
|
+
- Previous action (chaining)
|
|
14
|
+
- AI agent (agent-triggered)
|
|
15
|
+
|
|
16
|
+
**Actions:**
|
|
17
|
+
|
|
18
|
+
- Send email
|
|
19
|
+
- Send notification
|
|
20
|
+
- Create record
|
|
21
|
+
- Update records
|
|
22
|
+
- Request input
|
|
23
|
+
- Request approval
|
|
24
|
+
- Trigger HTTP request
|
|
25
|
+
- AI prompt
|
|
26
|
+
- AI agent execution
|
|
27
|
+
- Data source query
|
|
28
|
+
- Custom query execution
|
|
29
|
+
|
|
30
|
+
Automations support conditional flows, action chains, and soft-delete (archiving).
|