@jterrats/open-orchestra 0.5.0 → 0.5.2
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/CHANGELOG.md +49 -0
- package/README.md +31 -2
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.js +5 -2
- package/dist/command-manifest.js.map +1 -1
- package/dist/commands.d.ts +2 -2
- package/dist/commands.js +8 -3
- package/dist/commands.js.map +1 -1
- package/dist/context-budget.js +14 -0
- package/dist/context-budget.js.map +1 -1
- package/dist/gemini-provider.d.ts +12 -0
- package/dist/gemini-provider.js +132 -0
- package/dist/gemini-provider.js.map +1 -0
- package/dist/lesson-assist.d.ts +19 -0
- package/dist/lesson-assist.js +70 -0
- package/dist/lesson-assist.js.map +1 -0
- package/dist/memory-status.d.ts +22 -0
- package/dist/memory-status.js +139 -0
- package/dist/memory-status.js.map +1 -0
- package/dist/model-providers.d.ts +2 -0
- package/dist/model-providers.js +8 -0
- package/dist/model-providers.js.map +1 -1
- package/dist/ollama-provider.d.ts +12 -0
- package/dist/ollama-provider.js +86 -0
- package/dist/ollama-provider.js.map +1 -0
- package/dist/planning-commands.d.ts +1 -0
- package/dist/planning-commands.js +9 -0
- package/dist/planning-commands.js.map +1 -1
- package/dist/project-detection.js +13 -1
- package/dist/project-detection.js.map +1 -1
- package/dist/prompt-registry-classifier.d.ts +3 -0
- package/dist/prompt-registry-classifier.js +83 -0
- package/dist/prompt-registry-classifier.js.map +1 -0
- package/dist/prompt-registry-update.d.ts +21 -0
- package/dist/prompt-registry-update.js +128 -0
- package/dist/prompt-registry-update.js.map +1 -0
- package/dist/prompt-registry-validation.d.ts +12 -0
- package/dist/prompt-registry-validation.js +104 -0
- package/dist/prompt-registry-validation.js.map +1 -0
- package/dist/prompt-registry.d.ts +1 -0
- package/dist/prompt-registry.js +2 -2
- package/dist/prompt-registry.js.map +1 -1
- package/dist/runtime-execution-adapters.js +16 -0
- package/dist/runtime-execution-adapters.js.map +1 -1
- package/dist/skills-catalog.js +57 -0
- package/dist/skills-catalog.js.map +1 -1
- package/dist/skills-commands.d.ts +2 -0
- package/dist/skills-commands.js +45 -1
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-memory.d.ts +6 -0
- package/dist/skills-memory.js +16 -0
- package/dist/skills-memory.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/types/runtime.d.ts +1 -1
- package/dist/workspace-artifacts.d.ts +6 -0
- package/dist/workspace-artifacts.js +31 -0
- package/dist/workspace-artifacts.js.map +1 -0
- package/dist/workspace-validator.d.ts +4 -1
- package/dist/workspace-validator.js +8 -20
- package/dist/workspace-validator.js.map +1 -1
- package/docs/architecture.md +69 -2
- package/docs/core-command-surface.md +71 -0
- package/docs/end-to-end-demo.md +87 -0
- package/docs/runtime-llm-flow.md +18 -4
- package/docs/skill-loading-strategy.md +1 -0
- package/docs/tracker-adapter-contract.md +66 -0
- package/package.json +10 -5
- package/skills/doc-sync/SKILL.md +40 -0
- package/skills/doc-sync/manifest.json +58 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Reproducible End-to-End Demo
|
|
2
|
+
|
|
3
|
+
This demo uses only local workflow state and the built-in fake provider path. It
|
|
4
|
+
does not require OpenAI, Anthropic, GitHub, or tracker credentials.
|
|
5
|
+
|
|
6
|
+
Run it in a disposable directory:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
mkdir open-orchestra-demo
|
|
10
|
+
cd open-orchestra-demo
|
|
11
|
+
npm install -g @jterrats/open-orchestra
|
|
12
|
+
orchestra init --confirm-unknown
|
|
13
|
+
orchestra health --json
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
In a disposable empty directory, `health` may report a workspace-classification
|
|
17
|
+
warning while still reporting workflow readiness as passed. Real project
|
|
18
|
+
directories should have project signals such as a package manager or source tree.
|
|
19
|
+
|
|
20
|
+
## 1. Create a Governed Task
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
orchestra task add \
|
|
24
|
+
--id DEMO-001 \
|
|
25
|
+
--title "Ship a governed README update" \
|
|
26
|
+
--owner product_owner \
|
|
27
|
+
--paths "README.md"
|
|
28
|
+
|
|
29
|
+
orchestra estimate \
|
|
30
|
+
--task DEMO-001 \
|
|
31
|
+
--sizing s \
|
|
32
|
+
--solo-days 1 \
|
|
33
|
+
--ai-unguided-days 0.5 \
|
|
34
|
+
--confidence medium
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## 2. Satisfy the Architect Sizing Gate
|
|
38
|
+
|
|
39
|
+
The autonomous workflow always requires architect sizing before developer work.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
orchestra decision add \
|
|
43
|
+
--task DEMO-001 \
|
|
44
|
+
--owner architect \
|
|
45
|
+
--title "Story sizing" \
|
|
46
|
+
--decision "s 2 points" \
|
|
47
|
+
--context "Local fake-provider demo" \
|
|
48
|
+
--consequences "Developer phase can start"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 3. Run the Workflow
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
orchestra workflow run --task DEMO-001 --gates none
|
|
55
|
+
orchestra workflow runs --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Expected result: the run creates PM, PO, architect, developer, QA, and release
|
|
59
|
+
phase records in `.agent-workflow/` and completes without provider API keys.
|
|
60
|
+
|
|
61
|
+
## 4. Attach Evidence and Review
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
orchestra evidence add \
|
|
65
|
+
--task DEMO-001 \
|
|
66
|
+
--role developer \
|
|
67
|
+
--type command \
|
|
68
|
+
--summary "Demo workflow completed with fake provider"
|
|
69
|
+
|
|
70
|
+
orchestra review \
|
|
71
|
+
--task DEMO-001 \
|
|
72
|
+
--role qa \
|
|
73
|
+
--result approve \
|
|
74
|
+
--findings "Demo artifacts are present and workflow completed" \
|
|
75
|
+
--recommendation "Use this path for local onboarding"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## 5. Inspect Release Readiness
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
orchestra release candidate --version 0.0.0-demo --dry-run --json
|
|
82
|
+
orchestra benchmark --task DEMO-001
|
|
83
|
+
orchestra summary --json
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The demo is complete when the workflow run is done, evidence and QA review exist,
|
|
87
|
+
and the release candidate dry run reports the remaining gaps explicitly.
|
package/docs/runtime-llm-flow.md
CHANGED
|
@@ -92,15 +92,17 @@ workflow execution only when the workflow config has approved routing.
|
|
|
92
92
|
Model routing controls which provider/model each role uses during autonomous
|
|
93
93
|
workflow phases. The default `none` provider keeps the deterministic workflow
|
|
94
94
|
behavior. Configure a role or default route to `fake` for local structured
|
|
95
|
-
execution tests,
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
execution tests, `openai` for the OpenAI Responses API, `anthropic` for the
|
|
96
|
+
Anthropic Messages API, `gemini` for the Gemini `generateContent` API, or
|
|
97
|
+
`ollama` for a local OpenAI-compatible Ollama endpoint.
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
100
|
orchestra model providers --json
|
|
101
101
|
orchestra model set-role --role qa --provider fake --model fake-model
|
|
102
102
|
OPENAI_API_KEY=... orchestra model set-role --role architect --provider openai --model gpt-5.2
|
|
103
103
|
ANTHROPIC_API_KEY=... orchestra model set-role --role qa --provider anthropic --model claude-sonnet-4-20250514
|
|
104
|
+
GEMINI_API_KEY=... orchestra model set-role --role product_manager --provider gemini --model gemini-2.5-pro
|
|
105
|
+
orchestra model set-role --role developer --provider ollama --model llama3.2
|
|
104
106
|
orchestra model provenance list --json
|
|
105
107
|
orchestra budget check --json
|
|
106
108
|
orchestra workflow run --task STORY-001 --gates phase
|
|
@@ -117,12 +119,23 @@ optionally `ANTHROPIC_BASE_URL` for an HTTPS-compatible endpoint. It uses
|
|
|
117
119
|
Claude Messages API responses are normalized through text content rather than
|
|
118
120
|
OpenAI-style JSON schema response formatting.
|
|
119
121
|
|
|
122
|
+
The Gemini adapter reads `GEMINI_API_KEY` or `GOOGLE_API_KEY` from the
|
|
123
|
+
environment. For local secret files, set `GEMINI_API_KEY_FILE` or
|
|
124
|
+
`GOOGLE_API_KEY_FILE` to an absolute path containing only the key value. The
|
|
125
|
+
adapter also reads optional `GEMINI_BASE_URL`; the base URL must be HTTPS and
|
|
126
|
+
defaults to `https://generativelanguage.googleapis.com`.
|
|
127
|
+
|
|
128
|
+
The Ollama adapter defaults to `http://localhost:11434/v1` and uses the
|
|
129
|
+
OpenAI-compatible `/chat/completions` endpoint. Set `OLLAMA_BASE_URL` for a
|
|
130
|
+
custom local or remote endpoint and `OLLAMA_API_KEY` when the endpoint requires
|
|
131
|
+
one.
|
|
132
|
+
|
|
120
133
|
## Runtime Execution
|
|
121
134
|
|
|
122
135
|
Runtime execution is separate from model provider routing. `ModelProvider`
|
|
123
136
|
adapters call vendor APIs directly and therefore require provider API keys.
|
|
124
137
|
Runtime execution adapters prepare work for an already-authenticated runtime
|
|
125
|
-
such as Claude CLI, Codex CLI, Cursor, VS Code, or Windsurf.
|
|
138
|
+
such as Claude CLI, Codex CLI, OpenCode CLI, Cursor, VS Code, or Windsurf.
|
|
126
139
|
|
|
127
140
|
Use runtime execution when the user wants the active CLI/IDE agent to perform
|
|
128
141
|
the work and does not want Orchestra to call OpenAI, Anthropic, or another
|
|
@@ -131,6 +144,7 @@ vendor API directly:
|
|
|
131
144
|
```bash
|
|
132
145
|
orchestra runtime adapters --json
|
|
133
146
|
orchestra runtime brief --task STORY-001 --runtime claude-cli
|
|
147
|
+
orchestra runtime brief --task STORY-001 --runtime opencode-cli
|
|
134
148
|
orchestra runtime delegate-plan --task STORY-001 --runtime claude-cli --roles architect,developer,qa
|
|
135
149
|
orchestra runtime handoff --task STORY-001 --runtime claude-cli --artifact .agent-workflow/runs/STORY-001-runtime-claude-cli-delegation.md
|
|
136
150
|
```
|
|
@@ -61,6 +61,7 @@ Skill manifests should be able to declare `sourceGroups` so the orchestrator can
|
|
|
61
61
|
- `pr-review`: produce review findings, PR summary, risks, rollout notes, and missing-test gaps.
|
|
62
62
|
- `playwright-evidence`: plan browser automation and attach screenshots, traces, videos, and reports.
|
|
63
63
|
- `backlog-sync`: keep GitHub issues, local stories, and workflow tasks aligned.
|
|
64
|
+
- `doc-sync`: keep architecture docs, changelog, onboarding, runbooks, site copy, and prompt registers aligned with delivered changes.
|
|
64
65
|
- `release-readiness`: validate gates, rollback, observability, support, and customer-impact evidence.
|
|
65
66
|
- `model-evaluation`: run prompt/model/provider-routing evaluations and compare outputs.
|
|
66
67
|
- `source-of-truth`: select authoritative project, vendor, and workflow sources before acting.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Tracker Adapter Contract
|
|
2
|
+
|
|
3
|
+
Open Orchestra currently ships a GitHub-oriented tracker command:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
orchestra github sync --issue <number> --task <id> --comment --json
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The product contract is broader than GitHub CLI. A runtime may use `gh` when it
|
|
10
|
+
is installed and authenticated, or fall back to an MCP-backed tracker skill when
|
|
11
|
+
the user works in GitHub, Jira, Bitbucket, GitLab, Azure DevOps, Linear, or a
|
|
12
|
+
custom issue system.
|
|
13
|
+
|
|
14
|
+
## Resolution Order
|
|
15
|
+
|
|
16
|
+
1. Use the native CLI transport when the workspace explicitly targets it and the
|
|
17
|
+
CLI is installed, authenticated, and authorized for the repository.
|
|
18
|
+
2. Use `--transport mcp-skill` when the native CLI is unavailable or the runtime
|
|
19
|
+
exposes tracker tools through MCP.
|
|
20
|
+
3. If neither transport is available, keep the local task and record a review
|
|
21
|
+
finding that tracker sync is pending instead of inventing remote state.
|
|
22
|
+
|
|
23
|
+
## Common Adapter Shape
|
|
24
|
+
|
|
25
|
+
Every tracker adapter should provide the same normalized fields to Open
|
|
26
|
+
Orchestra:
|
|
27
|
+
|
|
28
|
+
| Field | Meaning |
|
|
29
|
+
| --- | --- |
|
|
30
|
+
| `tracker` | Provider name such as `github`, `jira`, `gitlab`, `bitbucket`, or `custom`. |
|
|
31
|
+
| `remoteId` | Provider issue key or number. |
|
|
32
|
+
| `url` | Canonical issue URL. |
|
|
33
|
+
| `title` | Issue title. |
|
|
34
|
+
| `body` | Issue body or description. |
|
|
35
|
+
| `state` | Provider state normalized to `open`, `in_progress`, `blocked`, or `done` when possible. |
|
|
36
|
+
| `labels` | Provider tags, labels, components, or issue types. |
|
|
37
|
+
| `assignees` | User handles or display names. |
|
|
38
|
+
| `acceptanceCriteria` | Explicit acceptance criteria extracted from the issue. |
|
|
39
|
+
| `updatedAt` | Provider last-updated timestamp. |
|
|
40
|
+
|
|
41
|
+
Writes should support comment, status update, close, and accepted-risk note when
|
|
42
|
+
the provider allows them. Missing write support should be reported as a transport
|
|
43
|
+
capability gap, not treated as successful sync.
|
|
44
|
+
|
|
45
|
+
## MCP Fallback Requirements
|
|
46
|
+
|
|
47
|
+
MCP tracker tools must:
|
|
48
|
+
|
|
49
|
+
- Use HTTPS endpoints and the repository's approved auth flow.
|
|
50
|
+
- Avoid storing raw tokens in workflow artifacts, logs, or prompt registries.
|
|
51
|
+
- Return structured data that can be mapped to the common adapter shape.
|
|
52
|
+
- Make write operations explicit: comment, status transition, close, reopen, and
|
|
53
|
+
accepted-risk note are separate capabilities.
|
|
54
|
+
- Record which transport handled the sync in evidence or event metadata.
|
|
55
|
+
|
|
56
|
+
## GitHub Compatibility
|
|
57
|
+
|
|
58
|
+
The GitHub command remains the first-class implementation:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
orchestra github sync --issue 180 --task OO-176 --owner technical_writer --comment --json
|
|
62
|
+
orchestra github sync --issue 180 --task OO-176 --transport mcp-skill --dry-run --json
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use the MCP form for environments where `gh` is not installed but the active
|
|
66
|
+
runtime has a GitHub MCP server with issue read/write tools.
|
package/package.json
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jterrats/open-orchestra",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"workspaces": [
|
|
6
|
+
"site"
|
|
7
|
+
],
|
|
5
8
|
"bin": {
|
|
6
9
|
"orchestra": "bin/orchestra.js"
|
|
7
10
|
},
|
|
@@ -9,16 +12,18 @@
|
|
|
9
12
|
"build": "tsc && npm run build:web",
|
|
10
13
|
"typecheck": "tsc --noEmit",
|
|
11
14
|
"test": "npm run build && node --test test/**/*.js extensions/**/*.test.cjs",
|
|
12
|
-
"test:e2e": "npm run build && playwright test",
|
|
15
|
+
"test:e2e": "npm run build && npm run site:build && playwright test",
|
|
13
16
|
"test:e2e:init": "node --test e2e/init-onboarding.test.js",
|
|
14
|
-
"lint": "eslint . && prettier --check \"{bin,e2e,scripts,test,src}/**/*.js\" \"extensions/**/*.{cjs,json,md}\" \"src/**/*.ts\" \"*.{js,json}\"",
|
|
15
|
-
"format": "prettier --write \"{bin,e2e,scripts,test,src}/**/*.js\" \"extensions/**/*.{cjs,json,md}\" \"src/**/*.ts\" \"*.{js,json}\"",
|
|
17
|
+
"lint": "eslint . && prettier --check \"{bin,e2e,scripts,test,src}/**/*.js\" \"site/src/**/*.{css,js,jsx}\" \"site/*.{html,js,json}\" \"extensions/**/*.{cjs,json,md}\" \"src/**/*.ts\" \"*.{js,json}\"",
|
|
18
|
+
"format": "prettier --write \"{bin,e2e,scripts,test,src}/**/*.js\" \"site/src/**/*.{css,js,jsx}\" \"site/*.{html,js,json}\" \"extensions/**/*.{cjs,json,md}\" \"src/**/*.ts\" \"*.{js,json}\"",
|
|
16
19
|
"secret-scan": "node scripts/secret-scan.js",
|
|
17
20
|
"validate:workflow": "node scripts/validate-workflow.js",
|
|
18
21
|
"precommit": "npm run lint && npm run typecheck && npm run secret-scan && npm test && npm run validate:workflow",
|
|
19
22
|
"prepack": "npm run build",
|
|
20
23
|
"hooks:install": "git config core.hooksPath .githooks",
|
|
21
|
-
"build:web": "esbuild src/web-console-client.js --bundle --format=esm --platform=browser --target=es2022 --outfile=dist/assets/web-console.js"
|
|
24
|
+
"build:web": "esbuild src/web-console-client.js --bundle --format=esm --platform=browser --target=es2022 --outfile=dist/assets/web-console.js",
|
|
25
|
+
"site:build": "npm --workspace @jterrats/open-orchestra-site run build",
|
|
26
|
+
"site:dev": "npm --workspace @jterrats/open-orchestra-site run dev -- --host 127.0.0.1"
|
|
22
27
|
},
|
|
23
28
|
"engines": {
|
|
24
29
|
"node": ">=22"
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Doc Sync
|
|
2
|
+
|
|
3
|
+
Keep architecture docs, changelog, onboarding, runbooks, site copy, and prompt registers aligned with delivered changes.
|
|
4
|
+
|
|
5
|
+
## When To Load
|
|
6
|
+
|
|
7
|
+
- Trigger: `documentation`
|
|
8
|
+
- Trigger: `docs`
|
|
9
|
+
- Trigger: `changelog`
|
|
10
|
+
- Trigger: `readme`
|
|
11
|
+
- Trigger: `quickstart`
|
|
12
|
+
- Trigger: `runbook`
|
|
13
|
+
- Trigger: `architecture`
|
|
14
|
+
- Trigger: `adr`
|
|
15
|
+
- Trigger: `release notes`
|
|
16
|
+
- Trigger: `public site`
|
|
17
|
+
- Trigger: `prompt registry`
|
|
18
|
+
|
|
19
|
+
## Procedure
|
|
20
|
+
|
|
21
|
+
- Identify changed behavior, architecture, release surface, workflows, commands, and user-facing copy from the task, issue, diff, and evidence.
|
|
22
|
+
- Update the smallest authoritative documentation surfaces for the audience: README for onboarding, CHANGELOG for release history, `docs/` for architecture and runbooks, `.generated-prompts/` for prompt intent, and the public site for product-facing guidance.
|
|
23
|
+
- Keep code, service, and domain generation prompts traceable: update `.generated-prompts/code.md` or `.generated-prompts/services.md` after substantial class, model, service, controller, or module changes.
|
|
24
|
+
- Keep documentation and diagram prompts traceable: update `.generated-prompts/docs.md` or `.generated-prompts/diagrams.md` after substantial docs, architecture, ADR, runbook, changelog, or Mermaid changes.
|
|
25
|
+
- Validate command examples against `orchestra commands manifest --json`, `orchestra --help`, or the repo-local `node bin/orchestra.js` during Open Orchestra development.
|
|
26
|
+
- If README, docs, or site onboarding changes, check the sibling surfaces so quickstart language, command names, and release positioning do not drift.
|
|
27
|
+
- Record unresolved documentation gaps as review findings or follow-up tasks instead of burying them in prose.
|
|
28
|
+
|
|
29
|
+
## Surface Checklist
|
|
30
|
+
|
|
31
|
+
- Architecture changes: `docs/architecture.md`, ADRs, Mermaid diagrams, public site architecture section, `.generated-prompts/diagrams.md`.
|
|
32
|
+
- Release changes: `CHANGELOG.md`, release notes, rollback and observability notes, `.generated-prompts/docs.md`.
|
|
33
|
+
- CLI or workflow changes: `README.md`, command reference docs, public site quickstart, `.generated-prompts/code.md`.
|
|
34
|
+
- Product or support changes: public site, user guides, known issues, support FAQs, `.generated-prompts/docs.md`.
|
|
35
|
+
|
|
36
|
+
## Evidence
|
|
37
|
+
|
|
38
|
+
- `file`
|
|
39
|
+
- `report`
|
|
40
|
+
- `command`
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "doc-sync",
|
|
3
|
+
"name": "Doc Sync",
|
|
4
|
+
"summary": "Keep architecture docs, changelog, onboarding, runbooks, site copy, and prompt registers aligned with delivered changes.",
|
|
5
|
+
"triggers": [
|
|
6
|
+
"doc-sync",
|
|
7
|
+
"documentation",
|
|
8
|
+
"docs",
|
|
9
|
+
"changelog",
|
|
10
|
+
"readme",
|
|
11
|
+
"quickstart",
|
|
12
|
+
"runbook",
|
|
13
|
+
"architecture",
|
|
14
|
+
"adr",
|
|
15
|
+
"release notes",
|
|
16
|
+
"public site",
|
|
17
|
+
"prompt registry"
|
|
18
|
+
],
|
|
19
|
+
"roles": [
|
|
20
|
+
"technical_writer",
|
|
21
|
+
"release_manager",
|
|
22
|
+
"architect",
|
|
23
|
+
"product_manager",
|
|
24
|
+
"product_owner",
|
|
25
|
+
"platform_engineer",
|
|
26
|
+
"support_customer_ops",
|
|
27
|
+
"parent"
|
|
28
|
+
],
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"documentation-sync",
|
|
31
|
+
"release-notes",
|
|
32
|
+
"architecture-communication",
|
|
33
|
+
"onboarding",
|
|
34
|
+
"support-readiness"
|
|
35
|
+
],
|
|
36
|
+
"riskAreas": [
|
|
37
|
+
"documentation",
|
|
38
|
+
"architecture",
|
|
39
|
+
"release",
|
|
40
|
+
"governance"
|
|
41
|
+
],
|
|
42
|
+
"sourceGroups": [
|
|
43
|
+
"project-instructions",
|
|
44
|
+
"product-backlog",
|
|
45
|
+
"architecture",
|
|
46
|
+
"codebase",
|
|
47
|
+
"devops-runtime",
|
|
48
|
+
"quality-security",
|
|
49
|
+
"agent-memory"
|
|
50
|
+
],
|
|
51
|
+
"evidence": [
|
|
52
|
+
"file",
|
|
53
|
+
"report",
|
|
54
|
+
"command"
|
|
55
|
+
],
|
|
56
|
+
"loadBudget": "normal",
|
|
57
|
+
"entry": "skills/doc-sync/SKILL.md"
|
|
58
|
+
}
|