Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a9e692a
merge AQA & TestGen versions from other PR
sveto May 22, 2026
2d093ae
rename api-qa- to just qa-
sveto May 22, 2026
5090492
cutting out skills; no severe issues left
sveto May 23, 2026
10594c9
fully fix qa-flow issues
sveto May 25, 2026
61624ae
fix all issues in aqa workflos
sveto May 25, 2026
ebaa91e
minor fixes to aqa-flow and testgen-flow orchestration files
sveto May 25, 2026
88dca65
review new 6 skills; small fixes
sveto May 25, 2026
fc352ac
new skills: patch the most obvious fail scenarios
sveto May 25, 2026
56e0f21
fix wordings in QA and AQA workflows once again
sveto May 25, 2026
0a1f5db
QA,AQA,TestGen and new skills: run through plugin creator, test, fix …
sveto May 27, 2026
cbcdd13
copy additional skills for the workflows from cto
sveto May 27, 2026
ce374a3
bugfix after testing on AQA toy project
sveto May 28, 2026
94a5965
add missing skills from cto; bugfix to QA and AQA after manual testing
sveto May 29, 2026
335f984
add missing skills from cto; bugfix to TestGen after multi-agent testing
sveto May 29, 2026
3d60a9a
small bugfix to testgen after testing
sveto Jun 1, 2026
a88f593
AQA & plugin fixes after rebase
sveto Jun 1, 2026
f0b736e
add reusability instructions for 4 skills
sveto Jun 1, 2026
9222b17
superficial bugfix according to github triage review
sveto Jun 1, 2026
7f223d1
fix severe issues in qa/aqa/tg/skills as per github validation
sveto Jun 2, 2026
42866ac
fix severe issues in qa/aqa/tg/skills as per github validation, round 2
sveto Jun 2, 2026
0365615
fix severe issues in qa/aqa/tg/skills as per github validation, round 3
sveto Jun 2, 2026
21530bc
fix severe issues in qa/aqa/tg/skills as per github validation, round 4
sveto Jun 2, 2026
a8db5e0
fix severe issues in qa/aqa/tg/skills as per github validation, round 5
sveto Jun 2, 2026
5c7dc6b
fix severe issues in qa/aqa/tg/skills as per github validation, round 6
sveto Jun 2, 2026
3bc2ecc
fix issues in qa/aqa/tg/skills as per github validation, round 7
sveto Jun 2, 2026
c86a6d8
fix issues in qa/aqa/tg/skills as per github validation, round 8
sveto Jun 2, 2026
7c0ce7a
fix issues in qa/aqa/tg/skills as per github validation, round 9
sveto Jun 2, 2026
a02b9f7
v2 > v3 in test_plugin_generator; increase (till a better decision) a…
sveto Jun 2, 2026
637a9e4
fix r2~r3 hook conflict
sveto Jun 3, 2026
14b2f2a
Merge 'main' into 'cutout_skills_from_flows': take main's r2 version…
sveto Jun 3, 2026
d78739d
qa/aqa/tg in v2 & v3: new bugfix round after enabling pre-commit hook…
sveto Jun 3, 2026
4e40874
qa/aqa/tg in v2 & v3: github bugfix round 2
sveto Jun 3, 2026
7d55ca6
qa/aqa/tg in v2 & v3: github bugfix round 3
sveto Jun 3, 2026
cd9fc65
trying to get github report not truncated
sveto Jun 3, 2026
096fbbd
qa/aqa/tg in v2 & v3: github bugfix round 4
sveto Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
59 changes: 40 additions & 19 deletions .github/workflows/validate-prompts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ jobs:
TMP_DIR: .tmp
ALL_RESULTS_FILE: .tmp/all-results.json
PR_COMMENT_FILE: .tmp/pr-comment.md
PR_DETAILS_FILE: .tmp/pr-details.md
DIFF_FILE: .tmp/instructions.diff
MODEL: opus

Expand Down Expand Up @@ -172,31 +173,45 @@ jobs:
fi
done

