This is an automated email from the ASF dual-hosted git repository.
terrymanu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 688ce6a73c6 Clarify analyze-issue output mode checks (#40168)
688ce6a73c6 is described below
commit 688ce6a73c64cc3518381200e3789f9a769e8f1d
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Oct 13 11:39:14 2026 +0800
Clarify analyze-issue output mode checks (#40168)
---
.codex/harness/agents/cases.toml | 42 ++++++++++++++++++++++
.codex/skills/analyze-issue/SKILL.md | 40 ++++++++++-----------
.../analyze-issue/references/output-contract.md | 28 +++++----------
3 files changed, 70 insertions(+), 40 deletions(-)
diff --git a/.codex/harness/agents/cases.toml b/.codex/harness/agents/cases.toml
index a00208acdcb..7331a946dc4 100644
--- a/.codex/harness/agents/cases.toml
+++ b/.codex/harness/agents/cases.toml
@@ -3493,6 +3493,48 @@ critical = true
policy_binding_profile = "analyze-issue"
policy_assertions = [{source = "analyze-issue", statements = ["Provide a
temporary workaround only when allowed-source evidence verifies its
applicability to the reported version, mode and trigger, its compatibility with
the affected contracts, and its material side effects.", "Explain its
limitations and temporary status without replacing the root-cause conclusion,
Bug classification or required fix.", "Omit unverified or incompatible
workarounds and any workaround with unknown material [...]
+[[cases]]
+id = "issue_reply_code_fence_mode"
+group = "issue-analysis output mode"
+description = "Keeps a default reply with code fences free of detailed-report
requirements while preserving action and two-part bridge checks."
+phase = "read-only output assessment"
+ordinary_loop = false
+profile = "analyze-issue"
+semantic_policy_assertions = true
+prompt = "Assess the final-output checks for three synthetic issue outputs.
CODE_REPLY: the selected mode is Maintainer Reply Only; the output reference
was loaded solely for a multiline code example. The reply addresses the known
author, uses community maintainer language, states the classification in the
first paragraph, gives an official-source reason supported by the internal
evidence ledger, and provides a concrete next action with appropriate labels.
All applicable formatting and d [...]
+decision = "proceed"
+required_actions = []
+allowed_actions = []
+forbidden_actions = ["edit_code", "edit_non_code", "mutate_git",
"mutate_remote", "run_local_checks", "run_pre_handoff_review",
"expand_frozen_boundary", "propose_commit_message"]
+required_reasons = ["read_only_request"]
+required_summary_terms = ["[CODE_REPLY]=complete",
"[MISSING_ACTION]=incomplete", "[TWO_PART_MISSING_BRIDGE]=incomplete"]
+required_summary_prefix = "[CODE_REPLY]=complete; [MISSING_ACTION]=incomplete;
[TWO_PART_MISSING_BRIDGE]=incomplete"
+max_summary_chars = 88
+critical = true
+policy_binding_profile = "analyze-issue"
+policy_assertions = [{source = "analyze-issue", statements = ["Before final
output, verify only the checks applicable to the selected output mode.",
"Reading the output reference for a reusable template or multi-line code fence
handling does not change the selected output mode.", "Maintainer Reply Only
requires neither Reference Analysis sections nor visible evidence IDs.", "The
reply gives a clear next action, including a label/close recommendation or PR
expectation when appropriate.", [...]
+
+[[cases]]
+id = "issue_reference_analysis_only_mode"
+group = "issue-analysis output mode"
+description = "Allows Reference Analysis Only without a reply or bridge and
still rejects missing conclusion fields or unsupported inferences."
+phase = "read-only output assessment"
+ordinary_loop = false
+profile = "analyze-issue"
+semantic_policy_assertions = true
+prompt = "Assess the final-output checks for three synthetic Reference
Analysis Only outputs explicitly requested by the user. COMPLETE_ANALYSIS: a
Question analysis has the required four sections, every selected-shape
conclusion field, correct labels, concrete official citations, evidence IDs for
every conclusion, and observations supporting every inference. It satisfies all
applicable language, formatting and delivery requirements. It has no maintainer
reply, author greeting or two-par [...]
+decision = "proceed"
+required_actions = []
+allowed_actions = []
+forbidden_actions = ["edit_code", "edit_non_code", "mutate_git",
"mutate_remote", "run_local_checks", "run_pre_handoff_review",
"expand_frozen_boundary", "propose_commit_message"]
+required_reasons = ["read_only_request"]
+required_summary_terms = ["[COMPLETE_ANALYSIS]=complete",
"[MISSING_FIELD]=incomplete", "[UNSUPPORTED_INFERENCE]=incomplete"]
+required_summary_prefix = "[COMPLETE_ANALYSIS]=complete;
[MISSING_FIELD]=incomplete; [UNSUPPORTED_INFERENCE]=incomplete"
+max_summary_chars = 92
+critical = true
+policy_binding_profile = "analyze-issue"
+policy_assertions = [{source = "analyze-issue", statements = ["Before final
output, verify only the checks applicable to the selected output mode.",
"Reference Analysis Only requires neither a maintainer reply nor the two-part
bridge sentence.", "If any applicable check fails, mark the analysis and output
as incomplete."]}, {source = "analyze-issue-output", statements = ["Apply these
requirements only to the Reference Analysis portion of the selected output
mode.", "Every conclusion cite [...]
+
[[cases]]
id = "gen_ut_preserves_completion_blockers"
group = "unit-test policy"
diff --git a/.codex/skills/analyze-issue/SKILL.md
b/.codex/skills/analyze-issue/SKILL.md
index 6927c32d297..26966c93f92 100644
--- a/.codex/skills/analyze-issue/SKILL.md
+++ b/.codex/skills/analyze-issue/SKILL.md
@@ -352,15 +352,6 @@ In the maintainer reply portion:
- Do not generalize an exact existing behavior or special case into a wider
database, dialect, topology, module, API, or SPI commitment without direct
acceptance evidence.
- For questions, invite broader community participation when it can help the
issue author or improve documentation.
-Before final output, run this self-check:
-- **Role Check:** The reply reads like a ShardingSphere maintainer answering
in the issue thread.
-- **Audience Check:** The reply addresses the issue author directly when the
author is known.
-- **Decision Check:** The first paragraph states the
supportability/classification decision.
-- **Reason Check:** The explanation is grounded in official docs, repository
code/tests, or issue content.
-- **Traceability Check:** The reply is supported by the internal evidence
ledger;
- explicit two-part output includes the bridge sentence and Reference Analysis.
-- **Action Check:** The reply gives a clear next action, label recommendation,
close recommendation, or PR expectation.
-
## Missing Information Handling
If evidence is insufficient, do not guess. Explicitly list missing details and
request them, for example:
@@ -404,23 +395,32 @@ details in a public issue reply. Direct the reporter to
the responsible disclosu
process in `docs/community/content/security/_index.en.md` and keep the public
reply
limited to that safe next action.
-## Lightweight Lint Recommendation
+## Final Output Check
+
+Before final output, verify only the checks applicable to the selected output
mode.
+Reading the output reference for a reusable template or multi-line code fence
handling does not change the selected output mode.
+Maintainer Reply Only requires neither Reference Analysis sections nor visible
evidence IDs.
+Reference Analysis Only requires neither a maintainer reply nor the two-part
bridge sentence.
-For Maintainer Reply output, verify:
-- The reply addresses the issue author or community directly.
-- The first paragraph contains the decision.
+For modes containing a maintainer reply, verify:
+- The reply reads like a ShardingSphere maintainer answering in the issue
thread.
+- The reply addresses the issue author directly when known, or the community
otherwise.
+- The first paragraph states the supportability/classification decision.
+- The explanation is grounded in official docs, repository code/tests, or
issue content and supported by the internal evidence ledger.
- The maintainer reply does not contain detailed report headings.
-- The reply includes a next action and label/close recommendation when
appropriate.
+- The reply gives a clear next action, including a label/close recommendation
or PR expectation when appropriate.
- For questions, the reply invites community participation when appropriate.
-For explicit Reference Analysis output, also verify:
-- The bridge sentence appears before Reference Analysis in two-part mode.
-- Required detailed sections exist.
-- Required conclusion fields exist.
-- Evidence IDs are present and referenced.
+For modes containing Reference Analysis, verify:
+- The required four- or five-section shape and conclusion fields follow
Reference Analysis Requirements in
[output-contract.md](references/output-contract.md).
+- Evidence IDs are present and referenced as required by that reference.
+- Citations follow Documentation and Code Citation Rules.
- Label format and type-label consistency are valid.
-If lint fails, mark analysis as incomplete.
+In two-part mode, verify that the reply comes first and the exact bridge
sentence defined in the output reference appears before Reference Analysis.
+When the output reference is loaded, verify its applicable formatting and
Codex Chat Delivery requirements.
+A local checker or CI step may enforce the required sections, conclusion
fields, evidence references, and type-label consistency.
+If any applicable check fails, mark the analysis and output as incomplete.
## Prohibited Content
diff --git a/.codex/skills/analyze-issue/references/output-contract.md
b/.codex/skills/analyze-issue/references/output-contract.md
index f08c1d48f51..4ab04589ff3 100644
--- a/.codex/skills/analyze-issue/references/output-contract.md
+++ b/.codex/skills/analyze-issue/references/output-contract.md
@@ -22,6 +22,8 @@ two-part response, a reusable reply template, or multi-line
code whose Markdown
fences require special handling. Complete the main Skill's evidence workflow
before applying these output shapes.
+Labels, severity, topology, commands, class names, method names, SQL, YAML,
and Java snippets retain their original English or code form.
+
## Maintainer Reply Templates
Use these as compact shape guides, not rigid text.
@@ -90,6 +92,8 @@ Please provide these details within <7-14 days>. If there is
no update, we may c
## Reference Analysis Requirements
+Apply these requirements only to the Reference Analysis portion of the
selected output mode.
+
- In two-part mode, put the maintainer reply first, then add this bridge
sentence:
`The reply above is based on the analysis below; the detailed reasoning is
kept here for reference and follow-up contributors.`
- Use the same natural language as the user request unless the user asks for
@@ -104,6 +108,9 @@ Please provide these details within <7-14 days>. If there
is no update, we may c
- Prefer bullets over tables and concise evidence over raw JSON, full logs, or
terminal transcripts. Keep command evidence in inline code or short fenced
blocks.
+- Every conclusion cites at least one `OBS-*` or `INF-*` evidence ID, and
every `INF-*` derives from one or more observations.
+- `Problem Conclusion` includes all fields required by the selected shape.
+- Enhancement and Out of Scope / Won't Fix conclusions include their
conditional project-responsibility and commitment fields.
Use this four-section shape for Question, Misunderstanding / Invalid Usage,
Duplicate, and Out of Scope / Won't Fix:
@@ -196,23 +203,4 @@ Use this five-section shape for Bug and Enhancement:
body begins and ends inside the outer fence.
- If fence safety is uncertain, replace the inner fence with inline code or a
plain bullet.
-
-## Output Self-Check
-
-- The opening reply addresses the author when known and states the decision in
- its first paragraph.
-- A two-part response contains the exact bridge sentence and the required four-
- or five-section Reference Analysis.
-- Every conclusion cites at least one `OBS-*` or `INF-*` evidence ID, and every
- `INF-*` derives from one or more observations.
-- `Problem Conclusion` includes all fields required by the selected shape.
-- Enhancement and Out of Scope / Won't Fix conclusions include their
conditional project-responsibility and commitment fields.
-- Documentation evidence has concrete URLs; code evidence has repository paths
- or class names.
-- Labels, severity, topology, commands, class names, method names, SQL, YAML,
- and Java snippets retain their original English or code form.
-- The inner GitHub-facing body is not itself wrapped in a blockquote, HTML/XML
- container, or transcript.
-- A local checker or CI step may enforce the required sections, conclusion
- fields, evidence references, and type-label consistency. Treat a failed check
- as incomplete output.
+- The inner GitHub-facing body is not itself wrapped in a blockquote, HTML/XML
container, or transcript.