@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.
Files changed (50) hide show
  1. package/README.md +9 -0
  2. package/dist/index.js +260 -21
  3. package/package.json +15 -10
  4. package/toolsets/rzlv-flow/README.md +57 -0
  5. package/toolsets/rzlv-flow/docs/mcp-setup.md +126 -0
  6. package/toolsets/rzlv-flow/resources/README.md +16 -0
  7. package/toolsets/rzlv-flow/resources/confluence-file-structure.md +179 -0
  8. package/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +19 -0
  9. package/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +36 -0
  10. package/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +40 -0
  11. package/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +44 -0
  12. package/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +48 -0
  13. package/toolsets/rzlv-flow/resources/fcmp-protocol.md +331 -0
  14. package/toolsets/rzlv-flow/resources/jira-file-structure.md +177 -0
  15. package/toolsets/rzlv-flow/resources/sync-state-format.md +209 -0
  16. package/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +643 -0
  17. package/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +265 -0
  18. package/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +89 -0
  19. package/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +135 -0
  20. package/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +116 -0
  21. package/toolsets/rzlv-flow/skills/jira-status/SKILL.md +97 -0
  22. package/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +148 -0
  23. package/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +240 -0
  24. package/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +112 -0
  25. package/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +227 -0
  26. package/toolsets/toolsets/rzlv-flow/README.md +102 -0
  27. package/toolsets/toolsets/rzlv-flow/docs/getting-started.md +102 -0
  28. package/toolsets/toolsets/rzlv-flow/docs/mcp-setup.md +126 -0
  29. package/toolsets/toolsets/rzlv-flow/resources/README.md +16 -0
  30. package/toolsets/toolsets/rzlv-flow/resources/confluence-file-structure.md +285 -0
  31. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +19 -0
  32. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +36 -0
  33. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +40 -0
  34. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +44 -0
  35. package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +48 -0
  36. package/toolsets/toolsets/rzlv-flow/resources/fcmp-protocol.md +331 -0
  37. package/toolsets/toolsets/rzlv-flow/resources/jira-file-structure.md +177 -0
  38. package/toolsets/toolsets/rzlv-flow/resources/sync-state-format.md +318 -0
  39. package/toolsets/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +643 -0
  40. package/toolsets/toolsets/rzlv-flow/skills/confluence-fetch/SKILL.md +189 -0
  41. package/toolsets/toolsets/rzlv-flow/skills/confluence-publish/SKILL.md +178 -0
  42. package/toolsets/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +265 -0
  43. package/toolsets/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +89 -0
  44. package/toolsets/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +143 -0
  45. package/toolsets/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +143 -0
  46. package/toolsets/toolsets/rzlv-flow/skills/jira-status/SKILL.md +97 -0
  47. package/toolsets/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +148 -0
  48. package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +245 -0
  49. package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +112 -0
  50. 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
+ ```