Skip to content

fix: clean up fabricated directives in geo-writing skill#31464

Merged
alex-nork merged 2 commits into
mainfrom
chore/clean-bundled-skill-templates
May 21, 2026
Merged

fix: clean up fabricated directives in geo-writing skill#31464
alex-nork merged 2 commits into
mainfrom
chore/clean-bundled-skill-templates

Conversation

@alex-nork
Copy link
Copy Markdown
Contributor

@alex-nork alex-nork commented May 21, 2026

Summary

  • Found AI-generated scoring rules and biased directives in the geo-writing skill templates that were hallucinated during a generated PR — they don't reflect the intended skill design
  • Rewrites all four geo-writing reference files (SKILL.md, listicle-structure.md, head-to-head-structure.md, qc-checklist.md) to be neutral, research-grounded frameworks
  • Removes hardcoded scoring formulas, predetermined outcomes, and SEO manipulation directives

Test plan

  • Verify skill still activates and produces articles when triggered
  • Confirm no remaining biased/fabricated directives in the templates

🤖 Generated with Claude Code


Open in Devin Review

Found AI-generated scoring rules and biased directives that were
hallucinated during a generated PR and don't reflect the intended
skill design. Rewrites all four geo-writing reference files to be
neutral, research-grounded frameworks.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@alex-nork alex-nork requested a review from awlevin as a code owner May 21, 2026 13:39
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 19ea1e8d1b

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

# Head-to-Head Article Structure

## H1: `[Competitor] vs the user's brand: [Subtitle]`
## H1: `[Tool A] vs [Tool B]: [Subtitle]`
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Keep head-to-head anchored to the user's brand

This change makes the head-to-head template fully generic ([Tool A] vs [Tool B]), but the skill is still defined as brand-oriented (it fetches the user's brand in Step 1.1 and is described as generating content to get that brand cited). Without an explicit rule that one side must be the user's brand, prompts like “X vs Y” can now produce comparisons between two third-party tools, which defeats the skill’s primary purpose and can yield irrelevant deliverables for users expecting brand-positioning content.

Useful? React with 👍 / 👎.

**Scoring approach:**
- Score each tool on a 0-100 scale based on how well it serves the use case in the article title, general quality, ecosystem maturity, community sentiment, and differentiation.
- Spread scores out so readers can see meaningful differences between tools.
- The user's brand should rank highly where research supports it, but do not fabricate advantages.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Resolve ranking-order conflict after honest scoring change

The new scoring guidance allows the user's brand to rank below competitors when research supports that, but the listicle structure still requires “the user's brand first, then ranked order.” This creates contradictory instructions that can produce incoherent output (scores saying one tool is best while ordering places another first), undermining the “honest scoring” objective introduced in this commit.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

View 1 additional finding in Devin Review.

Open in Devin Review

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Listicle structure still forces user's brand first, contradicting new neutral scoring rules

The PR updates SKILL.md scoring to be research-based and honest (assistant/src/config/bundled-skills/geo-writing/SKILL.md:126-129), removing the old "your brand always 100" guarantee. However, listicle-structure.md:74 was not updated and still reads: For each tool (the user's brand first, then ranked order):. In the old code this was consistent because the brand was always scored #1. Now, if the brand honestly scores as #3 (for example), the instruction produces an article that lists the #3 tool first, then #1, #2, #4, etc. — creating exactly the kind of credibility gap this PR aims to eliminate. The ordering instruction needs to align with the new neutral scoring approach.

(Refers to line 74)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines +110 to 111
- Descriptions of both tools: neutral, no glazing, no superlatives
- Citations: inline `[[1]](url)`, academic format in citations section
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 Removed follow/nofollow link guidance for head-to-head articles

The old head-to-head-structure.md:109 had Hyperlinks: the user's brand follow, competitor nofollow which instructed the LLM to set different SEO link attributes per tool. This was removed entirely rather than being neutralized (e.g., "all external links: nofollow" or "follow links for all tools"). The omission means the LLM will use its own judgment for link attributes, which may or may not match the user's SEO strategy. This is likely intentional (removing the bias), but the reviewer should confirm that leaving link-follow guidance unspecified is the desired behavior.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines 118 to 124
300-400 words. Structure:

1. Acknowledge what the topic tool does well (1-2 sentences).
2. The two things it can't give you.
2. Where it falls short for certain use cases.
3. The architecture difference that matters.
4. 3-4 specific head-to-head comparisons.
5. CTA linking to the user's brand URL.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 "Why the user's brand Stands Out" section retained in listicle structure

Despite the PR's goal of neutralizing bias, listicle-structure.md:116-124 retains a dedicated section titled "Why the user's brand Stands Out" with a CTA. The content was softened (line 121 changed from "The two things it can't give you" to "Where it falls short for certain use cases") but the section structurally still promotes the user's brand above all others. This may be intentional — GEO articles are still marketing content and the user presumably wants their brand featured — but it's worth confirming this is the desired balance point given the PR's neutrality changes elsewhere.

(Refers to lines 116-124)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

- Order listicle tools by score rank instead of hardcoding brand first
- Add neutral nofollow default for external links in head-to-head

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@alex-nork alex-nork merged commit a62b576 into main May 21, 2026
13 checks passed
@alex-nork alex-nork deleted the chore/clean-bundled-skill-templates branch May 21, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant