Skip to content

chore: cloud-agent foundations for the docs repo - #59

Open
santifer wants to merge 2 commits into
mainfrom
chore/cloud-agent-foundations
Open

chore: cloud-agent foundations for the docs repo#59
santifer wants to merge 2 commits into
mainfrom
chore/cloud-agent-foundations

Conversation

@santifer

@santifer santifer commented Sep 3, 2026

Copy link
Copy Markdown
Member

Phase 4 of the cloud-agents plan approved on 2026-09-03. Five files, all public development docs — the private agent context stays outside the repo as before.

file what
.github/CODEOWNERS * @santifer, /.github/, /src/app/api/
CONTRIBUTING.md how to run the site, what PRs are accepted, that guides follow the core
.github/copilot-instructions.md setup, the guard's invariants, files not to touch, the report block
.github/workflows/copilot-setup-steps.yml Node 22 + npm ci, mirroring agent-layer-guard.yml
.github/agents/docs-drift.agent.md [read, search, edit, execute] — edits MDX and opens a PR from the core's weekly report

One thing worth reading before merging

CODEOWNERS here routes review; it does not block merges. main in this repository has no branch protection and no rulesets (verified via the API: Branch not protected, no rulesets). So no code-owner approval is required to merge — anyone with write access can merge without it. That is the opposite of the core repo, where CODEOWNERS is a gate.

The file's own comment says exactly this, so nobody reads it as protection it does not provide. If the plan expects it to gate, branch protection with "require review from code owners" has to be turned on separately — that is a repo-settings change, not something this PR can do.

Today the only account with write is @santifer (admin), so the distinction is moot until someone else gets push.

Adapted from career-ops#3753, with these deliberate differences

  • No A/B mode — there is no product to run in this repo.
  • npm ci with the fumadocs-mdx postinstall (first-party; it generates the content index) instead of --ignore-scripts.
  • Node 22, matching agent-layer-guard.yml, not 24.
  • The trilingual translationHash contract and node .i18n/hash.mjs restamping.
  • The frozen canonical strings (shared.ts, the manifesto) and the guard's invariants as the concrete things an agent must not break.
  • Fact rules the docs already enforce: scale named 1-5, brand lowercase, numbers never typed by hand.

Nothing here is visual and nothing touches src/.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BcPLgMFMs2B4SJv3vfq8jv

@vercel

vercel Bot commented Sep 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
career-ops-docs Ready Ready Preview Sep 10, 2026 8:47pm UTC

Request Review

santifer added a commit that referenced this pull request Sep 3, 2026
…apply

The maintainer opened career-ops-hq/career-ops#3772 with a second pass on
the core's .coderabbit.yaml and flagged six levers as possibly useful here.
Verified each against this repo's actual state before adopting anything.

Adopted, adapted to what this repo is:

- auto_pause_after_reviewed_commits: 0. Default is 5; a contributor pushing
  a sixth fix deserves the sixth review too.
- slop_detection with label "quality-check" (created on the repo). Routing
  signal only, nothing auto-closes on it.
- override_requested_reviewers_only: true. My own custom_checks already
  carry policy (frozen strings, no hand-typed numbers, no personal data);
  this stops a PR's own author from waving them through, same reasoning
  the maintainer used in core. Since @santifer is both sole code owner and
  author of nearly every PR here, this mostly blocks self-override until a
  second collaborator exists — the same shape CODEOWNERS already has.
- post_merge_actions: one report, not two. Core pairs "localization drift"
  with "documentation drift"; the second has no analog here because this
  repo IS the documentation. Added "translation drift report" instead, as a
  post-merge backstop for the existing (warning-mode, non-blocking)
  "Translations restamped or declared stale" pre-merge check.
- finishing_touches.custom: two recipes, neither copied from core.
  register-sitemap-entry is grounded in a real incident (/sustain shipped
  invisible to crawlers, 2026-05-18) and, checked against the current
  workflow, only touches src/app/sitemap.ts — indexnow.yml now derives its
  URL list from the live sitemap at run time, so it needs no manual
  registration; the old checklist calling for both was already half stale.
  sync-translation mirrors core's sync-language-mode for content but adds a
  guard core's version didn't need: translationHash is a literal hash
  computed only by .i18n/hash.mjs, so the recipe is instructed never to
  invent one — an LLM-guessed hash would make a stale translation look
  verified, which is worse than leaving it visibly stale.

Explicitly skipped, with the reason recorded in the file:

- code_generation.unit_tests.path_instructions: this repo has no test
  framework, test directory, or test script. Configuring generation
  conventions would invent testing infrastructure that doesn't exist.
- issue_enrichment.planning.auto_planning: requires a new "agent-candidate"
  label and a demonstrated backlog of agent-suitable issues, neither of
  which exists here yet. Adding it now would be speculative scope on top
  of #59 and #60, both still awaiting review.

