@groupby/ai-dev 0.1.1 → 0.2.0
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/README.md +9 -0
- package/dist/index.js +260 -21
- package/package.json +15 -10
- package/toolsets/rzlv-flow/README.md +57 -0
- package/toolsets/rzlv-flow/docs/mcp-setup.md +126 -0
- package/toolsets/rzlv-flow/resources/README.md +16 -0
- package/toolsets/rzlv-flow/resources/confluence-file-structure.md +179 -0
- package/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +19 -0
- package/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +36 -0
- package/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +40 -0
- package/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +44 -0
- package/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +48 -0
- package/toolsets/rzlv-flow/resources/fcmp-protocol.md +331 -0
- package/toolsets/rzlv-flow/resources/jira-file-structure.md +177 -0
- package/toolsets/rzlv-flow/resources/sync-state-format.md +209 -0
- package/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +643 -0
- package/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +265 -0
- package/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +89 -0
- package/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +135 -0
- package/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +116 -0
- package/toolsets/rzlv-flow/skills/jira-status/SKILL.md +97 -0
- package/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +148 -0
- package/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +240 -0
- package/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +112 -0
- package/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +227 -0
- package/toolsets/toolsets/rzlv-flow/README.md +102 -0
- package/toolsets/toolsets/rzlv-flow/docs/getting-started.md +102 -0
- package/toolsets/toolsets/rzlv-flow/docs/mcp-setup.md +126 -0
- package/toolsets/toolsets/rzlv-flow/resources/README.md +16 -0
- package/toolsets/toolsets/rzlv-flow/resources/confluence-file-structure.md +285 -0
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +19 -0
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +36 -0
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +40 -0
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +44 -0
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +48 -0
- package/toolsets/toolsets/rzlv-flow/resources/fcmp-protocol.md +331 -0
- package/toolsets/toolsets/rzlv-flow/resources/jira-file-structure.md +177 -0
- package/toolsets/toolsets/rzlv-flow/resources/sync-state-format.md +318 -0
- package/toolsets/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +643 -0
- package/toolsets/toolsets/rzlv-flow/skills/confluence-fetch/SKILL.md +189 -0
- package/toolsets/toolsets/rzlv-flow/skills/confluence-publish/SKILL.md +178 -0
- package/toolsets/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +265 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +89 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +143 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +143 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-status/SKILL.md +97 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +148 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +245 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +112 -0
- package/toolsets/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +260 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Sync State Format — YAML Frontmatter Schema
|
|
2
|
+
|
|
3
|
+
This document defines the YAML frontmatter schema used in local Jira ticket files and Confluence page files. All rzlv-flow skills that read or write these files must follow this format.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Jira Ticket File Schema
|
|
8
|
+
|
|
9
|
+
Every ticket file (`{TICKET-KEY}.md`) uses this frontmatter format for safe FCMP sync:
|
|
10
|
+
|
|
11
|
+
```yaml
|
|
12
|
+
---
|
|
13
|
+
sync:
|
|
14
|
+
jira_key: "PROJ-123" # Jira ticket key
|
|
15
|
+
jira_ari: "ari:cloud:jira:{cloudId}:issue/{issueId}" # Atlassian Resource Identifier
|
|
16
|
+
status: "In Progress" # Current Jira status
|
|
17
|
+
assignee: "john.doe@company.com" # Assignee email
|
|
18
|
+
priority: "High" # Priority level
|
|
19
|
+
story_points: 3 # Story point estimate
|
|
20
|
+
last_synced: "2025-12-11T10:30:00Z" # When local was last synced with remote
|
|
21
|
+
version: 42 # Jira version for optimistic locking
|
|
22
|
+
remote_updated: "2025-12-11T09:15:00Z" # Last remote change timestamp
|
|
23
|
+
|
|
24
|
+
structure:
|
|
25
|
+
type: "story" # epic | story | subtask | task | bug
|
|
26
|
+
parent: "../epic.md" # Relative path to parent file
|
|
27
|
+
epic: "PROJ-120" # Epic key
|
|
28
|
+
|
|
29
|
+
agile_companion: # Developer workflow skill metadata (optional)
|
|
30
|
+
last_focused: "2025-12-11T08:00:00Z" # Last time developer focused on this ticket
|
|
31
|
+
working_branch: "feature/PROJ-123" # Associated git branch
|
|
32
|
+
local_commits: 3 # Uncommitted/unpushed commit count
|
|
33
|
+
|
|
34
|
+
orchestrator: # Orchestrator skill metadata (optional)
|
|
35
|
+
generated_at: "2025-12-10T14:00:00Z" # When the structure was generated
|
|
36
|
+
confluence_page_id: "123456789" # Linked Confluence page
|
|
37
|
+
confluence_url: "https://company.atlassian.net/wiki/spaces/ENG/pages/123456789"
|
|
38
|
+
---
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Field Reference
|
|
42
|
+
|
|
43
|
+
#### `sync` — Core Sync Metadata
|
|
44
|
+
|
|
45
|
+
| Field | Type | Required | Written By | Description |
|
|
46
|
+
|-------|------|----------|------------|-------------|
|
|
47
|
+
| `jira_key` | string | Yes | Any skill on create/fetch | Jira ticket key (e.g. `PROJ-123`) |
|
|
48
|
+
| `jira_ari` | string | Yes | Any skill on create/fetch | Atlassian Resource Identifier for API calls |
|
|
49
|
+
| `status` | string | Yes | Updated on every sync | Current Jira workflow status |
|
|
50
|
+
| `assignee` | string | No | Updated on every sync | Assignee email address |
|
|
51
|
+
| `priority` | string | No | Updated on every sync | Ticket priority level |
|
|
52
|
+
| `story_points` | number | No | Updated on every sync | Story point estimate |
|
|
53
|
+
| `last_synced` | ISO8601 | Yes | Updated on every sync | Timestamp of last successful sync |
|
|
54
|
+
| `version` | number | Yes | Updated on every sync | Jira version field for optimistic locking (FCMP) |
|
|
55
|
+
| `remote_updated` | ISO8601 | Yes | Updated on every sync | Timestamp of last remote change |
|
|
56
|
+
|
|
57
|
+
#### `structure` — Hierarchy Metadata
|
|
58
|
+
|
|
59
|
+
| Field | Type | Required | Written By | Description |
|
|
60
|
+
|-------|------|----------|------------|-------------|
|
|
61
|
+
| `type` | enum | Yes | Any skill on create | `epic`, `story`, `subtask`, `task`, or `bug` |
|
|
62
|
+
| `parent` | string | No | Set on create or parent load | Relative path to parent ticket file |
|
|
63
|
+
| `epic` | string | No | Set on create or parent load | Epic key this ticket belongs to |
|
|
64
|
+
|
|
65
|
+
#### `agile_companion` — Developer Workflow Extensions
|
|
66
|
+
|
|
67
|
+
| Field | Type | Required | Written By | Description |
|
|
68
|
+
|-------|------|----------|------------|-------------|
|
|
69
|
+
| `last_focused` | ISO8601 | No | `jira-ticket-focus` | Last time the developer focused on this ticket |
|
|
70
|
+
| `working_branch` | string | No | `jira-ticket-focus` | Detected or created git branch |
|
|
71
|
+
| `local_commits` | number | No | `jira-wrap-sync` | Count of local commits since last sync |
|
|
72
|
+
|
|
73
|
+
#### `orchestrator` — Orchestrator Extensions
|
|
74
|
+
|
|
75
|
+
| Field | Type | Required | Written By | Description |
|
|
76
|
+
|-------|------|----------|------------|-------------|
|
|
77
|
+
| `generated_at` | ISO8601 | No | `atlassian-orchestrator` | When the ticket structure was generated |
|
|
78
|
+
| `confluence_page_id` | string | No | `atlassian-orchestrator` | Linked Confluence page ID |
|
|
79
|
+
| `confluence_url` | string | No | `atlassian-orchestrator` | URL to linked Confluence page |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Jira Ticket File Body
|
|
84
|
+
|
|
85
|
+
Below the frontmatter, the markdown body follows this structure:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
# Implement User Authentication API
|
|
89
|
+
|
|
90
|
+
## Description
|
|
91
|
+
|
|
92
|
+
{Description from Jira — synced bidirectionally}
|
|
93
|
+
|
|
94
|
+
## Acceptance Criteria
|
|
95
|
+
|
|
96
|
+
- [ ] API endpoint accepts username/password
|
|
97
|
+
- [ ] Returns JWT token on success
|
|
98
|
+
- [ ] Returns 401 on invalid credentials
|
|
99
|
+
|
|
100
|
+
## Technical Notes
|
|
101
|
+
|
|
102
|
+
{Links to _docs/ or inline notes — optional}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Confluence Page File Schema
|
|
108
|
+
|
|
109
|
+
Confluence mirror files use this frontmatter:
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
---
|
|
113
|
+
sync:
|
|
114
|
+
confluence_page_id: "123456789" # Confluence page ID
|
|
115
|
+
confluence_url: "https://..." # Full page URL
|
|
116
|
+
space: "ENG" # Confluence space key
|
|
117
|
+
parent_page_id: "987654321" # Parent page ID in Confluence
|
|
118
|
+
last_synced: "2025-12-11T10:30:00Z" # Last sync timestamp
|
|
119
|
+
version: 5 # Confluence page version
|
|
120
|
+
remote_updated: "2025-12-11T09:15:00Z" # Last remote change
|
|
121
|
+
|
|
122
|
+
mode: "structured" # structured | flexible
|
|
123
|
+
|
|
124
|
+
source:
|
|
125
|
+
# Structured mode fields
|
|
126
|
+
jira_ticket: "PROJ-120" # Associated Jira ticket (optional)
|
|
127
|
+
doc_type: "technical-architecture" # overview | technical | decisions | strategic
|
|
128
|
+
generated_from: "docs/jira/.../technical-architecture.md" # Source _docs/ file
|
|
129
|
+
|
|
130
|
+
# Flexible mode fields (use instead of structured fields)
|
|
131
|
+
# origin: "manual" # manual | context-analyst | other skill
|
|
132
|
+
# linked_jira: "PROJ-123" # Optional linked Jira ticket
|
|
133
|
+
|
|
134
|
+
orchestrator:
|
|
135
|
+
generated_at: "2025-12-10T14:00:00Z" # When generated (structured mode)
|
|
136
|
+
auto_sync: true # Whether to auto-sync on updates
|
|
137
|
+
---
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Sync Status Values
|
|
143
|
+
|
|
144
|
+
The `sync.status` field for tracking local file sync state is separate from the Jira workflow `status`. When needed, skills track sync state using these values (typically in a `sync_status` field or inferred from `last_synced` vs `remote_updated`):
|
|
145
|
+
|
|
146
|
+
| Status | Meaning | Action Required |
|
|
147
|
+
|--------|---------|-----------------|
|
|
148
|
+
| `draft` | Created locally, never synced to Atlassian | Full create operation needed |
|
|
149
|
+
| `synced` | Local matches remote (as of last sync) | No action unless local changes |
|
|
150
|
+
| `modified` | Local changes since last sync | FCMP protocol required before push |
|
|
151
|
+
| `pending_sync` | Ready to sync, waiting for connection/confirmation | Push when ready |
|
|
152
|
+
| `sync_failed` | Attempted sync failed | Review error, retry when resolved |
|
|
153
|
+
| `conflict` | Both local and remote changed | Manual merge required |
|
|
154
|
+
|
|
155
|
+
See `fcmp-protocol.md` for full details on each status and the transitions between them.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Complete Example: Synced Ticket File
|
|
160
|
+
|
|
161
|
+
```yaml
|
|
162
|
+
---
|
|
163
|
+
sync:
|
|
164
|
+
jira_key: "AIP-247"
|
|
165
|
+
jira_ari: "ari:cloud:jira:a1b2c3d4:issue/10247"
|
|
166
|
+
status: "In Progress"
|
|
167
|
+
assignee: "jane.smith@company.com"
|
|
168
|
+
priority: "High"
|
|
169
|
+
story_points: 5
|
|
170
|
+
last_synced: "2025-12-11T10:30:00Z"
|
|
171
|
+
version: 12
|
|
172
|
+
remote_updated: "2025-12-11T09:15:00Z"
|
|
173
|
+
|
|
174
|
+
structure:
|
|
175
|
+
type: "story"
|
|
176
|
+
parent: "../../epic.md"
|
|
177
|
+
epic: "AIP-200"
|
|
178
|
+
|
|
179
|
+
agile_companion:
|
|
180
|
+
last_focused: "2025-12-11T08:00:00Z"
|
|
181
|
+
working_branch: "feature/AIP-247-auth-api"
|
|
182
|
+
local_commits: 2
|
|
183
|
+
|
|
184
|
+
orchestrator:
|
|
185
|
+
generated_at: "2025-12-08T14:00:00Z"
|
|
186
|
+
confluence_page_id: "456789012"
|
|
187
|
+
confluence_url: "https://rezolve.atlassian.net/wiki/spaces/ENG/pages/456789012"
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
# Implement User Authentication API
|
|
191
|
+
|
|
192
|
+
## Description
|
|
193
|
+
|
|
194
|
+
Build a REST API endpoint for user authentication that accepts username/password credentials and returns a JWT token. Must integrate with the existing user store and support rate limiting.
|
|
195
|
+
|
|
196
|
+
## Acceptance Criteria
|
|
197
|
+
|
|
198
|
+
- [ ] POST `/api/auth/login` accepts `{ username, password }`
|
|
199
|
+
- [ ] Returns `{ token, expiresIn }` on valid credentials
|
|
200
|
+
- [ ] Returns 401 with error message on invalid credentials
|
|
201
|
+
- [ ] Rate limited to 5 attempts per minute per IP
|
|
202
|
+
- [ ] JWT tokens expire after 24 hours
|
|
203
|
+
|
|
204
|
+
## Technical Notes
|
|
205
|
+
|
|
206
|
+
- See `_docs/technical-architecture.md` for auth flow diagram
|
|
207
|
+
- Uses existing `UserService` for credential validation
|
|
208
|
+
- Token signing key stored in environment variables
|
|
209
|
+
```
|