Skip to content

Commit 3abffd7

Browse files
prekshivyasclaude
andcommitted
fix(verify-stale): unbreak markdown link checker on placeholder examples
Three skill paragraphs used `[label](placeholder)` syntax to describe the shape of a markdown link the templater would render. The link checker parses bracket-paren syntax everywhere except fenced code blocks (single backticks aren't enough), so `(<url>)` and `(<UNANSWERED_MAINT_URL>)` were flagged as broken local links. Restructure: fenced code blocks for the literal template line in Step 10, plain prose in Step 3 referencing the Step 10 template instead of duplicating the link shape inline. Verified locally with `bash test/e2e/e2e-cloud-experimental/check-docs.sh --only-links --local-only` — passes cleanly. Signed-off-by: Prekshi Vyas <prekshiv@nvidia.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent dc5d714 commit 3abffd7

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

  • .agents/skills/nemoclaw-maintainer-verify-stale

.agents/skills/nemoclaw-maintainer-verify-stale/SKILL.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Run this check for every candidate that survived the label-based filters above;
106106
**Unanswered-maintainer-question handling.** Find the most recent maintainer (`MEMBER`, `OWNER`, `COLLABORATOR`) comment that the reporter has not replied to since. The age of that comment determines whether the skill skips or proceeds, with a different comment shape if it proceeds:
107107

108108
- **Within 7 days:** **skip the issue** — the discussion is active, the skill running on top would conflict with the maintainer's framing or confuse the reporter. Surfaced during pre-flight on #2757; running verify-stale on top of a fresh "let me clarify what you observed" question from @cjagwani would have stomped on that conversation.
109-
- **Older than 7 days:** **proceed with verification, but use the unanswered-question comment variant.** After 7 days the maintainer's question has either been forgotten or the reporter has dropped the ball; an independent skill verdict becomes the *unsticking voice* rather than a clueless interruption. The comment leads with "[@&lt;maint&gt;'s question from N days ago](url) is still unanswered" and @-mentions BOTH the maintainer and the reporter, not just the reporter.
109+
- **Older than 7 days:** **proceed with verification, but use the unanswered-question comment variant.** After 7 days the maintainer's question has either been forgotten or the reporter has dropped the ball; an independent skill verdict becomes the *unsticking voice* rather than a clueless interruption. The comment leads with a markdown link to the maintainer's unanswered comment (shape shown in the Step 10 template below) and @-mentions BOTH the maintainer and the reporter, not just the reporter.
110110

111111
Reuse the `$SEVEN_DAYS_AGO` cutoff from the marker-TTL check above for portability — no cross-platform date math beyond what's already in scope.
112112

@@ -154,11 +154,7 @@ if [ -n "$UNANSWERED_MAINT" ] && [ "$UNANSWERED_MAINT" != "null" ]; then
154154
fi
155155
```
156156

157-
When the unanswered-question variant fires (`UNANSWERED_MAINT_LOGIN` set), Step 10's comment template prepends a lead paragraph:
158-
159-
> [@&lt;maint&gt;'s comment](url) from YYYY-MM-DD is still unanswered. Independent verification below.
160-
161-
…and the closing @-mention block names BOTH the maintainer (acknowledging their question) and the reporter (asking for confirmation per the standard pattern), instead of just the reporter.
157+
When the unanswered-question variant fires (`UNANSWERED_MAINT_LOGIN` set), Step 10's comment template prepends a lead paragraph (exact shape lives with the templates in Step 10), and the closing @-mention block names BOTH the maintainer (acknowledging their question) and the reporter (asking for confirmation per the standard pattern), instead of just the reporter.
162158

163159
**Candidate rule:** keep the issue if **either**:
164160

@@ -1279,9 +1275,13 @@ The skill cannot independently confirm a closed-as-fixed verdict — only the re
12791275

12801276
**Mandatory unanswered-question prefix and dual @-mention.** When Step 3 sets `UNANSWERED_MAINT_LOGIN` (a maintainer's question is older than 7 days and the reporter never replied), the verdict comment changes shape in two places:
12811277

1282-
1. **Prepend a lead paragraph** as the very first line of the body, before the `## Stale-issue verification` heading:
1278+
1. **Prepend a lead paragraph** as the very first line of the body, before the `## Stale-issue verification` heading. The lead paragraph is a single line:
1279+
1280+
```text
1281+
[@UNANSWERED_MAINT_LOGIN's comment](UNANSWERED_MAINT_URL) from UNANSWERED_MAINT_DATE is still unanswered. Posting independent verification below to unstick the thread.
1282+
```
12831283

1284-
> [@\<UNANSWERED_MAINT_LOGIN\>'s comment](\<UNANSWERED_MAINT_URL\>) from \<UNANSWERED_MAINT_DATE\> is still unanswered. Posting independent verification below to unstick the thread.
1284+
…with the bracketed variables expanded from the values exported by Step 3.
12851285

12861286
2. **Replace the closing reporter-only @-mention with a dual @-mention** that names BOTH the maintainer (acknowledging the open question) and the reporter (per the standard confirmation pattern):
12871287

0 commit comments

Comments
 (0)