Validated against schema.v2.json with js-yaml + jsonschema (0 errors) before
committing — the same real check from the previous commit on this branch,
not the silent structure-only fallback that gave a false pass earlier.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BcPLgMFMs2B4SJv3vfq8jv
santifer and others added 2 commits September 10, 2026 22:46
Phase 4 of the cloud-agents plan approved on 2026-09-03: CODEOWNERS,
CONTRIBUTING.md, Copilot instructions, the setup-steps workflow and a
docs-drift agent that edits MDX and opens a pull request from the core's
weekly change report.

All five are public development docs — the private agent context stays
outside the repo as before.

CODEOWNERS states its real effect, not its intent: main in this repository
has no branch protection and no rulesets, so the file ROUTES review and does
not BLOCK merges. That is the opposite of the core repo, and the comment
says so, so nobody reads it as a gate until branch protection with
code-owner review is actually turned on.

Adapted from career-ops-hq/career-ops#3753. Differences on purpose: no
A/B mode (there is no product to run here), npm ci with the first-party
fumadocs-mdx postinstall instead of --ignore-scripts, Node 22 to match
agent-layer-guard.yml, the trilingual translationHash contract, the frozen
canonical strings, and the guard's invariants as the things an agent must
not break.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BcPLgMFMs2B4SJv3vfq8jv
Branch protection was enabled on main this morning (1 review, code-owner
review required, `guard` status check required, admin bypass allowed). The
comment written an hour earlier said the opposite — that the file only
routed review — because that was true when it was written. Updated to
describe the real effect, including why enforce_admins stays off: a sole
code owner cannot approve their own pull requests.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BcPLgMFMs2B4SJv3vfq8jv
@santifer
santifer force-pushed the chore/cloud-agent-foundations branch from c5deec1 to 7bd1937 Compare September 10, 2026 20:46
santifer added a commit that referenced this pull request Sep 10, 2026
…apply

The maintainer opened career-ops-hq/career-ops#3772 with a second pass on
the core's .coderabbit.yaml and flagged six levers as possibly useful here.
Verified each against this repo's actual state before adopting anything.

Adopted, adapted to what this repo is:

- auto_pause_after_reviewed_commits: 0. Default is 5; a contributor pushing
  a sixth fix deserves the sixth review too.
- slop_detection with label "quality-check" (created on the repo). Routing
  signal only, nothing auto-closes on it.
- override_requested_reviewers_only: true. My own custom_checks already
  carry policy (frozen strings, no hand-typed numbers, no personal data);
  this stops a PR's own author from waving them through, same reasoning
  the maintainer used in core. Since @santifer is both sole code owner and
  author of nearly every PR here, this mostly blocks self-override until a
  second collaborator exists — the same shape CODEOWNERS already has.
- post_merge_actions: one report, not two. Core pairs "localization drift"
  with "documentation drift"; the second has no analog here because this
  repo IS the documentation. Added "translation drift report" instead, as a
  post-merge backstop for the existing (warning-mode, non-blocking)
  "Translations restamped or declared stale" pre-merge check.
- finishing_touches.custom: two recipes, neither copied from core.
  register-sitemap-entry is grounded in a real incident (/sustain shipped
  invisible to crawlers, 2026-05-18) and, checked against the current
  workflow, only touches src/app/sitemap.ts — indexnow.yml now derives its
  URL list from the live sitemap at run time, so it needs no manual
  registration; the old checklist calling for both was already half stale.
  sync-translation mirrors core's sync-language-mode for content but adds a
  guard core's version didn't need: translationHash is a literal hash
  computed only by .i18n/hash.mjs, so the recipe is instructed never to
  invent one — an LLM-guessed hash would make a stale translation look
  verified, which is worse than leaving it visibly stale.

Explicitly skipped, with the reason recorded in the file:

- code_generation.unit_tests.path_instructions: this repo has no test
  framework, test directory, or test script. Configuring generation
  conventions would invent testing infrastructure that doesn't exist.
- issue_enrichment.planning.auto_planning: requires a new "agent-candidate"
  label and a demonstrated backlog of agent-suitable issues, neither of
  which exists here yet. Adding it now would be speculative scope on top
  of #59 and #60, both still awaiting review.

Validated against schema.v2.json with js-yaml + jsonschema (0 errors) before
committing — the same real check from the previous commit on this branch,
not the silent structure-only fallback that gave a false pass earlier.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BcPLgMFMs2B4SJv3vfq8jv
@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 57 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 30154cec-4b25-4a24-9cae-641bfffa768f

📥 Commits

Reviewing files that changed from the base of the PR and between c4a2413 and 7bd1937.

📒 Files selected for processing (5)
  • .github/CODEOWNERS
  • .github/agents/docs-drift.agent.md
  • .github/copilot-instructions.md
  • .github/workflows/copilot-setup-steps.yml
  • CONTRIBUTING.md

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.

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