Files
gmgn-skills/skills
chenjunfengandClaude Sonnet 5 35a0d812ee fix(gmgn-narrative): declare the web-fetch interface and fix rule/workflow contradiction
Review caught a real internal contradiction: step 4 requires opening a
linked source (a post's URL, a project's site) to verify a claim, but hard
rule 6 said the skill may only read from the two declared interfaces —
neither of which is a general web fetch. Declares a third interface
(web content fetch) with explicit controls: http/https only, private/
loopback/link-local address ranges rejected (closes the SSRF vector a
token's own attacker-controlled link.website field would otherwise open),
a timeout, a response-size cap, and re-validation on redirect. Rule 6 now
scopes "no browser automation" against open-ended browsing rather than
against fetching one already-known URL, which is what it was actually
contradicting.

Also, per the same review:
- New hard rule 7: a hard ~30-tool-call ceiling per card, so an
  adversarially ambiguous token can't turn one card into unbounded tool
  use — write the card with what's verified so far and say the cap was
  hit, same "neutral over fabricated" principle applied to cost/time.
- New hard rule 8: a product-facing note that a hedged single-sourced
  negative claim about a named/identifiable party still carries
  reputational and legal exposure, even when the hedge itself is correct.
- interfaces.md's turn-budget row and "what this skill must never do"
  section updated to match (three interfaces, not two; the 30-call cap
  is this skill's own stop condition, not one for the runtime to
  second-guess with a lower limit of its own).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 17:38:49 +08:00
..