Skip to content

chore(agents): consolidate AI tooling to AGENTS.md + .agents/ and record ADRs - #5696

Merged
schultzp2020 merged 9 commits into
mainfrom
chore/ai-agent-setup
Oct 22, 2026
Merged

schultzp2020 merged 9 commits into
mainfrom
chore/ai-agent-setup

Conversation

@schultzp2020

Copy link
Copy Markdown
Contributor

Summary

Consolidates every AI-harness surface in this repo onto one standard (AGENTS.md + .agents/ + CONTEXT.md + docs/agents/) and records the architectural decisions behind the repo's current shape as ADRs.

 root
 ├── .claude/            # removed
 ├── .cursor/            # removed
 ├── .opencode/          # removed
 ├── .rulesync/          # removed (source of generated dirs above)
 ├── rulesync.jsonc      # removed
 ├── .pr_agent.toml      # removed
-│
+├── AGENTS.md           # pointers: tracker, triage labels, domain docs, knowledge
+├── CONTEXT.md          # high-level orientation + knowledge index
+├── REVIEW.md           # what failure looks like here, for AI reviewers
+├── .agents/skills/     # 11 skills (7 moved verbatim, 4 converted commands)
+└── docs/agents/
+    ├── issue-tracker.md, triage-labels.md, domain.md   # config
+    ├── knowledge/      # 6 topical docs (from former .rulesync/rules/)
+    └── adr/            # 0001–0004

Which issue(s) does this PR fix

None — agentic repo hygiene. ADR rationale confirmed against RHIDP-1687, RHIDP-10847, RHIDP-13226.

Evidence

  • Before: five competing config surfaces (.claude/, .cursor/, .opencode/, .rulesync/, .pr_agent.toml) plus a rulesync generation pipeline (scripts, devDependency, lint-staged rules, CI sync check).
  • After: one standard. Skills carry Agent Skills open-standard frontmatter; repo knowledge is split topically under docs/agents/knowledge/; ADRs document the dynamic-plugins delivery model, Prow-based E2E, yarn-patch upstream strategy, and OCI catalog-index distribution — all verified still in force on main, with git evidence and Jira-confirmed rationale.

Testing

Config, docs, and skill files only — no runtime code changed. yarn install and yarn lint-staged pass after the rulesync devDependency removal; package.json parses.

Merge Danger

Door: two-way

Blast radius: developer tooling

Anyone relying on .claude/, .cursor/, or .opencode/ output locally will need to point their harness at AGENTS.md / .agents/skills/ instead.

How to revert

git revert -m 1 <merge-commit> — no data or generated artifacts depend on the new layout.

PR acceptance criteria

Please make sure that the following steps are complete:

  • GitHub Actions are completed and successful
  • Unit Tests are updated and passing
  • E2E Tests are updated and passing
  • Documentation is updated if necessary (requirement for new features)
  • Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

Review order suggestion: AGENTS.md (the pointers) → CONTEXT.md + docs/agents/ (the layout) → REVIEW.md (reviewer contract) → docs/adr/ (records only, no behavior). The four converted command-skills (fix-e2e, pr-triage, pr-review-prioritizer, trigger-nightly-job) are verbatim moves from .rulesync/commands/ with frontmatter rewritten — diff against 78ea60d8d to verify no content drift.

…standard

- Remove rulesync and its generated outputs (.claude/, .cursor/, .opencode/,
  opencode.jsonc, .cursorignore, .rulesyncignore, rulesync.jsonc)
- Remove Codium PR-Agent config (.pr_agent.toml)
- Move skills to .agents/skills/ (Agent Skills open standard); convert
  former rulesync commands (fix-e2e, pr-triage, pr-review-prioritizer,
  trigger-nightly-job) to skills
- Consolidate rules knowledge into CONTEXT.md
- Drop rulesync scripts, devDependency, lint-staged rules, and CI sync check
- CONTEXT.md, e2e-tests/README.md, patch-backstage and
  e2e-submit-and-review skills: point at .agents/ + CONTEXT.md
- codecov.yml, .dockerignore, .gitignore, e2e-tests/.gitignore:
  drop stale ignore entries
- e2e-tests semantic selectors: repoint playwright-locators doc ref
- eol-inventory: drop rulesync dependency row
- AGENTS.md: add rule forbidding vendored harness dotfile directories
…/knowledge/

- Split the six consolidated knowledge docs into topical files under
  docs/agents/knowledge/
- CONTEXT.md becomes a high-level orientation + knowledge index
- Rule: detailed knowledge gets its own file/dir, never dumped into
  CONTEXT.md
- AGENTS.md: drop duplicated label list, rephrase no-dotfiles rule as
  positive entry-points rule (negation → elephant effect)
- CONTEXT.md: drop negation and conventions duplicating AGENTS.md
- Skills/knowledge: strip stale rulesync frontmatter (targets/root/globs),
  repoint 'rule' references at docs/agents/knowledge/ paths
