Update AI Team Orchestration with risk-based delivery v2 🤖🤖🤖#2279
Update AI Team Orchestration with risk-based delivery v2 🤖🤖🤖#2279denis-a-evdokimov wants to merge 7 commits into
Conversation
🔒 PR Risk Scan ResultsScanned 16 changed file(s).
|
🔍 Vally Lint Results
Summary
Full linter output |
|
Automated risk-scan triage: the single medium |
There was a problem hiding this comment.
Pull request overview
Updates AI Team Orchestration to a risk-based v2 delivery workflow.
Changes:
- Adds frozen-candidate, evidence-binding, and scoped-reopen processes.
- Introduces canonical delivery and Safe Git references.
- Updates agents, plugin metadata, and generated indexes.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
agents/ai-team-dev.agent.md |
Defines Dev lifecycle and boundaries. |
agents/ai-team-producer.agent.md |
Adds risk-based gate orchestration. |
agents/ai-team-qa.agent.md |
Adds optional candidate-bound QA. |
skills/ai-team-orchestration/SKILL.md |
Updates the skill workflow. |
skills/ai-team-orchestration/references/anti-patterns.md |
Documents delivery anti-patterns. |
skills/ai-team-orchestration/references/brainstorm-format.md |
Clarifies simulated perspectives. |
skills/ai-team-orchestration/references/delivery-workflow.md |
Adds the canonical delivery lifecycle. |
skills/ai-team-orchestration/references/project-brief-template.md |
Adds delivery governance sections. |
skills/ai-team-orchestration/references/safe-git-values.md |
Adds validated Git procedures. |
skills/ai-team-orchestration/references/sprint-plan-template.md |
Adds risk, gate, and evidence fields. |
plugins/ai-team-orchestration/README.md |
Documents v2 usage. |
plugins/ai-team-orchestration/.github/plugin/plugin.json |
Updates metadata to v2.0.0. |
.github/plugin/marketplace.json |
Regenerates marketplace metadata. |
docs/README.agents.md |
Updates generated agent entries. |
docs/README.plugins.md |
Updates the plugin index. |
docs/README.skills.md |
Updates the skill and reference index. |
|
There are some high and medium level review comments from Copilot, do you want to review them before merging |
I think it is fine to merge. |
…hestration-risk-delivery-v2
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 16 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
skills/ai-team-orchestration/references/delivery-workflow.md:123
- The expected-head guard only protects the PR head; it does not protect the target branch revision. If the target branch advances after the candidate checks, GitHub can still create a regular merge against that newer base (when conflict-free), so the resulting merge commit has never been covered by the candidate-bound evidence. Record the base commit in the ledger and invalidate Ready when it moves, or require strict up-to-date/merge-queue checks that rerun against the latest-base merge result before allowing the merge.
Use a regular merge, but make the merge operation itself atomically require the application head to equal the Delivery Ledger Candidate ID. For GitHub, use an expected-head merge such as `--match-head-commit <Candidate ID>` or the merge API's `sha` field. A protected merge queue is acceptable only when it revalidates candidate-bound checks and rejects or requeues unexpected head movement. A separate comparison immediately before an unguarded merge is insufficient. If the guard fails or the queue observes another head, move to Hold and reconcile the new candidate before any merge. Run selected post-merge checks against the merged artifact.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
skills/ai-team-orchestration/references/safe-git-values.md:75
- The baseline can accept a clean but incomplete worktree. This override suppresses required filters such as Git LFS (leaving pointer files), while
--no-recurse-submodulesleaves gitlinks uninitialized;ls-filesandstatusstill pass, and nocheck-attr/gitlink detection stops the setup as the paragraph promises. Detect these unsupported repository requirements without executing them and hand off for reviewed setup before declaring the clone verified.
The clone deliberately leaves the worktree empty. Its immediate `core.fsmonitor` check is another expected non-match and catches destination-conditional includes that were inactive in the parent directory; do not checkout if it returns a value. Before the checkout command, use a trusted filesystem API—not shell redirection or repository-provided commands—to create `CLONE_DESTINATION/.git/info` if absent and then create its regular `attributes` file with exactly this one LF-terminated line: `* -text -filter -diff -ident -working-tree-encoding`. Verify the directory and file are not links and the file reads back exactly. This highest-precedence private attribute rule prevents repository `.gitattributes` from activating configured clean/smudge/process filters, diff drivers, ident expansion, or working-tree encodings during checkout and later switches.
| 1. **Discover context** — read `PROJECT_BRIEF.md`, the sprint plan, repository instructions, and open issues before editing. If the plan is wrong, record the conflict and return it to the Producer; do not silently rewrite the plan. | ||
| 2. **Preflight safely** — read target/working branches, base/push remote names and expected URLs, and base ref from the typed plan. Treat every value as untrusted. Apply the bundled **Safe Git Values and Commands** grammar, verify effective remote URLs, obtain user confirmation before adding a missing remote or using a new write destination, and run only its fixed one-command-at-a-time Git forms. Stop on unresolved values, dirty worktree, URL rewrite/mismatch, multiple URLs, unsafe characters, invalid refs, unexpected ancestry/upstream, or missing authorization. Never substitute or repair values automatically. | ||
| 3. **Detect capabilities** — confirm required mutation capabilities before promising file, issue, push, or PR actions; otherwise hand off exact payloads (see Capability Protocol). | ||
| 4. **Implement incrementally** — follow existing architecture and conventions, add the appropriate tests, run every Dev check selected in the plan, make focused commits, and update `docs/sprint-N/progress.md` after each phase. |
| 5. **Prepare durable context** — before freezing the candidate, update and commit `progress.md` and `done.md` as recovery and implementation summaries only. Do not duplicate gate selection, candidate identity, live gate status, or the live packet into those files. | ||
| 6. **Perform planned Dev checks** — after all candidate files are committed, run the selected unit, integration, build, lint, security, or self-review checks against that clean committed candidate. When self-review is selected, use a find-problems framing, fix or disposition findings, commit any fixes, and rerun affected checks until the worktree remains clean. Dev work does not satisfy an independent-review or QA gate when either is selected. | ||
| 7. **Freeze and hand off the PR** — after Dev checks pass, re-verify the approved push URL and current branch, then capture the full tested local commit ID before pushing. Immediately push that branch with the fixed full refspec; the branch freezes at push. Create or update the PR against the recorded target branch and confirm the observed application PR head equals that captured ID and the authoritative target head is its ancestor before posting the Candidate Packet with both IDs. On mismatch, post no packet and report Hold to Producer; never attach earlier checks to the moved head or non-ancestor base. If PR mutation or target resolution is unavailable, remain frozen and hand off the captured ID plus exact PR creation and draft packet payload so the authorized actor can confirm both bindings before posting it. Do not push while handoff waits, gates run, or after they pass. | ||
| 8. **Fix and re-freeze only when reopened** — act only on a Producer-authored Branch Reopen Packet whose prior Candidate ID equals current application head. Reject direct fix requests from QA/reviewers, stale packets, unsafe values, or scope mismatch. For a defect, change only permitted scope. For cause `target base advanced`, regular-merge only the authorized latest base and never rebase; that refresh does not consume the defect reopen budget. Run required Dev checks, capture the replacement commit ID before push, push and freeze, confirm the observed application PR head equals that ID and current target is its ancestor, then post the replacement Candidate Packet and return ownership to Producer. A mismatch moves delivery to Hold. |
| - Sign-off: ✅ PASS or ❌ BLOCKED | ||
| 5. Report results to the Producer | ||
| 1. Confirm that QA is selected and read the full frozen Candidate ID from the Producer Delivery Ledger. If independent review is ordered before QA, confirm its current candidate-bound verdict. | ||
| 2. Check out that candidate or open an immutable artifact mapped to it and record the environment. |
Pull Request Checklist
npm startand verified the generated marketplace/docs outputs are up to date.mainbranch for this pull request.Description
Updates the existing AI Team Orchestration plugin to the canonical v2 risk-based delivery workflow:
ai-team-dev,ai-team-producer, andai-team-qaIDs while intentionally omittingtoolsandmodelThe managed content was exported one way from the merged canonical repository using its verified non-mutating patch-preparation flow.
Type of Contribution
Validation
0108a72a27fac358b3b3e65442f3beceecd35d3b30472ecf0fe34cc561df958c08501ecc5ca80ea4f149776ce1e561b03c69b6ca223f6f6d4c8fe256npm run validate: PASSnpm test: PASS, 99/99npm run skill:validate: PASSnpm run plugin:validate: PASSnpm start: PASSgit diff --check: PASSAdditional Notes
This supersedes closed PR #2275 with a fresh branch based directly on current
upstream/main. The plugin version remains2.0.0because v2 was not published by the closed PR. Independent review, QA, and smoke checks are intentionally risk-selected rather than universally mandatory; high-risk changes still require applicable security evidence or explicit maintainer risk acceptance.By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.