echo -e "\n---\n" >> $PR_COMMENT_FILE
# PR comment intentionally stops at the summary table — GitHub PR comments are capped at 65,536 chars
# and per-file detail blocks easily blow past that on multi-file PRs. Full per-file findings go to the
# workflow's $GITHUB_STEP_SUMMARY (no size limit) via $PR_DETAILS_FILE; the PR comment links to it.
RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
cat >> $PR_COMMENT_FILE <<EOF

---

:clipboard: **Full per-file findings (Problem / Reason / Solution + Gates Comparison) → [Workflow run Summary]($RUN_URL)** (PR comments are capped at 65,536 chars; details live on the Actions run).
EOF

# Per-file detail blocks: write to $PR_DETAILS_FILE (consumed by the Summary step → $GITHUB_STEP_SUMMARY).
cat > $PR_DETAILS_FILE <<EOF
## :clipboard: Per-File Findings

EOF

# Process each file with detailed issues
jq -c '.[]' $ALL_RESULTS_FILE | while read -r result; do
FILE=$(echo "$result" | jq -r '.file')

# Show file name first
echo -e "### :page_facing_up: \`$FILE\`\n" >> $PR_COMMENT_FILE
echo -e "### :page_facing_up: \`$FILE\`\n" >> $PR_DETAILS_FILE

if echo "$result" | jq -e '.error' > /dev/null 2>&1; then
echo "**Error:** $(echo "$result" | jq -r '.error')" >> $PR_COMMENT_FILE
echo -e "\n---\n" >> $PR_COMMENT_FILE
echo "**Error:** $(echo "$result" | jq -r '.error')" >> $PR_DETAILS_FILE
echo -e "\n---\n" >> $PR_DETAILS_FILE
continue
fi

# Show issues
ISSUES=$(echo "$result" | jq '[.issues | sort_by(.severity) | reverse[]]')

if [ "$(echo "$ISSUES" | jq 'length')" -eq 0 ]; then
echo "#### :white_check_mark: No Issues Found" >> $PR_COMMENT_FILE
echo "" >> $PR_COMMENT_FILE
echo "#### :white_check_mark: No Issues Found" >> $PR_DETAILS_FILE
echo "" >> $PR_DETAILS_FILE
else
echo "#### :warning: Issues Found" >> $PR_COMMENT_FILE
echo "" >> $PR_COMMENT_FILE
cat >> $PR_COMMENT_FILE <<EOF
echo "#### :warning: Issues Found" >> $PR_DETAILS_FILE
echo "" >> $PR_DETAILS_FILE
cat >> $PR_DETAILS_FILE <<EOF
| Severity | Gate | Details |
|----------|------|---------|
EOF
Expand All @@ -209,17 +224,17 @@ jobs:
else ":black_circle: Unknown" end),
.gate, .problem, .reason, .solution] | @tsv' | \
while IFS=$'\t' read -r sev gate prob reason sol; do
echo "| $sev | $gate | **Problem:**<br> $prob<br>**Reason:**<br> $reason<br>**Solution:**<br> $sol |" >> $PR_COMMENT_FILE
echo "| $sev | $gate | **Problem:**<br> $prob<br>**Reason:**<br> $reason<br>**Solution:**<br> $sol |" >> $PR_DETAILS_FILE
done
echo "" >> $PR_COMMENT_FILE
echo "" >> $PR_DETAILS_FILE
fi

# Show gates comparison with scores
echo "$result" | jq -e '.gates' > /dev/null 2>&1 && {
echo "#### :bar_chart: Gates Comparison" >> $PR_COMMENT_FILE
echo "" >> $PR_COMMENT_FILE
echo "| Gate | Score | Comparison |" >> $PR_COMMENT_FILE
echo "|------|-------|------------|" >> $PR_COMMENT_FILE
echo "#### :bar_chart: Gates Comparison" >> $PR_DETAILS_FILE
echo "" >> $PR_DETAILS_FILE
echo "| Gate | Score | Comparison |" >> $PR_DETAILS_FILE
echo "|------|-------|------------|" >> $PR_DETAILS_FILE

echo "$result" | jq -r '.gates | to_entries | map(select(.value.comparison != 3)) | .[] |
[.key,
Expand All @@ -230,13 +245,13 @@ jobs:
elif .value.comparison == 1 then ":x: Much worse"
else ":arrow_right: No change" end)] | @tsv' | \
while IFS=$'\t' read -r gate score change; do
echo "| $gate | $score | $change |" >> $PR_COMMENT_FILE
echo "| $gate | $score | $change |" >> $PR_DETAILS_FILE
done