- e2e-fix-workflow.md: drop workflow overview duplicated in fix-e2e skill;
  keep mapping tables as the single source of truth
- e2e-testing.md: title matches content (was 'Repository Context')
- Remove .vscode/extensions.json and opencode.json ignore entry
…gins-root

- REVIEW.md: review guide per Anthropic code-review practice — failure
  modes, evidence rules, nit cap, skip paths, convergence rules
- PR template: add Summary/Evidence/Testing/Merge Danger/How to revert
  (pr skill + Anthropic recommendations) alongside existing criteria
- Restore dynamic-plugins-root/.gitkeep (accidentally deleted in
  9c2e236); CONTEXT.md points at the right dynamic plugins path
- 0001: dynamic plugins as the plugin delivery model (PR #522/#599)
- 0002: E2E on real ephemeral clusters via OpenShift CI/Prow, rationale
  confirmed from RHIDP-1687 (re-trigger + artifact storage)
- 0003: yarn patches for downstream fixes on released upstream packages
- 0004: OCI catalog index (ref://) plugin distribution, drivers confirmed
  from RHIDP-10847 and RHIDP-13226

REVIEW.md: flag plugin-version PRs that bypass the catalog index
@openshift-ci

openshift-ci Bot commented Oct 21, 2026

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@codecov

codecov Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.00%. Comparing base (0255811) to head (7bd882c).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5696      +/-   ##
==========================================
- Coverage   75.70%   69.00%   -6.70%     
==========================================
  Files          65       58       -7     
  Lines         708      555     -153     
  Branches      100       83      -17     
==========================================
- Hits          536      383     -153     
  Misses        171      171              
  Partials        1        1              
Flag Coverage Δ
rhdh 69.00% <ø> (-6.70%) ⬇️
Components Coverage Δ
Backend plugins ∅ <ø> (∅)
Backend app 78.94% <ø> (ø)
Frontend app 61.03% <ø> (ø)

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0255811...7bd882c. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Repo-root-relative links broke when the knowledge docs moved from
.rulesync/rules/ (unscanned) into docs/ (markdown-link-check scope):
prefix with ../../../ from the new location. The dead
catalog-entities/extensions/README.md reference is de-linked; that
tree no longer exists.
@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

The container image build workflow finished with status: cancelled.

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

@schultzp2020
schultzp2020 marked this pull request as ready for review October 21, 2026 23:23
@openshift-ci

openshift-ci Bot commented Oct 22, 2026

Copy link
Copy Markdown

@schultzp2020: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-ocp-helm 7bd882c link true /test e2e-ocp-helm

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@schultzp2020

Copy link
Copy Markdown
Contributor Author

The e2e-ocp-helm failure is an infra flake — the Crunchy Postgres operator never reached Succeeded on the claimed cluster and timed out before any tests ran, unrelated to this docs/config-only change. Merging the PR as is.

@schultzp2020
schultzp2020 merged commit a895cf1 into main Oct 22, 2026
31 of 36 checks passed
@schultzp2020
schultzp2020 deleted the chore/ai-agent-setup branch October 22, 2026 14:23
Comment thread .gitignore
# Private Keys
*.pem

# Local AI Assistant rules

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think deleting all of those gitignores will cause issues for people using local configs.
I personally use OpenCode and .opencode/package-lock.json has to remain gitignored, or it will lead to accidental commits of this file.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tool-specific configs like this are best handled in a user’s global .gitignore rather than the repository's .gitignore. With so many different editors and AI tools available now, keeping these local prevents our root ignore file from becoming bloated with individual developer configurations.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, agree with you 👍

Comment thread .pr_agent.toml

@zdrapela zdrapela Oct 23, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was used to configure Qodo on this repository. It's no longer the recommended way, but a functional way. It's good to know what you delete before you do so.
I opened https://redhat.atlassian.net/browse/RHIDP-18214 to follow up and move the configuration to the Qodo portal so we don't lose the config.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you and my apologies for missing this. Can you add something in the AGENTS.md file about it's purpose when you update the config?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No problem. Since the file is already deleted, I think I'll move the config off the file into Qodo Portal: https://app.redhat.st.qodo.ai/configurations?provider=github&repo=redhat-developer%2Frhdh&tab=general-review as this is the recommended way these days.
I can use AGENTS.md if I add something similar in the future, but git history would probably work similarly well in this case.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add this as a topic on the next team forum call.

@openshift-ci openshift-ci Bot removed the lgtm label Oct 23, 2026

@zdrapela zdrapela Oct 23, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code loads nothing from .agents/skills/. It only supports .claude/skills/. I believe there are still people on the team who use Claude Code. There should be a symlink.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm open to symlinking using the npx skills command if people are still using CC. I will add this as a topic too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants