Establish maintainer intent before changing code
Treat repository history as part of the task specification. A technically correct patch is not a
useful contribution when it duplicates active work, conflicts with an explicit roadmap, targets the
wrong branch, or ignores the repository's established solution shape.
This is a read-only preflight. It does not authorize a comment, issue, branch, commit, push, or pull
request. Preserve the worktree and unrelated user work: never switch branches, reset, clean, stash,
or overwrite files while researching.
Establish the exact source
- Locate and read the complete repository guidance that applies before acting:
CONTRIBUTING.md
and linked contributor docs, applicable pull-request templates, repository instruction files,
security, governance, developer, testing, and release guidance, and any AI-assisted contribution
or disclosure policy. Check the root, .github/, docs/, and affected subtrees for scoped
guidance; read the selected files completely. If a document is absent or inaccessible, report
that fact instead of inventing a rule.
- Record the repository, immutable revision, source issue or pull request, author, current state,
target branch, head branch, and the user's intended delivery target. Distinguish a dependency
bot branch from the default branch and from a human feature branch.
- For a pull request, read the complete conversation: title, body, commits, force-pushes, issue
comments, reviews, inline review comments, check failures, linked issues, and linked pull
requests. Do not infer the current decision from the title or final diff alone.
- Use only read access already available to the host. Do not expose credentials. Do not fetch or
mutate refs merely to obtain history; ask before a read operation that would change local Git
state. If relevant history is inaccessible, record that limitation and do not guess.
Use optional dependency-upgrade knowledge
If the user supplies or names CROSS_REPO_KNOWLEDGE.md, use it only for a dependency or version
upgrade. For unrelated maintenance, report it as out of scope and ignore it. Do not discover or load
the file unless the user explicitly names or supplies it. Match the exact coordinate, old and new
versions, bot type and head, failure signature, build system, runtime floor, and contribution
situation. Revalidate the source bot pull request, companion pull request, immutable revisions,
maintainer feedback, and current outcome. Treat Accepted records as precedent,
Maintainer-directed records as decision constraints, Candidate records only as diagnostic
hypotheses, and Unadopted records as warnings rather than solutions. Only independently verified
sources enter the evidence ranking below. Use matched records to choose the delivery channel and one
final decision, and report their identifiers plus any rejected or superseded approach.
Search for the repository's answer
- Search open and closed issues and pull requests in the same repository for the dependency
coordinate, old and new versions, failing symbol or error, affected module, and proposed
solution. Check for the user's own open work as well as other contributors' work.
- Read the nearest accepted, rejected, reverted, and superseded examples. Prefer examples for the
same dependency or subsystem; otherwise use the closest contribution type. Read their review
discussion, not only the merged bytes.
- Inspect local
git log, git blame, and the introducing commit for the failing contract. Follow
the producer of an invalid value before adding a caller workaround. Preserve the incumbent
library or architecture unless repository evidence supports replacing it.
- Identify contribution mechanics: direct default-branch pull request versus a patch onto an
existing bot branch, required issue or Jira key, title format, generated files, sign-off, DCO,
CLA, test and coverage expectations, and disclosure requirements. Never claim or accept a legal
agreement for the user.
- Detect branch churn. Repeated bot supersession or force-pushes lower the value of speculative
work and require rechecking the exact head immediately before any authorized publication.
Separate evidence from inference
Rank evidence in this order:
- explicit maintainer direction in the current source conversation;
- an active or merged same-problem change and its review;
- repeated accepted or rejected repository precedent;
- contribution documentation and repository configuration;
- code-history inference; and
- general ecosystem convention.
Label inference as inference. Never convert silence, a stale bot pull request, or a passing build
into a claim about maintainer preference.
Stop when decisive higher-ranked evidence determines a terminal decision. After an explicit
current-thread maintainer direction, perform only the exact duplicate check and contribution-channel
check needed to report the next action; do not enumerate unrelated repository history. When no such
direction exists, inspect only the nearest relevant examples needed to establish a consistent
pattern, and state residual uncertainty instead of continuing an open-ended search.
Choose exactly one decision
PROCEED: repository evidence supports the change, no exact or near duplicate owns the outcome,
no explicit wait or roadmap conflict exists, the delivery target is known, and required proof is
feasible.
JOIN_EXISTING: an active change already owns the same outcome. Contribute there only when the
user authorizes that interaction; do not open a competing pull request.
COMMENT: one maintainer decision is required before code would be useful. Draft the smallest
precise question, but do not post it without user authorization.
WAIT: a maintainer or source conversation explicitly depends on an upstream fix, coordinated
release, branch movement, or other known event. State the event that would make the task ready.
NO_ACTION: the work is obsolete, superseded, rejected by current policy, already solved, a
duplicate, or not a real repository problem.
Any unresolved blocker prevents PROCEED. Do not write code first and use this decision afterward
to justify it.
Hand off only a supported change
For PROCEED, name the repository-established delivery target before editing: the current change,
an existing bot branch, or a direct pull request to the repository's normal base. Describe the
smallest accepted solution shape, proof expected by prior reviews, and contribution mechanics.
Then use the applicable JAIPilot implementation and review skills.
After PROCEED, use jaipilot-fast-execution when safe batching or bounded native parallelism can
reduce wall time without changing the required proof. Default substantial Java commands to
jaipilot-remote-java when the laptop has no concrete advantage; follow its upload consent boundary.
Report
Announce a completed decision only as **JAIPilot · Maintainer intent** — <decision>; <proof>. in progress or as the final outcome lead.
Then render this exact flat section; do not nest bullets:
JAIPilot impact
- Maintainer intent:
- Evidence:
Apply impact-reporting.md, then report evidence, conflicts, rules, decision confidence/target/action, limitations, and any publication.
1---2name: jaipilot-maintainer-intent3description: Research repository history and maintainer intent before implementing or publishing a Java maintenance change. Use for dependency-bot failures, unfamiliar upstream contributions, competing fixes, or deciding whether to proceed, join existing work, comment, wait, or take no action.4---56# Establish maintainer intent before changing code78Treat repository history as part of the task specification. A technically correct patch is not a9useful contribution when it duplicates active work, conflicts with an explicit roadmap, targets the10wrong branch, or ignores the repository's established solution shape.1112This is a read-only preflight. It does not authorize a comment, issue, branch, commit, push, or pull13request. Preserve the worktree and unrelated user work: never switch branches, reset, clean, stash,14or overwrite files while researching.1516## Establish the exact source17181. Locate and read the complete repository guidance that applies before acting: `CONTRIBUTING.md`19 and linked contributor docs, applicable pull-request templates, repository instruction files,20 security, governance, developer, testing, and release guidance, and any AI-assisted contribution21 or disclosure policy. Check the root, `.github/`, `docs/`, and affected subtrees for scoped22 guidance; read the selected files completely. If a document is absent or inaccessible, report23 that fact instead of inventing a rule.242. Record the repository, immutable revision, source issue or pull request, author, current state,25 target branch, head branch, and the user's intended delivery target. Distinguish a dependency26 bot branch from the default branch and from a human feature branch.273. For a pull request, read the complete conversation: title, body, commits, force-pushes, issue28 comments, reviews, inline review comments, check failures, linked issues, and linked pull29 requests. Do not infer the current decision from the title or final diff alone.304. Use only read access already available to the host. Do not expose credentials. Do not fetch or31 mutate refs merely to obtain history; ask before a read operation that would change local Git32 state. If relevant history is inaccessible, record that limitation and do not guess.3334## Use optional dependency-upgrade knowledge3536If the user supplies or names `CROSS_REPO_KNOWLEDGE.md`, use it only for a dependency or version37upgrade. For unrelated maintenance, report it as out of scope and ignore it. Do not discover or load38the file unless the user explicitly names or supplies it. Match the exact coordinate, old and new39versions, bot type and head, failure signature, build system, runtime floor, and contribution40situation. Revalidate the source bot pull request, companion pull request, immutable revisions,41maintainer feedback, and current outcome. Treat `Accepted` records as precedent,42`Maintainer-directed` records as decision constraints, `Candidate` records only as diagnostic43hypotheses, and `Unadopted` records as warnings rather than solutions. Only independently verified44sources enter the evidence ranking below. Use matched records to choose the delivery channel and one45final decision, and report their identifiers plus any rejected or superseded approach.4647## Search for the repository's answer48491. Search open and closed issues and pull requests in the same repository for the dependency50 coordinate, old and new versions, failing symbol or error, affected module, and proposed51 solution. Check for the user's own open work as well as other contributors' work.522. Read the nearest accepted, rejected, reverted, and superseded examples. Prefer examples for the53 same dependency or subsystem; otherwise use the closest contribution type. Read their review54 discussion, not only the merged bytes.553. Inspect local `git log`, `git blame`, and the introducing commit for the failing contract. Follow56 the producer of an invalid value before adding a caller workaround. Preserve the incumbent57 library or architecture unless repository evidence supports replacing it.584. Identify contribution mechanics: direct default-branch pull request versus a patch onto an59 existing bot branch, required issue or Jira key, title format, generated files, sign-off, DCO,60 CLA, test and coverage expectations, and disclosure requirements. Never claim or accept a legal61 agreement for the user.625. Detect branch churn. Repeated bot supersession or force-pushes lower the value of speculative63 work and require rechecking the exact head immediately before any authorized publication.6465## Separate evidence from inference6667Rank evidence in this order:68691. explicit maintainer direction in the current source conversation;702. an active or merged same-problem change and its review;713. repeated accepted or rejected repository precedent;724. contribution documentation and repository configuration;735. code-history inference; and746. general ecosystem convention.7576Label inference as inference. Never convert silence, a stale bot pull request, or a passing build77into a claim about maintainer preference.7879Stop when decisive higher-ranked evidence determines a terminal decision. After an explicit80current-thread maintainer direction, perform only the exact duplicate check and contribution-channel81check needed to report the next action; do not enumerate unrelated repository history. When no such82direction exists, inspect only the nearest relevant examples needed to establish a consistent83pattern, and state residual uncertainty instead of continuing an open-ended search.8485## Choose exactly one decision8687- `PROCEED`: repository evidence supports the change, no exact or near duplicate owns the outcome,88 no explicit wait or roadmap conflict exists, the delivery target is known, and required proof is89 feasible.90- `JOIN_EXISTING`: an active change already owns the same outcome. Contribute there only when the91 user authorizes that interaction; do not open a competing pull request.92- `COMMENT`: one maintainer decision is required before code would be useful. Draft the smallest93 precise question, but do not post it without user authorization.94- `WAIT`: a maintainer or source conversation explicitly depends on an upstream fix, coordinated95 release, branch movement, or other known event. State the event that would make the task ready.96- `NO_ACTION`: the work is obsolete, superseded, rejected by current policy, already solved, a97 duplicate, or not a real repository problem.9899Any unresolved blocker prevents `PROCEED`. Do not write code first and use this decision afterward100to justify it.101102## Hand off only a supported change103104For `PROCEED`, name the repository-established delivery target before editing: the current change,105an existing bot branch, or a direct pull request to the repository's normal base. Describe the106smallest accepted solution shape, proof expected by prior reviews, and contribution mechanics.107Then use the applicable JAIPilot implementation and review skills.108109After `PROCEED`, use `jaipilot-fast-execution` when safe batching or bounded native parallelism can110reduce wall time without changing the required proof. Default substantial Java commands to111`jaipilot-remote-java` when the laptop has no concrete advantage; follow its upload consent boundary.112113## Report114115Announce a completed decision only as `**JAIPilot · Maintainer intent** — <decision>; <proof>.` in progress or as the final outcome lead.116Then render this exact flat section; do not nest bullets:117**JAIPilot impact**118- **Maintainer intent:** <decision>119- **Evidence:** <strongest proof>120Apply [impact-reporting.md](references/impact-reporting.md), then report evidence, conflicts, rules, decision confidence/target/action, limitations, and any publication.