Skip to content

docs: add the fighting AI training bias agent skills post - #476

Merged
allxsmith merged 2 commits into
mainfrom
docs/379-fighting-ai-training-bias
Aug 5, 2026
Merged

allxsmith merged 2 commits into
mainfrom
docs/379-fighting-ai-training-bias

Conversation

@allxsmith

@allxsmith allxsmith commented Aug 5, 2026 •

Copy link
Copy Markdown
Owner

Closes #379. Post six of the blog-revival series (#384), the flagship.

What this adds

  • docs/blog/2026-08-05-fighting-ai-training-bias.md, the flagship post on why bestax invests in AI-readable surfaces. The body's working vocabulary is one-shot/few-shot and machine-legible; the word "bias" appears in the title and exactly twice in prose (the pivot paragraph, framed explicitly as the author's word, and the closing couplet). The July monoculture post is linked as prior art rather than re-argued.
  • Ten image assets in docs/static/img/: five hand-authored 1200x630 pixel-art SVG masters (house style, per rasterize-cover.mjs contract) plus their PNG rasters. The hero doubles as image/cover_image; the four section images embed as PNGs for syndication safety.

Deliberate deviations from the issue spec

  • Flat .md instead of folder style: matches all three previously syndicated posts; devto-preprocessor.js writes build/.devto-publish/<basename>, so a folder post would emit a colliding index.md, and /img/-rooted markdown images are the proven URL-rewrite path.
  • canonical_url is slug-based (https://bestax.io/blog/fighting-ai-training-bias), matching the current convention, not the issue's date-path form.
  • publish_to_devto: true and no published: key (the issue said draft): this post syndicates to dev.to and Medium per the author's direction; actual posting stays the manual flow below.
  • "Two Ways to Install" is an H3 under Agent Skills rather than a top-level H2, so the middle reads as an argument instead of an install page.
  • The create-bestax paragraph says it installs "the skill bundle" without enumerating contents, since the bundled-skill set has a known open policy question around bestax-migrate.

Verified

  • pnpm all green; docs build passes with onBrokenLinks: 'throw'; pnpm format:check clean.
  • All five SVGs pass the rasterizer's contract check.
  • build/.devto-publish/2026-08-05-fighting-ai-training-bias.md inspected: images and internal links rewritten to absolute production URLs, cover_image absolute, code fences untouched, publish_to_devto stripped.
  • Rendered page eyeballed in light and dark; the live demo (Tooltip + Badge + Avatar) renders and runs.
  • Every cited capability was verified in-repo (AiReady cards, llms pipeline artifacts, the seven SKILL.md descriptions, both install channels, the catalog's 87 components / 149 lines and its CI guard, the 5.8.0 tarball pointer files, MCP as coming soon only).

Post-merge (manual)

  1. bestax.io publishes on merge via the deploy workflow. If the merge slips past Aug 5, rename the file's date prefix first (slug and canonical are date-independent).
  2. dev.to: run a local docs build, then paste docs/build/.devto-publish/2026-08-05-fighting-ai-training-bias.md into the dev.to editor and publish.
  3. Medium: once live, use Medium's import-a-story on https://bestax.io/blog/fighting-ai-training-bias so the canonical source is recorded; the cover PNG is the feature image.

Summary by CodeRabbit

  • Documentation
    • Added a blog post outlining bestax’s AI-readiness strategy.
    • Describes machine-readable documentation, installable agent skills, generated configuration, component catalogs, package pointers, and a planned MCP server.
    • Includes setup guidance, usage examples, relevant links, and context for keeping coding agents aligned with current APIs and workflows.

Flagship post for the blog-revival series (#379, tracker #384): why the
project invests in machine-legible surfaces, argued through the one-shot
framing. Ships five hand-authored 1200x630 pixel-art SVG covers plus PNG
rasters (hero doubles as og:image and the dev.to/Medium cover), syndication
on via publish_to_devto.
Copilot AI balanced review requested due to automatic review settings August 5, 2026 00:14
@allxsmith
allxsmith requested a review from bestaxbot August 5, 2026 00:15
@coderabbitai

coderabbitai Bot commented Aug 5, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@allxsmith, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 29 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 36b4321a-0e45-4ecc-aa7b-1eccc52838c3

📥 Commits

Reviewing files that changed from the base of the PR and between 3508d7f and fefb496.

📒 Files selected for processing (1)
  • docs/blog/2026-08-05-fighting-ai-training-bias.md

Walkthrough

Added a blog post that describes bestax’s AI-readiness strategy, including machine-readable documentation, seven agent skills, generated configuration, component catalog validation, npm pointer files, and planned MCP support.

Changes

AI-readiness blog

Layer / File(s) Summary
AI-readiness strategy article
docs/blog/2026-08-05-fighting-ai-training-bias.md
Adds the blog post with front matter, installation guidance, skill descriptions, documentation details, component catalog behavior, npm pointer files, MCP roadmap information, examples, and related links.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related issues

Possibly related PRs

Suggested labels: documentation

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The post covers the requested capabilities but conflicts with the required folder style, date-based URL, draft flags, and heading structure. Use the required dated folder structure, date-based canonical URL, draft frontmatter flags, and a top-level “Two Ways to Install” heading.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the documentation change and the subject of the new blog post.
Description check ✅ Passed The description explains the post, assets, deviations, verification results, and post-merge actions, but omits the template headings and checklist.
Out of Scope Changes check ✅ Passed The documented post content and image assets support the linked issue and stated PR objectives; no unrelated changes are evident.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/379-fighting-ai-training-bias

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@allxsmith allxsmith self-assigned this Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Preview Deployment

Preview URL: https://374bd66f.bestax.pages.dev

Copilot AI left a comment

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.

Pull request overview

Adds the flagship blog post explaining bestax’s AI-readable documentation, Agent Skills, component catalog, and planned MCP server.

Changes:

  • Adds the syndicated blog post with verified examples and links.
  • Adds five pixel-art SVG illustrations.
  • Adds corresponding PNG rasters for covers and syndication.

Reviewed changes

Copilot reviewed 1 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
docs/blog/2026-08-05-fighting-ai-training-bias.md Adds the flagship AI-readiness post.
docs/static/img/fighting-ai-training-bias.svg Adds the hero artwork master.
docs/static/img/fighting-ai-training-bias.png Adds the rasterized hero image.
docs/static/img/fighting-ai-training-bias-docs.svg Adds documentation-pipeline artwork.
docs/static/img/fighting-ai-training-bias-docs.png Adds its syndication-safe raster.
docs/static/img/fighting-ai-training-bias-skills.svg Adds Agent Skills artwork.
docs/static/img/fighting-ai-training-bias-skills.png Adds its syndication-safe raster.
docs/static/img/fighting-ai-training-bias-catalog.svg Adds component-catalog artwork.
docs/static/img/fighting-ai-training-bias-catalog.png Adds its syndication-safe raster.
docs/static/img/fighting-ai-training-bias-node-modules.svg Adds package-discovery artwork.
docs/static/img/fighting-ai-training-bias-node-modules.png Adds its syndication-safe raster.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
docs/blog/2026-08-05-fighting-ai-training-bias.md (3)

53-63: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Move installation commands into PackageManagerTabs.

Line [58] uses a plain bash fence, and Line [63] places pnpm create bestax@latest inline. The documentation rules require installation and run commands inside <PackageManagerTabs> with the canonical pnpm fenced block and one command per line. Reformat both installation channels with the repository's existing PackageManagerTabs pattern.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/blog/2026-08-05-fighting-ai-training-bias.md` around lines 53 - 63,
Reformat both installation channels in the blog section using the repository’s
existing PackageManagerTabs pattern. Move the skills CLI command and the
scaffolder command into canonical pnpm fenced blocks inside PackageManagerTabs,
keeping one command per line and preserving the surrounding explanatory text.

Source: Coding guidelines


29-31: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use root-relative links for same-site artifacts.

Lines [29]-[31] use absolute URLs for internal resources. Use /llms.txt, /llms-full.txt, and /docs/api/elements/button.md instead.

Proposed fix
- [llms.txt](https://bestax.io/llms.txt)
- [llms-full.txt](https://bestax.io/llms-full.txt)
- a **Markdown twin of every page**: append `.md` to any docs URL, like [bestax.io/docs/api/elements/button.md](https://bestax.io/docs/api/elements/button.md)
+ [llms.txt](/llms.txt)
+ [llms-full.txt](/llms-full.txt)
+ a **Markdown twin of every page**: append `.md` to any docs URL, like [bestax.io/docs/api/elements/button.md](/docs/api/elements/button.md)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/blog/2026-08-05-fighting-ai-training-bias.md` around lines 29 - 31,
Update the internal resource links in the documentation list to use
root-relative paths: /llms.txt, /llms-full.txt, and
/docs/api/elements/button.md, while preserving their link text and surrounding
descriptions.

Source: Coding guidelines


19-19: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Remove promotional wording from the post.

flagship in Line [19] and most expensive in Line [69] conflict with the blog rule that prohibits salesy hype and superlatives. Use neutral wording such as main article and costly agent failure.

Also applies to: 69-69

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/blog/2026-08-05-fighting-ai-training-bias.md` at line 19, Replace the
promotional term “flagship” in the article introduction with neutral wording
such as “main article,” and update “most expensive” near the referenced later
passage to neutral wording such as “costly agent failure.”

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/blog/2026-08-05-fighting-ai-training-bias.md`:
- Line 73: In the paragraph around “completeness isn't a habit here,” replace
the comma joining the two independent clauses with a sentence boundary, while
preserving the existing wording and meaning.

---

Nitpick comments:
In `@docs/blog/2026-08-05-fighting-ai-training-bias.md`:
- Around line 53-63: Reformat both installation channels in the blog section
using the repository’s existing PackageManagerTabs pattern. Move the skills CLI
command and the scaffolder command into canonical pnpm fenced blocks inside
PackageManagerTabs, keeping one command per line and preserving the surrounding
explanatory text.
- Around line 29-31: Update the internal resource links in the documentation
list to use root-relative paths: /llms.txt, /llms-full.txt, and
/docs/api/elements/button.md, while preserving their link text and surrounding
descriptions.
- Line 19: Replace the promotional term “flagship” in the article introduction
with neutral wording such as “main article,” and update “most expensive” near
the referenced later passage to neutral wording such as “costly agent failure.”
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 851455c3-ffcb-4a1b-9350-3ddeb324e54f

📥 Commits

Reviewing files that changed from the base of the PR and between 77469b8 and 3508d7f.

⛔ Files ignored due to path filters (10)
  • docs/static/img/fighting-ai-training-bias-catalog.png is excluded by !**/*.png
  • docs/static/img/fighting-ai-training-bias-catalog.svg is excluded by !**/*.svg
  • docs/static/img/fighting-ai-training-bias-docs.png is excluded by !**/*.png
  • docs/static/img/fighting-ai-training-bias-docs.svg is excluded by !**/*.svg
  • docs/static/img/fighting-ai-training-bias-node-modules.png is excluded by !**/*.png
  • docs/static/img/fighting-ai-training-bias-node-modules.svg is excluded by !**/*.svg
  • docs/static/img/fighting-ai-training-bias-skills.png is excluded by !**/*.png
  • docs/static/img/fighting-ai-training-bias-skills.svg is excluded by !**/*.svg
  • docs/static/img/fighting-ai-training-bias.png is excluded by !**/*.png
  • docs/static/img/fighting-ai-training-bias.svg is excluded by !**/*.svg
📒 Files selected for processing (1)
  • docs/blog/2026-08-05-fighting-ai-training-bias.md

Comment thread docs/blog/2026-08-05-fighting-ai-training-bias.md Outdated

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Deep review — 0 blocking · 2 advisory

# Severity Area Finding Location
1 🔵 Advisory Robustness Deliberate, author-directed deviations from the issue spec (flat .md not folder-style, slug-based canonical_url, publish_to_devto: true with no published: key instead of a draft) — all documented in the PR body and consistent with the three prior syndicated posts docs/blog/2026-08-05-fighting-ai-training-bias.md:1
2 🔵 Advisory Robustness The in-body hero banner is an SVG markdown image; after rewrite it lands on dev.to as https://bestax.io/img/....svg, and some dev.to/Medium clients render body SVGs inconsistently. Low impact: the actual cover_image is a PNG, the four section images are PNG, and this matches the documented cover convention docs/blog/2026-08-05-fighting-ai-training-bias.md:13

Overall: This is a clean, unusually well-sourced docs-only PR. I chased every cited capability to its source and all of them hold: the 87-component / 149-line catalog and its CI completeness guard, the seven skill descriptions, the two install channels (npx skills add matches skills/README.md verbatim; create-bestax writes .claude/skills/, .claude/launch.json, and a flavor/prefix/icon-aware CLAUDE.md), the 5.8.0 tarball pointer files (PR #345, merged), the llms.txt/.md-twin pipeline, the AiReady cards with MCP marked coming-soon, and the two verbatim quotes ("Feed it everything..." and "Select an archetype...build it in one shot"). The framing-honesty bar from the issue is met: "bias" appears exactly twice in prose, explicitly flagged as the author's word, not the repo's. The riskiest surface for a docs post with onBrokenLinks: 'throw' is link integrity and syndication, and I verified both empirically rather than by eye.

Residual risk:

  • Broken internal links — refuted: pnpm exec turbo run build --filter=@allxsmith/bestax-docs completed exit 0 ([SUCCESS] Generated static files), which means onBrokenLinks: 'throw' validated all 14 internal /docs/ and /blog/ links, including the date-routed July post URL and the slug-routed v5 post URL.
  • Syndication drift — refuted: inspected build/.devto-publish/2026-08-05-fighting-ai-training-bias.md; publish_to_devto is stripped (count 0), cover_image and every markdown image + internal link are rewritten to absolute https://bestax.io/..., and code fences are untouched.
  • Live-demo props that don't exist — refuted: Tooltip.label, Badge.dot/color/overlap (overlap="circle" is in BadgeOverlap), and Avatar.name all exist; the demo mirrors Badge's own JSDoc example. Rasterizer contract also satisfied — all five SVGs declare width="1200" height="630" with a full-bleed background rect; pnpm format:check clean on the post.

🏄 Total glassy conditions on this one, dude — every claim paddled straight back to a real source, the build barreled through clean, and the dev.to rewrite landed the trick. No wipeouts in sight. Ship it and go catch the next set. 🌊

Copilot AI review requested due to automatic review settings August 5, 2026 00:44

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@allxsmith

Copy link
Copy Markdown
Owner Author

On the three nitpicks:

PackageManagerTabs: declining. That rule is a docs-tree convention; this post syndicates, and the dev.to preprocessor rewrites markdown only, so a JSX wrapper would land on dev.to as literal <PackageManagerTabs> text (blog/CLAUDE.md calls out exactly this failure mode for JSX images). npx skills add also isn't a pnpm verb, so the tabs would derive four identical panes. All three previously syndicated posts use plain fences for the same reason.

Root-relative links for llms.txt, llms-full.txt, and the .md twin: declining. Those are generated build artifacts, not Docusaurus routes, so root-relative markdown links to them trip onBrokenLinks: 'throw'; the LLMs guide links them absolutely for the same reason. The dev.to rewriter also only rewrites /docs and /blog prefixes, so a root-relative /llms.txt would reach dev.to as a dead relative link.

Promotional wording: split the difference in fefb496. "Flagship" is gone. "The most expensive agent failure" stays: it compares two failure modes (a loud wrong prop vs. a silent rebuilt component), it isn't a superlative about the product, and "costly" would drop the comparison the section is built on.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Preview Deployment

Preview URL: https://b60e5d02.bestax.pages.dev

@allxsmith
allxsmith merged commit 8784762 into main Aug 5, 2026
27 checks passed
@allxsmith
allxsmith deleted the docs/379-fighting-ai-training-bias branch August 5, 2026 02:20
allxsmith added a commit that referenced this pull request Aug 5, 2026
docs: fold the #476 syndication and skill-sync lessons into the CLAUDE.md files
@bestax-release-bot

Copy link
Copy Markdown

🎉 This PR is included in version 5.8.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

@bestax-release-bot

Copy link
Copy Markdown

🎉 This PR is included in version 4.0.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

@bestax-release-bot

Copy link
Copy Markdown

🎉 This PR is included in version 1.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@bestax-release-bot

Copy link
Copy Markdown

🎉 This PR is included in version 2.0.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Docs] Blog: Fighting AI training bias with agent skills

2 participants