echo "" >> $PR_COMMENT_FILE
echo "" >> $PR_DETAILS_FILE
}

echo -e "\n---\n" >> $PR_COMMENT_FILE
echo -e "\n---\n" >> $PR_DETAILS_FILE
done

- name: Post PR comment
Expand All @@ -260,4 +275,10 @@ jobs:

- **Files validated:** ${{ steps.changed-files.outputs.count }}
- **Status:** $( [ "${{ steps.validate.outputs.has_high_severity }}" = "true" ] && echo ":x: Failed" || echo ":white_check_mark: Passed" )

EOF

# Append the compact PR comment (summary table) AND the full per-file detail block to the run summary.
# The PR comment posts only the compact part; the full detail lives here without the 65,536-char cap.
[ -f "$PR_COMMENT_FILE" ] && cat "$PR_COMMENT_FILE" >> $GITHUB_STEP_SUMMARY
[ -f "$PR_DETAILS_FILE" ] && cat "$PR_DETAILS_FILE" >> $GITHUB_STEP_SUMMARY
71 changes: 71 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,76 @@
# Changelog

## R3 Migration Guide

**Release:** R3 (2026-06-01)

This guide covers breaking changes between R2 and R3 for prompt and workflow authors, plugin packagers, and anyone who ACQUIRE's Rosetta instructions by name. No compatibility shims are provided; cutover is hard at the R3 release boundary.

---

### 1. `plan-manager` skill renamed to `operation-manager`

- **What changed.** The R2 skill `plan-manager` is removed in R3 and replaced by `operation-manager` at `instructions/r3/core/skills/operation-manager/`. The skill scope is unchanged (plan create / next / update_status / query / show_status / upsert), but the canonical name, command alias (`OPERATION_MANAGER`), and bootstrap references all use the new name. The schema asset was renamed `pm-schema.md` → `om-schema.md`.
- **Who is affected.** Prompt authors, workflow authors, and any rule/skill that ACQUIRE's `plan-manager` by name or references the `PLAN_MANAGER` alias.
- **Required action.** Replace name and alias across authored content:
```text
ACQUIRE plan-manager FROM KB -> ACQUIRE operation-manager FROM KB
PLAN_MANAGER -> OPERATION_MANAGER
plan-manager next <plan_file> -> operation-manager next <plan_file>
plan-manager upsert ... -> operation-manager upsert-with-template ...
pm-schema.md -> om-schema.md
```
Recommended grep before merging:
```bash
grep -rn -e 'plan-manager' -e 'PLAN_MANAGER' -e 'pm-schema.md' .
```
- **Rollout / cutover note.** Hard cutover at R3. No alias, no deprecation window, no shim. R2 consumers stay on the `plan-manager` skill until they upgrade. Any residual `plan-manager` reference in an R3 authored prompt is a bug and will fail to resolve through Rosetta MCP `query_instructions`.

---

### 2. `bootstrap-hitl-questioning.md` removed

