@groupby/ai-dev 0.2.0 → 0.2.3
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 +3 -1
- package/dist/index.js +86 -19
- package/package.json +3 -3
- package/toolsets/rzlv-flow/README.md +54 -9
- package/toolsets/rzlv-flow/resources/confluence-file-structure.md +129 -23
- package/toolsets/rzlv-flow/resources/sync-state-format.md +109 -0
- package/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +13 -5
- package/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +28 -1
- package/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +6 -1
- package/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +41 -8
- package/skills/skills/README.md +0 -61
- package/skills/skills/archived/README.md +0 -3
- package/skills/skills/library/README.md +0 -3
- package/skills/skills/library/frontend-design/LICENSE.txt +0 -177
- package/skills/skills/library/frontend-design/SKILL.md +0 -42
- package/teams/teams/brain-studio/skills/code-review/SKILL.md +0 -46
- package/toolsets/toolsets/rzlv-flow/README.md +0 -102
- package/toolsets/toolsets/rzlv-flow/docs/mcp-setup.md +0 -126
- package/toolsets/toolsets/rzlv-flow/resources/README.md +0 -16
- package/toolsets/toolsets/rzlv-flow/resources/confluence-file-structure.md +0 -285
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/README.md +0 -19
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/decisions.md +0 -36
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md +0 -40
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/strategic-context.md +0 -44
- package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/technical-architecture.md +0 -48
- package/toolsets/toolsets/rzlv-flow/resources/fcmp-protocol.md +0 -331
- package/toolsets/toolsets/rzlv-flow/resources/jira-file-structure.md +0 -177
- package/toolsets/toolsets/rzlv-flow/resources/sync-state-format.md +0 -318
- package/toolsets/toolsets/rzlv-flow/skills/atlassian-orchestrator/SKILL.md +0 -643
- package/toolsets/toolsets/rzlv-flow/skills/context-analyst/SKILL.md +0 -265
- package/toolsets/toolsets/rzlv-flow/skills/jira-comment/SKILL.md +0 -89
- package/toolsets/toolsets/rzlv-flow/skills/jira-daily-triage/SKILL.md +0 -143
- package/toolsets/toolsets/rzlv-flow/skills/jira-sprint-status/SKILL.md +0 -143
- package/toolsets/toolsets/rzlv-flow/skills/jira-status/SKILL.md +0 -97
- package/toolsets/toolsets/rzlv-flow/skills/jira-sync/SKILL.md +0 -148
- package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-focus/SKILL.md +0 -245
- package/toolsets/toolsets/rzlv-flow/skills/jira-ticket-trace/SKILL.md +0 -112
- package/toolsets/toolsets/rzlv-flow/skills/jira-wrap-sync/SKILL.md +0 -260
- /package/toolsets/{toolsets/rzlv-flow → rzlv-flow}/docs/getting-started.md +0 -0
- /package/toolsets/{toolsets/rzlv-flow → rzlv-flow}/skills/confluence-fetch/SKILL.md +0 -0
- /package/toolsets/{toolsets/rzlv-flow → rzlv-flow}/skills/confluence-publish/SKILL.md +0 -0
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 'code-review'
|
|
3
|
-
description: 'Perform a standardized code review on the current changes. Use this when needing to evaluate how well the code matches our architecture docs, code quality, and so on.'
|
|
4
|
-
allowed-tools:
|
|
5
|
-
- execute/runInTerminal
|
|
6
|
-
- edit/editFiles
|
|
7
|
-
- edit/createFile
|
|
8
|
-
- atlassian-rovo/*
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Brain Studio — Code Review
|
|
12
|
-
|
|
13
|
-
## Setup
|
|
14
|
-
|
|
15
|
-
1. Use #tool:execute/runInTerminal to run `git diff origin/main...HEAD`. If that yields nothing, fall back to `git diff HEAD`. Use this output as the set of changes under review.
|
|
16
|
-
2. Use #tool:execute/runInTerminal to run `git branch --show-current` and extract the Jira ticket key from the branch name (e.g. `BS-1056` from `BS-1056-my-feature`). If a ticket key is found, use the Atlassian Rovo MCP to fetch the issue and use its description and acceptance criteria to evaluate whether the code fulfils the ticket's intent.
|
|
17
|
-
3. Inspect the diff to understand what types of changes are involved.
|
|
18
|
-
4. Apply the **Doc Routing Table** in `.github/copilot-instructions.md` — use the change types you identified to determine which architecture docs to load. Use those docs as your source of truth throughout the review.
|
|
19
|
-
5. If the codebase contradicts the docs, the **docs represent the target state** — flag the discrepancy rather than normalising the legacy pattern.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Review
|
|
24
|
-
|
|
25
|
-
Evaluate the changes across these areas. Let the loaded architecture docs govern the specific standards — do not invent rules not found there.
|
|
26
|
-
|
|
27
|
-
1. **Code Quality** — single responsibility principle, clarity, naming, redundancy, complexity, consistency with documented patterns
|
|
28
|
-
2. **Regressions** — silent breakage, unexpected behaviour changes, altered logic outside of the stated scope of the ticket, downstream impact
|
|
29
|
-
3. **Security** — input validation, sensitive data handling, auth correctness
|
|
30
|
-
4. **Performance** — inefficient or unnecessarily expensive code, unnecessary re-renders, missing cleanups, over-importing
|
|
31
|
-
5. **Error handling** — async error paths covered, error messaging in place, graceful degradation, no swallowed errors
|
|
32
|
-
6. **Accessibility** — semantic HTML, ARIA attributes, keyboard navigation, focus management
|
|
33
|
-
7. **Testing** — coverage of new logic, edge cases, error paths; flag superfluous tests
|
|
34
|
-
8. **Documentation** — non-obvious logic commented; JSDoc updated where needed, architecture docs updated if the change introduces a new pattern or deviates from existing ones
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Output Format
|
|
39
|
-
|
|
40
|
-
- **Inline comments** for specific lines or blocks.
|
|
41
|
-
- **Top-level observations** for broad themes or praise.
|
|
42
|
-
- Prioritise by severity: 🔴 blocking / 🟡 important / 🔵 minor.
|
|
43
|
-
- Do **not** include your reasoning steps or to-do list.
|
|
44
|
-
- Close with a witty quatrain summarising the PR. 🎭
|
|
45
|
-
|
|
46
|
-
Save the review to `docs/code-reviews/<branch-name>-code-review.md` (use the full branch name from Setup step 2). Confirm the file has been written.
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# rzlv-flow: Atlassian Intelligence Skills
|
|
2
|
-
|
|
3
|
-
A toolset of modular, composable skills for Jira and Confluence developer workflows. Covers daily triage, ticket focus, wrap/sync, sprint status, context loading, and more — all without requiring the full BMAD Method or the rzlv-flow monolith.
|
|
4
|
-
|
|
5
|
-
Each skill is standalone and can be installed individually or as a complete suite.
|
|
6
|
-
|
|
7
|
-
## Quick Start
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# 1. Install all skills + resources
|
|
11
|
-
npx @groupby/ai-dev install toolset rzlv-flow
|
|
12
|
-
|
|
13
|
-
# 2. Configure Atlassian MCP (see docs/mcp-setup.md)
|
|
14
|
-
# Add atlassian-rovo config to .vscode/mcp.json
|
|
15
|
-
|
|
16
|
-
# 3. Use — ask your AI assistant:
|
|
17
|
-
# "Start my day" → daily triage
|
|
18
|
-
# "Focus on PROJ-123" → ticket deep-dive
|
|
19
|
-
# "Wrap up PROJ-123" → wrap & sync
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
See [docs/getting-started.md](docs/getting-started.md) for a full walkthrough.
|
|
23
|
-
|
|
24
|
-
## Skills
|
|
25
|
-
|
|
26
|
-
| Skill | Description | Status |
|
|
27
|
-
|-------|-------------|--------|
|
|
28
|
-
| `jira-daily-triage` | Start-of-day ticket triage with sprint detection | Complete |
|
|
29
|
-
| `jira-ticket-focus` | Deep-load a ticket with full context | Complete |
|
|
30
|
-
| `jira-wrap-sync` | Wrap up work, draft comment, multi-action sync | Complete |
|
|
31
|
-
| `jira-ticket-trace` | Trace code back to Jira requirements | Complete |
|
|
32
|
-
| `jira-comment` | Add a comment to a Jira ticket with FCMP safety | Complete |
|
|
33
|
-
| `jira-status` | Change ticket status with transition validation | Complete |
|
|
34
|
-
| `jira-sprint-status` | Sprint status report with completion metrics | Complete |
|
|
35
|
-
| `jira-sync` | Force-sync local Jira context with remote state | Complete |
|
|
36
|
-
| `atlassian-orchestrator` | Pull surrounding ticket context and create structures | Complete |
|
|
37
|
-
| `context-analyst` | Transform meeting transcripts into structured docs | Complete |
|
|
38
|
-
| `confluence-publish` | Publish local markdown to Confluence with Leaf Bundle mirrors | Complete |
|
|
39
|
-
| `confluence-fetch` | Pull a Confluence page into a local markdown mirror | Complete |
|
|
40
|
-
|
|
41
|
-
> **Note:** `confluence-publish` provides lightweight ad-hoc publishing to Confluence. For bulk structured sync of `_docs/` folders following epic hierarchy, use `atlassian-orchestrator` Mode 3 instead.
|
|
42
|
-
|
|
43
|
-
## Prerequisites
|
|
44
|
-
|
|
45
|
-
### Required: Atlassian MCP (`atlassian-rovo`)
|
|
46
|
-
|
|
47
|
-
All Jira and Confluence skills require the Atlassian MCP server for API access to your Atlassian instance.
|
|
48
|
-
|
|
49
|
-
### Optional: GitHub MCP
|
|
50
|
-
|
|
51
|
-
Only needed for PR creation features in `jira-wrap-sync`. Not required for any other skills.
|
|
52
|
-
|
|
53
|
-
See [docs/mcp-setup.md](docs/mcp-setup.md) for detailed setup instructions.
|
|
54
|
-
|
|
55
|
-
## Installation
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
npx @groupby/ai-dev install toolset rzlv-flow # All skills + resources
|
|
59
|
-
npx @groupby/ai-dev install skill jira-daily-triage # Individual skill
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Common options:
|
|
63
|
-
|
|
64
|
-
| Flag | Description |
|
|
65
|
-
|------|-------------|
|
|
66
|
-
| `--target <dir>` | Install into a specific directory (defaults to cwd) |
|
|
67
|
-
| `--dry-run` | Preview what would be installed without writing files |
|
|
68
|
-
| `--force` | Overwrite existing files without prompting |
|
|
69
|
-
| `--skip-existing` | Skip files that already exist |
|
|
70
|
-
|
|
71
|
-
You can also copy skills manually from this repository into `docs/ai/skills/` and resources into `docs/ai/resources/`.
|
|
72
|
-
|
|
73
|
-
## BMAD Compatibility
|
|
74
|
-
|
|
75
|
-
These skills are compatible with BMAD's Jira file structure (`docs/jira/{instance}/{project}/...`) but do **not** require BMAD. They were originally developed as part of the BMAD "Atlassian Intelligence Suite" and have been extracted as standalone skills. If BMAD is installed in your project, these skills coexist without conflict.
|
|
76
|
-
|
|
77
|
-
## Shared Resources
|
|
78
|
-
|
|
79
|
-
Skills reference shared resource files installed to `docs/ai/resources/` in your project:
|
|
80
|
-
|
|
81
|
-
| Resource | Description |
|
|
82
|
-
|----------|-------------|
|
|
83
|
-
| `fcmp-protocol.md` | Fetch-Compare-Merge-Push sync pattern for safe Atlassian read/write |
|
|
84
|
-
| `jira-file-structure.md` | Standard directory layout for local Jira mirrors |
|
|
85
|
-
| `confluence-file-structure.md` | Leaf Bundle pattern for Confluence page mirrors |
|
|
86
|
-
| `sync-state-format.md` | YAML frontmatter schema for ticket and page files |
|
|
87
|
-
| `confluence-page-templates/` | Starter scaffolds for Confluence pages (initiative overview, strategic context, technical architecture, decisions) |
|
|
88
|
-
|
|
89
|
-
## MCP Setup Automation
|
|
90
|
-
|
|
91
|
-
MCP server configuration is currently manual — see [docs/mcp-setup.md](docs/mcp-setup.md) for step-by-step instructions (~5 minutes). Automated MCP configuration via the CLI is a future enhancement.
|
|
92
|
-
|
|
93
|
-
## Documentation
|
|
94
|
-
|
|
95
|
-
| Doc | Description |
|
|
96
|
-
|-----|-------------|
|
|
97
|
-
| [docs/getting-started.md](docs/getting-started.md) | Quick walkthrough: install → configure → use |
|
|
98
|
-
| [docs/mcp-setup.md](docs/mcp-setup.md) | Atlassian and GitHub MCP server configuration |
|
|
99
|
-
|
|
100
|
-
## Contributing
|
|
101
|
-
|
|
102
|
-
See the [architecture documentation](../../docs/architecture/README.md) for repo structure, skill authoring guides, and conventions.
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
# MCP Server Setup Guide
|
|
2
|
-
|
|
3
|
-
This guide covers configuring the MCP servers required by rzlv-flow skills.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Atlassian MCP (`atlassian-rovo`) — Required
|
|
8
|
-
|
|
9
|
-
All Jira and Confluence skills depend on the Atlassian MCP server for API access.
|
|
10
|
-
|
|
11
|
-
### VS Code Configuration
|
|
12
|
-
|
|
13
|
-
Add the following to your `.vscode/mcp.json` (create the file if it doesn't exist):
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
{
|
|
17
|
-
"servers": {
|
|
18
|
-
"atlassian-rovo": {
|
|
19
|
-
"command": "npx",
|
|
20
|
-
"args": ["-y", "@anthropic/atlassian-rovo-mcp"],
|
|
21
|
-
"env": {
|
|
22
|
-
"ATLASSIAN_SITE": "your-company.atlassian.net",
|
|
23
|
-
"ATLASSIAN_EMAIL": "you@company.com",
|
|
24
|
-
"ATLASSIAN_API_TOKEN": "${input:atlassianApiToken}"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
"inputs": [
|
|
29
|
-
{
|
|
30
|
-
"type": "promptString",
|
|
31
|
-
"id": "atlassianApiToken",
|
|
32
|
-
"description": "Atlassian API Token",
|
|
33
|
-
"password": true
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Generating an API Token
|
|
40
|
-
|
|
41
|
-
1. Go to [https://id.atlassian.com/manage-profile/security/api-tokens](https://id.atlassian.com/manage-profile/security/api-tokens)
|
|
42
|
-
2. Click **Create API token**
|
|
43
|
-
3. Give it a label (e.g. "VS Code MCP")
|
|
44
|
-
4. Copy the generated token — you won't see it again
|
|
45
|
-
|
|
46
|
-
### Verifying the Connection
|
|
47
|
-
|
|
48
|
-
After configuring, ask the LLM to run a simple query:
|
|
49
|
-
|
|
50
|
-
> "Search Jira for my open tickets using the Atlassian MCP"
|
|
51
|
-
|
|
52
|
-
If the MCP server is configured correctly, it will call `mcp_atlassian-rovo_search` and return results. If you get an authentication error, double-check your site URL, email, and API token.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## GitHub MCP — Optional
|
|
57
|
-
|
|
58
|
-
Only needed for PR creation features in the `jira-wrap-sync` skill. All other skills work without it.
|
|
59
|
-
|
|
60
|
-
### VS Code Configuration
|
|
61
|
-
|
|
62
|
-
Add to your `.vscode/mcp.json`:
|
|
63
|
-
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
"servers": {
|
|
67
|
-
"github": {
|
|
68
|
-
"command": "npx",
|
|
69
|
-
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
70
|
-
"env": {
|
|
71
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:githubPat}"
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
"inputs": [
|
|
76
|
-
{
|
|
77
|
-
"type": "promptString",
|
|
78
|
-
"id": "githubPat",
|
|
79
|
-
"description": "GitHub Personal Access Token",
|
|
80
|
-
"password": true
|
|
81
|
-
}
|
|
82
|
-
]
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### PAT Token Requirements
|
|
87
|
-
|
|
88
|
-
Create a fine-grained personal access token at [https://github.com/settings/tokens?type=beta](https://github.com/settings/tokens?type=beta) with the following scopes:
|
|
89
|
-
|
|
90
|
-
- **Repository access:** Select the repos you work with
|
|
91
|
-
- **Permissions:**
|
|
92
|
-
- Contents: Read and write
|
|
93
|
-
- Pull requests: Read and write
|
|
94
|
-
- Metadata: Read-only
|
|
95
|
-
|
|
96
|
-
### When It's Needed
|
|
97
|
-
|
|
98
|
-
Only `jira-wrap-sync` uses the GitHub MCP — specifically when creating a pull request as part of the wrap-up workflow. If you don't use that feature, you can skip this setup entirely.
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Troubleshooting
|
|
103
|
-
|
|
104
|
-
### MCP server not starting
|
|
105
|
-
|
|
106
|
-
- Ensure `npx` is available in your PATH. Run `npx --version` in your terminal.
|
|
107
|
-
- Check the VS Code Output panel (View → Output → select "MCP" from the dropdown) for error messages.
|
|
108
|
-
- Try running the `npx` command manually in a terminal to see if it installs and starts correctly.
|
|
109
|
-
|
|
110
|
-
### Authentication failures (401)
|
|
111
|
-
|
|
112
|
-
- **Atlassian:** Verify your site URL includes `.atlassian.net` (not the full `https://` URL). Confirm your email matches your Atlassian account. Regenerate the API token if needed.
|
|
113
|
-
- **GitHub:** Confirm the PAT hasn't expired. Check that it has the required scopes.
|
|
114
|
-
|
|
115
|
-
### Wrong Atlassian instance
|
|
116
|
-
|
|
117
|
-
- `ATLASSIAN_SITE` should be just the domain, e.g. `your-company.atlassian.net` — not a full URL like `https://your-company.atlassian.net/jira`.
|
|
118
|
-
|
|
119
|
-
### Rate limiting
|
|
120
|
-
|
|
121
|
-
- Atlassian APIs have rate limits. If you see 429 errors, the skills will back off automatically per the FCMP protocol. Avoid running multiple sync operations in rapid succession.
|
|
122
|
-
|
|
123
|
-
### MCP calls return empty results
|
|
124
|
-
|
|
125
|
-
- Confirm you have permission to access the Jira project or Confluence space you're querying.
|
|
126
|
-
- Check that the project key or space key is correct.
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# rzlv-flow Shared Resources
|
|
2
|
-
|
|
3
|
-
Resources are shared reference material installed alongside skills. They contain protocol definitions, file structure conventions, and schema specifications that multiple skills depend on.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
When installed via the CLI, resources are placed in `docs/ai/resources/` in the target project. Skills reference them via relative paths and may ask the LLM to load them at the start of a workflow.
|
|
8
|
-
|
|
9
|
-
## Resource Files
|
|
10
|
-
|
|
11
|
-
| File | Description |
|
|
12
|
-
|------|-------------|
|
|
13
|
-
| `fcmp-protocol.md` | Fetch-Compare-Merge-Push sync pattern — the core protocol for safe Atlassian read/write operations |
|
|
14
|
-
| `jira-file-structure.md` | Standard directory layout for local Jira mirrors (`docs/jira/{instance}/{project}/...`) |
|
|
15
|
-
| `confluence-file-structure.md` | Directory layout for local Confluence page mirrors with structured and flexible modes |
|
|
16
|
-
| `sync-state-format.md` | YAML frontmatter schema for Jira ticket and Confluence page files |
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
# Confluence File Structure — Local Page Mirrors
|
|
2
|
-
|
|
3
|
-
**Pattern:** Leaf Bundle local mirrors for Confluence pages
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Overview
|
|
8
|
-
|
|
9
|
-
Skills that interact with Confluence maintain local mirrors of pages under `docs/confluence/{instance}/{space}/`. Two modes are supported depending on how the content is created:
|
|
10
|
-
|
|
11
|
-
- **Structured mode** — Orchestrator-driven, epic-based hierarchy with predefined page types
|
|
12
|
-
- **Flexible mode** — User-specified location and page structure for ad-hoc documentation
|
|
13
|
-
|
|
14
|
-
Both modes follow the FCMP protocol for safe sync operations and preserve manual edits made directly in Confluence.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Leaf Bundle Pattern
|
|
19
|
-
|
|
20
|
-
Every Confluence page is stored as a **directory** containing an `index.md` file — never as a standalone `.md` file. This is called the Leaf Bundle pattern.
|
|
21
|
-
|
|
22
|
-
### Why Folders, Not Files?
|
|
23
|
-
|
|
24
|
-
- **Child pages** — A Confluence page can have child pages. The folder naturally represents this hierarchy; child pages become subdirectories.
|
|
25
|
-
- **Assets** — Pages may include attachments, images, or diagrams. These are stored alongside `index.md` in the same folder.
|
|
26
|
-
- **Hierarchy expansion** — New child pages can be added without restructuring. A flat file cannot grow into a parent.
|
|
27
|
-
|
|
28
|
-
### DO NOT / DO
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
❌ DO NOT create flat files:
|
|
32
|
-
docs/confluence/rezolve/ENG/strategic-context.md
|
|
33
|
-
|
|
34
|
-
✅ DO create Leaf Bundle directories:
|
|
35
|
-
docs/confluence/rezolve/ENG/strategic-context/index.md
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
This rule applies to **all** Confluence page mirrors, in both structured and flexible modes.
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Base Path
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
docs/confluence/{instance}/{space}/
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
- `{instance}` — The Atlassian site identifier (e.g. `rezolve`)
|
|
49
|
-
- `{space}` — The Confluence space key (e.g. `ENG`, `PROJ`)
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Structured Mode
|
|
54
|
-
|
|
55
|
-
Used when creating Confluence pages from Jira epic structures — typically driven by the `atlassian-orchestrator` skill.
|
|
56
|
-
|
|
57
|
-
### Hierarchy
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
docs/confluence/{instance}/{space}/
|
|
61
|
-
└── {initiative-name}/
|
|
62
|
-
├── index.md # Initiative Overview
|
|
63
|
-
└── {epic-name}/
|
|
64
|
-
├── overview/
|
|
65
|
-
│ └── index.md
|
|
66
|
-
├── technical-architecture/
|
|
67
|
-
│ └── index.md
|
|
68
|
-
├── decisions/
|
|
69
|
-
│ └── index.md
|
|
70
|
-
├── strategic-context/
|
|
71
|
-
│ └── index.md
|
|
72
|
-
├── research-and-findings/ # Created only if relevant content exists
|
|
73
|
-
│ └── index.md
|
|
74
|
-
├── assumptions/ # Created only if relevant content exists
|
|
75
|
-
│ └── index.md
|
|
76
|
-
└── implementation-guidance/
|
|
77
|
-
└── index.md
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Page Types
|
|
81
|
-
|
|
82
|
-
| Page Type | Folder | Source | Description |
|
|
83
|
-
|-----------|--------|--------|-------------|
|
|
84
|
-
| Initiative Overview | `index.md` (at initiative root) | Initiative metadata | Top-level overview: goals, epic breakdown, navigation |
|
|
85
|
-
| Overview | `overview/index.md` | Epic `_docs/` | High-level epic overview and goals |
|
|
86
|
-
| Technical Architecture | `technical-architecture/index.md` | Epic `_docs/` | Architecture decisions and technical design |
|
|
87
|
-
| Decisions | `decisions/index.md` | Epic `_docs/` | Decision log and rationale |
|
|
88
|
-
| Strategic Context | `strategic-context/index.md` | Epic `_docs/` | Business context and strategic alignment |
|
|
89
|
-
| Research & Findings | `research-and-findings/index.md` | Epic `_docs/` | User research, discoveries, and clarifications* |
|
|
90
|
-
| Assumptions | `assumptions/index.md` | Epic `_docs/` | Assumptions with confidence levels and validation status* |
|
|
91
|
-
| Implementation Guidance | `implementation-guidance/index.md` | Epic `_docs/` | High-value technical guides for development |
|
|
92
|
-
|
|
93
|
-
\* Created only if the source material includes relevant content.
|
|
94
|
-
|
|
95
|
-
### When to Use
|
|
96
|
-
|
|
97
|
-
- Creating Confluence pages from Jira epic structure with `_docs/` content
|
|
98
|
-
- Orchestrator-driven workflows that generate documentation alongside Jira structures
|
|
99
|
-
|
|
100
|
-
### Sync Rules (Structured)
|
|
101
|
-
|
|
102
|
-
- Generate Confluence pages from Jira `_docs/` folders
|
|
103
|
-
- Sync BEFORE Jira creation (to get page IDs for linking)
|
|
104
|
-
- Embed Confluence links in Jira ticket descriptions
|
|
105
|
-
- Follow initiative/epic hierarchy
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Flexible Mode
|
|
110
|
-
|
|
111
|
-
Used for ad-hoc documentation, user-specified locations, and non-epic-based content.
|
|
112
|
-
|
|
113
|
-
### Hierarchy
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
docs/confluence/{instance}/{space}/
|
|
117
|
-
└── {user-specified-path}/
|
|
118
|
-
└── {page-name}/
|
|
119
|
-
└── index.md
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
No predefined structure beyond the Leaf Bundle requirement — adapts to the user's needs.
|
|
123
|
-
|
|
124
|
-
### When to Use
|
|
125
|
-
|
|
126
|
-
- Generic documentation and manual publishing
|
|
127
|
-
- Publishing existing local docs to Confluence retroactively
|
|
128
|
-
- Content created by `context-analyst` or other skills outside an epic workflow
|
|
129
|
-
- Any user-driven page creation
|
|
130
|
-
|
|
131
|
-
### Prompts for Flexible Mode
|
|
132
|
-
|
|
133
|
-
Skills using flexible mode should ask:
|
|
134
|
-
1. "Where should I place this page in Confluence? (space/parent)"
|
|
135
|
-
2. "Page title?"
|
|
136
|
-
3. "Should I link to a Jira ticket?"
|
|
137
|
-
|
|
138
|
-
### Sync Rules (Flexible)
|
|
139
|
-
|
|
140
|
-
- User specifies target location (space + parent page)
|
|
141
|
-
- Optional: Link back to Jira ticket if provided
|
|
142
|
-
- No predefined structure — adapt to user's needs
|
|
143
|
-
- Can publish existing docs to Confluence retroactively
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## Ownership
|
|
148
|
-
|
|
149
|
-
### Generated Pages (Structured Mode)
|
|
150
|
-
|
|
151
|
-
- **Owner:** Orchestrator-type skills (e.g. `atlassian-orchestrator`)
|
|
152
|
-
- **Source:** `_docs/` folders from the Jira file structure
|
|
153
|
-
- **Description:** Automatically generated from epic documentation; synced to Confluence
|
|
154
|
-
|
|
155
|
-
### Manual / Ad-hoc Pages (Flexible Mode)
|
|
156
|
-
|
|
157
|
-
- **Owner:** User or any skill
|
|
158
|
-
- **Source:** Any markdown file
|
|
159
|
-
- **Location:** User-specified or derived from context
|
|
160
|
-
|
|
161
|
-
### Manual Edits in Confluence
|
|
162
|
-
|
|
163
|
-
- **Preserved:** Yes, always — regardless of mode
|
|
164
|
-
- **Protocol:** FCMP ensures user edits in Confluence are never overwritten without merge
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Sync Rules (Both Modes)
|
|
169
|
-
|
|
170
|
-
- Follow the FCMP protocol when updating existing pages (see `fcmp-protocol.md`)
|
|
171
|
-
- Preserve manual edits made in Confluence
|
|
172
|
-
- Store page ID and URL in frontmatter after sync (see `sync-state-format.md`)
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
## Confluence Link Format
|
|
177
|
-
|
|
178
|
-
When constructing Confluence URLs:
|
|
179
|
-
|
|
180
|
-
- Replace spaces in page titles with `+`
|
|
181
|
-
- Use the `/wiki/display/{SPACE}/{Title}` format for display links
|
|
182
|
-
- Use the `/wiki/spaces/{SPACE}/pages/{pageId}` format for direct links
|
|
183
|
-
|
|
184
|
-
Example: `https://company.atlassian.net/wiki/display/ENG/Technical+Architecture`
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Page File Format
|
|
189
|
-
|
|
190
|
-
Each local Confluence mirror file (`index.md` inside a Leaf Bundle directory) uses YAML frontmatter for sync metadata:
|
|
191
|
-
|
|
192
|
-
```yaml
|
|
193
|
-
---
|
|
194
|
-
sync:
|
|
195
|
-
confluence_page_id: "123456789"
|
|
196
|
-
confluence_url: "https://company.atlassian.net/wiki/spaces/ENG/pages/123456789"
|
|
197
|
-
confluence_title: "Technical Architecture"
|
|
198
|
-
space: "ENG"
|
|
199
|
-
parent_page_id: "987654321"
|
|
200
|
-
last_synced: "2025-12-11T10:30:00Z"
|
|
201
|
-
version: 5
|
|
202
|
-
remote_updated: "2025-12-11T09:15:00Z"
|
|
203
|
-
|
|
204
|
-
mode: "structured" # structured | flexible
|
|
205
|
-
|
|
206
|
-
source:
|
|
207
|
-
# For structured mode
|
|
208
|
-
jira_ticket: "PROJ-120"
|
|
209
|
-
doc_type: "technical-architecture"
|
|
210
|
-
generated_from: "docs/jira/rezolve/PROJ/user-authentication/_docs/technical-architecture.md"
|
|
211
|
-
bmad_docs_referenced:
|
|
212
|
-
- "docs/jira/rezolve/PROJ/PROJ-120-user-auth/_docs/technical-architecture.md"
|
|
213
|
-
jira_initiative_key: "PROJ-100"
|
|
214
|
-
|
|
215
|
-
# For flexible mode
|
|
216
|
-
# origin: "manual"
|
|
217
|
-
# linked_jira: "PROJ-123"
|
|
218
|
-
---
|
|
219
|
-
|
|
220
|
-
# Page Title
|
|
221
|
-
|
|
222
|
-
Page content in markdown, converted to Confluence storage format during sync.
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### Frontmatter Field Reference
|
|
226
|
-
|
|
227
|
-
| Field | Type | Required | Description |
|
|
228
|
-
|-------|------|----------|-------------|
|
|
229
|
-
| `sync.confluence_page_id` | string | After first sync | Confluence page ID |
|
|
230
|
-
| `sync.confluence_url` | string | After first sync | Full page URL |
|
|
231
|
-
| `sync.confluence_title` | string | Yes | Exact title as it appears in Confluence (used for page lookups) |
|
|
232
|
-
| `sync.space` | string | Yes | Confluence space key |
|
|
233
|
-
| `sync.parent_page_id` | string | Yes | Parent page ID in Confluence |
|
|
234
|
-
| `sync.last_synced` | ISO8601 | After first sync | Last sync timestamp |
|
|
235
|
-
| `sync.version` | number | After first sync | Confluence page version for optimistic locking |
|
|
236
|
-
| `sync.remote_updated` | ISO8601 | After first sync | Last remote change timestamp |
|
|
237
|
-
| `mode` | enum | Yes | `structured` or `flexible` |
|
|
238
|
-
| `source.jira_ticket` | string | Structured | Associated Jira ticket key |
|
|
239
|
-
| `source.doc_type` | string | Structured | Page type (overview, technical-architecture, decisions, strategic-context) |
|
|
240
|
-
| `source.generated_from` | string | Structured | Path to the `_docs/` source file |
|
|
241
|
-
| `source.bmad_docs_referenced` | string[] | No | BMAD source docs used to generate the page (traceability) |
|
|
242
|
-
| `source.jira_initiative_key` | string | No | Related Jira initiative key (cross-linking) |
|
|
243
|
-
| `source.origin` | string | Flexible | Origin skill or `manual` |
|
|
244
|
-
| `source.linked_jira` | string | Flexible | Optionally linked Jira ticket |
|
|
245
|
-
|
|
246
|
-
> **Note on field naming:** The source rzlv-flow repo uses flat root-level fields (e.g. `confluence_space_key: "ENG"`). This toolset uses nested fields under `sync.*` for consistency with the Jira file schema. Both conventions represent the same data; skills should follow the nested format documented here.
|
|
247
|
-
|
|
248
|
-
### Post-Sync Frontmatter Example
|
|
249
|
-
|
|
250
|
-
**Before first sync (draft state):**
|
|
251
|
-
```yaml
|
|
252
|
-
---
|
|
253
|
-
sync:
|
|
254
|
-
confluence_title: "Technical Architecture"
|
|
255
|
-
space: "ENG"
|
|
256
|
-
parent_page_id: "987654321"
|
|
257
|
-
mode: "structured"
|
|
258
|
-
source:
|
|
259
|
-
jira_ticket: "PROJ-120"
|
|
260
|
-
doc_type: "technical-architecture"
|
|
261
|
-
generated_from: "docs/jira/rezolve/PROJ/PROJ-120-user-auth/_docs/technical-architecture.md"
|
|
262
|
-
---
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
**After first sync (populated by sync operation):**
|
|
266
|
-
```yaml
|
|
267
|
-
---
|
|
268
|
-
sync:
|
|
269
|
-
confluence_page_id: "123456789"
|
|
270
|
-
confluence_url: "https://company.atlassian.net/wiki/spaces/ENG/pages/123456789"
|
|
271
|
-
confluence_title: "Technical Architecture"
|
|
272
|
-
space: "ENG"
|
|
273
|
-
parent_page_id: "987654321"
|
|
274
|
-
last_synced: "2025-12-11T10:30:00Z"
|
|
275
|
-
version: 1
|
|
276
|
-
remote_updated: "2025-12-11T10:30:00Z"
|
|
277
|
-
mode: "structured"
|
|
278
|
-
source:
|
|
279
|
-
jira_ticket: "PROJ-120"
|
|
280
|
-
doc_type: "technical-architecture"
|
|
281
|
-
generated_from: "docs/jira/rezolve/PROJ/PROJ-120-user-auth/_docs/technical-architecture.md"
|
|
282
|
-
---
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
See `sync-state-format.md` for the full frontmatter schema and worked examples.
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# Confluence Page Templates
|
|
2
|
-
|
|
3
|
-
Starter scaffolds for Confluence pages created by the `atlassian-orchestrator` skill (structured mode). Each template contains standard section headings and placeholder tokens.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
- Templates provide consistent section headings across generated pages.
|
|
8
|
-
- Replace `{tokens}` with actual content during page creation.
|
|
9
|
-
- Skills can load these templates instead of generating page structure from scratch.
|
|
10
|
-
- Users can customize templates to match their team's conventions.
|
|
11
|
-
|
|
12
|
-
## Templates
|
|
13
|
-
|
|
14
|
-
| Template | File | Description |
|
|
15
|
-
|----------|------|-------------|
|
|
16
|
-
| Initiative Overview | `initiative-overview.md` | Top-level initiative page: goals, epic breakdown, navigation |
|
|
17
|
-
| Strategic Context | `strategic-context.md` | Business goals, product vision, strategic decisions |
|
|
18
|
-
| Technical Architecture | `technical-architecture.md` | System design, tech decisions, implementation patterns |
|
|
19
|
-
| Decisions | `decisions.md` | Consolidated decision log with rationale |
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sync:
|
|
3
|
-
confluence_page_id: ""
|
|
4
|
-
confluence_url: ""
|
|
5
|
-
confluence_title: "Decision Log — {Initiative/Epic Name}"
|
|
6
|
-
space: "{SPACE}"
|
|
7
|
-
parent_page_id: ""
|
|
8
|
-
last_synced: ""
|
|
9
|
-
version: 1
|
|
10
|
-
remote_updated: ""
|
|
11
|
-
mode: "structured"
|
|
12
|
-
source:
|
|
13
|
-
jira_ticket: "{EPIC-KEY}"
|
|
14
|
-
doc_type: "decisions"
|
|
15
|
-
generated_from: ""
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
# Decision Log — {Initiative/Epic Name}
|
|
19
|
-
|
|
20
|
-
## Active Decisions
|
|
21
|
-
|
|
22
|
-
| ID | Decision | Date | Rationale | Confidence | Impact |
|
|
23
|
-
|----|----------|------|-----------|------------|--------|
|
|
24
|
-
| {id} | {decision} | {date} | {rationale} | {High/Medium/Low} | {impact area} |
|
|
25
|
-
|
|
26
|
-
## Pending Decisions
|
|
27
|
-
|
|
28
|
-
| ID | Question | Context | Options | Owner | Deadline |
|
|
29
|
-
|----|----------|---------|---------|-------|----------|
|
|
30
|
-
| {id} | {question} | {context} | {options} | {owner} | {deadline} |
|
|
31
|
-
|
|
32
|
-
## Superseded Decisions
|
|
33
|
-
|
|
34
|
-
| ID | Original Decision | Superseded By | Date | Reason |
|
|
35
|
-
|----|-------------------|---------------|------|--------|
|
|
36
|
-
| {id} | {original} | {new decision} | {date} | {reason} |
|
package/toolsets/toolsets/rzlv-flow/resources/confluence-page-templates/initiative-overview.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sync:
|
|
3
|
-
confluence_page_id: ""
|
|
4
|
-
confluence_url: ""
|
|
5
|
-
confluence_title: "{Initiative Name}"
|
|
6
|
-
space: "{SPACE}"
|
|
7
|
-
parent_page_id: ""
|
|
8
|
-
last_synced: ""
|
|
9
|
-
version: 1
|
|
10
|
-
remote_updated: ""
|
|
11
|
-
mode: "structured"
|
|
12
|
-
source:
|
|
13
|
-
jira_initiative_key: "{INITIATIVE-KEY}"
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# {Initiative Name}
|
|
17
|
-
|
|
18
|
-
## Overview
|
|
19
|
-
|
|
20
|
-
{Brief summary of the initiative — 2-3 sentences covering purpose and strategic goals.}
|
|
21
|
-
|
|
22
|
-
## Epic Breakdown
|
|
23
|
-
|
|
24
|
-
| Epic | Description | Status | Stories | Confluence |
|
|
25
|
-
|------|-------------|--------|---------|------------|
|
|
26
|
-
| {EPIC-KEY} | {Epic summary} | {status} | {count} | [link]({confluence_url}) |
|
|
27
|
-
|
|
28
|
-
## Quick Navigation
|
|
29
|
-
|
|
30
|
-
- [{Epic Name} — Overview]({epic-overview-url})
|
|
31
|
-
- [{Epic Name} — Technical Architecture]({epic-tech-arch-url})
|
|
32
|
-
- [{Epic Name} — Decisions]({epic-decisions-url})
|
|
33
|
-
|
|
34
|
-
## Timeline & Dependencies
|
|
35
|
-
|
|
36
|
-
{Key dates, milestones, and cross-team dependencies.}
|
|
37
|
-
|
|
38
|
-
## Success Criteria
|
|
39
|
-
|
|
40
|
-
{Measurable outcomes that define initiative success.}
|