Branch: refs/heads/sonarcloud-routine-prompt Home: https://github.com/xwiki/xwiki-dev-llm Commit: 759081684f869f8328460057ba8db2cdb4c3a697 https://github.com/xwiki/xwiki-dev-llm/commit/759081684f869f8328460057ba8db2... Author: Vincent Massol <[email protected]> Date: 2026-09-17 (Thu, 17 Sep 2026) Changed paths: M README.md M xwiki/instructions/xwiki-org.md A xwiki/okf/architecture/platform-modules.md M xwiki/okf/index.md M xwiki/skills/xwiki-build/SKILL.md A xwiki/skills/xwiki-fix-sonarqube-issue/routine-prompt.md Log Message: ----------- [Misc] Record the SonarCloud routine's prompt and environment * Add skills/xwiki-fix-sonarqube-issue/routine-prompt.md, the record of the scheduled SonarCloud routine: the prompt verbatim, the variables it is given, the repos it has checked out, the setup script it runs, and the memory repo it reads and writes. The routine lives in a config box in the web UI that nobody else can read, review or restore, so a change to it was invisible and a lost routine unrebuildable; recorded here, a change to it is a pull request. Mirrors what xwiki-ci-check already carries * Record how the routine's pull requests are actually opened, that being the thing most easily got wrong by reasoning from a token's permissions: the Claude GitHub App installed on the org pushes the branch into the upstream repo itself, no fork and no personal access token are involved, and the bot identity is carried by the commit author. GH_TOKEN is the bot's, which the memory repo's own history shows * Point the prompt at the memory repo's new home: it was transferred on 2026-09-17 from vmassol/claude-routine-memory to xwikiorg-llm-bot/sonarcloud-routine-memory, so that the routine's memory belongs to the routine's identity rather than to a person. Both questions the move raised are answered and recorded: GH_TOKEN still pushes, more strongly than before since the bot now owns the repository outright, and the sonarqube/ prefix stays — flattening it would rewrite the paths inside learnings.md's own Rule index and every cross-reference under rules/, which is content churn in the one place whose whole value is that it accumulates. GitHub answers the old path with a redirect, so nothing was broken by the move; the reference is updated anyway, a redirect keeping code running while teaching every later reader the wrong owner * Move the XWiki knowledge out of the prompt and into the plugin, where every session gets it and where it is reviewed when it goes stale: add okf/architecture/platform-modules.md (the tools/core/distribution split, the modules worth knowing by name, the OSGi manifest each JAR carries and what xwiki.extension.features advertises) and a pnpm/Nx section to the xwiki-build skill, that being a build procedure rather than declarative knowledge. Two of the prompt's claims were in the OKF already and are simply dropped: never grow oldcore, and the event-listener model, both in component-system.md and the latter in more detail than the prompt had it * Rewrite the prompt around what is left: the three repositories named once at the top rather than one of them in the first sentence and two in a later bullet, the memory protocol as one block rather than a sentence and two overlapping bullets, dropped-issues.md named rather than "somewhere in the memory files", and "assign it to me" as "assign it to xwikiorg-llm-bot" — a routine has no "me" to resolve the pronoun against, and the work is the bot's, so the bot carries it rather than landing in a person's assigned list nightly. Record how to check an assignee while there: GitHub takes assignees only from the users a repository accepts and drops the rest without an error, so a mistyped name is a PR that is never assigned with nothing anywhere saying so — repos/{owner}/{repo}/assignees/{user} answers 204 or 404, and xwikiorg-llm-bot answers 204 on all three * Drop SONARQUBE_PROJECT_KEY from the routine's environment: it names one SonarCloud project and the routine sweeps three, so any value was wrong for two of them. Nothing depended on it, the MCP server declaring it optional and resolving the project per workspace; it stays in .mcp.json for the developer case of one checkout, one project Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> To unsubscribe from these emails, change your notification settings at https://github.com/xwiki/xwiki-dev-llm/settings/notifications