- **What changed.** The bootstrap rule `bootstrap-hitl-questioning.md` (present in R2 at `instructions/r2/core/rules/`) is removed in R3. HITL enforcement is now consolidated into the on-demand `hitl` skill at `instructions/r3/core/skills/hitl/`, and the entry point is `bootstrap-guardrails.md`, which references the skill. This is part of the bootstrap size reduction shipped in R3.
- **Who is affected.** Authors who linked to `bootstrap-hitl-questioning.md` by path or filename, plugin packagers who copied the rule file into IDE bundles, and any rule/workflow that ACQUIRE's HITL questioning content by the old filename.
- **Required action.** Replace direct references to the deleted rule with a skill invocation:
```text
ACQUIRE bootstrap-hitl-questioning FROM KB
-> USE SKILL `hitl`

instructions/.../rules/bootstrap-hitl-questioning.md
-> instructions/r3/core/skills/hitl/SKILL.md (load via the skill, not by path)
```
The guardrails entry point already wires this in — authors typically only need to remove the explicit reference and trust `bootstrap-guardrails.md` to route to the skill on demand.
- **Known coverage gaps** to be aware of when migrating: six items from the R2 `bootstrap-hitl-questioning.md` were not fully ported into the R3 `hitl` skill — see [docs/TODO.md](docs/TODO.md) "hitl skill — R2 coverage gaps" for the enumerated list. None of these block R3 release, but downstream consumers relying on R2-specific HITL phrasing (graduated MEDIUM/HIGH/CRITICAL escalation, cognitive-load limits, mismatch root-cause memory update) should review before upgrading.
- **Rollout / cutover note.** Hard removal in R3. No file at the old path. Plugin bundles that still ship the R2 file should drop it on their next sync; the `hitl` skill folder is included in every R3 plugin under `skills/hitl/`.

---

### 3. New skill families added in R3

- **What changed.** R3 introduces three new skill families under `instructions/r3/core/skills/`. Plugin packagers must include these folders in downstream bundles or the corresponding workflows will fail to resolve at runtime.
- **QA workflow family.** Skills supporting the QA, AQA, and TestGen workflows: `qa-*`, `aqa-*`, `automation-*`, `api-test-spec-authoring`, `testrail-*`, `mcp-jira-data-collection`, `mcp-confluence-data-collection`, `mcp-testrail-data-collection`, `swagger-contracts-analysis`, `confluence-source-harvesting`, `aqa-requirements-elicitation`, `gap-and-contradiction-analysis`.
- **Utility skills.** General process and authoring skills new in R3: `sequential-workflow-execution`, `requirements-synthesis`, `user-approved-code-changes`, `repository-implementation-standards`, `load-context-instructions`, `load-workflow`.
- **GitNexus tools.** Code-graph integration skills: `gitnexus-setup`, `gitnexus-cli`, `gitnexus-tools`.
- **Who is affected.** Plugin packagers (`core-claude`, `core-cursor`, `core-cursor-standalone`, `core-copilot`, `core-copilot-standalone`, `core-codex`) and any downstream distribution that copies skill folders selectively rather than mirroring `instructions/r3/core/skills/` wholesale.
- **Required action.** Re-run the plugin sync so the new skill folders are picked up. After sync, verify each plugin's `skills/` directory contains the three new families above. For selective packagers, add the family prefixes (`qa-*`, `aqa-*`, `automation-*`, `mcp-*-data-collection`, `testrail-*`, `gitnexus-*`) to the include list.
- **Rollout / cutover note.** Additive only — no removals in this item. Workflows that depend on these skills (QA, AQA, TestGen, GitNexus-enabled flows) will not function in a plugin that lacks the folders. Mirror the full `skills/` tree if in doubt.

---

### How to apply

1. **Re-run plugin sync.** Regenerate every plugin bundle so the renamed `operation-manager` skill, the removed `bootstrap-hitl-questioning.md`, and the new skill families are picked up consistently. Note that `plugin_generator.py` `DEFAULT_RELEASE` is now `r3` (was `r2`); existing CI / pre-commit invocations no longer need to pass `--release r3` explicitly.
2. **Grep for stale names.** From the repo root:
```bash
grep -rn -e 'plan-manager' -e 'PLAN_MANAGER' -e 'bootstrap-hitl-questioning' -e 'pm-schema.md' .
```
Any hit in R3 authored content or in a plugin bundle is a defect — fix before release.
3. **ACQUIRE re-check.** For each authored prompt or workflow that previously ran `ACQUIRE plan-manager` or `ACQUIRE bootstrap-hitl-questioning`, re-resolve against the R3 KB and confirm the new name (`operation-manager`) or the new path (`hitl` skill) returns a document.
4. **Smoke test workflows.** Run one workflow per affected family (operation-manager driven plan, a HITL gated step, one QA workflow, one GitNexus enabled session) to confirm end-to-end resolution before announcing the cutover.

---

## R2

### Overview
Expand Down
Loading
Loading