You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>
Copy file name to clipboardExpand all lines: .agents/skills/nemoclaw-maintainer-verify-stale/SKILL.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,7 +106,7 @@ Run this check for every candidate that survived the label-based filters above;
106
106
**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:
107
107
108
108
-**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 "[@<maint>'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.
110
110
111
111
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.
112
112
@@ -154,11 +154,7 @@ if [ -n "$UNANSWERED_MAINT" ] && [ "$UNANSWERED_MAINT" != "null" ]; then
154
154
fi
155
155
```
156
156
157
-
When the unanswered-question variant fires (`UNANSWERED_MAINT_LOGIN` set), Step 10's comment template prepends a lead paragraph:
158
-
159
-
> [@<maint>'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.
162
158
163
159
**Candidate rule:** keep the issue if **either**:
164
160
@@ -1279,9 +1275,13 @@ The skill cannot independently confirm a closed-as-fixed verdict — only the re
1279
1275
1280
1276
**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:
1281
1277
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
+
```
1283
1283
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.
1285
1285
1286
1286
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):
0 commit comments