Skip to content

The post said an agent cannot get an account. It can now #360

The post said an agent cannot get an account. It can now

The post said an agent cannot get an account. It can now #360

Workflow file for this run

name: Deploy Jekyll site to Pages
# Builds the site on GitHub Actions runners (fast, no 10-minute legacy build
# timeout) using the official jekyll-build-pages action, which ships the same
# github-pages gem the site already relied on -- so no repo Gemfile is needed.
on:
push:
branches: [main]
workflow_dispatch:
# Daily rebuild so future-dated (scheduled) posts publish on their date even
# when nothing is pushed that day. 12:10 UTC — just after the noon-UTC
# timestamps the scheduled posts carry.
schedule:
- cron: "10 12 * * *"
# Allow the deploy job to publish to Pages.
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment; don't cancel an in-progress production run.
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
# Emit a clean markdown twin beside every built page and point the page's
# <link rel="alternate" type="text/markdown"> at it. The Cloudflare Worker
# already negotiates Accept: text/markdown by following that link -- until
# now it followed it to raw.githubusercontent.com and served raw Jekyll
# source, frontmatter and all. This serves agents a real document instead,
# on our own domain, where the fetch is ours to count.
#
# Same bytes to every client. Nothing here varies by user-agent.
# See research/agent-ad-serving/ROLLOUT-laneworks.md (phase 0, no ads).
# Never let this block a deploy. Twins are an enhancement; publishing the site
# is the critical path, and this repo has been bitten before by a build-stage
# failure meaning nothing shipped for several commits. If this step breaks, the
# site still deploys -- pages just keep pointing at the previous markdown
# source until it is fixed.
- name: Generate agent markdown twins
continue-on-error: true
run: |
# jekyll-build-pages runs Jekyll inside a container as a different uid, so
# _site comes back owned by root and this step (running as `runner`) cannot
# write into it -- Errno 13 on the first twin. Take ownership first.
sudo chown -R "$(id -u):$(id -g)" ./_site
python3 -m pip install --quiet pyyaml
python3 .github/scripts/agent-twins.py --property ae-posts --root .
# Publish the agent-skill bodies at the URLs the skills index promises.
# Jekyll turns each skills/<name>/SKILL.md SOURCE into SKILL/index.html, so
# the advertised .../SKILL.md 404s -- and a 404 here returns the themed blog
# page, i.e. a soft-404 that hands an agent 66KB of HTML with a broken hash.
# This copies each body verbatim into _site and re-stamps every index sha256
# to the bytes actually served. Verified broken 2026-08-20 (8 of 8 dead).
#
# NOT continue-on-error: the index advertises these URLs unconditionally, so
# a silent failure republishes a catalog of dead links.
- name: Publish agent skill bodies
run: |
sudo chown -R "$(id -u):$(id -g)" ./_site
python3 .github/scripts/publish-skills.py
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4