Skip to content

Make the repo self-onboarding for Claude Code and Codex - #191

Merged
BorisTyshkevich merged 2 commits into
mainfrom
chore/agent-onboarding
Aug 25, 2026
Merged

Make the repo self-onboarding for Claude Code and Codex#191
BorisTyshkevich merged 2 commits into
mainfrom
chore/agent-onboarding

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Contributor

Why

The altinity-kb-article-writer skill existed only as an untracked skills/ directory on one machine, in a path no agent tool scans. Result: it was never surfaced, its style guide was never read, and #189 shipped a 3313-word article — 3× the longest in its section, against a median of 498 — before @BorisTyshkevich caught it (fixed in #190).

The guidance to prevent that was in the repo the whole time. It just wasn't anywhere a tool would look.

Changes

Move skills/altinity-kb-article-writer.claude/skills/, and commit it. Claude Code scans ~/.claude/skills/ and .claude/skills/ — not <repo>/skills/. Committing it also means it stops living on a single machine. It already shipped an agents/openai.yaml, so cross-tool use was the original author's intent.

AGENTS.md — "Start here" section. A table pointing at all five skill files, stating plainly that Codex and other tools do not auto-load them and must read the files directly. Since Codex reads AGENTS.md and Claude Code reads CLAUDE.md, AGENTS.md is the entry point that works for both. It also warns against calibrating style by grepping neighbouring articles — that yields the frontmatter shape and none of the tone or length norms, which is precisely how #189 went wrong.

AGENTS.md — length budget. The file already said "prefer dense, operational wording" and "remove empty words", but nothing gave a number, so there was no anchor to check against. Measured across all 250 articles in content/en:

words
p50 427
p75 661
p90 1089
p99 2644

Rule: target under 1000, over 1500 needs a clear reason — only 13 of 250 articles qualify. Plus the diagnosis that matters: when an article runs long it's usually mechanism write-ups, source walkthroughs, stack traces, or evidence tables, all of which belong in the PR description rather than the KB. Two items added to the final checklist.

CLAUDE.md — new, deliberately thin (37 lines). Points at AGENTS.md as the source of truth and repeats only the three rules most often broken. Kept minimal on purpose so it can't drift from AGENTS.md.

kb-style-guide.md — a Length section that defers to AGENTS.md for authoritative wording, so the number lives in one place.

Verification

  • Skill frontmatter parses; name matches the directory; internal references/ paths are relative and survive the move; no stale skills/ paths remain in the repo.
  • Confirmed working: after the move, altinity-kb-article-writer appeared in the agent's available-skills list automatically — the exact mechanism that failed to fire at the start of the session that prompted this.
  • Hugo contentDir is content/en, so CLAUDE.md and .claude/ are not published. Build verified with the CI-pinned 0.128.2: 328 pages, unchanged, and neither path appears in the output.

The one judgment call to review

The word thresholds are mine, not yours. 1000 / 1500 is derived from the p75–p90 range of the existing corpus, but it becomes a rule every future contributor is measured against. If you'd rather it were 800/1200, or advisory rather than a rule, say so and I'll adjust — that's the line I'd most expect to change in review.

🤖 Generated with Claude Code

https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L

The article-writer skill existed only as an untracked skills/ directory on
one machine, in a path no agent tool scans. It was never surfaced or read,
and a recent article shipped at 3313 words - 3x the longest article in its
section - because the style guide sat unread two directories away.

- Move skills/altinity-kb-article-writer to .claude/skills/, which Claude
  Code loads automatically, and commit it. It already carried an
  agents/openai.yaml, so cross-tool use was the original intent.
- AGENTS.md: add a "Start here" table pointing at all five skill files,
  noting that Codex and other tools do not auto-load them and must read
  the files directly. Codex reads AGENTS.md, so this is the entry point
  that works for every tool.
- AGENTS.md: add a length budget. Across the 250 articles in content/en
  the median is ~430 words and 90% are under 1100, but nothing stated a
  target, so an agent had no anchor. Target under 1000, over 1500 needs a
  reason (13 of 250 qualify). Adds two items to the final checklist.
- CLAUDE.md: thin pointer to AGENTS.md plus the three rules most often
  broken. Deliberately short to avoid drifting from AGENTS.md.
- kb-style-guide.md: add a Length section deferring to AGENTS.md for the
  authoritative wording.

Hugo contentDir is content/en, so CLAUDE.md and .claude/ are not
published. Build verified: 328 pages, unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L
@github-actions

Copy link
Copy Markdown
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

The existing final checklist is mechanical - frontmatter present, fences
tagged, queries version-gated. A draft can pass every box and still be the
wrong article, which is what happened with the 3313-word first version of
the export-system-logs page.

Adds seven review questions in three groups:

- Does the reader need this? The four cutting questions, with the specific
  guidance that being able to explain why the internals behave a certain
  way is not a reason to put it in the article - that belongs in the PR.
- Is it true? Naming the version an example was run on, rather than
  asserting it was tested. Also notes that reformatting a tested example
  un-tests it, which came up when the DDL was reflowed during the
  simplification pass.
- Is it enough? Does it solve the problem end-to-end.

The last group is called out as the counterweight. Six of the seven
questions push toward cutting and only one pushes toward keeping, so
applied without it the set will strip an article past useful. Cut
derivations, not decisions.

Placed in AGENTS.md rather than the skill because the skill is scoped to
writing new articles while these apply equally to edits, and because the
skill auto-loads for Claude Code only - Codex reads AGENTS.md. The skill's
qa-checklist.md points here instead of duplicating.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AsB1E5eSBXpaZT4jGzY57L
@BorisTyshkevich
BorisTyshkevich merged commit 909c91f into main Aug 25, 2026
1 of 2 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 25, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant