Skip to content
Changelog

What Claude Code First shipped.

Every entry in docs/CHANGELOG.md, read at 54e1414 and dated by the commit that wrote it.

Atom feed
  1. Rule pages print literal asterisks around every normative sentence that holds an italic term

    Rule pages render a bold normative sentence holding an italic term as strong with em inside, and a test fails on any rule page that prints two asterisks.

    CCF80 · 54e1414
  2. The site header links neither alegauss.github.io nor the GitHub repository, unlike every other alegauss site

    Every page's header carries the "part of alegauss" chip to alegauss.github.io and a GitHub button to the repository, and a test fails on a header without either.

    CCF79 · cc174eb
  3. markdownlint lints the governed docs/DEFERRED.md, and fails on a blank line roadkeep wrote there

    markdownlint now ignores docs/DEFERRED.md beside the other four governed files, and its gate passes with the file as roadkeep wrote it.

    CCF78 · 3e0abee
  4. The guide and specification pages carry their own 892-line stylesheet, outside the design system

    The guide and spec pages take fonts, tokens and site.css at 2026.3.22, re-keyed to the mark's rose, with analytics behind consent; style.css keeps only this site's own blocks.

    CCF77 · 72e902b
  5. The site shows no mark of its own: no favicon, no logo in the header, no social card

    Every built page links icon.svg and carries og:image, the guide header shows the mark, and a stdlib-drawn og.png renders the mark and title.

    CCF76 · 84af454
  6. the files-over-APIs open question names what would settle it, and nothing has been measured against it

    F410 grades Shio's SH1141 at R1/S3: files cost 1.29x less and the agent writes 3.1x less; AP's open question and the guide say so, and corpus.md now lists a commit cited past a pin.

    CCF75 · 52a4b67
  7. the method admits no evidence of what a project's own sessions cost, so the session-budget question cannot be settled

    method.md admits session-cost aggregates on four conditions, harness.md records H16-H20 and O4, and evidence/sessions holds a cost per task for all five projects.

    CCF74 · cf33932
  8. the guide's lessons say nothing about what an agent-facing surface costs, and the page types its lesson count

    The guide's ninth lesson shapes the agent's path to the task and measures it, linking F409, F8, AP-5 and AP-6, and its lesson count is computed from the cards.

    CCF73 · 14f3078
  9. no rule asks a product to benchmark canonical tasks through its agent surface against the generic path

    AP-6 asks a product to benchmark canonical tasks through its surface and the generic path, gated on calls, tokens and the ratio, at SHOULD though F409 admits MUST.

    CCF72 · 04ef613
  10. the files-over-APIs and the per-project session token budget claims are recorded nowhere as open questions

    AP's open questions now hold files over an API for authoring, argued by Shio and never measured, and IS's hold a token budget on a project's own sessions, which no corpus project counts.

    CCF71 · 6241956
  11. no rule says when a capability belongs on a CLI verb rather than on an MCP tool list

    AP-5 lets a product offer a capability as a CLI verb where its agents have a shell, keeping MCP for shell-less clients and schema-checked input, at MAY because H9 disputes the cost.

    CCF70 · 43b1502
  12. no finding records putting capabilities on a CLI rather than an MCP tool list where the consuming agent has a shell

    F8 records Shio keeping three capabilities off its MCP tool list for a CLI its agent could reach, graded R2/S2, with winwright contrary where a schema guards a structured input.

    CCF69 · 289bdd2
  13. no finding records that a task-shaped agent path cost a fraction of the generic API's tokens, or where the gap came from

    F409 records that a task-shaped path cost Shio and freewilly a fraction of the generic API's tokens, graded R3/S4, and traces the gap to fewer reads rather than to REST.

    CCF68 · bdfd923
  14. the site opens on a table of rules, and a reader setting up a project has no plain-language way in

    The site root is a plain-language guide with lessons linked to their findings and rules, and three charts built from the repository; the first site moved whole under spec/.

    CCF67 · b8d1948
  15. CI still excuses winwright from the pointer check after its pin was pushed

    CI checks winwright's pointers against its remote, now that its pin is pushed; only the private Shio stays excused.

    CCF66 · b37c98d
  16. this repository declares no line terminators in .gitattributes, so it fails its own rule EP-2

    This repository declares LF line endings in .gitattributes, claims level 2 in its own ccf.toml, and CI runs the conformance checker against it on every push.

    CCF65 · d18bd46
  17. the citation resolver takes about five minutes over 795 pointers, so it will be the gate a commit skips first

    The resolver reads each corpus through one git cat-file batch process and the pin's ancestry set: 1,972 pointers take 1.5 s, down from 273 s.

    CCF64 · ebd1bbe
  18. the resolver cannot check a quote that holds inline code or runs across comment-prefixed source lines

    A quote is now checked as written: it may wrap onto the line before its pointer, keep backticks and run across comment lines, and a wrapped quote no longer passes unread.

    CCF63 · 3ccd1a7
  19. the repository has no README telling a newcomer what the spec is, how to read it and how to adopt it

    README.md says what the specification is, where adopters, auditors and researchers start, the layout, the 0.x status and how to cite, linking rather than typing any figure.

    CCF62 · cbda3b6
  20. the work has no license, no citation metadata and no statement of how it was authored

    The text is under CC BY 4.0 and the code under MIT, each in its own license file, with the README naming which folders each covers.

    CCF61 · b138ae8
  21. an agent in another repository cannot consume the spec cheaply: no llms.txt and no page per rule

    scripts/build_site.py publishes a page and a Markdown twin per rule and finding, llms.txt and the registry as data, built with no broken link in CI and deployed on demand.

    CCF60 · 07c9436
  22. no process admits new evidence or a new rule, so the spec would either freeze or grow by opinion

    spec/changing.md sets the path for a change: a proposal with rule, findings, level, cost and class, evidence through the protocol, a task and decision, deprecation before withdrawal.

    CCF59 · a868d89
  23. the specification has no version, so an audit cannot say which text it judged a project against

    The specification follows semantic versioning of its obligations, with the version in one place and a tool that writes release notes from the rule diff and refuses too small a bump.

    CCF58 · 7defbbe
  24. shio has never been audited against the specification, so its conformance is asserted, not measured

    Shio is audited at its head: 30 of 56 rules fail after the verifier rejected two scanner findings, achieved level 0, with proposed classes, offered tasks and cost recorded.

    CCF55 · cc9cd58
  25. winwright has never been audited against the specification, so its conformance is asserted, not measured

    winwright is audited at its head: 21 of 56 rules fail after the verifier rejected two scanner findings and added one, achieved level 0, with proposed classes and cost recorded.

    CCF54 · cd31a2b
  26. freewilly has never been audited against the specification, so its conformance is asserted, not measured

    freewilly is audited at its head: 26 of 56 rules fail, one scanner finding rejected by the verifier and one added, achieved level 0, with proposed classes and cost recorded.

    CCF53 · b75953e
  27. polyweave has never been audited against the specification, so its conformance is asserted, not measured

    polyweave is audited at its head: 19 of 56 rules fail with none confirmed false and 6 could not run, achieved level 0, with proposed classes, offered tasks and cost recorded.

    CCF52 · d44c4d6
  28. roadkeep has never been audited against the specification, so its conformance is asserted, not measured

    roadkeep is audited at its head: 22 of 56 rules fail with none confirmed false, achieved level 0, with proposed classes, offered tasks, circularity and cost recorded.

    CCF51 · 19960ee
  29. a project already Claude Code first that drifted has no path back except rereading the whole spec

    adoption/realignment.md takes a drifted project from audit to classified failures, owner-approved tasks one level at a time and a diffed re-audit, and skills/realign performs it.

    CCF50 · 258e11c
  30. an existing codebase adopting the practice has no procedure, and Shio's transition lives only in its history

    adoption/brownfield.md takes an existing codebase from inventory to a declared level, verified against Shio's pin, with waivers for what history cannot meet, and skills/adopt performs it.

    CCF49 · 89ad3ad
  31. starting a project Claude Code first has no ordered procedure, so the order the five learned in is repeated

    adoption/greenfield.md orders the install so each piece protects the next, from day-one decisions to the first audit, and skills/bootstrap performs it and stops before the first commit.

    CCF48 · dab72a5
  32. a new project has no starting kit, so each of the five wrote its own settings, hooks and skills

    templates/ holds a conforming file per artefact citing its rules, and a repository assembled from them passes the checker at level 2 in a test (design superseded: hooks referenced, not copied).

    CCF47 · 4912c35
  33. a deliberate deviation from a rule cannot be recorded, so it reads as drift in every audit

    An adopter's ccf.toml declares its level, spec version and waivers with reason, owner, date and end; the checker and audit report them as waived, or failed once expired.

    CCF46 · 65cfefd
  34. an audit report has no fixed format, so two audits of one project cannot be compared over time

    An audit report is JSON in a fixed schema with a Markdown rendering, a verdict per rule where could-not-run blocks the level, and tools to validate, render and diff two reports.

    CCF45 · 54382ac
  35. the rules that need judgement cannot be audited without an agent reading the whole spec

    The repository ships an audit plugin: a skill that runs the checker then a scanner per chapter and a verifier for judgement rules, validated strictly in CI with a pinned CLI.

    CCF44 · af9505c
  36. automatable rules have no checker, so each audit rederives by reading what a script could measure

    scripts/check_conformance.py decides six rules from a repository's files with a third verdict, exits non-zero below the claimed level, and passes and fails its fixture repositories.

    CCF43 · 1251bab
  37. traceability is unchecked: a rule citing no finding, or a finding citing no evidence, would pass

    A CI gate traces every rule to findings whose grade admits its keyword and every finding to a primary pointer, and regenerates spec/traceability.md, the matrix.

    CCF42 · 4c3bbd2
  38. rules exist only as prose, so no tool can list them, filter them by level or check a repository against them

    spec/rules.toml lists all 56 rules with keyword, level, statement, findings and harness facts, generated from the chapters with a CI check, and a query command answers without reading them.

    CCF41 · e6ef31a
  39. conformance has no levels, so a project cannot say how far it adopts the spec or what to do next

    spec/conformance.md defines three cumulative levels, governed, gated and measured, plus the agent-facing profile, assigns all 56 rules with reasons, and says how a claim is made.

    CCF40 · 4978608
  40. the practices that resolved those failures are described only inside the projects that invented them

    spec/catalogue/patterns/ describes 14 practices that resolved the failures, each with the anti-pattern it answers, its evidence, its rules and the cost it adds.

    CCF39 · f2a41ed
  41. the recurring failures have no names, so a reviewer cannot say which one a project is committing

    spec/catalogue/anti-patterns/ names 15 recurring failures, each graded by its best finding and linked to the rules that prevent it and the pattern that resolved it.

    CCF38 · 6d5e935
  42. no form fixes how a pattern or anti-pattern is written, so entries would mix problem, remedy and evidence

    spec/catalogue/README.md fixes the pattern and anti-pattern form, and a CI check holds every entry to its sections, bars RFC 2119 keywords and requires a rule link.

    CCF37 · 3f7e4f7
  43. no normative chapter covers the prose an agent writes, though model-written prose was measurably detectable

    spec/AW.md states three rules on agent prose: generated or checked figures (MUST, F7), length limits refused at the write (MUST), and gated style rules (SHOULD, per D7).

    CCF36 · 7e77dec
  44. no normative chapter covers several agent sessions working in one repository at once

    spec/CS.md states five rules for sessions sharing a checkout: claims on task and paths, staging within the claim, disturbed gate runs as could-not-run, no cited figures from a busy tree.

    CCF35 · 4fd867a
  45. no normative chapter says what the person decides and what an agent must never certify for itself

    spec/HR.md states that an agent does not close work needing a person's judgement or absent hardware, and applies a stored human bar instead of its own margin.

    CCF34 · 0323717
  46. no normative chapter covers projects that ship tools, skills or plugins for other agents to use

    spec/AP.md states four rules for products agents use: gated token ceilings, names checked against the catalogue, tests from the published artefact, adoption proved in a consumer.

    CCF33 · ecc0b37
  47. no normative chapter covers where a session runs: web versus local, shells, encodings and line endings

    spec/EP.md states six portability rules bounded to Windows: a declared tool copy, pinned line endings, named encodings, BOM handling, bytes before blame and no heredoc edits.

    CCF32 · dc5753f
  48. no normative chapter states a permission and safety posture, and the corpus runs with prompts bypassed

    spec/PS.md states three permission rules the evidence carries: name what replaces removed prompts, refuse forbidden actions in configuration, keep credentials out of the tree.

    CCF31 · fcbcedc
  49. no normative chapter says which rules must be enforced by hooks rather than by instructions

    spec/GH.md states six rules on what the harness enforces: broken rules leave prose, a CI gate behind every guard, every route matched, silent failures surfaced, configuration gated.

    CCF30 · 6da086c
  50. no normative chapter says what an agent must run, keep and report before calling work done

    spec/VG.md states nine rules on what must run and pass before work is done, from gates on the committed change to the third verdict, CI on every push and expiring red exceptions.

    CCF29 · 3c3ce10
  51. no normative chapter says how an agent turns finished work into commits

    spec/CD.md states six rules on turning work into commits: one task per commit, a gate between tasks, staging by path, the agent's own title, no empty filings, and a stated attribution policy.

    CCF28 · 4c9b2c1
  52. no normative chapter says how an agent plans, records and closes work

    spec/PG.md states six planning rules satisfiable by any tool: governed files, symptom-first tasks, recorded false premises, rationale moved before deletion, criteria-closed blocks and deferral.

    CCF27 · bea3352
  53. no normative chapter says what may load on every turn and what must be trigger-loaded instead

    spec/IS.md states six rules on the instruction surface, each capped by its findings: a gated budget on any every-turn file, bounded skills and read-on-demand files, checked name lists.

    CCF26 · 0392668
  54. terms such as every-turn file, governed file, gate, guard, ledger and verdict are used without definitions

    spec/glossary.md defines 18 terms, settling the corpus's two senses of a block, and a CI check fails any italic term in a rule sentence that has no entry.

    CCF25 · f08c43a
  55. the specification has no frame: no chapter order, no rule addresses and no conformance keywords

    spec/ has its frame: scope, audience and chapter list in README.md, and in conventions.md the RFC 2119 keywords tied to evidence grades, the rule form and permanent addresses.

    CCF24 · 64d3588
  56. no cross-project metrics exist, so claims about scale, cadence and context cost are adjectives

    scripts/corpus_metrics.py computes commits, cadence, commit conventions, ledgers, every-turn bytes and tests for all five pins into committed data, methods stated.

    CCF23 · e4d9342
  57. the drift already present in the corpus is uncatalogued, though each case shows prose rules decaying

    evidence/drift.md inventories nine verified contradictions inside corpus projects at their pins, with dates, days standing and whether a check could catch each.

    CCF22 · 2b3b735
  58. the projects disagree on attribution, instruction files, permissions and CI scope, and nothing settles it

    evidence/divergences.md settles seven divergences against graded findings, allowing a documented deviation where evidence cannot decide (design superseded: one register).

    CCF21 · 4af3519
  59. lessons are scattered over five ledgers, so one is counted five times and a contradiction not at all

    evidence/findings/ holds 37 graded findings across five topics, each merging observations by independent origin with resolving pointers, and a generated index CI checks.

    CCF20 · 38382d8
  60. no case study describes shio, the only project that adopted the practice after years of history

    evidence/cases/shio.md tells Shio's brownfield case in the shared structure with 114 resolving pointers, splitting before and after adoption by commit rather than by date.

    CCF19 · 22e8c25
  61. no case study describes winwright, whose agent surface is shipped for other repositories to use

    evidence/cases/winwright.md tells winwright's case in the shared structure with 107 resolving pointers, and corrects the design on WW69, the reopened blocks and the red pushes.

    CCF18 · 177e401
  62. no case study describes freewilly, the project that works without any instruction file

    evidence/cases/freewilly.md tells freewilly's case in the shared structure with 103 resolving pointers, and corrects the design on CONTRIBUTING, DD115 and the web-session commits.

    CCF17 · ec0bf8c
  63. no case study describes polyweave, the one project governed from its very first commit

    evidence/cases/polyweave.md tells polyweave's case in the shared structure with 112 resolving pointers, measuring throughput from the ledger and correcting the design on 871a15b.

    CCF16 · fa2c498
  64. no case study describes roadkeep: its timeline, agent surfaces, gates and the incidents that shaped them

    evidence/cases/roadkeep.md tells roadkeep's case in the shared nine sections with 121 resolving pointers, correcting the design where the pinned sources disagree.

    CCF15 · 3ae5d64
  65. no related work is surveyed, so the spec cannot say what is new and what restates ADRs, RFC 2119 or pattern languages

    evidence/related-work.md surveys ADRs, RFC 2119, patterns, Diataxis, commits, method, Anthropic's guide and four agent studies, and names five claims with no precedent.

    CCF14 · 4ef901f
  66. the Claude Code behaviour the spec relies on is cited from memory rather than from versioned documentation

    evidence/harness.md registers 14 documented harness facts with page, date and CLI 2.1.280, and 3 observed ones with evidence, one now contradicted by the docs.

    CCF13 · 2311c25
  67. threats to validity are unstated: one author, one harness, one model family, five projects over six months

    evidence/validity.md states the construct, internal, external and reliability threats, traces the direction of copying from dated commits, and reports the measured error rate.

    CCF12 · f7abda0
  68. the field notes were extracted by agents and not one of their claims has been checked against the pinned sources

    All 564 field-note claims are marked against the pins, 789 pointers resolve, and the error rate is recorded: 13.8% overall, 12.9% to 16.3% per project.

    CCF11 · 48621af
  69. claims carry no strength, so one incident in one project reads like a pattern seen in all five

    evidence/grading.md grades findings on recurrence and strength, counts copied practice once, maps grades to MUST, SHOULD and MAY, and sets itself against EBSE levels.

    CCF10 · 9bc921d
  70. an evidence pointer has no grammar, so nothing can check that the path, line or commit it names exists

    A pointer grammar is defined, and a tested resolver checks each pointer's project, commit, path, lines and quote against the pinned corpus in CI (design recorded in evidence/method.md).

    CCF9 · 632954e
  71. the corpus is named by path only, so a citation breaks as soon as a source repository moves on

    evidence/corpus.md pins each project to the full commit the notes read, each confirmed as HEAD during extraction, with remotes, work outside the pins and descriptive data.

    CCF8 · 6d9afc8
  72. no protocol says how evidence is gathered or judged, so a finding here cannot be reproduced or challenged

    evidence/method.md states the research questions, case design, sources, extraction queries, coding scheme and disagreement rule; the first five prompts are kept verbatim.

    CCF7 · 2fe83e6
  73. a Write over an existing file is accepted silently here, the path that destroyed about 700 lines in pportal

    A Write over an existing non-empty file is now refused by a PreToolUse hook naming Edit, vendored from polyweave with its source commit in the header.

    CCF6 · 80ba574
  74. the every-turn files carry no size budget, so they can grow the way Shio's agents.md reached 186 KB

    agents.md and .claude/CLAUDE.md now carry line and byte budgets lint enforces, and every skill written here is capped at 700 characters of description and 6,000 of body.

    CCF5 · ffcf35b
  75. nothing states how work is committed here, so batching, stray files and mislabelled docs commits are all possible

    Committing here is a trigger-loaded ccf-dev skill: one task per commit, staged by path, message from a file, the three gates first (design superseded: staged by path).

    CCF4 · 6ba7fff
  76. no gate runs on push, so a lint failure or a broken link in the specification reaches main unremarked

    Every push and pull request now runs roadkeep lint, an offline link check and a Markdown rule set; both new gates were seen failing locally (design superseded: lint is in roadkeep.yml).

    CCF3 · 23583e7
  77. the governed docs have no guard here, so a hand edit of ROADMAP.md or IMPROVEMENTS.md passes unnoticed

    A hand edit of a governed doc is now denied by a committed PreToolUse guard naming the roadkeep command to use, on every clone, with a merge driver for the four files.

    CCF2 · a247bd0
  78. a session opening this repository is told nothing: no every-turn file states purpose, language or write paths

    A session opening this repository now loads agents.md through .claude/CLAUDE.md, stating the purpose, three laws on evidence, English and roadkeep writes, and the layout.

    CCF1 · 46578e7
  79. the claim that conformance reduces cost has no before-and-after measurement on any realigned project

    roadkeep's owner accepted the drift tasks, and the 14 days before realignment are measured by a script that measures the window after the same way.

    CCF57
  80. nothing shows the audit is accurate: its false findings and misses are unmeasured

    validation/accuracy.md reports that the verifier confirmed 107 of 112 scanner findings, says why that is agreement not accuracy, and holds the sample for the person.

    CCF56

← Claude Code First's product page